/* Lightweight game-like controls; no content is hidden pending an animation. */
.launch-label{text-decoration:none}
.contract-panel{grid-template-columns:minmax(0,1fr);gap:18px}
.contract-address{min-width:0}
.contract-address code{display:block;font-family:Consolas,monospace;font-size:clamp(.95rem,1.6vw,1.1rem);line-height:1.7;overflow-wrap:anywhere;user-select:all;color:var(--gold)}
.contract-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 22px}
.contract-actions .text-link{margin:0}
.contract-actions .game-button{margin:0;font-size:1.2rem}
.contract-status:empty{display:none}
.contract-copy-fallback{min-width:0}
.contract-copy-fallback label{display:block;margin-bottom:8px;font-size:.85rem}
.contract-copy-fallback textarea{display:block;width:100%;max-width:100%;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:0;background:#14232b;color:var(--paper);font:1rem/1.6 Consolas,monospace;overflow-wrap:anywhere}
.contract-copy-fallback textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.contract-copy-fallback p{margin-top:8px}
.contract-actions button:disabled{cursor:wait;opacity:.7}
[hidden]{display:none!important}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:20;pointer-events:none}
.reading-progress span{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
.site-header nav a{position:relative;transition:color .15s}
.site-header nav a[aria-current]{color:var(--gold)}
.site-header nav a[aria-current]:after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:2px;background:var(--gold)}
.game-button{transition:background .15s,transform .15s,box-shadow .15s}
.game-button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 3px #3e3725}
.hero-actions{flex-wrap:wrap;gap:18px 24px}.hero-actions .text-link{margin:0}
.hero{border-bottom:1px solid var(--line)}
.dialogue{padding:18px 20px 14px;background:linear-gradient(120deg,#203038,#14222a);border:1px solid #46554d;border-left:3px solid var(--ochre);box-shadow:inset 0 0 0 3px #111d24;margin-top:30px}
.dialogue-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.dialogue-hint{font-size:.68rem;color:var(--muted);text-align:right}
.dialogue #nieve-reply{min-height:4.2em;font-size:1.45rem;line-height:1.25;display:flex;align-items:start}
.dialogue-choices{display:grid;gap:3px;margin:8px 0 12px;padding-top:12px;border-top:1px solid #3a494b}
.dialogue-choices button{font:1.2rem/1.25 Runescape,Georgia,serif;color:var(--gold);text-align:left;cursor:pointer;padding:9px 10px;background:transparent;border:1px solid transparent;min-height:40px}
.dialogue-choices button span{color:#899b98;margin-right:7px}
.dialogue-choices button:hover,.dialogue-choices button[aria-pressed=true]{background:#283b40;border-color:#556456;color:#fff0b4}
.dialogue-caption{font-size:.72rem}
.interaction-hint{font-size:.85rem;color:var(--muted);margin:30px 0 -21px}
.reward-flow.is-interactive{gap:12px}
.reward-flow.is-interactive li{display:block;min-width:0}
.reward-step{appearance:none;width:100%;height:100%;position:relative;padding:22px 20px;border:1px solid var(--line);background:#15232a;color:var(--paper);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.reward-step:after{content:'↗';position:absolute;right:18px;top:16px;color:#7e9293}
.reward-step-title{display:block;font:1.6rem/1.2 Runescape,Georgia,serif;margin-bottom:10px}
.reward-step-summary{display:block;font-size:.9rem;line-height:1.6;color:var(--muted)}
.reward-step:hover{background:#1d3038;border-color:#789092}
.reward-step[aria-pressed=true]{border-color:var(--gold);background:#253131;box-shadow:inset 0 3px var(--gold)}
.reward-step[aria-pressed=true] .step-number,.reward-step[aria-pressed=true]:after{color:var(--gold)}
.reward-inspector{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid #455a5b;background:#0d1a21;margin-top:16px}
.reward-scene{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-width:0;padding:28px 22px;background:radial-gradient(ellipse at center,#1f3d46,#0f1d25 75%);border-right:1px solid #34494f}
.scene-caption{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#a9c0c0}
.reward-route{display:flex;gap:12px;align-items:center;width:100%;justify-content:center}
.route-node{border:1px solid #4c6267;box-shadow:0 4px #060e13;width:77px;aspect-ratio:1;display:grid;place-items:center;background:#1b2d35;color:#99aaad;font:1.3rem/1 Runescape,Georgia,serif;transition:background .18s,border-color .18s,color .18s}
.route-node.is-current{color:#fff0b3;background:#4e452d;border-color:#e1c266;box-shadow:0 4px #100f0a,0 0 22px #dbb94415}
.route-link{color:#6e8b91}.scene-footnote{font-size:.72rem;color:#a0b2b4;text-align:center}
.reward-detail{padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.reward-detail .eyebrow{font-size:.7rem;margin-bottom:12px;color:var(--gold)}
.reward-detail h3{margin-bottom:10px;font-size:1.85rem}
.reward-detail-copy>p:last-child{font-size:.9rem;color:var(--muted);min-height:8em}
.text-button{font:inherit;font-size:.88rem;cursor:pointer;border:0;background:transparent;color:var(--gold);padding:8px 0;text-align:left;align-self:start;text-decoration:underline;text-underline-offset:5px}
.text-button:hover{color:#fff0b3}
@media(min-width:1101px){.hero{align-items:start}.hero-portrait{align-self:center}.hero h1{font-size:clamp(5.5rem,7.4vw,8rem)}.hero{padding-top:48px}}
@media(max-width:1100px){.site-header{gap:20px}.site-header nav{gap:16px;font-size:.85rem}.hero{align-items:start}.dialogue #nieve-reply{font-size:1.3rem;min-height:5em}.dialogue-heading{flex-wrap:wrap;gap:2px 10px}.reward-route{gap:8px}.route-node{width:64px;font-size:1.15rem}.reward-detail{padding:24px}.reward-detail-copy>p:last-child{min-height:10em}}
@media(max-width:760px){.site-header nav{gap:16px 22px;font-size:.8rem}.hero-portrait{max-width:400px}.hero{gap:28px}.dialogue #nieve-reply{min-height:3.8em;font-size:1.4rem}.dialogue{padding:16px}.dialogue-choices button{min-height:44px}.dialogue-heading{flex-wrap:nowrap}.reward-flow.is-interactive{grid-template-columns:1fr;gap:8px}.reward-step{display:grid;grid-template-columns:32px 1fr;padding:18px 16px;column-gap:12px}.reward-step .step-number{grid-row:1/3;margin:0}.reward-step-title{font-size:1.45rem;padding-right:20px;margin-bottom:6px}.reward-step-summary{grid-column:2;font-size:.85rem}.reward-inspector{grid-template-columns:1fr}.reward-scene{border-right:0;border-bottom:1px solid #34494f;padding:24px;gap:18px}.reward-route{gap:16px}.route-node{width:70px;font-size:1.25rem}.reward-detail{padding:23px}.reward-detail-copy>p:last-child{min-height:7.8em}.interaction-hint{font-size:.8rem;margin-bottom:-12px}.hero-actions .game-button{font-size:1.25rem}.hero-actions .text-link{font-size:.86rem}}
@media(max-width:380px){.site-header nav{gap:12px 17px}.hero-actions{display:flex}.dialogue-hint{font-size:.62rem}.dialogue #nieve-reply{min-height:5em}.reward-route{gap:10px}.route-node{width:64px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
