@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_51feb692-module__beNiYG__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_51feb692-module__beNiYG__variable{--font-newsreader:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:Aleo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b5d899e59923bf2c-s.1lk2aa37455k2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Aleo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1903e9dea81d29d2-s.0acqav3l2tasj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Aleo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3833725253561073-s.p.2ywvdhxqfuis4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Aleo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b5d899e59923bf2c-s.1lk2aa37455k2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Aleo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1903e9dea81d29d2-s.0acqav3l2tasj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Aleo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3833725253561073-s.p.2ywvdhxqfuis4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Aleo;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b5d899e59923bf2c-s.1lk2aa37455k2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Aleo;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1903e9dea81d29d2-s.0acqav3l2tasj.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Aleo;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3833725253561073-s.p.2ywvdhxqfuis4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Aleo Fallback;src:local(Times New Roman);ascent-override:80.1%;descent-override:26.11%;line-gap-override:0.0%;size-adjust:112.98%}.aleo_97057ef1-module__bhiY1G__className{font-family:Aleo,Aleo Fallback;font-style:normal}.aleo_97057ef1-module__bhiY1G__variable{--font-aleo:"Aleo", "Aleo Fallback"}
:root{--color-cream-paper:#fdfbf9;--color-charcoal:#171717;--color-cocoa-ink:#2b1a07;--color-true-black:#000;--color-dew-drop:#f7efe9;--color-marker-orange:#ff6f1e;--color-burnt-sienna:#ce500a;--color-sky-sticker:#3b82f6;--color-bubblegum-sticker:#ff66cf;--color-sprout-sticker:#22c55e;--color-shadow-mist:#bebcbb;--font-heading:var(--font-newsreader), Georgia, "Times New Roman", serif;--font-body:var(--font-aleo), Georgia, "Times New Roman", serif;--text-caption:16px;--leading-caption:1.5;--text-body-sm:18px;--leading-body-sm:1.5;--text-body:20px;--leading-body:1.5;--text-subheading:24px;--leading-subheading:1.4;--text-heading-sm:28px;--leading-heading-sm:1.4;--text-heading:36px;--leading-heading:1.2;--text-heading-lg:46px;--leading-heading-lg:1.2;--text-display:104px;--leading-display:1.08;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-28:28px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--spacing-64:64px;--spacing-116:116px;--page-max-width:1200px;--section-gap:64px;--card-padding:32px;--element-gap:12px;--radius-tags:20px;--radius-cards:12px;--radius-footer:56px;--radius-inputs:8px;--radius-buttons:20px;--shadow-lg:#0000000f 0px 2px 20px 0px;--shadow-subtle:#00000040 0px 1px 2px 0px}*{box-sizing:border-box}html{background:var(--color-cream-paper);color:var(--color-charcoal);font-family:var(--font-body)}body{background:var(--color-cream-paper);min-height:100vh;margin:0}button,a{font:inherit}.menu-toggle{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mobile-topbar,.menu-scrim{display:none}.sidebar{background:var(--color-cream-paper);border-right:1.5px solid var(--color-charcoal);gap:clamp(var(--spacing-12), 2.2vh, var(--spacing-20));padding:clamp(var(--spacing-16), 3vh, var(--spacing-24));scrollbar-width:none;z-index:5;flex-direction:column;width:260px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.brand-lockup{color:var(--color-cocoa-ink);align-items:center;gap:var(--spacing-12);text-decoration:none;display:flex}.brand-lockup strong{font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);text-transform:lowercase;line-height:1.2}.brand-mark{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);box-shadow:var(--shadow-subtle);color:var(--color-charcoal);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;display:inline-flex}.brand-mark span,.brand-mark{font-size:var(--text-caption);font-weight:var(--font-weight-semibold);line-height:1}.sidebar-nav{gap:clamp(var(--spacing-4), 1vh, var(--spacing-8));display:grid}.nav-item{border-radius:var(--radius-tags);color:var(--color-charcoal);font-family:var(--font-body);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);padding:clamp(6px, 1vh, var(--spacing-8)) var(--spacing-16);background:0 0;border:1.5px solid #0000;text-decoration:none}.nav-item.active{background:var(--color-dew-drop);border-color:var(--color-charcoal);box-shadow:var(--shadow-subtle);font-family:var(--font-heading);font-weight:var(--font-weight-medium)}.nav-item:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.sidebar-student{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);padding:clamp(var(--spacing-12), 2vh, var(--spacing-16));flex-shrink:0;margin-top:auto}.sidebar-student small,.sidebar-student span,.sidebar-stats small,.sidebar-title small{font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-caption);display:block}.sidebar-student strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:clamp(var(--text-body), 3vh, var(--text-subheading));font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading);margin:var(--spacing-4) 0;display:block}.sidebar-stats{gap:clamp(2px, .7vh, var(--spacing-4));margin-top:clamp(var(--spacing-8), 1.4vh, var(--spacing-12));flex-direction:column;display:flex}.sidebar-stats div,.sidebar-title{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);align-items:center;gap:var(--spacing-12);padding:clamp(6px, 1vh, var(--spacing-8)) var(--spacing-12);justify-content:space-between;display:flex}.sidebar-stats b,.sidebar-title b{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);line-height:var(--leading-body);text-align:right;margin-top:0;display:block}.sidebar-title{margin-top:var(--spacing-4)}.sidebar-title b{color:var(--color-marker-orange);font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.sidebar-action{flex-shrink:0;width:100%}.pill-button{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-buttons);box-shadow:var(--shadow-subtle);color:var(--color-charcoal);cursor:pointer;font-family:var(--font-body);font-size:var(--text-caption);font-weight:var(--font-weight-medium);line-height:var(--leading-caption);padding:10px var(--spacing-28);justify-content:center;text-decoration:none;display:inline-flex}.pill-button:focus-visible,.brand-mark:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.app-shell{max-width:none;padding:var(--spacing-24) clamp(var(--spacing-24), 4vw, var(--spacing-64)) var(--spacing-64);margin:0 0 0 260px}.dashboard{align-items:stretch;gap:var(--spacing-32);grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);min-height:520px;display:grid}.intro-panel{padding:var(--spacing-32) 0;flex-direction:column;justify-content:center;display:flex}.hand-caption{color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-regular);line-height:var(--leading-subheading);margin:0 0 var(--spacing-12);transform-origin:0;transform:rotate(-2deg)}h1,h2,p{margin:0}h2{font-family:var(--font-heading)}h1{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:clamp(56px, 9vw, var(--text-display));font-weight:var(--font-weight-semibold);letter-spacing:normal;line-height:var(--leading-display);max-width:760px}.page-header{padding:var(--spacing-48) 0 0}.page-header h1{max-width:900px}.teacher-hero h1{white-space:nowrap;max-width:none}.page-header p:not(.hand-caption){color:var(--color-cocoa-ink);font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--spacing-20);max-width:620px}.student-note{color:var(--color-cocoa-ink);font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--spacing-24);max-width:620px}.student-note span{color:var(--color-marker-orange);display:inline-block;position:relative}.student-note span:after{background:var(--color-marker-orange);content:"";opacity:.85;z-index:-1;border-radius:99px;height:3px;position:absolute;bottom:2px;left:0;right:0;transform:rotate(-1deg)}.metric-label{color:var(--color-charcoal);font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-caption);display:block}.stamp-board{padding:var(--spacing-12) 0;align-self:center}.student-stamp-grid{gap:var(--spacing-16);grid-template-columns:repeat(auto-fit,minmax(128px,1fr));display:grid}.student-stamp{aspect-ratio:1;block-size:auto;clip-path:var(--stamp-octagon);color:var(--stamp-color);align-items:center;gap:var(--spacing-8);min-block-size:0;inline-size:100%;min-inline-size:0;padding:var(--spacing-28);text-align:center;transform:rotate(var(--stamp-tilt));--stamp-octagon:polygon(29.289% 0, 70.711% 0, 100% 29.289%, 100% 70.711%, 70.711% 100%, 29.289% 100%, 0 70.711%, 0 29.289%);--stamp-color:var(--color-cocoa-ink);--stamp-tilt:0deg;background:currentColor;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.student-stamp:before,.student-stamp:after{content:"";clip-path:var(--stamp-octagon);position:absolute}.student-stamp:before{background:var(--color-cream-paper);z-index:0;inset:5px}.student-stamp:after{opacity:.5;z-index:0;-webkit-mask-composite:xor;background:currentColor;padding:2px;inset:15px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.student-stamp span{font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);z-index:1;line-height:1;display:block;position:relative}.student-stamp strong{font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);letter-spacing:0;text-transform:uppercase;z-index:1;max-width:100%;line-height:1.08;display:block;position:relative}.student-stamp strong span{font:inherit;line-height:inherit;display:block}.student-stamp-red{--stamp-color:#9f1239;--stamp-tilt:-6deg}.student-stamp-orange{--stamp-color:#c2410c;--stamp-tilt:5deg}.student-stamp-green{--stamp-color:#166534;--stamp-tilt:-3deg}.student-stamp-blue{--stamp-color:#1d4ed8;--stamp-tilt:4deg}.student-stamp-purple{--stamp-color:#7e22ce;--stamp-tilt:-4deg}.student-stamp-brown{--stamp-color:#854d0e;--stamp-tilt:6deg}.metrics-grid{gap:var(--spacing-16);margin-top:var(--section-gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.teacher-section-grid{gap:var(--spacing-16);margin-top:var(--section-gap);grid-template-columns:minmax(0,1.35fr) minmax(320px,.95fr);display:grid}.teacher-section-grid-secondary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.teacher-panel{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);padding:var(--card-padding)}.teacher-link-card{color:var(--color-cocoa-ink);gap:var(--spacing-8);text-decoration:none;display:grid}.teacher-link-card h2{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-sm)}.teacher-link-card p:last-child{color:var(--color-cocoa-ink);font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.teacher-overview-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.teacher-panel-heading .hand-caption{font-size:var(--text-body);margin-bottom:var(--spacing-4)}.teacher-panel-heading h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.teacher-panel-heading>span{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);box-shadow:var(--shadow-subtle);font-size:var(--text-caption);line-height:var(--leading-caption);padding:var(--spacing-8) var(--spacing-16);flex:none}.teacher-badge-section{margin-top:var(--section-gap)}.teacher-badge-grid{gap:var(--spacing-16);margin-top:var(--spacing-24);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-badge-card{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);cursor:pointer;align-items:stretch;gap:var(--spacing-12);padding:var(--spacing-20);text-align:left;width:100%;display:grid}.teacher-badge-art-wrap{aspect-ratio:1;justify-self:center;width:min(100%,168px)}.teacher-badge-card-button{appearance:none}.teacher-badge-frame{aspect-ratio:1;background:var(--badge-color);clip-path:var(--badge-clip);color:var(--badge-color);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:100%;height:auto;padding:16%;display:flex;position:relative;overflow:hidden}.teacher-badge-frame:before,.teacher-badge-frame:after{clip-path:inherit;content:"";position:absolute}.teacher-badge-frame:before{background:var(--color-cream-paper);z-index:0;inset:6px}.teacher-badge-frame:after{opacity:.55;z-index:0;-webkit-mask-composite:xor;background:currentColor;padding:2px;inset:12px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.teacher-badge-frame>*{z-index:1;position:relative}.teacher-badge-frame strong,.teacher-badge-frame small,.teacher-badge-icon{max-width:100%}.teacher-badge-icon-box{justify-content:center;align-items:center;width:auto;min-width:0;max-width:72%;height:22px;margin-inline:auto;display:inline-flex}.teacher-badge-icon{color:var(--badge-color);font-family:var(--font-heading);text-align:center;white-space:nowrap;font-size:18px;line-height:22px;display:inline-block}.teacher-badge-frame strong{color:var(--badge-color);font-family:var(--font-heading);font-size:16px;font-weight:var(--font-weight-semibold);overflow-wrap:normal;text-align:center;text-transform:uppercase;word-break:keep-all;margin-inline:auto;line-height:1.08;display:block}.teacher-badge-frame strong span{white-space:nowrap;display:block}.teacher-badge-frame small{color:var(--badge-color);text-align:center;margin-inline:auto;font-size:12px;line-height:1.2}.teacher-badge-students{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);min-height:34px}.teacher-badge-preview-shell{justify-items:center;gap:var(--spacing-12);margin-bottom:var(--spacing-20);display:grid}.teacher-badge-preview-wrap{width:min(100%,168px)}.teacher-badge-card-meta{gap:var(--spacing-8);flex-direction:column;display:flex}.teacher-badge-card-meta span{font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.teacher-badge-card-meta b{color:var(--color-marker-orange);font-size:var(--text-caption);line-height:var(--leading-caption);text-transform:uppercase}.teacher-badge-frame-hexagon{--badge-clip:polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%)}.teacher-badge-frame-heptagon{--badge-clip:polygon(50% 0, 89% 19%, 99% 61%, 72% 95%, 28% 95%, 1% 61%, 11% 19%)}.teacher-badge-frame-octagon{--badge-clip:polygon(29.289% 0, 70.711% 0, 100% 29.289%, 100% 70.711%, 70.711% 100%, 29.289% 100%, 0 70.711%, 0 29.289%)}.teacher-badge-frame-star-6,.teacher-badge-frame-star-7,.teacher-badge-frame-star-8{padding:18%}.teacher-badge-frame-star-6 strong,.teacher-badge-frame-star-7 strong,.teacher-badge-frame-star-8 strong{max-width:72%;font-size:14px;line-height:1.05}.teacher-badge-frame-star-6 .teacher-badge-icon,.teacher-badge-frame-star-7 .teacher-badge-icon,.teacher-badge-frame-star-8 .teacher-badge-icon{font-size:16px;line-height:22px}.teacher-badge-frame-star-6 small,.teacher-badge-frame-star-7 small,.teacher-badge-frame-star-8 small{font-size:11px}.teacher-badge-frame-star-6{--badge-clip:polygon(50% 4%, 67% 20.6%, 89.8% 27%, 84% 50%, 89.8% 73%, 67% 79.4%, 50% 96%, 33% 79.4%, 10.2% 73%, 16% 50%, 10.2% 27%, 33% 20.6%)}.teacher-badge-frame-star-7{--badge-clip:polygon(50% 4%, 64.8% 19.4%, 86% 21.3%, 83.1% 42.4%, 94.8% 60.2%, 76.6% 71.2%, 70% 91.4%, 50% 84%, 30% 91.4%, 23.4% 71.2%, 5.2% 60.2%, 16.9% 42.4%, 14% 21.3%, 35.2% 19.4%)}.teacher-badge-frame-star-8{--badge-clip:polygon(50% 4%, 63% 18.6%, 82.5% 17.5%, 81.4% 37%, 96% 50%, 81.4% 63%, 82.5% 82.5%, 63% 81.4%, 50% 96%, 37% 81.4%, 17.5% 82.5%, 18.6% 63%, 4% 50%, 18.6% 37%, 17.5% 17.5%, 37% 18.6%)}.teacher-swatch-row{align-items:center;gap:var(--spacing-8);flex-wrap:wrap;display:flex}.teacher-swatch{border:1.5px solid var(--color-charcoal);box-shadow:var(--shadow-subtle);cursor:pointer;border-radius:50%;width:32px;height:32px}.teacher-swatch-active{outline:2px solid var(--color-cocoa-ink);outline-offset:2px}.teacher-color-input{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);width:56px;height:36px;padding:2px}.teacher-filter-row{gap:var(--spacing-8);margin-top:var(--spacing-20);flex-wrap:wrap;display:flex}.teacher-filter-chip{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);box-shadow:var(--shadow-subtle);font-size:var(--text-caption);line-height:var(--leading-caption);padding:var(--spacing-8) var(--spacing-12)}.teacher-table{gap:var(--spacing-8);margin-top:var(--spacing-20);display:grid}.teacher-row{background:var(--color-cream-paper);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);align-items:center;gap:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);border:1.5px solid #0000;grid-template-columns:minmax(0,1.6fr) minmax(120px,.95fr) 78px 110px;display:grid}.teacher-table-redemption .teacher-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 72px 104px 64px 150px;align-items:center}.teacher-redemption-status-cell{display:block}.teacher-redemption-select{min-height:36px;padding:var(--spacing-4) var(--spacing-8);width:100%}.teacher-redemption-actions{gap:var(--spacing-8);flex-wrap:wrap;justify-content:flex-start;display:flex}.teacher-redemption-action{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);color:var(--color-charcoal);cursor:pointer;padding:var(--spacing-4) var(--spacing-8)}.teacher-redemption-action.active{background:var(--color-dew-drop);box-shadow:var(--shadow-subtle)}.teacher-redemption-done-badge{border:1.5px solid var(--color-sprout-sticker);border-radius:var(--radius-tags);color:var(--color-sprout-sticker);padding:var(--spacing-4) var(--spacing-8);align-items:center;display:inline-flex}.teacher-redemption-summary{gap:var(--spacing-8);margin-top:var(--spacing-16);display:grid}.teacher-redemption-summary-item{justify-content:space-between;align-items:center;display:flex}.teacher-table-students .teacher-row{grid-template-columns:minmax(0,1.4fr) 74px minmax(120px,.95fr) minmax(180px,1.35fr) 72px 110px 96px}.teacher-table-classes .teacher-row{grid-template-columns:170px minmax(0,1fr) minmax(0,1.4fr)}.teacher-row-class{align-items:center}.teacher-row-student{align-items:flex-start}.teacher-row-button{appearance:none;cursor:pointer;text-align:left;width:100%}.teacher-row-button:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:2px}.teacher-header{border-bottom:1.5px solid var(--color-charcoal);color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);padding-bottom:var(--spacing-8);background:0 0;border-radius:0;padding-top:0}.teacher-row strong,.teacher-row div strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading);display:block}.teacher-row span,.teacher-row div span{font-size:var(--text-caption);line-height:var(--leading-caption);display:block}.teacher-row div{min-width:0}.teacher-note-cell{line-height:var(--leading-body-sm);max-width:100%}.teacher-status{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);font-size:var(--text-caption);line-height:var(--leading-caption);padding:var(--spacing-4) var(--spacing-8);place-self:center start}.teacher-status-hoat-dong,.teacher-status-con-hang,.teacher-status-da-giao{color:var(--color-sprout-sticker)}.teacher-status-can-khoa,.teacher-status-can-nhap{color:var(--color-marker-orange)}.teacher-status-tam-khoa,.teacher-status-cho-duyet,.teacher-status-cho-xac-nhan,.teacher-status-dang-doi,.teacher-status-tu-choi,.teacher-status-het-hang{color:var(--color-burnt-sienna)}.teacher-stack,.teacher-list{gap:var(--spacing-12);margin-top:var(--spacing-20);display:grid}.teacher-stack-row,.teacher-list-row{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);align-items:center;gap:var(--spacing-12);padding:var(--spacing-12) var(--spacing-16);justify-content:space-between;display:flex}.teacher-account-stack{gap:var(--spacing-12)}.teacher-account-row{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);align-items:center;gap:var(--spacing-16);padding:var(--spacing-12) var(--spacing-16);justify-content:space-between;display:flex}.teacher-account-main{min-width:0;display:grid}.teacher-account-main span{font-size:var(--text-caption)}.teacher-account-actions{align-items:center;gap:var(--spacing-8);flex-wrap:wrap;justify-content:flex-end;display:flex}.teacher-account-actions .pill-button{padding-left:var(--spacing-16);padding-right:var(--spacing-16)}.teacher-stack-row strong,.teacher-list-row strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading);display:block}.teacher-stack-meta,.teacher-list-meta{align-items:center;gap:var(--spacing-8);flex-shrink:0;display:flex}.teacher-point-log-stack{gap:var(--spacing-12)}.teacher-point-log-row{align-items:center;gap:var(--spacing-16)}.teacher-point-log-main{gap:var(--spacing-4);min-width:0;display:grid}.teacher-point-log-main span{overflow-wrap:anywhere}.teacher-point-log-meta{align-items:center;gap:var(--spacing-12);flex-wrap:wrap}.teacher-point-log-date,.teacher-point-log-count{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.teacher-rule-grid{gap:var(--spacing-12);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-rule-card{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);gap:var(--spacing-12);padding:var(--spacing-16);display:grid}.teacher-rule-card-clickable{cursor:pointer}.teacher-rule-card-clickable:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:2px}.teacher-rule-main{gap:var(--spacing-4);display:grid}.teacher-rule-main strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading)}.teacher-rule-main span,.teacher-rule-meta small{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.teacher-rule-meta{align-items:center;gap:var(--spacing-12);flex-wrap:wrap;justify-content:space-between;display:flex}.teacher-rule-action{justify-self:start}.teacher-points{font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold)}.teacher-points.plus{color:var(--color-sprout-sticker)}.teacher-points.minus{color:var(--color-burnt-sienna)}.teacher-reward-grid{margin-top:var(--spacing-20);grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-section-grid-secondary .teacher-panel{min-height:0}.teacher-reward-card{min-height:0;padding:var(--spacing-20)}.teacher-reward-card-button{cursor:pointer;text-align:left;width:100%}.teacher-reward-card-button:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:2px}.teacher-reward-badge-row{align-items:center;gap:var(--spacing-8);margin-bottom:var(--spacing-8);display:flex}.teacher-reward-points-badge{min-height:30px;padding:0 var(--spacing-12);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);background:var(--color-cream-paper);color:var(--color-cocoa-ink);font-size:var(--text-caption);white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.teacher-reward-status-badge{width:fit-content;min-height:30px;padding:0 var(--spacing-12);align-items:center;line-height:1;display:inline-flex}.teacher-reward-card p{color:var(--color-cocoa-ink);font-size:var(--text-caption);line-height:var(--leading-caption);margin-top:var(--spacing-8)}.teacher-page-toolbar{margin:var(--spacing-24) 0 var(--spacing-16);justify-content:flex-end;display:flex}.teacher-primary-action{min-height:44px}.teacher-form{gap:var(--spacing-16);display:grid}.teacher-form-grid{gap:var(--spacing-12);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-form-field{gap:var(--spacing-8);display:grid}.teacher-form-field-wide{grid-column:span 2}.teacher-chip-row{gap:var(--spacing-8);flex-wrap:wrap;display:flex}.teacher-chip{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);box-shadow:var(--shadow-subtle);color:var(--color-cocoa-ink);cursor:pointer;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-12);display:inline-flex}.teacher-lookup-list{gap:var(--spacing-8);display:grid}.teacher-lookup-item{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);cursor:pointer;padding:var(--spacing-12);text-align:left;gap:2px;display:grid}.teacher-lookup-item strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-body-sm)}.teacher-lookup-item span,.teacher-point-hint{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.teacher-point-hint{margin-top:var(--spacing-4)}.teacher-modal-tabs{gap:var(--spacing-8);margin-bottom:var(--spacing-16);display:inline-flex}.teacher-modal-tab{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);cursor:pointer;padding:var(--spacing-8) var(--spacing-16)}.teacher-modal-tab.active{background:var(--color-dew-drop);box-shadow:var(--shadow-subtle)}.teacher-rule-pick-list{gap:var(--spacing-8);margin-bottom:var(--spacing-12);display:grid}.teacher-rule-pick{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);cursor:pointer;padding:var(--spacing-12);text-align:left;gap:4px;display:grid}.teacher-rule-pick.active{background:var(--color-dew-drop);box-shadow:var(--shadow-subtle)}.teacher-rule-pick strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-body-sm)}.teacher-rule-pick span{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.teacher-rule-pick b{justify-self:start}.teacher-point-log-row{width:100%}.teacher-form-field span{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.required-mark{color:var(--color-burnt-sienna)}.teacher-form-input{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);font-family:var(--font-body);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);min-height:48px;padding:var(--spacing-12) var(--spacing-16);width:100%}.teacher-form-textarea{resize:vertical}.teacher-form-input:focus{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.metric-card{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);min-height:204px;padding:var(--card-padding)}.metric-card strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-lg);margin:var(--spacing-20) 0 var(--spacing-8);display:block}.metric-card p{color:var(--color-cocoa-ink);font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.score-card,.reward-card{background:var(--color-cream-paper)}.leaderboard-panel{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);margin-top:var(--section-gap);padding:var(--card-padding)}.leaderboard-heading{align-items:flex-start;gap:var(--spacing-24);justify-content:space-between;display:flex}.leaderboard-heading .hand-caption{font-size:var(--text-body);margin-bottom:var(--spacing-4)}.leaderboard-heading h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.leaderboard-heading>span{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);box-shadow:var(--shadow-subtle);color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);padding:var(--spacing-8) var(--spacing-16);flex:none}.leaderboard-table{gap:var(--spacing-8);margin-top:var(--spacing-24);display:grid}.leaderboard-row{background:var(--color-cream-paper);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);align-items:center;gap:var(--spacing-12);min-height:56px;padding:var(--spacing-12) var(--spacing-16);border:1.5px solid #0000;grid-template-columns:72px minmax(0,1fr) 92px 92px;display:grid}.leaderboard-header{border-bottom:1.5px solid var(--color-charcoal);color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);min-height:0;padding-bottom:var(--spacing-8);background:0 0;border-radius:0;padding-top:0}.leaderboard-rank,.leaderboard-row strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading)}.leaderboard-name{align-items:center;gap:var(--spacing-8);min-width:0;display:flex}.leaderboard-name em{background:var(--color-marker-orange);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);color:var(--color-charcoal);font-family:var(--font-body);font-size:var(--text-caption);padding:var(--spacing-4) var(--spacing-8);font-style:normal;line-height:1}.leaderboard-row-current{border-color:var(--color-charcoal);box-shadow:var(--shadow-subtle);outline:2px solid var(--color-marker-orange);outline-offset:-6px}.reward-strip{background:var(--color-marker-orange);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-footer) var(--radius-footer) var(--radius-cards) var(--radius-cards);align-items:center;gap:var(--spacing-24);margin-top:var(--section-gap);padding:var(--spacing-32);justify-content:space-between;display:flex}.reward-strip .hand-caption{color:var(--color-charcoal);font-size:var(--text-body);margin-bottom:var(--spacing-4)}.reward-strip h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.reward-strip p{color:var(--color-charcoal);font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.reward-strip .pill-button{flex:none}.history-panel{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);margin-top:var(--section-gap);padding:var(--card-padding)}.history-panel h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.history-list{gap:var(--spacing-12);margin-top:var(--spacing-24);display:grid}.history-row{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);font-size:var(--text-body-sm);align-items:center;gap:var(--spacing-16);line-height:var(--leading-body-sm);padding:var(--spacing-16);grid-template-columns:minmax(0,1fr) 120px;display:grid}.history-header{border-color:#0000;border-bottom-color:var(--color-charcoal);color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);padding-bottom:var(--spacing-8);background:0 0;border-radius:0;padding-top:0}.history-header span:last-child,.history-points{text-align:right}.history-points{font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-sm);justify-self:end;min-width:0;padding:0;display:block}.history-points.plus{color:var(--color-sprout-sticker)}.history-points.minus{color:var(--color-burnt-sienna)}.reward-grid{gap:var(--spacing-16);margin-top:var(--spacing-24);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.reward-toolbar{margin-top:var(--spacing-24);justify-content:flex-end;align-items:center;display:flex}.gift-box-trigger{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-buttons);box-shadow:var(--shadow-subtle);color:var(--color-charcoal);cursor:pointer;align-items:center;gap:var(--spacing-8);min-height:44px;padding:var(--spacing-8) var(--spacing-16);display:inline-flex}.gift-box-icon{border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);width:26px;height:22px;display:inline-block;position:relative}.gift-box-icon:before{background:var(--color-marker-orange);border-right:1.5px solid var(--color-charcoal);content:"";width:5px;position:absolute;inset:0 auto 0 50%}.gift-box-icon:after{border-bottom:1.5px solid var(--color-charcoal);content:"";height:6px;position:absolute;top:5px;left:-3px;right:-3px}.gift-box-icon i{border:1.5px solid var(--color-charcoal);border-bottom:0;border-radius:9px 9px 0 0;width:14px;height:8px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.gift-box-trigger>span:last-child{font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);line-height:1}.ticket-card{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);grid-template-columns:minmax(0,1fr) 172px;min-height:188px;display:grid;position:relative;overflow:hidden}.ticket-card-redeemed{background:var(--color-dew-drop)}.redeemed-stamp{border:2px solid var(--color-burnt-sienna);border-radius:var(--radius-inputs);color:var(--color-burnt-sienna);font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);padding:var(--spacing-8) var(--spacing-12);right:var(--spacing-20);top:var(--spacing-20);z-index:3;line-height:1;position:absolute;transform:rotate(8deg)}.ticket-card:before,.ticket-card:after{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);content:"";z-index:2;border-radius:50%;width:34px;height:34px;position:absolute;right:155px}.ticket-card:before{top:-18px}.ticket-card:after{bottom:-18px}.ticket-content{gap:var(--spacing-12);padding:var(--card-padding);flex-direction:column;display:flex}.ticket-content strong,.scratch-prize strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-sm);display:block}.ticket-content p,.scratch-prize p{color:var(--color-cocoa-ink);font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.ticket-stub{background:var(--color-dew-drop);align-items:center;gap:var(--spacing-16);padding:var(--spacing-16);flex-direction:column;justify-content:center;display:flex;position:relative}.ticket-stub:before,.scratch-card:before{background:repeating-linear-gradient(to bottom, var(--color-charcoal) 0 10px, transparent 10px 20px);content:"";width:2px;position:absolute;top:0;bottom:0;left:-1px}.ticket-stub span,.scratch-prize span{color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);transform:rotate(-2deg)}.ticket-stub .pill-button{padding-left:var(--spacing-16);padding-right:var(--spacing-16);text-align:center;margin-top:auto}.ticket-stub small,.ticket-status-button{color:var(--color-cocoa-ink);cursor:pointer;font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-caption);text-align:center;background:0 0;border:0;padding:0;display:block}.ticket-status-button:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.ticket-result{color:var(--color-cocoa-ink);font-size:var(--text-caption);line-height:var(--leading-caption);text-align:center}.gift-box-panel{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);margin-top:var(--section-gap);padding:var(--card-padding)}.gift-box-heading .hand-caption{font-size:var(--text-body);margin-bottom:var(--spacing-4)}.gift-box-heading h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.gift-box-grid{gap:var(--spacing-16);margin-top:var(--spacing-24);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gift-box-grid-modal{max-height:min(52vh,480px);padding-right:var(--spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0;overflow-y:auto}.gift-box-item{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);min-height:156px;padding:var(--spacing-24);position:relative}.gift-box-item small{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption);margin-bottom:var(--spacing-12);display:block}.gift-box-item strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-sm);padding-right:var(--spacing-40);display:block}.gift-box-item .redeemed-stamp{right:var(--spacing-16);top:var(--spacing-16)}.redeemed-stamp-pending{border-color:var(--color-charcoal);color:var(--color-cocoa-ink)}.redeemed-stamp-used{border-color:var(--color-sprout-sticker);color:var(--color-sprout-sticker)}.redeemed-stamp-converted{border-color:var(--color-burnt-sienna);color:var(--color-burnt-sienna)}.gift-box-empty{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);margin-top:var(--spacing-24);padding:var(--spacing-16)}.ticket-card-disabled{background:var(--color-dew-drop)}.ticket-card-disabled .ticket-content,.ticket-card-disabled .ticket-stub{opacity:.68}.ticket-card-disabled .ticket-stub{background:var(--color-cream-paper)}.secret-ticket{background:var(--color-dew-drop);grid-column:span 2;grid-template-columns:minmax(260px,.8fr) minmax(300px,1.2fr)}.secret-ticket:before,.secret-ticket:after{right:calc(60% - 17px)}.scratch-card{background:var(--color-cream-paper);min-height:188px;padding:var(--spacing-20);position:relative}.scratch-prize{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);align-items:flex-start;gap:var(--spacing-8);height:100%;min-height:148px;padding:var(--spacing-20);flex-direction:column;justify-content:center;display:flex}.scratch-mask{border-radius:var(--radius-inputs);cursor:crosshair;inset:var(--spacing-20);touch-action:none;width:calc(100% - 40px);height:calc(100% - 40px);position:absolute}.scratch-mask-revealed{opacity:0;pointer-events:none;transition:opacity .18s}.scratch-modal-surface{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);min-height:220px;position:relative;overflow:hidden}.scratch-prize-modal{border:0;border-radius:0;min-height:220px}.scratch-mask-modal{width:100%;height:100%;inset:0}.secret-reveal-note{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);padding:var(--spacing-12);margin-top:auto}.secret-reveal-note strong{color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-subheading);line-height:var(--leading-subheading);margin-top:var(--spacing-4);display:block}.modal-layer{padding:var(--spacing-24);z-index:20;background:#1717172e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-modal{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);max-width:520px;max-height:calc(100vh - 48px);padding:var(--spacing-32);width:min(100%,520px);position:relative;overflow:hidden}.app-modal:before{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);content:"";height:40px;right:var(--spacing-32);z-index:-1;width:92px;position:absolute;top:-18px;transform:rotate(3deg)}.modal-tag{color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-body);line-height:var(--leading-body);margin-bottom:var(--spacing-12);width:fit-content;transform:rotate(-2deg)}.app-modal-alert .modal-tag{color:var(--color-burnt-sienna)}.app-modal-error{border-color:var(--color-burnt-sienna)}.app-modal-error .modal-tag{color:var(--color-burnt-sienna)}.modal-close{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);box-shadow:var(--shadow-subtle);color:var(--color-charcoal);cursor:pointer;font-size:var(--text-body);height:36px;right:var(--spacing-16);top:var(--spacing-16);border-radius:50%;justify-content:center;align-items:center;width:36px;line-height:1;display:inline-flex;position:absolute}.app-modal h2{color:var(--color-cocoa-ink);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading);max-width:calc(100% - 48px)}.app-modal p{color:var(--color-cocoa-ink);font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--spacing-16)}.modal-body{margin-top:var(--spacing-20);max-height:min(56vh,520px);padding-right:var(--spacing-4);overflow-y:auto}.modal-actions{gap:var(--spacing-12);margin-top:var(--spacing-24);flex-wrap:wrap;justify-content:flex-end;display:flex}.modal-action{margin-top:0}.modal-action-secondary{background:var(--color-cream-paper);box-shadow:none;color:var(--color-charcoal);opacity:.92}.modal-action-primary{background:var(--color-cocoa-ink);color:var(--color-cream-paper)}.app-modal-alert .modal-action-primary,.app-modal-error .modal-action-primary{background:var(--color-burnt-sienna);color:var(--color-cream-paper)}.app-modal-alert .modal-action-secondary,.app-modal-error .modal-action-secondary{background:var(--color-cream-paper);color:var(--color-cocoa-ink)}.modal-action-primary:hover,.modal-action-secondary:hover{transform:translateY(-1px)}.login-page{min-height:100vh;padding:var(--spacing-24);justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);gap:var(--spacing-32);max-width:560px;padding:var(--spacing-40);width:min(100%,560px);display:grid}.login-card h1{font-size:clamp(56px,10vw,86px)}.login-note{color:var(--color-cocoa-ink);font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--spacing-16)}.login-form{gap:var(--spacing-16);display:grid}.login-form label{gap:var(--spacing-8);display:grid}.login-form label span{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.login-form input,.login-form select{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);color:var(--color-cocoa-ink);font-family:var(--font-body);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);min-height:52px;padding:var(--spacing-12) var(--spacing-16);width:100%}.login-form input:focus,.login-form select:focus{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.login-action{margin-top:var(--spacing-8);width:100%}.landing-page{min-height:100vh;padding:var(--spacing-16) clamp(var(--spacing-16), 4vw, var(--spacing-48)) 0;overflow:hidden}.landing-header{align-items:center;gap:var(--spacing-16);max-width:var(--page-max-width);padding:var(--spacing-8) 0 var(--spacing-24);justify-content:space-between;margin:0 auto;display:flex}.landing-brand strong{font-size:var(--text-body-sm)}.landing-nav,.landing-actions{align-items:center;gap:var(--spacing-12);flex-wrap:wrap;display:flex}.landing-hero{align-items:center;gap:clamp(var(--spacing-32), 7vw, var(--spacing-64));max-width:var(--page-max-width);min-height:calc(100vh - 96px);padding:var(--spacing-16) 0 var(--spacing-64);grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);margin:0 auto;display:grid}.landing-copy{gap:var(--spacing-24);display:grid}.landing-copy h1{max-width:820px;font-size:clamp(56px,8vw,96px)}.landing-note{color:var(--color-cocoa-ink);font-size:var(--text-body);line-height:var(--leading-body);max-width:640px}.landing-login-card{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);color:var(--color-charcoal);gap:var(--spacing-4);min-height:148px;padding:var(--spacing-24);width:min(100%,260px);text-decoration:none;display:grid}.landing-login-card:hover{transform:translateY(-2px)}.landing-login-card:focus-visible{outline:2px solid var(--color-sprout-sticker);outline-offset:3px}.landing-login-card small,.landing-panel small{color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);display:block;transform:rotate(-1deg)}.landing-login-card strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-sm)}.landing-login-card span{color:var(--color-cocoa-ink);font-size:var(--text-caption);line-height:var(--leading-caption)}.landing-notebook{min-height:560px;position:relative}.notebook-card{background:linear-gradient(90deg, #17171714 0 42px, transparent 42px), var(--color-dew-drop);border:1.5px solid var(--color-charcoal);box-shadow:var(--shadow-lg);gap:var(--spacing-24);min-height:500px;padding:var(--spacing-40) var(--spacing-32) var(--spacing-32) 72px;border-radius:16px;flex-direction:column;width:min(86%,420px);display:flex;position:absolute;top:28px;right:0;transform:rotate(5deg)}.notebook-ring{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:999px;width:48px;height:16px;position:absolute;left:18px}.notebook-ring-top{top:88px}.notebook-ring-mid{top:238px}.notebook-ring-bottom{bottom:88px}.notebook-label{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-inputs);box-shadow:var(--shadow-subtle);gap:var(--spacing-8);padding:var(--spacing-20);display:grid}.notebook-label small,.notebook-label span{color:var(--color-charcoal);font-size:var(--text-caption);line-height:var(--leading-caption)}.notebook-label strong{color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading)}.notebook-stamps{gap:var(--spacing-12);margin-top:auto;display:grid}.notebook-stamps span{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);color:var(--color-cocoa-ink);font-family:var(--font-heading);font-size:var(--text-body);font-weight:var(--font-weight-semibold);line-height:var(--leading-body);padding:var(--spacing-8) var(--spacing-16);justify-content:center;align-items:center;width:fit-content;display:inline-flex}.notebook-stamps span:nth-child(2){justify-self:end}.notebook-stamps span:nth-child(3){color:var(--color-marker-orange)}.landing-sticker{background:var(--color-cream-paper);border:2px solid var(--color-charcoal);border-radius:var(--radius-cards);color:var(--color-marker-orange);font-family:var(--font-heading);font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;width:64px;height:64px;display:inline-flex;position:absolute}.landing-sticker-star{top:72px;right:min(70%,360px);transform:rotate(-12deg)}.landing-sticker-dot{bottom:92px;right:24px;transform:rotate(10deg)}.landing-section{align-items:end;gap:var(--spacing-32);max-width:var(--page-max-width);padding:var(--spacing-64) 0;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);margin:0 auto;display:grid}.landing-section h2{color:var(--color-cocoa-ink);font-size:var(--text-heading-lg);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading-lg);max-width:560px}.landing-feature-grid{gap:var(--spacing-16);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.landing-panel{background:var(--color-dew-drop);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-cards);box-shadow:var(--shadow-lg);gap:var(--spacing-20);padding:var(--spacing-24);display:grid}.landing-chip-list{gap:var(--spacing-8);flex-wrap:wrap;display:flex}.landing-chip-list span{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-tags);color:var(--color-cocoa-ink);font-size:var(--text-caption);line-height:var(--leading-caption);padding:var(--spacing-8) var(--spacing-12)}.landing-footer{background:var(--color-marker-orange);border-radius:var(--radius-footer) var(--radius-footer) 0 0;color:var(--color-charcoal);align-items:center;gap:var(--spacing-12);max-width:var(--page-max-width);min-height:104px;padding:var(--spacing-24);justify-content:center;margin:0 auto;display:flex}.landing-footer strong{font-family:var(--font-heading);font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);line-height:var(--leading-subheading)}.landing-footer span{font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}@media (max-width:900px){.mobile-topbar{background:var(--color-cream-paper);border-bottom:1.5px solid var(--color-charcoal);align-items:center;gap:var(--spacing-12);padding:var(--spacing-12);z-index:4;display:flex;position:sticky;top:0;left:0;right:0}.burger-button{background:var(--color-cream-paper);border:1.5px solid var(--color-charcoal);border-radius:var(--radius-buttons);box-shadow:var(--shadow-subtle);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:48px;height:40px;display:inline-flex}.burger-button span{background:var(--color-charcoal);border-radius:99px;width:20px;height:2px;display:block}.mobile-brand{color:var(--color-cocoa-ink);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);line-height:var(--leading-body-sm);text-decoration:none}.sidebar{box-shadow:var(--shadow-lg);width:min(82vw,300px);transition:transform .18s;transform:translate(-100%)}.menu-toggle:checked~.sidebar{transform:translate(0)}.menu-toggle:checked~.menu-scrim{z-index:4;background:#1717171f;display:block;position:fixed;inset:0}.app-shell{padding-left:var(--spacing-16);padding-right:var(--spacing-16);margin-left:auto}.dashboard{gap:var(--spacing-16);grid-template-columns:1fr;min-height:0}.intro-panel{padding-bottom:0}.stamp-board{align-self:stretch}.student-stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.leaderboard-row{grid-template-columns:64px minmax(0,1fr) 80px 80px}.reward-grid,.teacher-section-grid,.teacher-section-grid-secondary,.teacher-overview-grid,.teacher-row,.teacher-table-redemption .teacher-row{grid-template-columns:1fr}.teacher-row.teacher-header,.teacher-table-redemption .teacher-header{display:none}.teacher-table-students .teacher-row,.teacher-table-classes .teacher-row{grid-template-columns:1fr}.teacher-note-cell{text-align:left}.teacher-stack-row,.teacher-list-row{flex-direction:column;align-items:flex-start}.teacher-stack-meta,.teacher-list-meta{justify-content:space-between;width:100%}.teacher-page-toolbar{justify-content:stretch}.teacher-primary-action{width:100%}.teacher-form-grid{grid-template-columns:1fr}.teacher-form-field-wide{grid-column:span 1}.teacher-point-log-row{flex-direction:column;align-items:flex-start}.teacher-point-log-meta{justify-content:space-between;width:100%}.teacher-rule-grid,.teacher-badge-grid{grid-template-columns:1fr}.teacher-badge-preview-shell{margin-bottom:var(--spacing-16)}.gift-box-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.secret-ticket{grid-column:span 1;grid-template-columns:minmax(0,1fr)}.secret-ticket:before,.secret-ticket:after{display:none}.scratch-card{border-left:0}.scratch-card:before{background:repeating-linear-gradient(to right, var(--color-charcoal) 0 10px, transparent 10px 20px);width:auto;height:2px;inset:-1px 0 auto}.landing-hero,.landing-section{grid-template-columns:1fr}.landing-hero{min-height:0}.landing-notebook{min-height:420px}.notebook-card{width:min(82vw,380px);min-height:380px;top:0;left:50%;right:auto;transform:translate(-50%)rotate(4deg)}.landing-sticker-star{left:8%;right:auto}.landing-sticker-dot{right:8%}}@media (max-width:620px){:root{--text-caption:12px;--text-body-sm:13px;--text-body:14px;--text-subheading:17px;--text-heading-sm:20px;--text-heading:25px;--text-heading-lg:32px;--text-display:73px;--spacing-8:6px;--spacing-12:8px;--spacing-16:11px;--spacing-20:14px;--spacing-24:17px;--spacing-28:20px;--spacing-32:22px;--spacing-40:28px;--spacing-48:34px;--spacing-64:45px;--section-gap:45px;--card-padding:22px;--radius-tags:14px;--radius-cards:8px;--radius-footer:39px;--radius-buttons:14px}.mobile-topbar{padding:var(--spacing-8)}.burger-button{gap:3px;width:38px;height:32px}.burger-button span{width:16px}.brand-mark{width:32px;height:32px}.app-shell{padding-top:var(--spacing-8)}.pill-button{padding:7px var(--spacing-20)}.hand-caption{font-size:var(--text-body)}h1{font-size:39px}.student-note{font-size:var(--text-body-sm)}.stamp-board{padding:var(--spacing-8) 0}.student-stamp-grid{gap:var(--spacing-8);grid-template-columns:repeat(3,minmax(0,1fr));justify-content:center}.student-stamp{max-width:none;padding:var(--spacing-8)}.student-stamp:before{inset:4px}.student-stamp:after{inset:11px}.student-stamp span{font-size:15px}.student-stamp strong{overflow-wrap:anywhere;max-width:86%;font-size:clamp(10px,3.2vw,13px);line-height:1.05}.student-stamp strong span{font:inherit;line-height:inherit}.metrics-grid{gap:var(--spacing-12);margin-top:var(--spacing-40);grid-template-columns:1fr}.leaderboard-panel{margin-top:var(--spacing-40);padding:var(--spacing-24)}.leaderboard-heading{gap:var(--spacing-12);flex-direction:column}.leaderboard-row{grid-template-columns:40px minmax(0,1fr);min-height:42px}.leaderboard-row>span:nth-child(3),.leaderboard-row>strong{font-size:var(--text-caption);line-height:var(--leading-caption)}.leaderboard-header{display:none}.history-row{grid-template-columns:minmax(0,1fr) 62px}.history-points{font-size:var(--text-subheading);min-width:50px}.page-header{padding-top:var(--spacing-24)}.teacher-hero h1{white-space:normal}.metric-card{min-height:0;padding:var(--card-padding)}.metric-card strong{font-size:var(--text-heading)}.reward-strip{border-radius:28px 28px var(--radius-cards) var(--radius-cards);margin-top:var(--spacing-40);padding:var(--spacing-24);flex-direction:column;align-items:flex-start}.reward-strip .pill-button{width:100%}.reward-grid{grid-template-columns:1fr}.gift-box-panel{margin-top:var(--spacing-40);padding:var(--spacing-24)}.gift-box-grid,.ticket-card{grid-template-columns:1fr}.ticket-card:before,.ticket-card:after{width:24px;height:24px;top:auto;left:-13px;right:auto}.ticket-card:before{bottom:55px}.ticket-card:after{bottom:55px;left:auto;right:-13px}.ticket-stub{border-left:0;flex-direction:row;justify-content:space-between}.ticket-stub:before{background:repeating-linear-gradient(to right, var(--color-charcoal) 0 10px, transparent 10px 20px);width:auto;height:2px;inset:-1px 0 auto}.ticket-stub .pill-button{margin-top:0}.scratch-mask{width:calc(100% - 28px);height:calc(100% - 28px)}.gift-box-trigger{min-height:36px}.modal-layer{padding:var(--spacing-16)}.app-modal{max-height:calc(100vh - 32px);padding:var(--spacing-24)}.modal-close{width:30px;height:30px}.login-page{padding:var(--spacing-16)}.login-card{gap:var(--spacing-24);padding:var(--spacing-28)}.login-card h1{font-size:39px}.login-form input,.login-form select{min-height:42px}.landing-page{padding-left:var(--spacing-12);padding-right:var(--spacing-12)}.landing-header{align-items:flex-start}.landing-nav{justify-content:flex-end}.landing-copy h1{font-size:46px}.landing-actions,.landing-login-card{width:100%}.landing-notebook{min-height:360px}.notebook-card{min-height:320px;padding:var(--spacing-28) var(--spacing-20) var(--spacing-20) 54px}.notebook-ring{width:34px;height:12px;left:12px}.notebook-ring-top{top:64px}.notebook-ring-mid{top:160px}.notebook-ring-bottom{bottom:64px}.landing-sticker{width:48px;height:48px}.landing-feature-grid{grid-template-columns:1fr}.landing-footer{flex-direction:column;align-items:flex-start}}
