:root{font-family:ui-rounded,Avenir Next,Avenir,system-ui,sans-serif;color:#35283a;background:#fcf8f4;font-weight:500;line-height:1.55;font-synthesis:none;--ink: #35283a;--muted: #6c586c;--plum: #681c52;--plum-dark: #501840;--border: #e6dbe5;--panel: #fffdfb;--gold: #ffd87a;--lilac: #f3eaf6;--radius: 20px}*{box-sizing:border-box}body{margin:0;min-width:320px}#root{min-height:100dvh;display:flex;flex-direction:column}a{color:var(--plum);text-underline-offset:.2em}a:hover{color:var(--plum-dark)}button,input,select,textarea{font:inherit;color:inherit}button,summary{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:3px solid #885075;outline-offset:3px}p,h1,h2,h3{margin:0 0 .55rem}h1,h2,h3{line-height:1.13;letter-spacing:-.035em;font-weight:760;overflow-wrap:anywhere}h1{font-size:clamp(2.2rem,5vw,3.4rem)}h2{font-size:clamp(1.28rem,2.7vw,1.65rem)}h3{font-size:1.18rem}.icon{width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-.16em}.site-header{background:var(--panel);border-bottom:1px solid var(--border)}.header-inner,.shell,.site-footer{width:min(1140px,calc(100% - 48px));margin-inline:auto}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:16px}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--plum);text-decoration:none;font-weight:850;letter-spacing:-.055em;font-size:1.83rem}.brand img{width:37px;height:37px}.brand:hover{color:var(--plum)}.header-actions,.header-link{display:flex;align-items:center;gap:.7rem}.header-link{color:var(--plum);text-decoration:none;font-weight:750}.avatar{display:grid;place-items:center;height:36px;width:36px;border-radius:50%;background:var(--lilac);color:var(--plum);font-weight:800}.identity{display:grid;line-height:1.25;margin-right:.3rem}.identity small{color:var(--muted)}.shell{padding:32px 0 48px;flex:1}.site-footer{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);padding:17px 0;color:var(--muted);font-size:.84rem}.site-footer span:first-child{font-weight:800}.hero{overflow:hidden;color:#fff8e9;background:#542447;border-radius:25px}.hero .kicker{color:#ffd6c5}.hero h1{color:#fff9ea}.hero p:not(.kicker){color:#f5e5f0;max-width:40ch;font-size:1.08rem}.hero h1 span{color:var(--gold)}.welcome{padding-top:clamp(30px,6vw,72px)}.welcome-hero{display:grid;grid-template-columns:.95fr 1fr;align-items:center;min-height:416px}.welcome-text{padding:clamp(26px,5vw,62px);padding-right:18px}.welcome-text h1{font-size:clamp(2.65rem,6vw,5.1rem);line-height:.98;margin:.8rem 0 1.2rem}.welcome-text .actions{margin-top:1.6rem}.welcome-art,.login-art{position:relative;overflow:hidden;background:#377f73;border-radius:18px}.welcome-art{margin:24px 24px 24px 0;align-self:stretch}.welcome-art .scene,.login-art .scene{display:block;width:100%;height:100%;object-fit:cover}.map-label{position:absolute;display:flex;align-items:center;gap:.45rem;bottom:1rem;left:1rem;background:#153f39;color:#fff4d5;border:1px solid #719082;border-radius:50px;font-size:.73rem;font-weight:800;letter-spacing:.09em;padding:.35rem .6rem}.welcome-features{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}.welcome-features>div{display:flex;align-items:flex-start;gap:.9rem;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.welcome-features h2{font-size:1.22rem}.welcome-features p{color:var(--muted);margin-bottom:0}.feature-icon,.gear-mark{display:grid;place-items:center;flex:0 0 auto;height:42px;width:42px;background:#f9ebc2;color:#614717;border-radius:12px;font-weight:800}.login-layout{display:grid;grid-template-columns:minmax(260px,450px) minmax(0,1fr);align-items:stretch;gap:24px;max-width:1020px;padding-block:clamp(24px,6vw,70px)}.login-panel{padding:clamp(22px,4vw,40px)!important}.login-panel form{margin-top:1.3rem}.switch-login{margin-top:1rem}.kicker{display:flex;align-items:center;gap:.4em;color:#704569;font-size:.76rem;font-weight:800;letter-spacing:.105em;text-transform:uppercase}.intro,.muted{color:var(--muted)}.intro{max-width:58ch;font-size:1.08rem}.page-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-bottom:24px}.page-top p:last-child{margin-bottom:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tabs button,.segmented button{border:1px solid transparent;border-radius:10px;padding:.52rem .85rem;display:inline-flex;gap:.45rem;align-items:center;background:transparent;font-weight:750}.tabs button:hover,.segmented button:hover{background:#f8eff6}.tabs button[aria-pressed=true],.segmented button[aria-pressed=true]{color:var(--plum);border-color:#ddc7df;background:var(--lilac)}.count{font-size:.77rem;font-weight:800;background:#fff7f3;border-radius:12px;padding:0 .36rem}.dot{display:inline-block;height:8px;width:8px;border-radius:50%;background:#ce564d}.dot.lit{background:#ffdf80;box-shadow:0 0 12px #ffd77b}.dot.dark{background:#a8b8a7}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(17px,3vw,25px);min-width:0}.stack{display:grid;gap:1rem;align-content:start;min-width:0}.stack.compact{gap:.7rem}.stack>button,.stack>.button{justify-self:start}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:.65rem}.button,.file-button{display:inline-flex;align-items:center;justify-content:center;gap:.42rem;min-height:42px;border:1px solid transparent;border-radius:10px;padding:.45rem .75rem;font-weight:760;text-decoration:none;font-size:.94rem;text-align:center;line-height:1.25}.button.primary{color:#fff;background:var(--plum)}.button.primary:hover:not(:disabled){background:var(--plum-dark)}.button.secondary,.file-button{color:var(--plum);border-color:#dfcce2;background:#f7eef8}.button.secondary:hover:not(:disabled),.file-button:hover{background:#efe1f2}.button.subtle{color:var(--plum);border-color:transparent;background:transparent}.button.subtle:hover:not(:disabled){background:#f5edf6}.button.light{background:transparent;border-color:#d7a9cd;color:#fff8e9}.button.light:hover{background:#70365f}.button.reward{color:#3d3019;background:var(--gold);border-color:#e9bf64}.button.reward:hover:not(:disabled){background:#f7c75e}.button:disabled{opacity:.53}.button.danger{color:#913c30}label{display:grid;gap:.27rem;font-size:.9rem;font-weight:750}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-width:0;border:1px solid #cdbdce;border-radius:9px;padding:.52rem .65rem;background:var(--panel);font-weight:540}input[type=file]{font-size:.84rem}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:1.05rem;height:1.05rem;accent-color:var(--plum)}.check{display:flex;align-items:center;gap:.45rem;min-height:34px}fieldset{border:1px solid var(--border);border-radius:10px;padding:.5rem .7rem;min-width:0}legend{font-size:.89rem;font-weight:750}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.feedback{padding:.55rem .7rem;margin:.6rem 0 0;border-radius:8px;font-weight:660;white-space:pre-wrap;overflow-wrap:anywhere}.feedback.error{color:#802c28;background:#fae7df}.feedback.success{color:#215848;background:#e5f0e5}.empty{color:var(--muted);padding-block:.65rem}.panel.empty{padding:22px}.profile-filter{display:flex;gap:1rem;align-items:end;justify-content:space-between;margin-bottom:20px;color:var(--muted)}.profile-filter label{min-width:min(240px,55%)}.parent-grid{display:grid;gap:18px;grid-template-columns:1.5fr 1fr;align-items:start}.drafts-grid{grid-template-columns:1fr 1.8fr}.subpanel{background:#faf4f9;border:1px solid #eadfea;border-radius:12px;padding:.7rem .8rem;margin-top:.7rem;min-width:0}.subpanel summary{font-weight:760;overflow-wrap:anywhere}.subpanel[open]>:not(summary){margin-top:.7rem}.list-row,.gear-row{display:flex;align-items:center;gap:.7rem;padding:.8rem 0;border-top:1px solid var(--border)}.list-row:first-of-type,.gear-row:first-of-type{margin-top:.65rem}.list-row>div,.gear-row>div:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.list-row p,.gear-row p{margin:.13rem 0 0;color:var(--muted);font-size:.89rem}.tag{display:inline-flex;align-items:center;gap:.3rem;border-radius:30px;background:var(--lilac);color:#67405f;font-size:.79rem;padding:.23rem .56rem;font-weight:740}.status-submitted,.teacher{background:#f8e9c5;color:#624816}.status-reviewed,.practice{background:#e1eee1;color:#245d4d}.draft-link{background:transparent;color:var(--ink);border:0;border-radius:8px;width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:.5rem;padding:.7rem}.draft-link:hover,.draft-link[aria-pressed=true]{background:var(--lilac)}.draft-link strong,.draft-link small{display:block;overflow-wrap:anywhere}.draft-link small{color:var(--muted)}.divider{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.copy-preview{background:#fffdf7;padding:.75rem;border-radius:8px;max-height:24rem;overflow:auto}.guide{max-width:760px}.guide h3{margin-top:1rem}.photos{display:flex;gap:.65rem;flex-wrap:wrap;margin:.65rem 0}.photos a{display:grid;max-width:130px;gap:.2rem;font-size:.8rem;overflow-wrap:anywhere}.photos img{width:112px;height:82px;object-fit:cover;border:1px solid var(--border);border-radius:9px;background:var(--lilac)}.file-button{position:relative;cursor:pointer;width:fit-content}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-button:focus-within{outline:3px solid #885075;outline-offset:3px}.child-nav{display:flex;justify-content:space-between;align-items:start;gap:8px}.balance{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #ead5a0;background:#f9edce;border-radius:50px;padding:.4rem .7rem;color:#543f1d;font-weight:800;white-space:nowrap}.child-hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center}.child-hero>div:first-child{padding:clamp(22px,4vw,44px);padding-right:12px}.child-hero h1{margin-top:.65rem}.hero-illustration{height:100%;min-height:195px;position:relative;overflow:hidden;background:#377f73}.hero-illustration .scene{position:absolute;inset:0;width:100%;height:100%}.section-head{display:flex;align-items:end;justify-content:space-between;margin:26px 0 14px;gap:.5rem}.section-head h2{margin:0}.homework-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.homework-card .button{margin-top:.8rem}.homework-card h3{margin-top:.85rem;font-size:1.4rem}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;justify-content:space-between}.date{font-size:.84rem}.materials{display:flex;align-items:baseline;gap:.35rem;color:var(--muted);margin-block:.6rem}.first-step{background:#fff1eb;border:1px solid #efd4ca;border-radius:12px;padding:.75rem .85rem;margin:.5rem 0;overflow-wrap:anywhere}.first-step>span{font-size:.72rem;font-weight:830;color:#793b57;letter-spacing:.08em}.first-step p{margin:.16rem 0 0}.back{padding-left:0;margin-bottom:8px}.task-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:start}.copy-panel label{margin-top:.7rem}.copy-status{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.segmented{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0}.hints{margin-top:.75rem}.hints p{background:#f8efda;border-radius:10px;padding:.55rem .68rem;overflow-wrap:anywhere}.hints strong{margin-right:.3rem;color:#70531d}.step-footer{margin-top:.85rem}.step-footer>.muted{margin-top:.35rem;font-size:.82rem}.step-footer .reward span{background:#f3bc54;border-radius:7px;padding:.12rem .35rem}.flashcard{display:grid;justify-items:center;text-align:center;align-content:center;gap:.5rem;min-height:152px;padding:.85rem;border-radius:14px;background:#f6eef9;border:1px solid #e6d6eb;overflow-wrap:anywhere}.flashcard strong{font-size:1.6rem}.flashcard p{margin:0}.flashcards{margin-block:.65rem}.choices{display:grid;gap:.25rem}.choices label{background:#faf2f9;border-radius:8px;padding:.25rem .4rem}.game-grid{display:grid;grid-template-columns:1.4fr 1fr;align-items:stretch;gap:18px}.scene-card{background:#542447;color:#fff5d6;border-radius:var(--radius);overflow:hidden}.scene{display:block;width:100%;height:auto}.scene-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;align-items:center;padding:.65rem 1rem}.scene-caption>span{font-size:.77rem;font-weight:800;letter-spacing:.09em;color:#f5e5f0}.quest-list{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.65rem}.quest-list li{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-weight:650}.quest-list li>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--lilac);font-size:.85rem}.quest-list li.done>span{background:#e4efe5;color:var(--plum)}.production{margin-block:18px;display:flex;justify-content:space-between;align-items:center;gap:1rem}.production p:last-child{margin:0}.gear-grid{grid-template-columns:1fr 1fr}.gear-mark.slot{color:var(--plum);background:var(--lilac)}@media(max-width:800px){.parent-grid,.task-layout,.game-grid{grid-template-columns:1fr}.welcome-hero{min-height:0}.welcome-art{margin:16px 16px 16px 0}}@media(max-width:590px){.header-inner,.shell,.site-footer{width:calc(100% - 28px)}.header-inner{min-height:62px}.brand{font-size:1.55rem}.brand img{width:31px;height:31px}.avatar,.identity small{display:none}.logout{font-size:.77rem}.welcome-hero,.login-layout,.welcome-features,.child-hero,.homework-grid{grid-template-columns:1fr}.welcome-text{padding-right:24px}.welcome-art{margin:0 14px 14px}.login-art{display:none}.hero-illustration{min-height:150px;max-height:200px}.tabs button{font-size:.87rem;padding:.44rem .52rem}.balance{font-size:.84rem}.two-fields{grid-template-columns:1fr}.production{align-items:start;flex-direction:column}.gear-row{flex-wrap:wrap}.gear-row>div:nth-child(2){min-width:115px}}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.jetty{margin-top:18px}.jetty summary{font-weight:800;color:var(--plum)}.jetty-visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:center;margin-top:14px}.jetty-scene{width:100%;border-radius:12px;display:block}@media(max-width:590px){.jetty-visit{grid-template-columns:1fr}}.library-path{overflow-wrap:anywhere}.preview-dialog{width:min(1100px,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto}.preview-dialog::backdrop{background:#00000073}.preview-dialog .back{margin-top:1rem}.module-panel iframe{width:100%;height:65vh;min-height:360px;border:1px solid #b8ccc6;border-radius:12px;background:#fff}.module-panel{grid-column:1 / -1;min-width:0}.preview-header{position:sticky;top:-1px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface, #fffdf7);padding:.5rem 0}.preview-header h3{margin:0}.preview-close{flex:none;min-width:44px;min-height:44px;font-size:1.75rem;line-height:1}select{appearance:none;padding-right:2.75rem;background-image:url(/select-chevron.svg);background-repeat:no-repeat;background-position:right .9rem center;background-size:1rem}@media(forced-colors:active){select{appearance:auto;background-image:none}}
