:root{--paper:#f4f0e8;--paper-light:#fffdf8;--paper-deep:#e6dfd3;--ink:#242326;--muted:#686d71;--gray:#a6a7a8;--gray-soft:#d7d4cd;--brand:#d96868;--brand-mid:#e4837f;--brand-dark:#a8464b;--brand-soft:#f7d8d4;--brand-wash:#f2b5af;--accent:#0f766e;--accent-dark:#095b55;--accent-soft:#d8efeb;--gold:#c89125;--shadow:#2423262e;--font-ui:Arial,"Segoe UI","Noto Sans","DejaVu Sans",sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#19191a;--paper-light:#242426;--paper-deep:#111113;--ink:#f3ede4;--muted:#b7b1aa;--gray:#858587;--gray-soft:#363638;--brand:#df7779;--brand-mid:#ec9590;--brand-dark:#f3a4a2;--brand-soft:#4a2d30;--brand-wash:#69383b;--accent:#51b7ab;--accent-dark:#7bd1c7;--accent-soft:#173b38;--gold:#e5b65c;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--paper:#19191a;--paper-light:#242426;--paper-deep:#111113;--ink:#f3ede4;--muted:#b7b1aa;--gray:#858587;--gray-soft:#363638;--brand:#df7779;--brand-mid:#ec9590;--brand-dark:#f3a4a2;--brand-soft:#4a2d30;--brand-wash:#69383b;--accent:#51b7ab;--accent-dark:#7bd1c7;--accent-soft:#173b38;--gold:#e5b65c;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--paper-deep);scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:600;overflow-x:hidden}button,input,textarea,select{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.paper-surface{background:radial-gradient(circle at 25% 20%,color-mix(in srgb,var(--ink) 6%,transparent) 0 .7px,transparent .9px) 0 0/7px 7px,linear-gradient(92deg,color-mix(in srgb,var(--ink) 3%,transparent),transparent 35%,color-mix(in srgb,var(--ink) 2%,transparent)),var(--paper)}.tape{z-index:30;background:#d6c29161;width:144px;height:27px;position:fixed;box-shadow:0 1px 1px #2d271b14}.tape-one{top:-7px;left:6%;transform:rotate(-2deg)}.tape-two{bottom:-8px;right:7%;transform:rotate(2deg)}.eyebrow,.note-kicker{color:var(--brand-dark);letter-spacing:.11em;margin:0;font-size:12px;font-weight:1000}.form-error{border:2px solid var(--brand-dark);background:var(--brand-soft);color:var(--brand-dark);border-radius:7px 11px 6px 9px;padding:9px 11px;font-size:13px;line-height:1.45}.form-error.compact{margin-top:18px}.primary-button{border:2.5px solid var(--ink);background:var(--ink);min-height:50px;box-shadow:6px 7px 0 color-mix(in srgb,var(--brand) 28%,transparent);color:var(--paper-light);letter-spacing:.03em;border-radius:9px 14px 8px 12px;padding:0 20px;font-size:13px;font-weight:1000;transition:all .18s;transform:rotate(-.3deg)}.primary-button:hover{background:var(--brand-dark);border-color:var(--brand-dark);transform:translateY(-2px)rotate(.2deg)}.primary-button.wide{width:100%}.secondary-button,.file-button{border:2px solid var(--ink);background:var(--paper-light);border-radius:8px 12px 7px 10px;justify-content:center;align-items:center;min-height:44px;padding:0 14px;font-size:12px;font-weight:1000;display:inline-flex}.file-button{background:var(--ink);color:var(--paper-light)}.file-button input{display:none}.text-button{color:var(--muted);background:0 0;border:0;font-size:11px;font-weight:900;text-decoration:underline}.text-button.danger{color:var(--brand-dark)}.activity-sketch,.leader-sketch,.mountain-sketch{overflow:visible}.activity-sketch path,.activity-sketch circle,.activity-sketch rect,.leader-sketch path,.leader-sketch circle,.leader-sketch rect,.mountain-sketch path{fill:none;stroke:var(--ink);stroke-width:3.1px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.activity-sketch .marker-wash{fill:color-mix(in srgb,var(--brand) 27%,transparent);stroke:none}.leader-sketch .accent-fill{fill:var(--brand-mid)}.mountain-sketch .soft-line{stroke:var(--gray);opacity:.55}.mountain-sketch .flag-fill{fill:var(--brand-mid)}.app-shell{width:100%;min-height:100vh;padding:24px 24px 80px;position:relative}.app-header{z-index:20;justify-content:space-between;align-items:center;gap:20px;max-width:1160px;margin:0 auto;display:flex;position:relative}.app-header>img{background:#fffdf8eb;border-radius:4px;width:210px;height:auto;padding:3px 5px;display:block}.header-actions{align-items:center;gap:9px;display:flex}.theme-button,.admin-link,.back-button{border:1.5px solid color-mix(in srgb,var(--ink) 35%,transparent);background:color-mix(in srgb,var(--paper-light) 80%,transparent);border-radius:8px 12px 7px 10px;padding:9px 11px;font-size:11px;font-weight:900}.theme-button span{color:var(--brand-dark);margin-right:6px;font-size:15px}.admin-link{background:var(--ink);color:var(--paper-light)}.demo-banner{z-index:5;border:1.5px dashed var(--brand);background:var(--brand-soft);max-width:680px;color:var(--brand-dark);border-radius:6px 11px 7px 9px;justify-content:center;align-items:center;gap:14px;margin:14px auto 0;padding:8px 13px;font-size:11px;display:flex;position:relative;transform:rotate(-.2deg)}.demo-banner strong{font-weight:1000}.demo-banner span{color:var(--muted)}.public-tools{z-index:10;justify-content:space-between;align-items:end;gap:18px;max-width:980px;margin:21px auto 0;display:flex;position:relative}.class-picker span,.admin-class-picker span{color:var(--muted);letter-spacing:.08em;margin-bottom:5px;font-size:10px;font-weight:1000;display:block}.class-picker select,.admin-class-picker select{border:1.8px solid color-mix(in srgb,var(--ink) 40%,transparent);background:var(--paper-light);border-radius:7px 11px 6px 10px;min-width:300px;padding:10px 12px;font-size:12px;font-weight:900}.remembered-chip{border:2px solid var(--accent);background:var(--accent-soft);border-radius:8px 12px 7px 10px;align-items:center;gap:9px;padding:8px 10px;display:flex}.remembered-chip span{color:var(--muted);font-size:10px}.remembered-chip strong{color:var(--accent-dark);font-size:12px}.remembered-chip button{color:var(--accent-dark);background:0 0;border:0;font-size:10px;font-weight:1000;text-decoration:underline}.reminder-note{z-index:8;border:2.5px solid var(--gold);background:color-mix(in srgb,var(--gold) 17%,var(--paper-light));max-width:820px;box-shadow:6px 7px 0 color-mix(in srgb,var(--gold) 20%,transparent);border-radius:13px 8px 17px 9px;align-items:center;gap:14px;margin:24px auto 0;padding:14px 17px;display:flex;position:relative;transform:rotate(-.4deg)}.reminder-bell{border:2px solid var(--ink);background:var(--gold);width:42px;height:42px;color:var(--paper-light);border-radius:50%;justify-content:center;align-items:center;font-size:24px;animation:2.2s ease-in-out infinite bell;display:flex}.reminder-note div{flex:1}.reminder-note strong{font-size:15px;font-weight:1000}.reminder-note p{color:var(--muted);margin:4px 0 0;font-size:12px}.reminder-note button{background:var(--ink);color:var(--paper-light);border:0;border-radius:7px 11px 6px 10px;padding:11px 13px;font-size:11px;font-weight:1000}.rank-ticker{max-width:760px;color:var(--muted);justify-content:center;align-items:center;gap:12px;margin:22px auto -4px;font-size:11px;display:flex}.rank-ticker span{background:var(--brand-soft);color:var(--brand-dark);letter-spacing:.07em;border-radius:20px;padding:6px 9px;font-size:9px;font-weight:1000}.rank-ticker strong{font-size:11px}.journey-intro{text-align:center;max-width:760px;margin:29px auto 5px}.title-ribbon{margin:13px auto 6px;display:inline-block;position:relative}.title-ribbon:before,.title-ribbon:after{z-index:-1;content:"";border-top:25px solid #0000;border-bottom:25px solid #0000;position:absolute;top:18px}.title-ribbon:before{border-right:42px solid var(--ink);left:-32px}.title-ribbon:after{border-left:42px solid var(--ink);right:-32px}.title-ribbon h1{border:3px solid var(--ink);background:var(--paper-light);box-shadow:8px 9px 0 var(--gray-soft);letter-spacing:-.055em;border-radius:8px 15px 7px 13px;margin:0;padding:18px 40px 16px;font-size:clamp(35px,5vw,54px);font-weight:1000;line-height:1;position:relative;transform:rotate(-.7deg)}.title-ribbon h1:after{z-index:-1;background:repeating-linear-gradient(-5deg,var(--brand-wash) 0 4px,var(--brand-mid) 5px 7px);content:"";opacity:.75;border-radius:51% 44% 56% 47%;width:65%;height:7px;position:absolute;bottom:7px;left:18%;transform:rotate(-1deg)}.journey-intro>p:last-child{color:var(--muted);margin:14px 0 0;font-size:14px;line-height:1.6}.journey-intro p strong{color:var(--ink)}.summit{z-index:3;justify-content:center;align-items:center;width:100%;margin:2px auto -9px;display:flex;position:relative}.summit .mountain-sketch{width:340px;height:150px;margin:0 auto;display:block}.journey-road{max-width:1000px;min-height:2680px;margin:0 auto;padding:42px 0 20px;position:relative}.road{z-index:0;width:720px;height:100%;position:absolute;top:0;bottom:0;left:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000 0,#000 3% 96%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 3% 96%,#0000 100%)}.road path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.road-shadow{stroke:color-mix(in srgb,var(--gray) 30%,transparent);stroke-width:132px;transform:translate(9px,9px)}.road-outline{stroke:var(--ink);stroke-width:118px}.road-fill{stroke:var(--paper-light);stroke-width:108px}.road-center{stroke:var(--ink);stroke-width:4.2px;stroke-dasharray:18 21;animation:3.2s linear infinite roadTravel}.rank-list{z-index:2;flex-direction:column;gap:92px;margin:0;padding:0;list-style:none;display:flex;position:relative}.rank-item{min-height:168px;display:flex;position:relative}.rank-item:nth-child(odd){justify-content:flex-start;padding-left:2.5%}.rank-item:nth-child(2n){justify-content:flex-end;padding-right:2.5%}.leader-card{border:3px solid var(--ink);background:color-mix(in srgb,var(--paper-light) 97%,transparent);width:min(510px,66vw);min-height:160px;box-shadow:9px 10px 0 color-mix(in srgb,var(--gray) 48%,transparent);text-align:left;border-radius:14px 21px 12px 18px;outline:0;grid-template-columns:100px minmax(190px,1fr);align-items:center;gap:14px;padding:17px 25px 17px 31px;transition:transform .35s,box-shadow .35s;display:grid;position:relative;transform:rotate(-.45deg)}.rank-item:nth-child(2n) .leader-card{border-radius:20px 12px 19px 10px;transform:rotate(.55deg)}.rank-item:nth-child(3n) .leader-card{transform:rotate(-.15deg)}.leader-card:before{border:1px solid color-mix(in srgb,var(--ink) 32%,transparent);content:"";pointer-events:none;border-radius:11px 18px 9px 15px;position:absolute;inset:3px 5px 4px 3px;transform:rotate(.18deg)}.rank-number{z-index:3;border:3px solid var(--ink);background:repeating-linear-gradient(-12deg,var(--brand) 0 5px,var(--brand-mid) 6px 10px);color:#fff;border-radius:52% 44% 55% 46%;justify-content:center;align-items:center;width:63px;height:63px;font-size:31px;font-weight:1000;display:flex;position:absolute;top:45px;left:-32px;transform:rotate(-7deg)}.rank-item:nth-child(2n) .rank-number{left:auto;right:-32px;transform:rotate(6deg)}.rank-item:nth-child(n+5) .rank-number{background:repeating-linear-gradient(-12deg,var(--gray) 0 6px,var(--gray-soft) 7px 11px);color:var(--ink)}.sketch-wrap{background:linear-gradient(-7deg,transparent 18%,color-mix(in srgb,var(--brand) 18%,transparent) 19% 77%,transparent 78%);justify-content:center;align-items:center;width:102px;height:100px;display:flex}.leader-sketch{width:92px;height:92px;transition:transform .3s}.leader-card:hover .leader-sketch{transform:translateY(-4px)rotate(-2deg)}.leader-copy{min-width:0;padding-left:3px}.leader-copy>strong{letter-spacing:-.035em;font-size:clamp(21px,2.7vw,29px);font-weight:1000;display:block}.leader-copy small{color:var(--muted);margin:6px 0 9px;font-size:12px;font-weight:700;line-height:1.35;display:block}.ep-highlight{z-index:1;color:#fff;font-size:20px;font-weight:1000;display:inline-block;position:relative}.ep-highlight:before{z-index:-1;background:repeating-linear-gradient(-5deg,var(--brand) 0 4px,var(--brand-mid) 5px 8px);content:"";opacity:.9;border-radius:45% 55% 49% 51%;position:absolute;inset:-2px -12px -3px -10px;transform:rotate(-1deg)}.movement-mark{color:var(--brand-dark);letter-spacing:.05em;font-size:9px;font-weight:1000;position:absolute;bottom:12px;right:13px;transform:rotate(-3deg)}.rank-item.rank-changed .leader-card{animation:1.1s cubic-bezier(.2,.8,.2,1) rankShift,2.8s ease-out rankGlow}.rank-item.is-me .leader-card{border-color:var(--accent-dark);background:repeating-linear-gradient(-4deg,color-mix(in srgb,var(--accent) 22%,var(--paper-light)) 0 8px,color-mix(in srgb,var(--accent) 12%,var(--paper-light)) 9px 15px);box-shadow:9px 10px 0 color-mix(in srgb,var(--accent) 22%,transparent)}.rank-item.is-me .rank-number{border-color:var(--accent-dark);background:var(--paper-light);color:var(--accent-dark);left:-29px;right:auto}.rank-item.is-me .ep-highlight:before{background:repeating-linear-gradient(-5deg,var(--accent-dark) 0 4px,var(--accent) 5px 8px)}.you-are-here{z-index:5;border:2.5px solid var(--brand-dark);background:var(--paper-light);color:var(--brand-dark);white-space:nowrap;border-radius:5px 10px 6px 8px;padding:9px 12px 9px 15px;font-size:13px;font-weight:1000;position:absolute;top:50px;right:-143px;transform:rotate(2deg)}.you-are-here:before{border-top:19px solid #0000;border-right:23px solid var(--brand-dark);content:"";border-bottom:19px solid #0000;position:absolute;top:50%;left:-23px;transform:translateY(-50%)}.you-are-here:after{border-top:15px solid #0000;border-right:19px solid var(--paper-light);content:"";border-bottom:15px solid #0000;position:absolute;top:50%;left:-18px;transform:translateY(-50%)}.empty-road{z-index:3;border:3px dashed var(--ink);background:var(--paper-light);text-align:center;border-radius:13px 20px 11px 18px;width:min(520px,90%);margin:90px auto;padding:40px 25px;position:relative}.empty-road strong{font-size:20px}.empty-road p{color:var(--muted);font-size:13px}.motivation{z-index:4;text-align:center;flex-direction:column;align-items:center;max-width:650px;margin:2px auto 0;display:flex;position:relative}.gap-note{border:2px dashed var(--brand);background:var(--paper-light);box-shadow:5px 6px 0 color-mix(in srgb,var(--brand) 14%,transparent);border-radius:7px 13px 8px 11px;padding:13px 21px;transform:rotate(-1deg)}.gap-note span,.gap-note strong{display:block}.gap-note span{color:var(--muted);font-size:12px}.gap-note strong{color:var(--brand-dark);margin-top:4px;font-size:19px;font-weight:1000}.down-arrow{width:65px;height:58px;margin:8px 0 -2px}.down-arrow path{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.record-button{border:3px solid var(--ink);background:var(--ink);min-height:62px;box-shadow:9px 10px 0 color-mix(in srgb,var(--brand) 28%,transparent);color:var(--paper-light);border-radius:13px 21px 11px 18px;align-items:center;gap:11px;padding:0 27px;font-size:14px;font-weight:1000;transition:all .18s;display:flex;position:relative;transform:rotate(-1deg)}.record-button span{color:var(--brand-mid);font-size:28px}.record-button:hover{background:var(--brand-dark);transform:translateY(-2px)rotate(.3deg)}.footnote{color:var(--muted);margin-top:20px;font-size:10px}.modal-overlay,.celebration-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#141312a3;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.identity-note,.activity-sheet,.login-note{border:3px solid var(--ink);background:repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--muted) 10%,transparent) 32px 33px),var(--paper-light);width:100%;max-height:94vh;box-shadow:12px 13px 0 var(--shadow);border-radius:10px 20px 9px 16px;position:relative;overflow:auto;transform:rotate(-.12deg)}.identity-note{max-width:500px;padding:56px 42px 35px}.activity-sheet{max-width:900px;padding:34px 38px 36px 60px}.activity-sheet:before{background:repeating-linear-gradient(0deg,var(--ink) 0 2px,transparent 2px 18px);content:"";opacity:.58;width:15px;height:88%;position:absolute;top:6%;left:-8px}.close-button{z-index:5;border:2.5px solid var(--ink);background:var(--paper-light);border-radius:50%;justify-content:center;align-items:center;width:39px;height:39px;font-size:24px;line-height:1;display:flex;position:absolute;top:17px;right:19px;transform:rotate(4deg)}.pin{z-index:2;border:2px solid var(--brand-dark);background:var(--brand);width:18px;height:18px;box-shadow:2px 4px 0 var(--shadow);border-radius:50%;position:absolute;top:18px;left:50%}.identity-note h2,.activity-sheet h2{letter-spacing:-.05em;margin:8px 46px 5px 0;font-size:36px;font-weight:1000}.sheet-sub{color:var(--muted);margin:0 0 17px;font-size:14px;line-height:1.6}.identity-note .input-field{margin-top:15px}.privacy-note{color:var(--muted);text-align:center;margin-top:15px;font-size:10px;line-height:1.5;display:block}.remember-choice,.check-field{border:2px solid color-mix(in srgb,var(--ink) 35%,transparent);background:color-mix(in srgb,var(--paper-light) 75%,transparent);border-radius:7px 11px 6px 10px;align-items:flex-start;gap:10px;margin:12px 0;padding:11px 13px;font-size:13px;line-height:1.45;display:flex}.remember-choice input,.check-field input{width:19px;height:19px;accent-color:var(--brand);margin:1px 0 0}.activity-sheet fieldset{border:0;min-width:0;margin:22px 0 0;padding:0}.activity-sheet legend{letter-spacing:.07em;width:100%;margin:0 0 10px;font-size:13px;font-weight:1000;display:block}.activity-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.activity-choice{border:2px solid color-mix(in srgb,var(--ink) 42%,transparent);background:color-mix(in srgb,var(--paper-light) 85%,transparent);text-align:left;border-radius:8px 13px 7px 11px;min-height:138px;padding:11px;transition:all .16s}.activity-choice:hover,.activity-choice.active{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-2px)rotate(-.4deg)}.activity-choice .activity-sketch{width:70px;height:58px;display:block}.activity-choice strong,.activity-choice small{display:block}.activity-choice strong{margin:6px 0 4px;font-size:14px;font-weight:1000;line-height:1.3}.activity-choice small{color:var(--muted);font-size:12px;line-height:1.35}.impact-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:11px;display:grid}.impact-choice{border:2px solid color-mix(in srgb,var(--ink) 38%,transparent);background:var(--paper-light);border-radius:7px 11px 6px 10px;min-height:68px;padding:9px;font-size:12px;font-weight:800;line-height:1.35}.impact-choice strong{color:var(--brand-dark);margin-top:5px;font-size:13px;display:block}.impact-choice:hover,.impact-choice.active{border-color:var(--brand);background:var(--brand-soft)}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quantity-control{border:2px solid color-mix(in srgb,var(--ink) 45%,transparent);background:var(--paper-light);border-radius:7px 11px 7px 10px;align-items:stretch;height:58px;display:flex;overflow:hidden}.quantity-control button{background:var(--brand-soft);border:0;width:46px;font-size:23px}.quantity-control input{text-align:center;background:0 0;border:0;outline:0;width:72px;min-width:54px}.quantity-control span{border-left:2px solid color-mix(in srgb,var(--ink) 24%,transparent);background:var(--paper-deep);justify-content:center;align-items:center;min-width:126px;margin-left:auto;padding:0 10px;font-size:13px;font-weight:1000;display:flex}.input-field{display:block}.input-field>span{margin-bottom:5px;font-size:13px;font-weight:900;display:block}.input-field input,.input-field textarea,.input-field select{border:2px solid color-mix(in srgb,var(--ink) 50%,transparent);background:var(--paper-light);border-radius:7px 11px 6px 10px;width:100%;padding:12px 13px;font-size:15px;font-weight:700}.input-field input{height:52px}.input-field textarea{resize:vertical;min-height:88px}.input-field.full{margin-top:10px}.ep-preview{border:2px dashed var(--brand);background:color-mix(in srgb,var(--brand) 9%,transparent);border-radius:8px 13px 7px 11px;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;padding:13px 15px;display:flex}.ep-preview div span,.ep-preview div strong{display:block}.ep-preview div span{color:var(--muted);font-size:12px}.ep-preview div strong{color:var(--brand-dark);font-size:25px;font-weight:1000}.bonus-pill{background:var(--brand-soft);color:var(--brand-dark);border-radius:20px;padding:7px 10px;font-size:11px;font-weight:1000}.submit-row{justify-content:flex-end;align-items:center;gap:15px;margin-top:16px;display:flex}.submit-row small{max-width:370px;color:var(--muted);margin-right:auto;font-size:11px;line-height:1.5}.celebration-overlay{z-index:140}.celebration-card{z-index:3;border:3px solid var(--ink);background:var(--paper-light);width:min(530px,94vw);box-shadow:13px 14px 0 color-mix(in srgb,var(--brand) 32%,transparent);text-align:center;border-radius:15px 9px 20px 12px;padding:42px 36px 35px;animation:.55s cubic-bezier(.16,.9,.3,1.25) celebrateIn;position:relative;transform:rotate(-.5deg)}.celebration-person{background:linear-gradient(-6deg,transparent 15%,var(--brand-soft) 16% 81%,transparent 82%);justify-content:center;align-items:center;width:130px;height:112px;margin:0 auto 7px;display:flex;position:relative}.celebration-person .leader-sketch{width:105px;height:105px}.celebration-person>span{color:var(--accent-dark);font-size:48px;font-weight:1000;animation:.8s ease-in-out infinite alternate arrowUp;position:absolute;top:-12px;right:4px}.celebration-card h2{letter-spacing:-.04em;margin:8px 0 9px;font-size:34px;font-weight:1000}.celebration-card>p:not(.note-kicker){color:var(--muted);margin:0 auto 23px;font-size:14px;line-height:1.65}.confetti{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{--angle:calc(var(--i)*37deg);background:var(--brand);width:10px;height:22px;transform:translate(-50%,-50%) rotate(var(--angle));animation:1.6s cubic-bezier(.12,.75,.25,1) forwards burst;animation-delay:calc(var(--i)*-12ms);border-radius:2px;position:absolute;top:50%;left:50%}.confetti i:nth-child(3n){background:var(--accent);width:8px;height:16px}.confetti i:nth-child(4n){background:var(--gold);border-radius:50%}.admin-page,.admin-login{min-height:100vh;padding:22px 24px 80px}.admin-topbar{justify-content:space-between;align-items:center;gap:12px;max-width:1160px;margin:0 auto;display:flex}.admin-topbar>div{text-align:center}.admin-topbar span,.admin-topbar strong{display:block}.admin-topbar span{color:var(--muted);letter-spacing:.08em;font-size:9px}.admin-topbar strong{margin-top:3px;font-size:12px}.back-button{background:var(--paper-light)}.admin-heading{justify-content:space-between;align-items:center;max-width:1160px;margin:45px auto 25px;display:flex}.admin-heading h1{letter-spacing:-.055em;margin:7px 0;font-size:clamp(38px,5vw,58px);font-weight:1000}.admin-heading>div:first-child>p:last-child{color:var(--muted);margin:0;font-size:14px}.admin-doodle{background:linear-gradient(-7deg,transparent 16%,var(--brand-soft) 17% 80%,transparent 81%);justify-content:center;align-items:center;width:145px;height:110px;display:flex}.admin-doodle .activity-sketch{width:120px;height:96px}.admin-tabs{gap:8px;max-width:1160px;margin:0 auto 18px;display:flex}.admin-tabs button,.filter-tabs button{border:1.5px solid color-mix(in srgb,var(--ink) 32%,transparent);background:color-mix(in srgb,var(--paper-light) 65%,transparent);color:var(--muted);border-radius:8px 12px 7px 10px;padding:9px 12px;font-size:12px;font-weight:900}.admin-tabs button.active,.filter-tabs button.active{border-color:var(--brand-dark);background:var(--brand-soft);color:var(--brand-dark);transform:rotate(-.4deg)}.admin-class-picker{max-width:1160px;margin:0 auto 18px;display:block}.admin-class-picker select{width:min(480px,100%)}.admin-content{gap:18px;max-width:1160px;margin:0 auto;display:grid}.admin-content.two-column{grid-template-columns:1fr 1fr}.paper-card{border:2.5px solid var(--ink);background:var(--paper-light);box-shadow:7px 8px 0 var(--gray-soft);border-radius:10px 18px 9px 14px;padding:22px}.paper-card:nth-child(2n){border-radius:16px 9px 14px 8px;transform:rotate(.12deg)}.paper-card h2{letter-spacing:-.03em;margin:6px 0 17px;font-size:24px;font-weight:1000}.stack-form{gap:12px;display:grid}.class-list{display:grid}.class-list>div{border-bottom:1px dashed var(--gray);grid-template-columns:16px 1fr auto;align-items:center;gap:9px;padding:11px 3px;display:grid}.class-list button{text-align:left;background:0 0;border:0}.class-list strong,.class-list small{display:block}.class-list small{color:var(--muted);margin-top:3px;font-size:11px}.status-dot{border:2px solid var(--ink);background:var(--gray);border-radius:50%;width:11px;height:11px}.status-dot.active{background:var(--accent)}.switch input{display:none}.switch span{border:2px solid var(--ink);background:var(--gray-soft);border-radius:20px;width:42px;height:23px;display:block;position:relative}.switch span:after{background:var(--ink);content:"";border-radius:50%;width:15px;height:15px;transition:all .2s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:var(--accent-soft)}.switch input:checked+span:after{background:var(--accent-dark);left:21px}.student-tools{grid-template-columns:1.35fr .65fr;gap:18px;display:grid}.inline-student-form{grid-template-columns:.75fr 1.4fr .55fr auto;align-items:end;gap:9px;display:grid}.import-card>p:not(.note-kicker){color:var(--muted);font-size:12px}.import-card>div{flex-wrap:wrap;gap:8px;display:flex}.success-message{border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent-dark);border-radius:7px 11px 6px 10px;margin:0;padding:10px 13px;font-size:12px}.card-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.table-wrap{overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:12px}.table-wrap th,.table-wrap td{border-bottom:1px dashed var(--gray);text-align:left;padding:9px 10px}.table-wrap th{color:var(--muted);letter-spacing:.05em;font-size:10px}.row-error{background:var(--brand-soft);color:var(--brand-dark)}.student-list{display:grid}.student-list>div{border-bottom:1px dashed var(--gray);grid-template-columns:42px 1fr auto auto;align-items:center;gap:10px;padding:10px 4px;display:grid}.student-list>div.inactive{opacity:.55}.student-list strong,.student-list small{display:block}.student-list small{color:var(--muted);margin-top:4px;font-size:11px}.avatar{border:2.5px solid var(--ink);background:var(--brand-soft);border-radius:48% 54% 45% 56%;justify-content:center;align-items:center;width:44px;height:44px;font-size:12px;font-style:normal;font-weight:1000;display:flex;transform:rotate(4deg)}.avatar.small{width:38px;height:38px;font-size:10px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.stat-grid article{border:2px solid var(--ink);background:var(--paper-light);box-shadow:5px 6px 0 var(--gray-soft);border-radius:9px 15px 8px 12px;padding:18px 20px}.stat-grid span,.stat-grid strong{display:block}.stat-grid span{color:var(--muted);letter-spacing:.08em;font-size:10px;font-weight:1000}.stat-grid strong{color:var(--brand-dark);margin-top:6px;font-size:31px;font-weight:1000}.review-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.review-toolbar h2{font-size:24px}.filter-tabs{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.review-list{gap:15px;display:grid}.review-card{border:2.5px solid var(--ink);background:var(--paper-light);box-shadow:6px 7px 0 var(--gray-soft);border-radius:10px 18px 9px 14px;padding:19px}.review-card-head,.review-person,.review-actions,.evidence-line{align-items:center;display:flex}.review-card-head{justify-content:space-between;gap:15px}.review-person{gap:11px}.review-person strong,.review-person small{display:block}.review-person strong{font-size:16px;font-weight:1000}.review-person small{color:var(--muted);margin-top:3px;font-size:11px}.review-details{border:1.5px dashed color-mix(in srgb,var(--ink) 32%,transparent);background:var(--paper);border-radius:7px 12px 6px 10px;grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin:16px 0;padding:13px;display:grid}.review-details span,.review-details strong{display:block}.review-details span{color:var(--muted);text-transform:uppercase;font-size:10px}.review-details strong{margin-top:4px;font-size:13px}.red-ink{color:var(--brand-dark)}.review-card blockquote{border-left:3px solid var(--brand-mid);background:var(--brand-soft);color:var(--brand-dark);margin:11px 0;padding:10px 12px;font-size:12px;line-height:1.55}.evidence-line{min-height:35px;color:var(--muted);gap:9px;font-size:12px}.evidence-line a,.evidence-line strong{color:var(--accent-dark);font-weight:1000}.review-actions{border-top:1px dashed var(--gray);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px}.review-actions input{border:1.8px solid color-mix(in srgb,var(--ink) 40%,transparent);background:var(--paper-light);border-radius:7px 11px 6px 10px;flex:1;min-width:230px;height:42px;padding:0 11px;font-size:12px}.review-actions button{border:2px solid var(--ink);border-radius:7px 11px 6px 10px;min-height:42px;padding:0 12px;font-size:11px;font-weight:1000}.reject-button{background:var(--paper-light);color:var(--brand-dark)}.check-button{background:color-mix(in srgb,var(--gold) 18%,var(--paper-light));color:var(--ink)}.approve-button{background:var(--accent);color:#fff;border-color:var(--accent-dark)!important}.admin-note{color:var(--muted);font-size:12px}.status-badge{white-space:nowrap;border-radius:20px;align-items:center;padding:6px 9px;font-size:10px;font-weight:1000;display:inline-flex}.status-badge.pending{color:#745812;background:#fff0c4}.status-badge.needs_review{background:color-mix(in srgb,var(--gold) 25%,var(--paper-light));color:var(--gold)}.status-badge.approved{background:var(--accent-soft);color:var(--accent-dark)}.status-badge.rejected{background:var(--brand-soft);color:var(--brand-dark)}.empty-state,.loading-note{border:2px dashed var(--gray);background:var(--paper-light);color:var(--muted);text-align:center;border-radius:10px 18px 9px 15px;padding:70px 20px}.empty-state strong{color:var(--ink);font-size:19px;display:block}.admin-login{justify-content:center;align-items:center;display:flex;position:relative}.admin-login>.back-button{position:absolute;top:24px;left:24px}.login-note{max-width:470px;padding:58px 46px 40px}.login-note h1{letter-spacing:-.045em;margin:8px 0 7px;font-size:34px;font-weight:1000}.login-note>p:not(.note-kicker){color:var(--muted);margin:0 0 24px;font-size:13px;line-height:1.55}.login-note form{gap:13px;display:grid}.demo-credentials{border:2px dashed var(--brand);background:var(--brand-soft);color:var(--brand-dark);border-radius:7px 11px 6px 10px;flex-direction:column;gap:4px;margin-top:20px;padding:11px;font-size:11px;display:flex}@keyframes roadTravel{to{stroke-dashoffset:-78px}}@keyframes rankShift{0%{opacity:.4;transform:translateY(70px)rotate(2deg)}55%{opacity:1;transform:translateY(-12px)rotate(-1deg)}to{transform:translateY(0)rotate(0)}}@keyframes rankGlow{0%,55%{filter:drop-shadow(0 0 #0000)}70%{filter:drop-shadow(0 0 16px var(--gold))}to{filter:drop-shadow(0 0 #0000)}}@keyframes bell{0%,70%,to{transform:rotate(0)}75%{transform:rotate(-14deg)}82%{transform:rotate(12deg)}90%{transform:rotate(-8deg)}}@keyframes celebrateIn{0%{opacity:0;transform:scale(.72)rotate(-4deg)}to{opacity:1;transform:scale(1)rotate(-.5deg)}}@keyframes arrowUp{to{transform:translateY(-10px)}}@keyframes burst{0%{transform:translate(-50%,-50%) rotate(calc(var(--i)*37deg));opacity:1}to{transform:translate(calc(-50% + (cos(calc(var(--i)*37deg))*48vw)),calc(-50% + (sin(calc(var(--i)*37deg))*47vh))) rotate(calc(var(--i)*97deg));opacity:0}}@media (width<=1000px){.journey-road{max-width:780px}.road{width:620px}.leader-card{width:min(480px,70vw)}.rank-item:nth-child(odd){padding-left:1%}.rank-item:nth-child(2n){padding-right:1%}.you-are-here{right:-104px}.impact-grid{grid-template-columns:repeat(3,1fr)}.inline-student-form{grid-template-columns:1fr 1.4fr .7fr}.inline-student-form .primary-button{grid-column:1/-1}.student-tools,.admin-content.two-column{grid-template-columns:1fr}}@media (width<=760px){.app-shell,.admin-page{padding:17px 13px 72px}.app-header>img{width:155px}.theme-button{font-size:0}.theme-button span{margin:0;font-size:17px}.demo-banner{flex-direction:column;align-items:flex-start;gap:3px}.public-tools{flex-direction:column;align-items:stretch}.class-picker select{width:100%;min-width:0}.remembered-chip{justify-content:center}.reminder-note{flex-wrap:wrap;align-items:flex-start}.reminder-note button{margin-left:56px}.rank-ticker{flex-direction:column;align-items:flex-start;gap:5px}.journey-intro{margin-top:30px}.title-ribbon h1{padding:16px 23px 14px;font-size:34px}.title-ribbon:before,.title-ribbon:after{top:15px}.summit .mountain-sketch{width:285px;height:125px}.journey-road{min-height:2520px;padding-top:30px}.road{width:430px}.road-shadow{stroke-width:106px}.road-outline{stroke-width:94px}.road-fill{stroke-width:85px}.rank-list{gap:77px}.rank-item:nth-child(odd),.rank-item:nth-child(2n){justify-content:center;padding:0}.leader-card{grid-template-columns:82px minmax(0,1fr);gap:8px;width:min(430px,86vw);min-height:151px;padding:15px 17px 15px 31px}.sketch-wrap{width:86px;height:86px}.leader-sketch{width:80px;height:80px}.rank-number,.rank-item:nth-child(2n) .rank-number{width:56px;height:56px;font-size:27px;top:47px;left:-27px;right:auto}.leader-copy>strong{font-size:20px}.leader-copy small{font-size:11px}.ep-highlight{font-size:17px}.you-are-here{top:-36px;right:10px}.you-are-here:before{border-top:18px solid var(--brand-dark);border-bottom:0;border-left:16px solid #0000;border-right:16px solid #0000;top:auto;bottom:-18px;left:20px;transform:none}.you-are-here:after{border-top:14px solid var(--paper-light);border-bottom:0;border-left:12px solid #0000;border-right:12px solid #0000;top:auto;bottom:-13px;left:24px;transform:none}.activity-sheet{padding:29px 18px 30px 43px}.activity-sheet h2,.identity-note h2{font-size:30px}.activity-grid,.impact-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.submit-row{flex-direction:column;align-items:stretch}.submit-row small{text-align:center;max-width:none;margin:0}.submit-row .primary-button{width:100%}.admin-heading{margin-top:50px}.admin-doodle{display:none}.admin-tabs{overflow:auto}.stat-grid{grid-template-columns:1fr 1fr 1fr}.stat-grid article{padding:13px 9px}.stat-grid strong{font-size:25px}.review-toolbar{flex-direction:column;align-items:flex-start}.filter-tabs{justify-content:flex-start}.review-details{grid-template-columns:1fr 1fr}.review-actions{flex-direction:column;align-items:stretch}.review-actions input{width:100%;min-width:0}.inline-student-form{grid-template-columns:1fr}.inline-student-form .primary-button{grid-column:auto}.student-list>div{grid-template-columns:42px 1fr auto}.student-list .text-button{grid-column:2}.login-note{padding:50px 25px 32px}}@media (width<=440px){body{font-size:15px}.app-header>img{width:136px}.title-ribbon h1{font-size:29px}.journey-intro>p:last-child{padding:0 14px}.summit .mountain-sketch{width:245px}.road{width:360px}.leader-card{grid-template-columns:68px minmax(0,1fr);width:89vw;padding-left:27px}.sketch-wrap{width:72px;height:74px}.leader-sketch{width:70px;height:70px}.leader-copy>strong{font-size:18px}.leader-copy small{display:none}.rank-list{gap:80px}.you-are-here{right:4px}.identity-note{padding:50px 20px 30px}.activity-sheet{padding-left:32px}.activity-choice{min-height:128px;padding:9px}.activity-choice strong{font-size:13px}.activity-choice small{font-size:11px}.quantity-control span{min-width:105px;font-size:12px}.ep-preview{flex-direction:column;align-items:flex-start}.stat-grid,.review-details{grid-template-columns:1fr}.review-card{padding:14px}.admin-topbar>div{display:none}.student-list>div{grid-template-columns:42px 1fr}.student-list .status-badge{grid-column:2;justify-self:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.road-center{animation:none}.confetti{display:none}}@media (prefers-contrast:more){.leader-card,.paper-card,.review-card,.identity-note,.activity-sheet{border-width:4px}.road-outline{stroke-width:122px}.road-center{stroke-width:6px}.muted{color:var(--ink)}}.activity-sheet{padding-left:38px}.activity-sheet:before{display:none}@media (width<=760px){.activity-sheet{padding-left:18px}}@media (width<=440px){.activity-sheet{padding-left:20px;padding-right:20px}}
