:root{--ink:#633d36;--teal:#167c79;--pink:#b93864;--cream:#fff8e9;--gold:#f4bc4e;--line:#e8c88d}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none}body{font-family:"Trebuchet MS",Verdana,sans-serif;color:var(--ink);background:#fff1d1;overflow:hidden}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button,a.secondary{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:4px solid #145e99;outline-offset:3px}button{color:inherit;border:1px solid var(--line);border-radius:18px;background:#fffbf0;padding:10px 15px;font-weight:700}button:disabled{cursor:default}a{color:var(--teal)}[hidden]{display:none!important}header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:7px 20px;gap:12px;background:#fff9ec;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;font-family:Georgia,serif;font-size:24px;font-weight:bold}.brand small{display:block;font:11px "Trebuchet MS",sans-serif;letter-spacing:1px;margin-top:4px}.mitre{display:grid;place-items:center;background:#c44653;border:2px solid #edbd61;color:#ffe19e;width:40px;height:48px;border-radius:55% 55% 25% 25%;font-size:30px}.top-actions{display:flex;gap:7px}.top-actions button{font-size:13px;min-height:43px}.primary{display:block;background:linear-gradient(#ffce70,#f3b33c);border:1px solid #d39835;border-bottom:4px solid #b67e2a;color:#693f2c;font-weight:800;border-radius:18px;padding:12px 20px;text-align:center;text-decoration:none}.primary:hover{filter:brightness(1.05)}.secondary{display:block;background:#fffdf3;border:2px solid #5aa79e;color:#126d6b;border-radius:16px;padding:12px;text-align:center;text-decoration:none}.link-button{border:0;background:transparent;padding:6px;color:#197575;text-decoration:underline;font-size:14px;min-height:40px}main{height:calc(100dvh - 68px);padding:10px 16px 14px}#home{height:100%;display:flex;flex-direction:column}.home-title{text-align:center;flex:none;margin-bottom:8px}.home-title h1{font:700 clamp(23px,3vh,36px) Georgia;margin:2px}.home-title p{margin:5px;font-size:14px}.home-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:center}#house-wrap{position:relative;aspect-ratio:3/2;width:min(100%,calc((100dvh - 160px)*1.5));max-height:100%;margin:auto;border-radius:25px;overflow:hidden;box-shadow:0 6px 0 #d8a960}#house{width:100%;height:100%;display:block}#doors{position:absolute;inset:0}.door{position:absolute;border:2px solid #fff5b99c;background:linear-gradient(transparent 45%,#592b25bb);border-radius:14px;display:flex;align-items:flex-end;justify-content:center;padding:7px;text-decoration:none;color:white;text-shadow:0 1px 2px #42241a;font-size:clamp(10px,1.2vw,16px);font-weight:bold;text-align:center}.door:hover,.door:focus-visible{background:#fff7c633;border-color:#fff2ab}.door .star{position:absolute;right:5px;top:4px;color:#ffe282;text-shadow:1px 1px #865a19}aside h2{font:700 23px Georgia;margin:0 0 8px}#room-list{display:grid;gap:7px}.room-card{display:flex;justify-content:space-between;align-items:center;text-decoration:none;border:1px solid #dcb573;background:#fff9ea;border-radius:15px;padding:10px 12px;color:var(--ink);box-shadow:0 3px 0 #dfbd822f}.room-card strong{font-size:16px}.room-card small{display:block;font-size:11px;margin-top:3px;color:#87624c}.room-card b{font-size:20px;color:#b27022}.home-progress{text-align:center;font-size:13px;color:#14746d;margin:10px 0 0}#room{height:100%;display:flex;flex-direction:column;gap:8px}#room-nav{display:flex;gap:6px;flex:none;justify-content:center}#room-nav a{flex:1;max-width:190px;text-align:center;border:1px solid #dfc396;border-radius:15px;padding:8px 5px;text-decoration:none;background:#fff8e9;font-size:14px;white-space:nowrap}#room-nav a[aria-current=page]{background:#1b8980;color:white;border-color:#176c66;font-weight:bold}.room-heading{height:36px;flex:none;display:flex;align-items:center;gap:14px}.room-heading a{text-decoration:none;font-size:14px;white-space:nowrap}.room-heading h1{font:700 24px Georgia;margin:0}.room-heading>span{margin-left:auto;font-size:12px;color:#8c6243}.play-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(360px,1fr);border:2px solid #e3bd7f;border-radius:26px;overflow:hidden;background:#ffe8b4}.theatre{min-width:0;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#ffe8b4}canvas{display:block;width:100%;max-height:100%;aspect-ratio:16/9;object-fit:contain}#scene-status{position:absolute;bottom:12px;left:12px;right:12px;margin:0;padding:9px 10px;border:2px solid #e6bc73;border-radius:24px;background:#fffaf0f2;text-align:center;font-size:14px;min-height:38px}#asset-error{position:absolute;top:10px;left:10px;right:10px;background:#fff4e6;padding:16px;border:2px solid #bd4040}.activity{min-width:0;min-height:0;border-left:2px dashed #dfb66f;padding:clamp(10px,1.6vh,22px);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#fff9 2px,transparent 3px) 0 0/28px 28px,#ffedc6}.activity>div{width:100%}#setup,#finish{background:#fffcf0;border:2px solid #f0ce91;border-radius:25px;padding:20px;text-align:center}#setup h2,#finish h2{font:700 27px Georgia;color:#a14053;margin:12px 0}#setup p{line-height:1.5}#setup label{display:block;margin:12px 0 8px;font-weight:bold}select{max-width:100%;width:100%;padding:12px;background:#fff;border:2px solid #64a99c;border-radius:14px;color:var(--ink);font-size:16px}#setup button,#finish button,#finish a{width:100%;margin-top:10px}.soft{font-size:13px;color:#967457}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:bold;color:#bd4963}#game{display:flex;flex-direction:column;gap:9px;max-height:100%}.game-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}#counter{background:#fff9ea;border-radius:20px;padding:6px 10px;color:#ab3f5c}#progress{display:flex;gap:6px;justify-content:center}#progress span{width:22px;height:12px;border-radius:8px;background:#e6d3ad}#progress span.done{background:#2c9d8c}#question{font-size:clamp(17px,2.3vh,24px);line-height:1.35;margin:5px 0;padding:12px 14px;background:#fffdf3;border-radius:5px 5px 19px 5px;box-shadow:2px 3px #d4b17a40}#equation{font-size:clamp(24px,4.5vh,42px);color:#b53f61;font-weight:bold;text-align:center;margin:3px 0}#passage-box{background:#fffdf5;border:1px solid #dfc391;border-radius:15px;padding:12px 15px;box-shadow:0 3px #ba94552a}#passage-box h2{font:700 20px Georgia;margin:0 0 6px;color:#b24a61}#passage{font-size:clamp(15px,1.9vh,19px);line-height:1.5;white-space:pre-line;margin:0}#answers{display:grid;grid-template-columns:1fr 1fr;gap:11px}#answers button{position:relative;background:linear-gradient(130deg,#fffdf8,#ffefc7);border:2px solid #cbaa72;border-bottom:4px solid #b5915b;border-radius:5px 16px 8px 16px;padding:10px 13px;font-size:clamp(17px,2.5vh,27px);min-height:59px;line-height:1.2;box-shadow:0 4px 0 #b48f4a16}#answers button:nth-child(even){border-color:#70aaa1;border-bottom-color:#508b85}#answers button.long{font-size:clamp(14px,1.8vh,18px)}#answers button:hover:not(:disabled){background:#fff6d8;transform:translateY(-2px)}#answers button.correct{background:#cdeeda;outline:3px solid #2d9676;outline-offset:1px}#answers button.retry{opacity:.45}#answers button:before{content:'';position:absolute;left:5px;top:5px;width:5px;height:5px;border:1px solid #b29869;border-radius:50%;background:#e1c48d}#feedback{min-height:20px;margin:0;font-size:14px;font-weight:bold;color:#247a66}#hint{background:#fffdf3;border:1px dashed #b79660;padding:9px;border-radius:12px;font-size:14px;line-height:1.4;margin:0}.game-bottom{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.game-bottom .primary{margin-left:auto;font-size:16px;padding:9px 15px;min-height:43px}.big-star{font-size:68px;color:#efb641;line-height:1}#all-stars{color:#21827c;font-weight:bold}#visual{text-align:center;height:88px}#visual svg{height:100%;max-width:160px;filter:drop-shadow(0 4px 1px #74543133)}#toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:#fff8de;border:2px solid #bb8c45;border-radius:16px;padding:12px;z-index:5}
@media(orientation:portrait){.home-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:10px}#house-wrap{width:min(100%,calc((100dvh - 365px)*1.5))}aside h2{display:none}#room-list{grid-template-columns:repeat(4,1fr);gap:6px}.room-card{padding:9px 7px}.room-card strong{font-size:12px}.room-card small{display:none}.home-progress{margin-top:6px}.play-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,.85fr) minmax(0,1.15fr)}.activity{border-left:0;border-top:2px dashed #dfb66f;padding:10px 16px}.room-heading>span{display:none}.room-heading h1{font-size:22px}.room-heading{height:28px}#room-nav a{font-size:12px;padding:9px 3px}.room-heading a{font-size:13px}#game{gap:6px}#question{font-size:18px;padding:8px 11px;margin:0}#passage-box{padding:8px 12px}#passage{font-size:16px;line-height:1.4}#answers button{min-height:47px;font-size:22px;padding:7px 12px}#answers button.long{font-size:15px}#equation{font-size:29px;margin:0}#feedback{font-size:13px;min-height:16px}.game-top{font-size:12px}.game-top button{min-height:30px;padding:3px}#progress span{height:8px}#visual{height:60px}#setup{padding:12px 20px}#setup h2{margin:5px}#setup p{margin:7px}#finish{padding:12px}.big-star{font-size:45px}}
@media(max-height:700px) and (orientation:landscape){header{height:54px}.brand{font-size:21px}.brand small{display:none}.mitre{height:40px;width:34px;font-size:25px}main{height:calc(100dvh - 54px);padding:6px 10px 9px}#room{gap:5px}#room-nav a{padding:6px;font-size:13px}.room-heading{height:27px}.room-heading h1{font-size:20px}.room-heading>span{font-size:10px}.play-layout{grid-template-columns:minmax(0,1.35fr) minmax(390px,1fr)}.activity{padding:10px}#game{gap:5px}#question{font-size:17px;padding:8px 10px;margin:0}#passage{font-size:14px;line-height:1.35}#passage-box{padding:8px 10px}#passage-box h2{font-size:17px;margin-bottom:4px}#answers button{min-height:47px;padding:7px 10px;font-size:22px}#answers button.long{font-size:14px}#feedback{font-size:12px;min-height:16px}#hint{font-size:12px;padding:6px}#equation{font-size:29px;margin:1px}#progress span{height:8px}.game-top button{min-height:28px;padding:4px}.game-bottom button{min-height:35px;font-size:12px}.game-bottom .primary{font-size:14px;min-height:35px}#setup{padding:13px}#setup h2{font-size:23px;margin:7px}#setup p{margin:8px}#setup select{padding:8px}#setup label{margin:8px}#visual{height:64px}.home-title h1{font-size:26px}.home-title p{font-size:12px}.room-card{padding:7px 10px}.room-card strong{font-size:14px}.room-card small{font-size:10px}aside h2{font-size:20px}#house-wrap{width:min(100%,calc((100dvh - 136px)*1.5))}}
@media(max-width:600px){header{padding:5px 9px;height:56px}.brand{font-size:17px;gap:6px}.brand small{display:none}.mitre{width:29px;height:35px;font-size:23px}.top-actions{gap:3px}.top-actions button{font-size:10px;padding:6px;min-height:35px}main{height:calc(100dvh - 56px);padding:6px}#room-nav{gap:3px}#room-nav a{font-size:10px}.room-heading h1{font-size:18px}.room-heading{gap:8px}.play-layout{grid-template-rows:minmax(0,.55fr) minmax(0,1.45fr)}#scene-status{font-size:11px;padding:5px;bottom:5px;min-height:25px}.activity{padding:8px}#passage{font-size:13px}#question{font-size:15px}#answers button.long{font-size:12px}#answers button{min-height:43px}#hint{font-size:12px}#read{font-size:12px}#game{gap:5px}.game-bottom .primary{font-size:13px}.home-title p{font-size:12px}#room-list{grid-template-columns:repeat(2,1fr)}#house-wrap{width:min(100%,calc((100dvh - 410px)*1.5))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

#story-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}#story-controls[hidden]{display:none}#story-controls #story-read{grid-column:1/-1}#story-controls button{margin-top:4px}
@media(max-height:700px) and (orientation:landscape){#finish{padding:12px}#finish h2{font-size:22px;margin:7px 0}#finish p{font-size:14px;margin:7px 0}#finish .big-star{font-size:42px}#finish button,#finish a{padding:8px;min-height:40px;margin-top:6px}}

#hint .mab{display:block;width:100%;height:104px;margin-top:6px}
@media(max-height:700px) and (orientation:landscape){#hint .mab{height:82px}}
@media(orientation:portrait){.play-layout:has(#hint:not([hidden]) .mab){grid-template-rows:minmax(0,.65fr) minmax(0,1.35fr)}#hint:has(.mab){font-size:12px;line-height:1.25}#hint .mab{height:100px}}

#story-controls #story-party{grid-column:1/-1}

/* Every choice in an exercise has the same typography and dimensions. */
#answers{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr}
#answers button,#answers button.long{font-size:clamp(16px,2.1vh,22px);min-width:0;overflow-wrap:break-word;display:flex;align-items:center;justify-content:center}
@media(max-height:700px) and (orientation:landscape){#answers button,#answers button.long{font-size:16px}}
