:root{color-scheme:light;--ink:#203d36;--green:#174c42;--muted:#748078;--cream:#f5f5ed;--border:#e0e5dc;--lime:#d8ef95;--orange:#f6b38c}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:10px;color:var(--ink);padding:10px 15px;transition:background .15s,transform .15s}button:hover{background:#edf2e5}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #d38832;outline-offset:3px}[hidden]{display:none!important}header{height:100px;max-width:1600px;margin:auto;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-weight:750;font-size:19px;letter-spacing:-.7px}.brandmark{display:grid;place-items:center;width:46px;height:46px;background:var(--green);color:var(--lime);border-radius:15px;font-size:39px;font-weight:400}.brand small{display:block;font-size:11px;letter-spacing:.1px;font-weight:450;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:20px}.sync{font-size:12px;color:var(--muted)}main{max-width:1600px;margin:auto;padding:50px 5% 60px;min-height:calc(100vh - 173px)}h1,h2,p{margin-top:0}h1{font-size:clamp(35px,4.8vw,65px);font-weight:650;letter-spacing:-2.7px;line-height:1.1;margin-bottom:20px}h2{font-size:24px;letter-spacing:-.8px;line-height:1.25}.eyebrow{font-size:10px;letter-spacing:1.9px;font-weight:750;color:var(--muted);margin-bottom:15px}.dot{color:#9dbb52}.intro{font-size:17px;color:var(--muted);line-height:1.8;margin:24px 0 36px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:1020px}.tool-card{text-align:left;padding:32px;border-radius:22px;background:#e7eddf;position:relative;min-height:295px;border-color:#d9e2ce}.tool-card:hover{background:#dce8d1;transform:translateY(-3px)}.tool-icon{font-size:56px;color:var(--green);line-height:1}.tag{position:absolute;right:25px;top:30px;background:#fff9;border-radius:20px;padding:5px 10px;font-size:9px;letter-spacing:1px;font-weight:700}.tool-card h2{font-size:30px;margin:18px 0 9px}.tool-card p,.future-card p{color:var(--muted)}.tool-bottom{display:flex;justify-content:space-between;font-size:12px;border-top:1px solid #ccd7c0;padding-top:18px;margin-top:25px}.future-card{border:1.5px dashed #d2d9cd;border-radius:22px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.future-card>span{font-size:30px;font-weight:250;color:#9da994;margin-bottom:15px}.future-card h2{font-size:22px;margin-bottom:10px}.footnote{font-size:11px;color:var(--muted);margin-top:35px}.panel{background:#fff;border:1px solid var(--border);border-radius:20px}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.page-title h1{font-size:42px;margin:10px 0}.page-title p{color:var(--muted);margin:0}.text-button{border:0;background:none;padding:0;font-size:12px;color:var(--muted)}.picker-layout{display:grid;grid-template-columns:270px minmax(320px,1fr) 220px;gap:22px;align-items:start}.control-panel{padding:24px}.control-panel select{width:100%;font-weight:600}.class-actions{display:flex;gap:8px;margin-top:12px}.class-actions button{flex:1;font-size:12px;padding:9px 5px}hr{border:0;border-top:1px solid var(--border);margin:24px 0}label{display:block;font-size:13px;font-weight:600}label small{display:block;color:var(--muted);font-size:11px;font-weight:400;line-height:1.5;margin-top:5px}.switch-row{display:flex;align-items:center;gap:12px}.switch-row label{flex:1}input[type=checkbox]{accent-color:var(--green);height:19px;width:19px;flex-shrink:0}.progress{height:6px;background:#eff1e9;border-radius:8px;overflow:hidden;margin:24px 0 10px}.progress div{background:#b7ce7e;height:100%;width:0;transition:width .3s}.muted{font-size:12px;color:var(--muted)}.row{display:flex;gap:8px}.row button{font-size:12px;padding:9px 10px}.control-panel details{margin-top:25px;border-top:1px solid var(--border);padding-top:20px}summary{cursor:pointer;font-size:13px;font-weight:600}summary span{float:right;background:var(--cream);padding:0 7px;border-radius:5px}.absence-list{max-height:290px;overflow:auto}.absence-list label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;padding:5px 0}.save-note{margin-top:25px;font-size:10px;color:var(--muted)}.stage{padding:23px 30px 20px;display:flex;flex-direction:column;align-items:center;overflow:hidden;background:#fcfdf9}.stage-top{display:flex;justify-content:space-between;width:100%;gap:10px;align-items:center}.stage-top .eyebrow{margin:0;overflow-wrap:anywhere}.segmented{display:flex;border-radius:9px;padding:3px;background:#eef0e9;flex-shrink:0}.segmented button{border:0;background:none;padding:6px 11px;font-size:11px;border-radius:7px}.segmented button[aria-pressed=true]{background:#fff;box-shadow:0 1px 5px #0001}.wheel-area{width:min(100%,350px);aspect-ratio:1;position:relative;margin:28px auto 12px}.wheel-area canvas{width:100%;height:100%;border-radius:50%;border:8px solid #fff;box-shadow:0 0 0 1px #dce2d4,0 8px 24px #203d3612;display:block}.pointer{position:absolute;top:-16px;left:calc(50% - 16px);color:var(--green);font-size:38px;z-index:2;line-height:1}.wheel-center{position:absolute;inset:40%;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);font-size:48px;box-shadow:0 2px 8px #0002}.result{text-align:center;width:100%;margin:12px 0 22px}.result>span{display:block;text-transform:uppercase;font-size:10px;letter-spacing:1.4px;color:var(--muted)}.result strong{display:block;font-size:clamp(28px,3vw,46px);letter-spacing:-1.5px;line-height:1.2;margin-top:10px;overflow-wrap:anywhere}.primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:650}.primary:hover{background:#246354}.spin{font-size:17px;border-radius:13px;width:min(100%,340px);padding:15px}.spin-hint{color:var(--muted);font-size:10px;text-align:center;margin:12px 0 0}.history-panel{padding:23px}.history-panel h2{font-size:19px;margin-bottom:7px}.history-panel ol{list-style:none;padding:0;margin:20px 0 0}.history-panel li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #eef0ea;font-size:13px;overflow-wrap:anywhere}.history-panel li span{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;background:#edf2e3;border-radius:50%;font-size:10px;color:var(--muted)}.empty-history{text-align:center;padding:45px 0;color:#9aa68e;font-size:13px;line-height:2}.card-area{min-height:350px;margin:28px 0 12px;width:100%;border-radius:25px;background:#e8efdc;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:30px;text-align:center}.card-area .eyebrow{font-size:9px}#shuffleName{font-size:clamp(30px,4vw,58px);font-weight:700;letter-spacing:-2px;overflow-wrap:anywhere;max-width:100%}.card-spark{font-size:65px;color:#97b168;margin-top:10px}input:not([type=checkbox]),select,textarea{border:1px solid var(--border);border-radius:10px;padding:12px;background:#fafbf7;color:var(--ink);width:100%;margin-top:7px}textarea{resize:vertical}.auth{max-width:440px;padding:38px;margin:35px auto}.auth h1{font-size:38px}.auth p{color:var(--muted);font-size:14px}.auth form{display:grid;gap:18px;margin:27px 0 20px}.auth .primary{padding:14px}.auth .muted{font-size:11px}dialog{border:1px solid var(--border);border-radius:23px;width:min(95vw,570px);padding:30px;color:var(--ink);max-height:92vh}dialog::backdrop{background:#16392e65;backdrop-filter:blur(4px)}dialog label{margin-top:16px}.dialog-actions{display:flex;gap:8px;align-items:center;margin-top:25px}.dialog-actions>span{flex:1}.dialog-actions button{font-size:12px}.danger{color:#a23f32}#message{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--green);color:#fff;padding:16px 23px;border-radius:13px;max-width:90vw;box-shadow:0 8px 40px #0002;z-index:10;font-size:14px}footer{max-width:1600px;margin:auto;padding:25px 5%;display:flex;align-items:center;gap:22px;border-top:1px solid var(--border);font-size:9px;letter-spacing:1.5px;color:var(--muted)}footer span{letter-spacing:0;font-size:11px}footer small{margin-left:auto;font-size:9px;letter-spacing:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.presenting header,.presenting footer,.presenting aside,.presenting .history-panel,.presenting .page-title>div{display:none}.presenting main{padding:15px 4%;min-height:100vh}.presenting .picker-layout{display:block;max-width:1000px;margin:auto}.presenting .page-title{justify-content:flex-end;margin:0 0 10px}.presenting .stage{min-height:80vh}.presenting .result strong{font-size:clamp(45px,6vw,90px)}.presenting .wheel-area{width:min(45vh,440px)}.presenting .card-area{min-height:40vh}.presenting #shuffleName{font-size:clamp(45px,6vw,90px)}@media(min-width:1500px){.wheel-area{width:390px}}@media(max-width:1150px){.picker-layout{grid-template-columns:250px minmax(300px,1fr)}.history-panel{grid-column:1/-1}.history-panel ol{display:flex;flex-wrap:wrap;gap:8px 22px}.history-panel li{border:0;padding:5px}.empty-history{padding:10px 0}.stage{padding:22px}.history-panel .muted{display:none}}@media(max-width:700px){header{height:82px;padding:17px 5%}.brand{font-size:16px}.brandmark{width:38px;height:38px;font-size:31px}.header-actions{gap:10px}.sync{font-size:10px;max-width:90px;text-align:right}.header-actions button{padding:7px;font-size:11px}main{padding-top:30px}.tool-grid{grid-template-columns:1fr}.tool-card{min-height:270px}.future-card{padding:25px}.future-card>span{margin:0}.future-card h2{margin:5px}.future-card p{margin:0;font-size:12px}.picker-layout{grid-template-columns:1fr;gap:15px}.control-panel{padding:20px}.control-panel hr{margin:15px 0}.control-panel .save-note{margin-top:15px}.control-panel details{margin-top:15px;padding-top:15px}.progress{margin-top:15px}.stage{grid-row:2}.page-title h1{font-size:35px}.page-title p{font-size:13px}.wheel-area{width:min(100%,320px)}.history-panel{grid-column:auto}.auth{padding:25px;margin:15px auto}footer span{display:none}.dialog-actions{flex-wrap:wrap}dialog{padding:23px}.tool-bottom{gap:10px}h1{letter-spacing:-1.7px}.card-area{min-height:300px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

#dialogMessage{padding:12px;background:#fff0e9;color:#993c24;border-radius:8px;font-size:13px}

/* Animation stage: vector scenes scale with the classroom display. */
.animation-picker{font-size:10px;letter-spacing:.5px;min-width:160px;color:var(--muted);flex-shrink:0}.animation-picker select{display:block;font-size:12px;letter-spacing:0;margin-top:3px;padding:8px 28px 8px 10px;color:var(--ink)}.stage-top{align-items:center}.scene-area{width:100%;margin:25px 0 12px;overflow:hidden;border-radius:23px;background:#edf2e5}.scene-area canvas{display:block;width:100%;height:auto;aspect-ratio:1000/720}.pick-actions{display:flex;flex-direction:column;gap:9px;width:min(100%,340px)}.pick-actions .spin{width:100%}.surprise{border-color:#cad9ae;background:#edf3e3;font-size:13px;font-weight:650;padding:11px}.surprise:hover{background:#dfecc9}.presenting .scene-area{width:min(100%,72vh);margin:15px auto}.presenting .stage-top{max-width:900px}.presenting .pick-actions{flex-direction:row;width:min(100%,600px);align-items:stretch}.presenting .pick-actions .spin{flex:1;width:auto}.presenting .surprise{min-width:150px}@media(max-width:700px){.stage-top{align-items:flex-start}.stage-top .eyebrow{padding-top:10px;max-width:45%}.animation-picker{min-width:0;width:175px;max-width:55%}.scene-area{margin:18px 0 10px}.presenting .pick-actions{flex-direction:column}.presenting .stage{padding:15px}.presenting .scene-area{width:100%}}
