/* v9: the year belongs to the door; ordinary controls remain ordinary controls. */
#intro{position:fixed;inset:0;z-index:4;background:#080d11;color:#fff6e6;overflow:hidden}
.portal-world{position:absolute;width:max(100vw,150dvh);height:max(100dvh,66.6667vw);left:50%;top:0;translate:-50% 0;transform-origin:50% 0;container-type:inline-size;transform:scale(.92);transition:transform 5s cubic-bezier(.2,.5,.3,1)}
.portal-world picture{display:block;width:100%;height:100%}
.portal-image{display:block;width:100%;height:100%;object-fit:fill;filter:brightness(.42) saturate(.65);transition:filter 4.5s ease;pointer-events:none}
.slot-reels{position:absolute;left:41.05%;top:5.85%;width:18.25%;height:7.75%;display:grid;grid-template-columns:repeat(4,1fr);gap:.5cqw;align-items:center;text-align:center;font:500 4.5cqw/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#e9e1cf;font-variant-numeric:tabular-nums;pointer-events:none;text-shadow:0 0 7px #fff5c540}
.slot-reels number-flow{--number-flow-mask-height:.04em;--number-flow-mask-width:0em;min-width:0;display:block;overflow:hidden}
#intro:is([data-mode=spinning],[data-mode=landed],[data-mode=ready],[data-mode=entering]) .portal-world{transform:scale(1)}
#intro:is([data-mode=spinning],[data-mode=landed],[data-mode=ready],[data-mode=entering]) .portal-image{filter:brightness(1) saturate(.85)}
#portal-enter{position:absolute;left:48%;top:42%;width:18%;height:24%;padding:0;border:0;background:none;color:#fff7e7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.interact-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid #f8ead4;border-radius:50%;background:#11191ee6;font:24px Arial,sans-serif;transition:background .18s,color .18s}
.interact-label{font-size:14px;padding:8px 12px;white-space:nowrap;background:#11191ef0;line-height:1.5}
kbd{display:inline-block;font:11px Arial,sans-serif;border:1px solid #c6c6bd;border-radius:3px;padding:3px 5px;margin-left:8px;color:inherit}
#portal-enter:hover .interact-mark{color:#182129;background:#fff6e6}
#portal-enter:focus-visible{outline:2px solid #fff7dc;outline-offset:5px}
#portal-choices{position:absolute;bottom:90px;left:24px;right:24px;text-align:center}
#portal-copy{margin:0 0 12px;min-height:22px;font-size:14px;text-shadow:0 2px 8px #000}
#portal-look{min-height:44px;padding:10px 16px;font-size:14px;background:#101a20eb;border:1px solid #87908f;color:#fff6e7}
#intro[data-mode=entering] #portal-enter,#intro[data-mode=entering] #portal-choices{opacity:0;pointer-events:none}
body:is([data-state=idle],[data-state=rewind],[data-state=portal]) #time{display:none}
#sound-toggle{position:fixed;z-index:8;top:max(16px,env(safe-area-inset-top));right:24px;min-width:100px;min-height:44px;padding:10px 14px;background:#11191ef2;border:1px solid #89908f;color:#fff6e6;font-size:13px}
nav{bottom:max(12px,env(safe-area-inset-bottom));gap:16px;pointer-events:none}
nav button{min-height:44px;padding:10px 12px;color:#fff6e6;background:#11191ef2;font-size:13px;pointer-events:auto}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #fff3ce;outline-offset:4px}
button:disabled{cursor:wait}
.game-choice{display:flex;align-items:center;gap:14px;min-height:56px;padding:14px 18px;border:1px solid #aaa99f;background:#11191ef2;color:#fff8ec;font-size:15px;text-align:left;border-radius:3px;touch-action:manipulation}
.game-choice span{flex:1}.game-choice kbd{margin:0;min-width:24px;text-align:center}.game-choice b{display:none}
.game-choice.secondary{background:#11191edb;border-color:#7e8684}
.game-choice:hover{background:#e8e1d1;color:#172029}
.choice-stack{display:flex;flex-direction:column;gap:10px}
#school #school-choices{position:absolute;z-index:6;bottom:90px;right:6vw;width:370px;max-width:calc(100vw - 48px);transition:opacity .25s}
#school #school-choices #school-next,#school #school-choices #school-look{position:static;transform:none;width:100%;min-width:0;min-height:56px;display:flex;flex-direction:row;align-items:center;gap:14px;padding:14px 18px;text-shadow:none;font-size:15px;border:1px solid #aaa99f;border-radius:3px;background:#11191ef2;color:#fff8ec}
#school #school-choices #school-look{background:#11191edb;border-color:#7e8684}
#school #school-choices button:hover{background:#e8e1d1;color:#172029}
#school #school-choices button:disabled{opacity:.55}
#school #school-caption{left:auto;right:6vw;bottom:244px;width:370px;max-width:calc(100vw - 48px);text-align:left;font-size:15px;line-height:1.8;word-break:keep-all}
#school #school-back{left:24px;bottom:86px;min-height:44px;padding:10px 14px;background:#11191ef2;font-size:13px}
#school.moving #school-choices{opacity:0;pointer-events:none}
body[data-school=meeting] #school #school-caption{left:8vw;right:auto;bottom:37%;width:auto;max-width:40vw}
.school-shade{background:linear-gradient(180deg,#0f160f50,transparent 28%,transparent 48%,#11160fe6)}
#phone-close,#answer-form button,#settings-close{min-width:44px;min-height:44px}
#home-button{width:44px;height:44px;left:calc(50% - 22px);bottom:5px}
.hint summary{min-height:44px;display:flex;align-items:center;font-size:12px;color:#485665}
.hint summary:before{content:'▸';margin-right:7px}.hint[open] summary:before{content:'▾'}
#answer:focus-visible{outline-color:#2363a0;outline-offset:1px}
.chat-header small,.chat .date{color:#526171}
@media(max-width:700px){
 #sound-toggle{right:16px;top:max(12px,env(safe-area-inset-top))}
 .portal-world{top:50%;translate:-50% -50%;transform-origin:50% 50%;width:max(100vw,66.6667dvh);height:max(100dvh,150vw);transform:scale(1)}
 #intro:is([data-mode=spinning],[data-mode=landed],[data-mode=ready],[data-mode=entering]) .portal-world{transform:scale(1.12)}
 .slot-reels{left:42.15%;top:29.4%;width:15.3%;height:2.9%;gap:.4cqw;font-size:3.9cqw}
 #portal-enter{left:45%;top:41%;width:20%;height:14%}
 #portal-choices{bottom:82px}
 kbd{display:none}
 #school #school-choices{left:24px;right:24px;bottom:130px;width:auto;max-width:none}
 #school #school-caption{left:24px;right:24px;bottom:275px;width:auto;max-width:none;font-size:14px}
 #school #school-back{left:auto;right:24px;bottom:72px}
 body[data-school=meeting] #school #school-caption{top:135px;bottom:auto;left:25px;max-width:80vw}
 body[data-school=meeting] #school #school-back{left:22px;right:auto;bottom:70px}
 nav{left:16px;right:16px;gap:8px}
}
@media(max-height:650px){
 #school #school-choices{bottom:114px;gap:8px}
 #school #school-choices #school-next,#school #school-choices #school-look{min-height:48px;padding:10px 14px;font-size:14px}
 #school #school-caption{bottom:236px;font-size:13px}
 #school #school-back{bottom:64px}
 body[data-school=meeting] #school #school-caption{top:117px}
 .handset{padding-bottom:52px}
}
@media(prefers-reduced-motion:reduce){.portal-world,.portal-image{transition:none}.portal-world{transform:none}}
