:root{color-scheme:dark;--ink:#eee5cf;--muted:#b2baac;--gold:#d9b46c;--line:#4c554b;--panel:#19241f;font-family:Georgia,'Times New Roman',serif;background:#101815;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;height:100dvh}button{font:600 14px/1.35 system-ui,sans-serif;touch-action:manipulation;cursor:pointer;color:var(--ink);background:#344334;border:1px solid #899272;border-radius:6px;padding:11px 13px;min-height:44px;min-width:44px;overflow-wrap:anywhere}button:hover{background:#425541}button:disabled{opacity:.5;cursor:default}button:focus-visible,summary:focus-visible,.quest-content:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}h1:focus{outline:none}
.top{position:fixed;z-index:2;inset:0 0 auto;display:flex;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:linear-gradient(#101815d9,transparent);font:10px/1.4 system-ui,sans-serif;letter-spacing:.12em;color:var(--gold);pointer-events:none}.top span:last-child{color:var(--ink);letter-spacing:0}
#play{position:fixed;inset:0;height:100dvh;overflow:hidden;outline:none}.scene{position:absolute;inset:0;margin:0;background:#20302b}.scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.panel{position:absolute;z-index:1;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,780px);max-height:66.667dvh;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));border:1px solid #63705a;border-bottom:0;border-radius:18px 18px 0 0;background:linear-gradient(#223027f7,var(--panel) 160px);box-shadow:0 -8px 30px #0004}
.quest-header{flex:none;padding:15px 0 10px}.eyebrow{margin:0 0 6px;color:var(--gold);font:10px/1.35 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.label-row{display:flex;align-items:center;gap:8px;min-width:0}.label-row>h1,.label-row>h2,.choice .label-row>button:first-child{flex:1;min-width:0}h1{font-size:clamp(22px,5.7vw,26px);font-weight:400;line-height:1.16;margin:0;overflow-wrap:anywhere}h2{font-size:19px;font-weight:400;line-height:1.3;margin:0 0 8px}h3{font:600 14px/1.4 system-ui,sans-serif}p{font-size:15.5px;line-height:1.55;margin:0 0 14px}.quest-content{flex:0 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:0 3px 1px 0;scroll-padding-block:10px}.story{max-width:65ch}.selected{color:var(--gold);font-style:italic}.choices,.thread-list{display:grid;gap:10px}.choices{margin-top:16px}.choice{padding:0 0 10px;border-bottom:1px solid var(--line)}.choice button,.thread-list button{text-align:left}.info-button{flex:0 0 44px;width:44px;height:44px;background:transparent;border:0;padding:10px;display:grid;place-items:center;color:var(--gold)}.info-button span{display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;font:italic 600 14px Georgia,serif}.primary{width:100%;text-align:center;background:#c8a263;border-color:#e0c78f;color:#18221a}.primary:hover{background:#dec083}.work{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.note,.waiting{font:13px/1.5 system-ui,sans-serif;color:var(--muted);margin:8px 0 12px}.waiting-threads{font:14px/1.5 system-ui,sans-serif;margin-top:12px}.waiting-threads summary{cursor:pointer;color:var(--gold);padding:12px 0;min-height:44px}
.quest-footer{flex:none;padding:8px 0 calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.story-navigation{position:absolute;z-index:3;top:calc(36px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));left:max(8px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:flex-end;gap:4px;pointer-events:none}.story-navigation button{background:#19241fe8;pointer-events:auto}.story-navigation:empty{display:none}.subtle{background:transparent;border:0;padding:8px 6px;font-size:12px;font-weight:400}.quest-footer p{font:10px/1.4 system-ui,sans-serif;text-align:center;color:var(--muted);margin:4px 0 0}
/* Native modal provides a focus trap and Escape dismissal; only its content scrolls. */
dialog{width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:14px;background:var(--panel);color:var(--ink);border:1px solid #899272;border-radius:12px;overflow:hidden}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#0009}.close-info{align-self:flex-end;flex:none;background:transparent;border:0;margin:0 0 6px}.info-content{overflow:auto;min-height:0;overscroll-behavior:contain;overflow-wrap:anywhere}.info-content p{font:14px/1.5 system-ui,sans-serif}.requirement{font:14px/1.5 system-ui,sans-serif;margin:12px 0}.requirement strong{color:var(--gold);font-size:12px}.requirement ul{padding-left:18px;margin:4px 0}
@media(min-width:700px){.panel{padding-inline:28px}.scene img{object-position:center 30%}}
@media(max-height:500px){.quest-header{padding-top:8px;padding-bottom:6px}.eyebrow{font-size:9px;margin-bottom:3px}h1{font-size:22px}.quest-footer{padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}.quest-footer p{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Quest selection is an explicit navigation surface, without narrative artwork. */
.neutral-scene{background:radial-gradient(ellipse at 50% 18%,#34434a 0,transparent 58%),repeating-linear-gradient(45deg,transparent 0 31px,#d6e1df08 32px 33px),#142129;display:flex;flex-direction:column;align-items:center;padding-top:calc(82px + env(safe-area-inset-top));color:#dce3df}.scene-emblem{font:42px/1 system-ui,sans-serif;margin-bottom:8px}.scene-status{font:11px/1.4 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;text-align:center}.quest-menu-panel{background:linear-gradient(#23313afc,#19242cfb);border-color:#71818b}.quest-menu-panel .eyebrow{color:#c4d7e0}.menu-explanation{font:13px/1.5 system-ui,sans-serif;color:#cad4d8;margin-bottom:12px}.menu-section-title{font:600 12px/1.4 system-ui,sans-serif;margin:0 0 8px}.quest-card{display:flex;align-items:center;gap:12px;background:#2d3c46;border-color:#647682;padding:11px 12px}.quest-card:hover{background:#3a4d59}.quest-card-icon{font:24px/1 system-ui,sans-serif;color:#c4d7e0}.quest-card-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.quest-card-title{font:500 14px/1.35 system-ui,sans-serif}.quest-card-action{font:11px/1.3 system-ui,sans-serif;color:#c4d7e0}.art-unavailable .scene-status{max-width:80%;padding:10px;background:#142129dd}.scene img[hidden]{display:none}

.quest-menu-illustration img{filter:saturate(.45) brightness(.7)}

/* Read-only contract references; no route or choice controls. */
.design-contract dl{margin:0}.contract-row{margin:14px 0}.contract-row dt{font-weight:700}.contract-row dd{margin:6px 0}.design-contract ul{padding-left:20px}.design-contract li{margin:8px 0}.design-contract small{display:block;font-size:.82em;color:var(--muted,#706757);margin:4px 0}.requirement-state{font-weight:600}.requirement-context{margin:6px 0}.requirement-context summary,.requirement-sources summary,.requirement-group summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.requirement-context p{line-height:1.5}.contract-authored-detail p{margin:8px 0}.contract-note{font-size:.85em}.requirements-tree{max-width:100%;overflow-wrap:anywhere}

/* Keep the scene's focal action visible above the content-sized sheet. */
.scene{overflow:hidden;background:#17231d}.scene::before{content:"";position:absolute;inset:-20px;background-image:var(--scene-backdrop,none);background-size:cover;background-position:center 25%;filter:blur(20px);opacity:.45}.scene img{position:relative;z-index:1;height:var(--art-height,100%);object-fit:contain;object-position:center top}
