/* Pėdsakas: game catalog and investigation workspace. Tokens come from DESIGN.md. */
@font-face{font-family:'Pedsakas Display';src:url('/assets/barlow-semicondensed-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Pedsakas Sans';src:url('/assets/source-sans-3-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Pedsakas Sans';src:url('/assets/source-sans-3-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
*{box-sizing:border-box;scrollbar-color:var(--color-border) var(--color-background)}
html{scrollbar-gutter:stable;scrollbar-width:auto;color-scheme:dark;scroll-behavior:smooth}
body{margin:0;background:var(--color-background);color:var(--color-text);font:17px/1.6 var(--font-sans)}
::selection{background:var(--color-primary);color:var(--color-background)}
::-webkit-scrollbar{width:14px;height:14px}
::-webkit-scrollbar-track{background:var(--color-background)}
::-webkit-scrollbar-thumb{background:var(--color-border);border:3px solid var(--color-background);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}
::-webkit-scrollbar-thumb:active{background:var(--color-primary)}
button,input,select,textarea{font:inherit}
button,a,input,textarea,select{touch-action:manipulation}
button{cursor:pointer}button:disabled{cursor:default;opacity:.55}form[aria-busy=true] button:disabled{cursor:wait}
a{color:inherit;text-underline-offset:4px}img{display:block;max-width:100%}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.12;letter-spacing:-.015em}
h1{font-size:clamp(2.6rem,4vw,4rem);margin-bottom:1rem}h2{font-size:clamp(1.8rem,2.7vw,2.5rem);margin-bottom:1rem}h3{font-size:1.4rem;margin-bottom:.65rem}
strong,b{font-weight:600}p{margin-bottom:1rem}small{font-size:.88em}.muted,small{color:var(--color-muted)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}
main{min-height:calc(100svh - 84px)}main:focus-visible{outline:none}[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.shell{max-width:var(--space-page-max);margin-inline:auto;padding-inline:2rem}
.skip{position:fixed;z-index:20;top:.5rem;left:1rem;background:var(--color-primary);color:var(--color-background);padding:.75rem 1rem;transform:translateY(-160%);border-radius:var(--radius-default)}
.skip:focus{transform:none}

/* Site chrome: one desktop row, an intentional disclosure on phones. */
.site-header{position:relative;z-index:5;background:var(--color-background);border-bottom:1px solid var(--color-chrome-border)}
.header-inner{max-width:var(--space-page-max);min-height:84px;margin-inline:auto;padding:.8rem 2rem;display:flex;align-items:center;gap:2.5rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;flex-shrink:0;text-decoration:none;font:600 1.4rem/1 var(--font-display);letter-spacing:.06em}
.brand img{width:38px;height:38px;border-radius:var(--radius-sm)}
.header-inner nav{display:flex;align-items:center;gap:1.5rem;margin-left:auto}
.header-inner nav>a{display:inline-flex;align-items:center;min-height:46px;text-decoration:none;white-space:nowrap;font-size:.96rem;color:var(--color-muted);border-bottom:2px solid transparent;transition:color .16s,border-color .16s}
.header-inner nav>a:hover{color:var(--color-text)}.header-inner nav>a[aria-current=page]{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.header-inner nav>a[aria-current=page]{font-weight:600}
.header-inner #account{margin-left:.5rem;background:var(--color-surface);border-color:var(--color-chrome-border);font-size:.92rem}
.header-inner #account:hover{background:var(--color-tint);border-color:var(--color-border)}
.menu-toggle{display:none;margin-left:auto;min-width:46px;min-height:46px;background:transparent;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-default)}
.menu-toggle svg{display:block;width:22px;height:22px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.7}
.demo-banner{padding:.5rem 1rem;text-align:center;background:var(--color-surface);border-bottom:1px solid var(--color-chrome-border);color:var(--color-muted);font-size:.8rem}
.demo-banner strong{color:var(--color-primary)}
.site-footer{margin-top:5rem;padding-block:2.5rem;border-top:1px solid var(--color-chrome-border);color:var(--color-muted);font-size:.92rem}
.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem}
.footer-brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--color-text);text-decoration:none;font:600 1.25rem var(--font-display);letter-spacing:.06em}
.footer-brand img{width:32px;height:32px;border-radius:var(--radius-sm)}
.footer-about p{max-width:38ch;margin:1rem 0 0}
.footer-links{display:flex;flex-direction:column;align-items:start;gap:.45rem}
.footer-links h2{font:600 .95rem var(--font-sans);color:var(--color-text);margin:0 0 .6rem}
.footer-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.footer-links a:hover{text-decoration:underline;color:var(--color-text)}
.footer-links .button{justify-content:start;padding-inline:0;font-weight:400;min-height:44px}
.footer-bottom{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--color-chrome-border);display:flex;justify-content:space-between;gap:1rem;font-size:.82rem}
.footer-bottom p{margin:0}

/* Shared native controls. */
.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.72rem 1.25rem;background:var(--color-primary);color:var(--color-background);border:1px solid var(--color-primary);border-radius:var(--radius-default);font-weight:600;font-size:.96rem;line-height:1.4;text-decoration:none;transition:background .16s,border-color .16s,box-shadow .16s}
.button:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.button:active{box-shadow:inset 0 2px 5px #0003}
.button.secondary{background:transparent;color:var(--color-text);border-color:var(--color-border)}
.button.secondary:hover{background:var(--color-tint);border-color:var(--color-muted)}
.button.quiet{background:transparent;color:var(--color-text);border-color:transparent}
.button.quiet:hover{background:var(--color-surface)}
.button.danger{background:var(--color-danger);color:var(--color-background);border-color:var(--color-danger)}
.button.danger:hover{background:var(--color-danger);filter:brightness(.95)}
.button.small{min-height:44px;padding:.45rem .8rem;font-size:.87rem}
.button:disabled:hover{background:var(--color-primary);border-color:var(--color-primary);box-shadow:none}
.button.secondary:disabled:hover,.button.quiet:disabled:hover{background:transparent;border-color:var(--color-border)}
.icon-button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;background:transparent;border:1px solid currentColor;border-radius:var(--radius-default);color:inherit}
.icon-button:hover{background:#80808018}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin:1.4rem 0}
.eyebrow{font:.85rem/1.5 var(--font-sans);letter-spacing:0;text-transform:none;color:var(--color-muted)}
.field{display:grid;gap:.5rem;margin-bottom:1.15rem;min-width:0}
.field label,.field>span{font-size:.92rem;font-weight:600}
.field input,.field select,.field textarea,.filters input,.filters select{width:100%;max-width:100%;min-height:48px;padding:.7rem .85rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-default)}
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-danger)}
.field input::placeholder,.field textarea::placeholder{color:var(--color-muted);opacity:.85}
.field textarea{resize:none;min-height:160px;line-height:1.7}
input[type=radio],input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:.24rem 0 0;accent-color:var(--color-primary)}
.feedback{min-height:1.6rem;margin:.7rem 0;color:var(--color-danger);font-size:.92rem;line-height:1.5}
.feedback.success{color:var(--color-success)}
.option{display:flex;align-items:start;gap:.8rem;padding:.8rem .9rem;margin-bottom:.65rem;border:1px solid var(--color-border);border-radius:var(--radius-default);font-size:.98rem;cursor:pointer}
.option:hover{background:var(--color-tint)}
.option:has(input:checked){border-color:var(--color-primary);background:var(--color-tint)}
.options{min-width:0;border:0;padding:0;margin:0 0 1rem}
.options legend{font-size:.95rem;margin-bottom:.8rem}
.empty{padding:2rem;border:1px dashed var(--color-border);border-radius:var(--radius-default);text-align:center;grid-column:1/-1}
.loading,.loading-state{padding-block:4rem;min-height:50vh;color:var(--color-muted)}
.loading-state h1{color:var(--color-text)}
.badge{display:inline-block;border-radius:var(--radius-sm);padding:.3rem .65rem;background:var(--color-paper);color:var(--color-ink);font:600 .75rem/1.4 var(--font-sans)}
.badge.brass{background:var(--color-primary);color:var(--color-background)}
.divider{border:0;border-top:1px solid var(--color-chrome-border);margin:1.5rem 0}
.local-notice{padding:1rem 1.2rem;border-left:3px solid var(--color-primary);background:var(--color-surface);color:var(--color-muted);margin-top:1.2rem;font-size:.9rem}

/* Public launcher and shared story selection. */
.home-opening{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.4rem .8rem;font-size:.88rem;color:var(--color-muted)}
.home-opening p{margin:0}.home-opening a{display:inline-flex;align-items:center;min-height:44px;gap:.75rem;text-decoration:none}.home-opening a:hover{color:var(--color-text)}
.hero{padding:0}.hero-feature{--hero-fade-start:36%;--hero-fade-end:75%;position:relative;isolation:isolate;display:flex;align-items:center;min-height:640px;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}
.hero-copy{position:relative;z-index:1;min-width:0;width:660px;padding:3.25rem}
.hero-kicker{display:flex;align-items:center;gap:.65rem;font-size:.85rem;color:var(--color-primary);margin-bottom:1.65rem}
.feature-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:currentColor}
.hero h1{font-size:clamp(4.5rem,7.4vw,6.75rem);letter-spacing:-.055em;line-height:.94;max-width:9ch;margin-bottom:1.8rem}
.hero-feature.long-title h1{font-size:clamp(3.5rem,5.9vw,5.5rem);max-width:12ch}
.hero .intro{font-size:1.13rem;color:var(--color-muted);line-height:1.55;max-width:38ch;margin:0}
.hero .actions{margin:2rem 0 1rem;gap:.8rem}.hero .actions .button{min-height:54px;padding-inline:1.4rem}.hero .actions .button svg{width:19px;height:19px;fill:currentColor;stroke:none}
.hero .actions .secondary{background:var(--color-background);border-color:var(--color-chrome-border)}.hero .actions .secondary:hover{background:var(--color-tint);border-color:var(--color-border)}
.hero-facts{font-size:.85rem;line-height:1.6;color:var(--color-muted);margin:0;max-width:50ch}
.hero-media{position:absolute;inset:0;z-index:0;min-width:0}.hero-photo{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-surface)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:75% center}
.hero-photo:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--color-background),color-mix(in srgb,var(--color-background) 95%,transparent) var(--hero-fade-start),transparent var(--hero-fade-end))}
.feature-caption{position:absolute;z-index:2;right:1.5rem;bottom:1.5rem;padding:.6rem .85rem;border-radius:var(--radius-sm);display:flex;gap:.8rem;background:var(--color-background);font-size:.78rem;color:var(--color-muted)}
.feature-caption .feature-free{color:var(--color-text)}
.feature-choices{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:1rem;margin-top:1rem;align-items:stretch}
.feature-choices>span{align-self:center;color:var(--color-muted);font-size:.86rem;line-height:1.5;padding-left:.2rem}.feature-choices>span strong{color:var(--color-text);font-size:1.06rem}
.feature-choice{display:flex;align-items:center;min-width:0;gap:1rem;padding:.8rem;background:var(--color-surface);color:var(--color-text);border:1px solid transparent;border-radius:var(--radius-default);text-align:left;line-height:1.35;font-size:.97rem}
.feature-choice img{width:80px;height:56px;object-fit:cover;flex-shrink:0;border-radius:var(--radius-sm)}.feature-choice small{display:block;color:var(--color-muted);font-size:.75rem;margin-bottom:.25rem}
.feature-choice .choice-arrow{font-size:1.25rem;margin-left:auto;color:var(--color-muted)}.feature-choice:hover{background:var(--color-tint)}.feature-choice[aria-pressed=true]{border-color:var(--color-primary)}.feature-choice:active{border-color:var(--color-border)}
.section{padding-top:var(--space-section-gap);padding-bottom:1rem}.section-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.5rem}
.section-head h2{font-size:2rem;margin:.4rem 0 0;letter-spacing:-.035em}.section-head p{margin:0;color:var(--color-muted);max-width:45ch}.section-head>a{display:inline-flex;align-items:center;min-height:44px;gap:.7rem;font-size:.91rem;text-decoration:none;flex-shrink:0}.section-head>a:hover{color:var(--color-primary)}
.rail-help{color:var(--color-muted);font-size:.8rem;margin:0 0 .75rem}
.home-case-rail{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:calc((100% - 3rem)/4);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:.4rem;overscroll-behavior-x:contain;padding:.4rem .4rem 1rem;margin-inline:-.4rem;gap:1rem!important}
.home-case-rail .case-card{scroll-snap-align:start}
.home-challenge{display:grid;grid-template-columns:1fr 1.35fr;gap:4rem;align-items:center;margin-top:4.5rem;padding:3rem;border-radius:var(--radius-lg)}
.challenge-demo{border:1px solid var(--color-paper-border);border-radius:var(--radius-default);padding:2rem;max-width:390px}
.challenge-demo>span{display:block;color:var(--color-paper-muted);font-size:.85rem}.challenge-demo>strong{display:block;font:600 clamp(3rem,6vw,5rem)/1.2 var(--font-mono);letter-spacing:-.08em;margin:1rem 0}
.challenge-demo>div{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--color-paper-border);font-size:.86rem}
.challenge-copy>.eyebrow{color:var(--color-paper-muted)}.challenge-copy h2{font-size:clamp(2rem,3.3vw,3rem);letter-spacing:-.04em;margin:.8rem 0 1rem}.challenge-copy p{color:var(--color-paper-muted);max-width:42ch}
.challenge-copy .button{margin-top:.5rem;background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.challenge-copy .button:hover{background:var(--color-paper-muted);border-color:var(--color-paper-muted)}
.home-together{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;margin-top:4.5rem}
.together-visual{position:relative;min-width:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface)}.together-visual img{width:100%;aspect-ratio:1.15;object-fit:cover}.together-cap{position:absolute;bottom:1.25rem;left:1.25rem;right:1.25rem;padding:.6rem .8rem;background:var(--color-background);color:var(--color-muted);border-radius:var(--radius-sm);font-size:.8rem}
.together-copy h2{font-size:clamp(2.1rem,3.5vw,3.35rem);letter-spacing:-.045em;line-height:1.05;margin:1rem 0 1.4rem}.together-copy>p{max-width:46ch;color:var(--color-muted)}.together-copy .actions{margin:1.8rem 0 1rem}
.more-play{margin-top:4.5rem}.together-preview{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.together-preview>a{display:grid;min-width:0;grid-template-columns:1fr;text-decoration:none;position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface)}
.together-preview .game-art{grid-area:1/1;height:auto;aspect-ratio:1.75;min-height:250px;border-radius:0}.together-preview>a>div:last-child{z-index:1;grid-area:1/1;align-self:end;display:grid;grid-template-columns:1fr auto;padding:3rem 1.5rem 1.5rem;background:linear-gradient(transparent,var(--color-background))}
.together-preview small{grid-column:1/-1;color:var(--color-muted);font-size:.82rem}.together-preview strong{font:600 1.65rem/1.2 var(--font-display);margin-top:.5rem}.together-preview>a>div:last-child>span{font-size:1.6rem;align-self:end}
.together-preview>a:hover strong{color:var(--color-primary)}.together-preview>a:active{outline:1px solid var(--color-border)}
.how-play{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;padding-block:2.5rem;border-block:1px solid var(--color-chrome-border);margin-top:4.5rem}.how-play h3{font-size:1.15rem;letter-spacing:-.02em}.how-play p{font-size:.96rem;color:var(--color-muted);margin:0;max-width:40ch}

/* Full-width search, same native controls and phone disclosure. */
.page-top{padding-block:3.25rem 2rem}.page-top h1{margin:.5rem 0 1rem;letter-spacing:-.05em}.page-top p{color:var(--color-muted);max-width:66ch;font-size:1.05rem}
.catalog-heading h1{font-size:clamp(3rem,5.5vw,5rem)}.catalog-layout{display:block}.catalog-results{min-width:0}
.filters{display:grid;grid-template-columns:minmax(240px,.9fr) 2fr;align-items:end;gap:1.5rem;margin-bottom:2rem;padding:1.25rem;background:var(--color-surface);border-radius:var(--radius-default)}
.filters .field{margin:0;min-width:0}.filters .field label{font-size:.8rem;color:var(--color-muted);font-weight:400}.filters .search{position:relative}
.search-entry{display:flex;gap:.3rem;align-items:center;position:relative}.search-entry input{padding-right:2.8rem;min-width:0}.search-entry .icon-button{position:absolute;right:2px;min-width:44px;min-height:44px;border:0;font-size:1.2rem;color:var(--color-muted)}
.filter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:1rem;align-items:end}.filter-toggle{display:none;justify-content:space-between;width:100%}
.filters .reset-filters{font-size:.82rem;max-width:6.5rem;padding:.5rem;min-height:48px;color:var(--color-muted);font-weight:400}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.result-count{color:var(--color-muted);font-size:.86rem;margin:0;min-height:1.5rem}
.catalog-views{display:flex;gap:.25rem;padding:.2rem;border:1px solid var(--color-chrome-border);border-radius:var(--radius-default)}
.catalog-view{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.45rem .8rem;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--color-muted);font-size:.85rem}.catalog-view svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.catalog-view:hover{background:var(--color-tint);color:var(--color-text)}.catalog-view[aria-pressed=true]{background:var(--color-surface);color:var(--color-primary)}.catalog-view:active{background:var(--color-tint)}

/* Story posters: one case link, actual access state, no repeated price badge. */
.case-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem 1rem}.case-card{min-width:0}
.case-card>a{display:grid;grid-template-columns:1fr;position:relative;text-decoration:none;border-radius:var(--radius-default);background:var(--color-background)}
.case-art{grid-area:1/1;position:relative;overflow:hidden;aspect-ratio:.82;background:var(--color-surface);border-radius:var(--radius-default);width:100%;min-width:0;height:100%;min-height:320px}
.case-art:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 30%,color-mix(in srgb,var(--color-background) 75%,transparent) 58%,var(--color-background))}
.case-art>img{width:100%;height:100%;object-fit:cover;transition:transform .3s,filter .3s}
.case-art>.badge{position:absolute;z-index:2;top:.9rem;right:.9rem;background:var(--color-background);color:var(--color-text);font-size:.68rem;max-width:60%;line-height:1.4}.case-art>.badge.brass{background:var(--color-primary);color:var(--color-background)}
.case-no{position:absolute;top:.9rem;left:.9rem;z-index:2;font-size:.7rem;padding:.3rem .4rem;color:var(--color-text);background:var(--color-background);border-radius:var(--radius-sm)}
.case-card .card-body{grid-area:1/1;z-index:1;align-self:end;display:flex;flex-direction:column;min-width:0;padding:4.5rem 1.2rem 1.2rem}
.case-card .card-body .eyebrow{font-size:.76rem;color:var(--color-primary)}.case-card .card-body h3{font-size:1.85rem;line-height:1.06;letter-spacing:-.035em;margin:.6rem 0 1rem}.case-card .card-summary{display:none}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;font-size:.75rem;color:var(--color-muted)}.card-arrow{font-size:1.45rem;line-height:1}
.case-card:hover h3,.case-card:focus-within h3{color:var(--color-primary)}.case-card:active .card-arrow{color:var(--color-text)}
#case-grid[data-view=list]{display:flex;flex-direction:column;gap:0}
#case-grid[data-view=list] .case-card>a{display:grid;grid-template-columns:200px minmax(0,1fr);gap:1.6rem;align-items:center;padding-block:1.25rem;border-bottom:1px solid var(--color-chrome-border);border-radius:0;background:transparent}
#case-grid[data-view=list] .case-card:first-child>a{padding-top:0}#case-grid[data-view=list] .case-art{grid-area:auto;aspect-ratio:1.5;min-height:0;border-radius:var(--radius-default)}#case-grid[data-view=list] .case-art:after{display:none}
#case-grid[data-view=list] .card-body{grid-area:auto;align-self:auto;padding:0}#case-grid[data-view=list] .card-body h3{font-size:1.8rem;margin:.4rem 0 .65rem}
#case-grid[data-view=list] .card-summary{display:block;margin:0 0 .8rem;color:var(--color-muted);max-width:70ch;font-size:.95rem}#case-grid[data-view=list] .card-meta{justify-content:start;gap:1.5rem}#case-grid[data-view=list] .empty{margin-top:.5rem}


/* The library uses the existing account-owned catalog snapshot. */
.library-overview{margin:0 0 2.5rem}
.library-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding:1.5rem 0;border-block:1px solid var(--color-chrome-border);margin:0 0 1.5rem}
.library-stats dt{color:var(--color-muted);font-size:.88rem;margin-bottom:.3rem}
.library-stats dd{font:600 2.5rem/1.1 var(--font-display);margin:0}
.resume-case{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:1.8rem;padding:1.25rem;background:var(--color-surface);border-radius:var(--radius-lg)}
.resume-case>img{width:100%;height:120px;object-fit:cover;border-radius:var(--radius-default)}
.resume-case h2{font-size:2rem;margin:.4rem 0 .6rem}
.resume-case .eyebrow{color:var(--color-primary)}
.resume-progress{display:block;color:var(--color-muted);font-size:.88rem;margin-bottom:.45rem}
.resume-case progress{display:block;width:min(100%,320px);height:6px;appearance:none;border:0;background:var(--color-chrome-border);color:var(--color-primary);border-radius:3px;overflow:hidden}
.resume-case progress::-webkit-progress-bar{background:var(--color-chrome-border)}
.resume-case progress::-webkit-progress-value{background:var(--color-primary)}
.resume-case progress::-moz-progress-bar{background:var(--color-primary)}

/* Case overview. */
.back{display:inline-flex;align-items:center;min-height:44px;margin-top:1.5rem;text-decoration:none;color:var(--color-muted);font-size:.91rem}
.back:hover{color:var(--color-text)}
.detail{display:grid;grid-template-columns:1.1fr 1fr;gap:3.5rem;align-items:center;margin-top:1.5rem}
.detail>img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:var(--radius-lg)}
.detail h1{font-size:clamp(2.8rem,4vw,4.2rem);margin:.8rem 0 1.2rem}
.detail p{color:var(--color-muted);font-size:1.05rem}.detail small{font-size:.88rem}
.details-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 2rem;border-block:1px solid var(--color-chrome-border);padding:1.25rem 0;margin:1.4rem 0}
.details-list dt{color:var(--color-muted);font-size:.8rem;margin-bottom:.2rem}
.details-list dd{color:var(--color-text);font-size:1rem;font-weight:600;margin:0}
.details-list .detail-video{grid-column:1/-1}
.how{display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem;margin-top:4rem;padding-block:3rem;border-top:1px solid var(--color-chrome-border)}
.how h2{margin:.5rem 0}.steps{display:grid;gap:1.5rem}.steps h3{font:600 1.02rem var(--font-sans);margin:0 0 .5rem}.steps p{color:var(--color-muted);margin:0;font-size:.98rem}

/* Investigation: stable task layout, quiet evidence buttons, readable documents. */
.workspace-top{padding-top:1rem}.workspace-top .back{margin-top:0}
.workspace-top h1{font-size:clamp(2rem,3vw,3rem);margin:.5rem 0}
.workspace-meta{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.3rem}
.workspace-meta p{font-size:.9rem;color:var(--color-muted);margin:0;white-space:nowrap}
.case-tabs{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;padding:.5rem 0;border-block:1px solid var(--color-chrome-border)}
.case-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1rem;border-radius:var(--radius-default);text-decoration:none;font-size:.95rem;color:var(--color-muted)}
.case-tabs a:hover{background:var(--color-surface);color:var(--color-text)}
.case-tabs a[aria-current=page]{background:var(--color-surface);color:var(--color-text);box-shadow:inset 0 -2px var(--color-primary)}
.case-tabs button{margin-left:auto}
.progress-line{display:flex;gap:.5rem;margin:1.2rem 0}.progress-line>span{height:3px;flex:1;background:var(--color-chrome-border);border-radius:2px}.progress-line>.done{background:var(--color-primary)}
/* Case milestones are read-only and follow the actual stage order. */
.stage-map{margin-top:1.2rem;overflow-x:auto;padding:.3rem .3rem .65rem;margin-inline:-.3rem;scroll-padding-inline:.3rem;overscroll-behavior-x:contain}
.stage-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:.65rem}
.stage-track li{display:flex;gap:.7rem;align-items:start;padding:1rem .6rem;border-top:2px solid var(--color-chrome-border);min-width:0}
.stage-number{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border:1px solid var(--color-border);border-radius:50%;font-size:.8rem;color:var(--color-muted)}
.stage-name{display:block;font-size:.88rem;line-height:1.35}
.stage-state{display:block;color:var(--color-muted);font-size:.77rem;margin-top:.3rem}
.stage-track [data-state=current]{border-color:var(--color-primary);background:var(--color-surface)}
.stage-track [data-state=current] .stage-number{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}
.stage-track [data-state=current] .stage-state{color:var(--color-primary)}
.stage-track [data-state=passed] .stage-number{border-color:var(--color-success);color:var(--color-success)}
.stage-track [data-state=later] .stage-name{color:var(--color-muted)}
.stage-help{display:none}
.workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:2.5rem;align-items:start;margin-top:2rem}
.workspace .section-head{gap:.5rem;margin-bottom:1rem}.workspace .section-head h2{font-size:2rem;margin:.3rem 0 0}.workspace>div>p{font-size:.96rem}
.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.evidence-card{display:flex;flex-direction:column;align-items:start;min-height:190px;width:100%;padding:1.15rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-chrome-border);border-radius:var(--radius-default);text-align:left;transition:border-color .16s,background .16s}
.evidence-card:hover{border-color:var(--color-border);background:var(--color-tint)}
.evidence-card .eyebrow{font-size:.79rem}.evidence-card h3{font-size:1.4rem;margin:.65rem 0}.evidence-card p{font-size:.86rem;color:var(--color-muted);margin:0 0 1rem}
.evidence-state{font-size:.77rem;color:var(--color-primary);margin-top:auto}
.evidence-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}
.evidence-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--color-muted)}
.evidence-mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.evidence-card[data-read=true]{background:var(--color-background)}
.evidence-card[data-read=true] .evidence-mark{color:var(--color-success)}
.evidence-card[data-pinned=true]{border-color:var(--color-primary)}
.evidence-card[data-pinned=true] .evidence-mark{color:var(--color-primary)}
.evidence-card[data-read=true]:hover{background:var(--color-surface)}
.evidence-search{display:flex;align-items:end;gap:.6rem;margin-block:1.2rem}.evidence-search .field{flex:1;margin-bottom:0}.evidence-search .button{flex-shrink:0}
.panel{padding:1.6rem;background:var(--color-surface);border:1px solid var(--color-chrome-border);border-radius:var(--radius-lg)}
.panel h2{font-size:1.9rem;margin:.6rem 0 1rem}.panel .brief{color:var(--color-muted);font-size:.98rem}
.puzzle-question{font-weight:600;line-height:1.5;font-size:1.1rem;margin:1.3rem 0 1rem}
.proof{padding-top:1.2rem;margin-top:1.2rem;border-top:1px solid var(--color-chrome-border)}
.proof legend{font-size:.95rem;font-weight:600;display:contents}.proof-list{display:grid;gap:.35rem;margin:.8rem 0 1rem}
.proof label{display:flex;align-items:start;gap:.7rem;font-size:.9rem}.proof-count{font-size:.86rem;color:var(--color-muted);margin:.5rem 0}
.proof-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.4rem}.proof-row label{min-width:0;padding:.6rem 0;overflow-wrap:anywhere}.proof-row .button{padding-inline:.45rem;font-weight:400}
.hint{padding-left:1rem;border-left:2px solid var(--color-primary);color:var(--color-muted);font-size:.96rem;margin:1rem 0}
.order-item{display:flex;align-items:center;gap:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-default);padding:.6rem;margin-bottom:.6rem}
.order-item .order-label{flex:1;font-size:.98rem}.order-item .icon-button{min-width:44px;min-height:44px}
.paper{padding:2rem;background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-default);color-scheme:light}
.paper h2{font-size:2rem}.paper .eyebrow,.paper .role-label{color:var(--color-ink)}
.paper .muted,.paper small,.paper .decision-detail,.paper .reader-prose{color:var(--color-paper-muted)}
.paper .reader-prose{color:var(--color-ink)}.reader-prose{max-width:68ch;font-size:1.04rem;line-height:1.85}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:2rem}
.people article{padding:1.6rem;border:1px solid var(--color-chrome-border);background:var(--color-surface);border-radius:var(--radius-default)}
.people h2{font-size:1.65rem;margin:.6rem 0 .8rem}.people p{font-size:1rem;color:var(--color-muted);margin:0;line-height:1.75}
.notebook{max-width:800px;margin-top:2rem}.notebook textarea{min-height:350px;font-size:1.04rem;line-height:1.85}
.conclusions{max-width:820px;margin:2rem auto}.conclusions .panel{margin-top:1.2rem}.conclusions .panel>p{color:var(--color-muted)}
.reasoning{margin-top:1rem;border-top:1px solid var(--color-chrome-border);padding-top:.7rem}.reasoning-proof{display:flex;flex-wrap:wrap;gap:.5rem}.reasoning-proof .button{white-space:normal;text-align:left}
.workspace-shortcuts{display:none}
.team-notice,.content-update,.draft-notice{padding:1rem 1.2rem;border-left:3px solid var(--color-primary);background:var(--color-surface);color:var(--color-text);margin:1rem 0;font-size:.95rem}
.team-instructions{max-width:75ch;color:var(--color-muted)}

/* Shared document / account / confirmation dialog. */
.dialog{--dialog-pad-top:1.5rem;--dialog-pad-inline:2rem;width:min(820px,calc(100% - 2rem));max-height:92dvh;padding:var(--dialog-pad-top) var(--dialog-pad-inline) 2rem;border:0;border-radius:var(--radius-lg);background:var(--color-paper);color:var(--color-ink);color-scheme:light;box-shadow:0 24px 80px #0009;scrollbar-gutter:stable;scroll-padding-top:6rem}
.dialog::backdrop{background:#000b}
.dialog :focus-visible,.paper :focus-visible,.launch-paper :focus-visible{outline-color:var(--color-paper-focus)}
.dialog-top{position:sticky;top:calc(-1 * var(--dialog-pad-top));z-index:1;background:var(--color-paper);margin-top:calc(-1 * var(--dialog-pad-top));margin-inline:calc(-1 * var(--dialog-pad-inline));padding-top:var(--dialog-pad-top);padding-inline:var(--dialog-pad-inline);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1rem;margin-bottom:1.4rem;border-bottom:1px solid var(--color-paper-border)}
.dialog h2{font-size:2.3rem;margin-top:.4rem}.dialog .eyebrow{color:var(--color-paper-muted)}
.dialog .muted,.dialog small{color:var(--color-paper-muted)}
.dialog .draft-notice{background:transparent;color:var(--color-ink)}
.dialog .feedback,.launch-paper .feedback{color:var(--color-paper-danger)}
.dialog .feedback.success,.launch-paper .feedback.success{color:var(--color-paper-success)}
.dialog .actions{margin:1.2rem 0}
.dialog .field input,.dialog .field textarea,.dialog .field select,.paper .field input,.paper .field textarea,.paper .field select{background:var(--color-reader-input);color:var(--color-ink);border-color:var(--color-paper-border)}
.dialog .field input::placeholder,.dialog .field textarea::placeholder{color:var(--color-paper-muted)}
.dialog input[aria-invalid=true],.dialog textarea[aria-invalid=true],.dialog select[aria-invalid=true]{border-color:var(--color-paper-danger)}
.dialog textarea{resize:none;min-height:160px}
.dialog .option,.paper .option,.launch-paper .option{border-color:var(--color-paper-border);color:var(--color-ink)}
.dialog .option:hover,.paper .option:hover,.launch-paper .option:hover{background:var(--color-reader-input)}
.dialog .option:has(input:checked),.paper .option:has(input:checked),.launch-paper .option:has(input:checked){border-color:var(--color-ink);background:var(--color-reader-input)}
.dialog input[type=checkbox],.dialog input[type=radio],.paper input[type=checkbox],.paper input[type=radio],.launch-paper input[type=radio]{accent-color:var(--color-ink)}
.dialog .button.secondary,.dialog .button.quiet,.paper .button.secondary,.paper .button.quiet,.launch-paper .button.secondary{color:var(--color-ink);border-color:var(--color-paper-border);background:transparent}
.dialog .button.quiet,.paper .button.quiet{border-color:transparent}
.dialog .button.secondary:hover,.dialog .button.quiet:hover,.paper .button.secondary:hover,.paper .button.quiet:hover,.launch-paper .button.secondary:hover{background:var(--color-reader-input);border-color:var(--color-paper-border)}
.dialog .button.danger{background:var(--color-paper-danger);color:var(--color-reader-input);border-color:var(--color-paper-danger)}
.dialog .local-notice{background:transparent;color:var(--color-paper-muted);border-left-color:var(--color-brass)}
.dialog video{display:block;width:100%;aspect-ratio:16/9;margin:1rem 0;background:var(--color-background);border:1px solid var(--color-paper-border)}
.dialog .camera-moments .button{font:.8rem var(--font-mono);min-height:44px}.camera-moments{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.camera-caption{font-size:.93rem}
.table-scroll{overflow-x:auto;max-width:100%;margin:1.4rem 0;scrollbar-gutter:stable}
table{width:100%;border-collapse:collapse;font-size:.96rem;font-variant-numeric:tabular-nums}
th,td{padding:.75rem .65rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}th{font-weight:600}
.dialog th,.dialog td,.paper th,.paper td,.launch-paper td{border-bottom-color:var(--color-paper-border)}
.chat{margin:1.5rem 0}.message{padding:1rem;border:1px solid var(--color-chrome-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-default);margin:.7rem 0}
.message header{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;margin-bottom:.5rem}.message p{margin:0}
.dialog .message{border-color:var(--color-paper-border);border-left-color:var(--color-brass)}
.transcript{font-size:.95rem}details{margin:1rem 0}summary{cursor:pointer;padding:.55rem 0;font-weight:600}
.dev-mail{padding:1rem;background:var(--color-reader-input);border:1px dashed var(--color-paper-border);font-size:.95rem;margin:1rem 0;color:var(--color-ink)}
.dev-mail code{font:1.6rem var(--font-mono);letter-spacing:.2em}
.toast{position:fixed;bottom:1.25rem;left:50%;transform:translateX(-50%);z-index:12;max-width:calc(100% - 2rem);padding:.85rem 1.2rem;border-radius:var(--radius-default);background:var(--color-paper);color:var(--color-ink);box-shadow:0 8px 30px #0008;pointer-events:none;font-size:.96rem}
.toast:empty{display:none}

/* Comparison and authored diagrams preserve the document reader contract. */
.dialog.evidence-comparison{width:min(76rem,calc(100% - 2rem))}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.comparison-document{min-width:0}
.comparison-document+.comparison-document{border-left:1px solid var(--color-paper-border);padding-left:2rem}
.comparison-content h3{font-size:1.65rem;margin:.5rem 0 1rem;overflow-wrap:anywhere}.comparison-content th,.comparison-content td{overflow-wrap:anywhere}
.evidence-diagram{margin:1.5rem 0}.diagram-scroll{overflow-x:auto;max-width:100%;scrollbar-gutter:stable}.evidence-diagram svg{display:block;width:100%;min-width:500px;color:var(--color-ink)}
.evidence-diagram figcaption{font-size:.9rem;line-height:1.6;margin-top:.7rem}
.evidence-diagram rect.board-square{fill:var(--color-paper);stroke:var(--color-paper-border);stroke-width:.5}.evidence-diagram rect.board-shade{fill:var(--color-ink);fill-opacity:.1;stroke:var(--color-paper-border);stroke-width:.5}
.evidence-diagram text{fill:var(--color-ink);font-family:var(--font-mono)}.board-coordinate{font-size:11px}.board-piece{font-size:23px}
.evidence-diagram line{stroke:var(--color-ink);stroke-width:2}.evidence-diagram circle,.route-label-paper{fill:var(--color-paper)}.evidence-diagram circle{stroke:var(--color-ink);stroke-width:2}.route-label{font-size:13px}.route-node{font-size:19px}

/* Club, orders, rooms, reports and policy pages use product surfaces. */
.club-teaser{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center;margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--color-chrome-border)}
.club-teaser>div>p{color:var(--color-muted)}.club-teaser h2{font-size:2.5rem}.club-ticket{padding:2rem;background:var(--color-surface);border:1px solid var(--color-chrome-border);border-radius:var(--radius-lg);color:var(--color-text)}
.club-ticket .eyebrow{color:var(--color-primary)}.club-ticket h2{font-size:2rem;margin:.65rem 0}.club-ticket p{color:var(--color-muted);font-size:1rem}
.plan-price,.club-ticket .plan-price{font:600 3.3rem/1.2 var(--font-display);color:var(--color-text);margin:1rem 0}.plan-price small{font:.95rem var(--font-sans);color:var(--color-muted)}
.credit-stamps{display:flex;gap:.6rem;flex-wrap:wrap;margin:1.3rem 0}.credit-stamps span{padding:.5rem .7rem;border:1px solid var(--color-border);font-size:.85rem}
.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.plan-grid .panel{padding:2rem}.plan-grid ul{padding-left:1.25rem;margin:1.2rem 0 1.7rem;font-size:1rem;color:var(--color-muted)}.plan-grid li{margin:.65rem 0}
.club-wallet{display:grid;grid-template-columns:.7fr 1.3fr;gap:2.5rem;padding:1.8rem 0;margin-bottom:2rem;border-block:1px solid var(--color-chrome-border)}
.club-wallet h2{font-size:1.8rem;margin:.5rem 0 1rem}.club-wallet p{color:var(--color-muted);font-size:.98rem}.wallet-balance{font:600 3.3rem/1 var(--font-display);margin:.8rem 0;color:var(--color-text)!important}.wallet-balance span{font:1rem var(--font-sans)}
.club-faq{max-width:800px}.club-faq details{padding:.5rem 0;border-bottom:1px solid var(--color-chrome-border)}.club-faq p{color:var(--color-muted);max-width:70ch}
.order-list{display:grid;gap:1rem;margin-top:1.5rem}.order-card{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-chrome-border);border-radius:var(--radius-default)}
.order-card h2{font-size:1.7rem;margin:.4rem 0}.order-card p{font-size:.85rem;color:var(--color-muted);margin:0;overflow-wrap:anywhere}
.room-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem 1rem;padding:1.2rem 1.4rem;margin-top:2rem;background:var(--color-surface);border:1px solid var(--color-chrome-border);border-radius:var(--radius-default)}
.room-bar p{font-size:.94rem;margin:.3rem 0 0}.room-bar .actions{margin:0}.room-players{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}
.member-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .7rem;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.87rem;overflow-wrap:anywhere}
.member-pill .icon-button{min-width:44px;min-height:44px;padding:.1rem}.room-bar .feedback{width:100%;margin:0;min-height:0}.invite-code{font:clamp(1.35rem,4vw,2.5rem) var(--font-mono);letter-spacing:.1em;overflow-wrap:anywhere;margin:1.5rem 0;user-select:all}
.room-chat{max-width:850px;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-chrome-border)}.room-chat h2{font-size:1.9rem}.room-chat .section-head{flex-wrap:wrap}.chat-log{max-height:360px;overflow:auto;overflow-wrap:anywhere}.chat-log time{white-space:nowrap}
.prose-page{max-width:850px;padding-top:3rem}.prose-page h1{font-size:3rem}.prose-page h2{font-size:1.9rem;margin-top:2rem}.prose-page p{color:var(--color-muted);line-height:1.8}
.owner-reports{max-width:960px}.owner-reports .filters{display:flex;align-items:end;flex-wrap:wrap;gap:1rem}.owner-reports .filters .field{min-width:160px}
.report-entry{border-top:1px solid var(--color-chrome-border);padding:1.6rem 0}.report-entry header{display:flex;justify-content:space-between;align-items:start;gap:1rem}.report-entry h2{font-size:1.65rem;margin:.4rem 0}.report-entry time{color:var(--color-muted);font-size:.88rem}.report-entry .badge{position:static;flex-shrink:0}
.report-message{white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch;color:var(--color-text)}.report-entry form{margin-top:1rem}.report-entry .feedback:empty,#reports-feedback:empty{display:none}.reports-pagination{margin:1.5rem 0}

.photo-credits{list-style:none;padding:0;margin:2rem 0}.photo-credits li{display:grid;gap:.3rem;padding:1.2rem 0;border-bottom:1px solid var(--color-chrome-border)}.photo-credits li>span{color:var(--color-muted);font-size:.95rem}.photo-credits a{display:inline-flex;align-items:center;min-height:44px;color:var(--color-primary);justify-self:start}

/* Game catalog and actual game controls. Scene artwork is kept separate below. */
.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.5rem}
.games-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1.1rem;border-bottom:1px solid var(--color-chrome-border)}
.game-modes{flex-wrap:wrap;border:0;padding:0;gap:.5rem}
.game-modes .catalog-view{border:1px solid var(--color-chrome-border)}
.game-modes .catalog-view[aria-pressed=true]{border-color:var(--color-primary)}
.game-card .game-art{height:100%;min-height:300px;aspect-ratio:auto;border-radius:var(--radius-default)}
.game-card{display:grid;grid-template-columns:40% minmax(0,1fr);gap:1.5rem;min-width:0;padding:1rem;background:var(--color-surface);border-radius:var(--radius-lg)}.game-card>a{display:flex;flex-direction:column;height:100%;text-decoration:none}
.game-card .game-art{border-radius:var(--radius-default)}.game-card .card-body{display:flex;flex-direction:column;min-width:0;padding:.5rem .5rem .5rem 0}.game-card h2{font-size:1.65rem;letter-spacing:-.035em;margin:.6rem 0 1rem}
.game-card .card-body>p:not(.game-access){flex:1 0 auto;font-size:.94rem;line-height:1.55;color:var(--color-muted)}.game-card .actions{margin:.8rem 0 .75rem;gap:.6rem;align-items:stretch;flex-direction:column}.game-card .button{font-size:.9rem;padding:.65rem .9rem;min-height:46px}
.game-card .card-body>.game-access{flex:0 0 auto;margin:0;font-size:.86rem;color:var(--color-muted)}.art-note{display:none}
.play-shell{padding-bottom:1rem}.play-layout{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.6fr);gap:2.5rem;align-items:start;margin:2rem 0}.play-layout>*{min-width:0}.play-layout h2{font-size:2.25rem}.play-layout aside h2{font-size:1.8rem}
.prison-status p{font-size:.94rem}.stats{margin:1.4rem 0}.stat{margin-bottom:1.15rem}.stat>div{display:flex;justify-content:space-between;gap:1rem;font-size:.96rem}.stat strong{font-size:.9rem;font-variant-numeric:tabular-nums}
.stat meter{width:100%;height:12px;margin-top:.35rem;appearance:none;border:0;border-radius:3px;background:var(--color-chrome-border)}.stat meter::-webkit-meter-bar{border:0;border-radius:3px;background:var(--color-chrome-border)}.stat meter::-webkit-meter-optimum-value{background:var(--color-primary)}.stat meter::-moz-meter-bar{background:var(--color-primary)}
.prison-day>.eyebrow{display:block;margin-bottom:.8rem}.prison-option>span,.prison-option strong,.prison-option span>span,.prison-option small{display:block}.prison-option strong{margin-bottom:.3rem}.prison-option small{margin-top:.45rem}.unavailable{opacity:.6;cursor:default}
.play-log{margin-top:2rem;border-block:1px solid var(--color-chrome-border);padding:.4rem 0}.play-log .message h3{font:600 1.05rem var(--font-sans)}.play-log .message{font-size:.98rem;max-width:85ch}.play-footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:2rem}.play-footer p{margin:0;font-size:.88rem;max-width:55ch}.play-footer .actions{margin:0}
.ending,.game-lock{max-width:820px;margin:2rem auto}.ending h2{margin-top:.7rem}.ending p{font-size:1.04rem}.game-lock h2{font-size:2.2rem}
.escape-room{margin-top:2rem}.escape-room .section-head h2{font-size:2.3rem;margin-top:.6rem}.inventory-item{border-bottom:1px solid var(--color-chrome-border);margin:1rem 0;padding-bottom:.6rem;font-size:.95rem}.inventory-item p{color:var(--color-muted);margin:.35rem 0}.escape-room .puzzle-question{display:block;margin-top:0}
.signal-layout{grid-template-columns:1fr 1fr}.signal-board-wrap{display:grid;justify-items:center;gap:1rem}.signal-board{display:grid;grid-template-columns:repeat(var(--grid),1fr);gap:9px;width:min(100%,480px);padding:1.2rem;border:1px solid var(--color-chrome-border);border-radius:var(--radius-default);background:var(--color-surface)}
.signal-cell{aspect-ratio:1;min-width:0;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);color:var(--color-muted);font-size:clamp(16px,2vw,25px)}.signal-cell.lit{background:var(--color-primary);color:var(--color-background);border-color:var(--color-primary)}.signal-cell:hover{outline:2px solid var(--color-focus);outline-offset:2px}.signal-cell:disabled{cursor:wait;opacity:.9}
.team-task h2{font-size:2.1rem;margin-top:.6rem}.team-task .play-layout{grid-template-columns:1fr 1fr}.team-task .paper{font-size:1rem}.team-task .paper h3{font-size:1.5rem}.team-task .options legend{font-size:1rem;margin-bottom:.8rem}
.role-label{padding:.5rem .8rem;border:1px solid var(--color-border);font-size:.9rem;border-radius:var(--radius-sm);color:var(--color-muted)}.role-note{border-top:1px solid var(--color-paper-border);padding-top:1rem;font-size:.93rem}
.radio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.radio-grid button{position:relative;display:flex;flex-direction:column;gap:.25rem;align-items:center;justify-content:center;aspect-ratio:1;min-height:54px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);color:var(--color-text)}
.radio-grid button[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-tint)}.radio-grid button:hover{border-color:var(--color-primary)}.radio-grid small{font:.72rem var(--font-mono);color:var(--color-muted)}.radio-grid strong{font-size:1.5rem;line-height:1.2}
.waypoint-order{position:absolute;top:3px;right:5px;font:.75rem var(--font-mono);color:var(--color-primary)}.radio-path{font:.95rem var(--font-mono);margin:1rem 0;min-height:1.5rem}.dispatch-documents{display:grid;gap:1rem}.dispatch-documents p{margin-bottom:.75rem}.decision-detail{display:block;color:var(--color-muted);font-size:.91rem;margin-top:.35rem}
.vote-status,.vote-summary{font-size:.94rem;margin-top:1.2rem}.team-invitation,.team-hints{max-width:820px;margin:2rem auto}.team-invitation h2{font-size:2rem}
.shift-meters{display:grid;gap:.9rem;margin:1.5rem 0}.shift-meter{display:grid;grid-template-columns:5.5rem minmax(2.5rem,1fr) 3.5rem;align-items:center;gap:.6rem}.shift-meter label{font-weight:600;margin:0}.shift-meter meter{width:100%;height:1rem;accent-color:var(--color-primary)}.shift-meter strong{text-align:right;font-variant-numeric:tabular-nums}.shift-meter meter::-webkit-meter-bar{background:var(--color-surface);border:1px solid var(--color-border)}.shift-meter meter::-webkit-meter-optimum-value{background:var(--color-primary)}
.shift-priorities{list-style:none;padding:0;margin:1rem 0 1.5rem}.shift-priorities li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--color-paper-border)}.shift-priorities strong{font-size:1rem}.shift-priorities span{white-space:nowrap;color:var(--color-brass)}.shift-effect{display:block;font-size:.92rem;font-variant-numeric:tabular-nums;margin-top:.4rem;color:var(--color-muted)}.shift-cost{font-size:.98rem}.shift-ready{margin-top:1.2rem}
.shift-crew{list-style:none;padding:0}.shift-crew li{display:flex;justify-content:space-between;gap:.75rem;padding:.4rem 0;overflow-wrap:anywhere}.shift-crew span{color:var(--color-muted);white-space:nowrap}.shift-result{border-left:3px solid var(--color-primary);padding:1rem 1.25rem;background:var(--color-surface);margin:1.5rem 0}.shift-result summary{cursor:pointer;line-height:1.5}.shift-result .reader-prose{margin-top:1.5rem}

.game-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.game-photo.prison img{object-position:center 36%}.game-photo.escape img{object-position:center 48%}.game-photo.radio img{object-position:center}.game-photo.shift img{object-position:center 52%}.game-photo.dispatch img{object-position:center 62%}

/* Authored scene geometry; dark art is independent of page/reader tones. */
.game-art{height:260px;position:relative;overflow:hidden;background:var(--color-surface);isolation:isolate}

.game-art.signal{display:grid;place-items:center}

.mini-signals{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:170px;height:170px;margin:0}
.mini-signals i{border:1px solid var(--color-border);background:var(--color-background)}
.mini-signals .lit{background:var(--color-primary)}

.escape-scene{height:480px;position:relative;overflow:hidden;background:linear-gradient(155deg,#25393a,#101f25 75%);border:1px solid var(--color-border)}
.scene-shelves{position:absolute;inset:15% 6% 0;background:repeating-linear-gradient(0deg,transparent 0 76px,#9c987542 77px 80px),repeating-linear-gradient(90deg,transparent 0 117px,#6d80772b 118px 121px);transform:perspective(600px) rotateY(-9deg)}
.scene-object{position:absolute;left:clamp(90px,var(--x),calc(100% - 90px));top:clamp(76px,var(--y),calc(100% - 76px));transform:translate(-50%,-50%);width:170px;padding:.75rem;background:#17272aeb;color:var(--color-art-light);border:1px solid #b4a06c;box-shadow:6px 8px 0 #0c1a21c7;text-align:left;min-height:130px}
.scene-object:hover{background:#33433a;border-color:var(--color-paper)}
.scene-object>span{font:18px var(--font-mono);display:block;color:var(--color-art-brass);margin-bottom:.5rem}
.scene-object strong{display:block;font-size:.87rem;line-height:1.35}
.scene-object small{display:block;color:var(--color-art-brass);font-size:.73rem;margin-top:.45rem}

/* Public standalone riddles use the same document surface. */
.launch-shell{max-width:70rem}.launch-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:3rem;align-items:start;margin-bottom:4rem}.launch-paper{padding:2rem;background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-default);color-scheme:light}
.launch-paper h2{font-size:2rem}.launch-paper p{line-height:1.75}.launch-paper caption{text-align:left;font-weight:600;padding-bottom:.6rem}.launch-paper fieldset{padding:0;border:0;margin-top:1.6rem}.launch-paper legend{font-weight:600;line-height:1.6;margin-bottom:1rem}.launch-paper .feedback{font-weight:600}.launch-result{border-top:1px solid var(--color-paper-border);margin-top:1.5rem;padding-top:1rem}.launch-result h3{font-size:1.6rem}.launch-next h2{font-size:2rem}.launch-next p{line-height:1.75}.launch-next nav{display:grid;gap:1rem}.launch-next .muted{font-size:.94rem}

/* Responsive behavior is grouped here; no parallel theme overrides. */
@media(max-width:1100px){.header-inner{gap:1.5rem}.header-inner nav{gap:1rem}.game-grid{gap:1.25rem}.scene-object{width:150px;min-height:115px;padding:.65rem}.detail{gap:2.5rem}.workspace{gap:1.6rem}}
@media(max-width:900px){
 .header-inner{min-height:72px;padding-block:.7rem;flex-wrap:wrap;gap:0}.menu-toggle{display:block}.header-inner nav{display:flex;order:3;flex-basis:100%;margin:1rem 0 .3rem;padding-top:.8rem;border-top:1px solid var(--color-chrome-border);gap:.25rem;align-items:stretch;flex-direction:column}.header-inner nav[data-open=true]{display:flex}.header-inner nav>a{padding:.55rem .5rem;border-bottom:0;border-left:2px solid transparent}.header-inner nav>a[aria-current=page]{border-left-color:var(--color-primary);background:var(--color-surface)}.header-inner #account{margin:0 0 0 .5rem;align-self:auto}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:1fr}.evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-shortcuts{display:flex;position:sticky;top:0;z-index:3;gap:.6rem;padding:.6rem 0;background:var(--color-background);border-bottom:1px solid var(--color-chrome-border)}.workspace-shortcuts .button{flex:1}.workspace h2{scroll-margin-top:5rem}.workspace-meta p{white-space:normal}.detail{gap:1.75rem}.team-task .play-layout{grid-template-columns:1fr}.how{gap:2rem}.play-layout{gap:1.5rem}.owner-reports .filters{display:flex}
}
@media(max-width:760px){
.detail{grid-template-columns:1fr;gap:2rem}.detail>img{aspect-ratio:1.7}.detail h1{font-size:3.2rem}.club-teaser,.plan-grid,.club-wallet{grid-template-columns:1fr;gap:1.5rem}.club-teaser{padding-top:2rem}.club-ticket,.plan-grid .panel{padding:1.5rem}.play-layout,.signal-layout{grid-template-columns:1fr}.prison-status .stats{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1.5rem}.play-footer{display:block}.play-footer .actions{margin-top:1rem}.escape-scene{height:auto;padding:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.scene-object{position:static;transform:none;width:100%;min-height:120px;box-shadow:none}.scene-shelves{display:none}.signal-board{max-width:420px}.comparison-grid{grid-template-columns:1fr;gap:1.5rem}.comparison-document+.comparison-document{border-left:0;border-top:1px solid var(--color-paper-border);padding-left:0;padding-top:1.5rem}.dialog.evidence-comparison{padding:1.2rem;width:calc(100% - 1rem)}.launch-layout{grid-template-columns:1fr;gap:1.5rem}.launch-next{padding-bottom:1rem}.footer-content{gap:1.5rem;grid-template-columns:1.5fr 1fr 1fr}
}
@media(max-width:760px){
 .library-stats{gap:1rem}.library-stats dt{font-size:.8rem}.library-stats dd{font-size:2rem}
 .resume-case{grid-template-columns:100px minmax(0,1fr);gap:1rem;padding:1rem}
 .resume-case>img{height:100px}.resume-case h2{font-size:1.6rem}
 .resume-case>.button{grid-column:1/-1;justify-self:stretch}
 .stage-track{min-width:680px}.stage-track li{padding:.75rem .5rem}.stage-name{font-size:.85rem}
 .stage-help{display:block;margin:.1rem 0 1rem;color:var(--color-muted);font-size:.8rem}
 .game-modes .catalog-view{font-size:.83rem}.games-toolbar{gap:.8rem;margin-bottom:1.5rem}
}
@media(max-width:580px){
 body{font-size:16px}.shell{padding-inline:1.1rem}.header-inner{padding-inline:1.1rem}.brand{font-size:1.3rem}.brand img{width:34px;height:34px}.section{padding-top:2.5rem}.section-head{gap:.7rem;align-items:baseline;flex-wrap:wrap}.section-head h2{font-size:2rem}.section-head>a{font-size:.88rem}.detail{margin-top:1rem;gap:1.5rem}.detail h1{font-size:2.85rem}.details-list{font-size:.85rem;gap:.65rem 1rem}.how{grid-template-columns:1fr;margin-top:2.5rem;padding-block:2.5rem;gap:1.2rem}.workspace-meta{display:block}.workspace-meta p{font-size:.87rem;margin-top:.8rem}.workspace-top h1{font-size:2.4rem}.case-tabs{gap:.1rem}.case-tabs a{font-size:.87rem;padding:.5rem .7rem}.case-tabs button{margin-left:0;flex-basis:100%;justify-content:start;padding-inline:.7rem;min-height:44px}.workspace{margin-top:1.3rem}.workspace .section-head h2{font-size:1.85rem}.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.evidence-card{padding:.9rem;min-height:190px}.evidence-card h3{font-size:1.28rem}.evidence-card p{font-size:.84rem}.panel,.paper{padding:1.2rem}.panel h2{font-size:1.8rem}.puzzle-question{font-size:1.05rem}.people{grid-template-columns:1fr}.order-item{gap:.5rem}.order-item .order-label{font-size:.92rem}.proof-row .button{font-size:.83rem}.dialog{--dialog-pad-top:1.1rem;--dialog-pad-inline:1.1rem;padding:var(--dialog-pad-top) var(--dialog-pad-inline);width:calc(100% - 1rem);max-height:95dvh}.dialog h2{font-size:2rem}.dialog .reader-prose{font-size:1rem}.dialog .actions .button{font-size:.88rem}.order-card{display:block;padding:1.2rem}.order-card .actions{margin-bottom:0}.room-bar{padding:1rem}.room-bar .actions{flex-wrap:wrap}.member-pill{font-size:.8rem}.room-chat .section-head{align-items:center}.invite-code{letter-spacing:.04em}.game-grid{grid-template-columns:1fr;gap:2rem}.game-card .card-body{padding-top:1rem}.game-card h2{font-size:2rem}.game-card .button{font-size:.91rem}.game-card .actions{margin-top:.7rem}.signal-board{padding:.7rem;gap:6px}.radio-grid strong{font-size:1.25rem}.radio-grid button{min-height:48px}.team-task h2{font-size:1.9rem}.shift-meter{grid-template-columns:4.8rem minmax(2.5rem,1fr) 2.8rem;gap:.5rem}.shift-priorities li{gap:.6rem}.shift-priorities span{font-size:.88rem}.prose-page h1{font-size:2.6rem}.launch-paper{padding:1.2rem}.launch-paper h2,.launch-next h2{font-size:1.9rem}.launch-paper td{padding:.65rem .4rem}.launch-paper .button{max-width:100%;white-space:normal}.report-entry header{flex-wrap:wrap}.owner-reports .filters .field{min-width:0;flex:1}.owner-reports .filters{gap:.7rem}.footer-content{grid-template-columns:1fr 1fr;gap:2rem}.footer-about{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom p+p{margin-top:.5rem}.site-footer{margin-top:3.5rem;padding-block:2rem}
}
@media(max-width:580px){
 .details-list{gap:1rem;padding-block:1rem}.details-list dd{font-size:.95rem}
}

@media(max-width:380px){.brand{font-size:1.05rem;gap:.4rem}.brand img{width:30px;height:30px}.header-inner #account{font-size:.85rem;padding-inline:.5rem}.prison-status .stat>div{display:grid;gap:.25rem}.evidence-card{padding:.8rem}.evidence-card h3{font-size:1.2rem}.evidence-card .eyebrow{font-size:.73rem}.workspace .section-head .button{font-size:.8rem;padding-inline:.45rem}.signal-board{padding:.5rem;gap:4px}.scene-object{padding:.6rem}.prison-status .stats{gap:.4rem .7rem}.prison-option{padding:.7rem}.shift-priorities li{flex-wrap:wrap}}

/* Launcher responsive geometry, owned independently from task workspace rules. */
@media(max-width:1100px){
 .hero-copy{width:580px;padding:2.5rem}.hero h1{font-size:5.8rem}.hero-feature.long-title h1{font-size:4.5rem}
 .filters{grid-template-columns:1fr;gap:1rem}.filter-options{grid-template-columns:repeat(3,minmax(0,1fr)) auto}
 .case-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-case-rail{grid-auto-columns:calc((100% - 2rem)/3)}
 .home-challenge,.home-together{gap:2.5rem}.game-card{grid-template-columns:1fr;padding:1rem;gap:.5rem}.game-card .game-art{height:auto;min-height:0;aspect-ratio:1.8}.game-card .card-body{padding:1rem .5rem .5rem}.game-card .actions{flex-direction:row}
}
@media(max-width:900px){
 .hero-copy{padding:2rem;width:520px}.hero h1{font-size:5rem}.hero-feature.long-title h1{font-size:4.25rem}.hero-feature{--hero-fade-start:40%;--hero-fade-end:95%}
 .feature-choices{grid-template-columns:1fr 1fr}.feature-choices>span{display:none}.feature-choice{gap:.65rem;font-size:.9rem}.feature-choice img{width:68px;height:52px}
 .filters{display:block;padding:1.1rem}.filters .search{margin-bottom:1rem}.filter-toggle{display:flex;margin-bottom:0}.filter-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.filters .reset-filters{max-width:none;grid-column:1/-1;justify-content:start}
 .home-challenge{padding:2rem;gap:2rem;grid-template-columns:1fr 1.2fr}.challenge-demo{padding:1.5rem}.challenge-demo>strong{font-size:3.75rem}.home-together{gap:2rem}
}
@media(max-width:760px){
 .hero-feature{flex-direction:column;align-items:stretch;min-height:0}.hero-media{position:relative;inset:auto;order:-1}.hero-photo{height:auto;aspect-ratio:1.65}.hero-photo:before{display:none}.hero-photo img{object-position:center}
 .hero-copy{width:auto;max-width:none;padding:1.75rem}.hero-kicker{margin-bottom:1.2rem}.hero h1,.hero-feature.long-title h1{font-size:3.5rem;max-width:none;letter-spacing:-.05em;line-height:1.02;margin-bottom:1.2rem}.hero .intro{font-size:1rem;max-width:55ch}.hero .actions{margin:1.5rem 0 1rem}.hero .actions .button{min-height:50px;padding-inline:1rem;font-size:.9rem}
 .feature-caption{right:1rem;bottom:1rem;font-size:.72rem}.feature-choices{gap:.7rem}.feature-choice{padding:.7rem}.feature-choice img{width:54px;height:48px}.choice-arrow{display:none}
 .case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-case-rail{grid-auto-columns:65%}.section{padding-top:3rem}.section-head{align-items:start;flex-wrap:wrap;gap:.6rem}.section-head h2{font-size:1.7rem}.section-head>a{font-size:.86rem}.case-card .card-body h3{font-size:1.7rem}
 .home-challenge{grid-template-columns:1fr 1.2fr;gap:1.5rem;margin-top:3rem;padding:1.5rem}.challenge-demo{padding:1rem}.challenge-demo>strong{font-size:3rem}.challenge-demo>div{flex-direction:column;gap:.35rem}.challenge-copy h2{font-size:2rem}.challenge-copy p{font-size:.94rem}.challenge-copy .button{font-size:.9rem}
 .home-together{grid-template-columns:1fr;margin-top:3rem;gap:2rem}.together-visual img{aspect-ratio:1.6}.together-copy h2{font-size:2.5rem}
 .more-play{margin-top:3rem}.together-preview{gap:1rem}.together-preview .game-art{aspect-ratio:1.2;min-height:250px}.together-preview>a>div:last-child{padding:3rem 1rem 1rem}.together-preview strong{font-size:1.35rem}.together-preview small{font-size:.75rem}
 .how-play{grid-template-columns:1fr;gap:1.5rem;padding-block:2rem;margin-top:3rem}.how-play p{max-width:60ch}
}
@media(max-width:580px){
 .home-opening{font-size:.78rem;padding-top:.65rem;gap:.5rem}.home-opening a{font-size:.78rem}.hero-copy{padding:1.4rem}.hero h1,.hero-feature.long-title h1{font-size:3rem}.hero-kicker{font-size:.76rem}.hero .actions{gap:.55rem}
 .feature-choices{grid-template-columns:1fr}.feature-choice{font-size:.94rem;gap:.8rem}.feature-choice img{width:68px;height:45px}.feature-choice .choice-arrow{display:block}.hero-facts{font-size:.79rem}
 .page-top{padding-block:2rem 1.5rem}.catalog-heading h1{font-size:3.2rem}.page-top p{font-size:.96rem}.filter-options{grid-template-columns:1fr;gap:1rem}.filters .reset-filters{grid-column:auto}
 .catalog-toolbar{gap:.7rem}.catalog-views{margin-left:auto}.catalog-view{font-size:.8rem;padding-inline:.55rem}
 .case-art{min-height:300px}.case-card .card-body{padding:4rem 1rem 1rem}.case-card .card-body h3{font-size:1.7rem}.home-case-rail{grid-auto-columns:84%}
 .home-challenge{grid-template-columns:1fr;padding:1.5rem;gap:1.5rem}.challenge-demo{max-width:none;padding:1.1rem}.challenge-demo>strong{margin:.6rem 0;font-size:3.5rem}.challenge-demo>div{flex-direction:row}.challenge-copy h2{font-size:2.2rem}
 .together-copy h2{font-size:2.3rem}.together-preview{grid-template-columns:1fr}.together-preview .game-art{aspect-ratio:1.6;min-height:250px}.together-preview strong{font-size:1.65rem}
 #case-grid[data-view=list] .case-card>a{grid-template-columns:105px minmax(0,1fr);gap:1rem;align-items:start;padding-block:1rem}
 #case-grid[data-view=list] .case-art{aspect-ratio:.85}#case-grid[data-view=list] .case-art>.badge{top:auto;bottom:.4rem;left:.4rem;right:auto;font-size:.62rem;max-width:calc(100% - .8rem)}
 #case-grid[data-view=list] .case-no{top:.4rem;left:.4rem;font-size:.62rem}
 #case-grid[data-view=list] .card-body h3{font-size:1.45rem}#case-grid[data-view=list] .card-summary{font-size:.86rem}#case-grid[data-view=list] .card-meta{flex-wrap:wrap;font-size:.72rem;gap:.25rem .8rem}
 .game-card{padding:.8rem;gap:0}.game-card .game-art{aspect-ratio:1.8}.game-card h2{font-size:1.9rem}.game-card .actions{flex-direction:column}.game-card .card-body{padding:1.1rem .5rem .5rem}
}
@media(max-width:480px){.case-grid{grid-template-columns:1fr}.home-case-rail{grid-template-columns:none}.case-art{aspect-ratio:.85;min-height:0}}
@media(max-width:380px){.brand{font-size:.95rem;letter-spacing:.03em;min-height:44px}.brand img{width:28px;height:28px}.hero .actions{display:grid;grid-template-columns:1fr}.hero h1,.hero-feature.long-title h1{font-size:2.55rem}.feature-choice img{display:block}.home-opening>a{display:none}}
@media(forced-colors:active){
 .hero-photo:before{display:none}.hero-copy{background:Canvas;color:CanvasText}
 .case-art:after{display:none}.case-card .card-body,.together-preview>a>div:last-child{background:Canvas;color:CanvasText}
 .case-card .card-body .eyebrow,.card-meta{color:CanvasText}.case-card>a{border:1px solid ButtonText}
 .feature-dot{background:CanvasText}.hero-kicker{color:CanvasText}.challenge-copy .button{background:ButtonFace;color:ButtonText;border-color:ButtonText}
}

/* Motion stays with the photograph and the controls, never with live puzzle state. */
@media(hover:hover) and (prefers-reduced-motion:no-preference){.case-card:hover .case-art img,.together-preview>a:hover .game-art img{transform:scale(1.025)}}
@media(prefers-reduced-motion:no-preference){.hero-photo.is-entering img{animation:photo-arrive .6s ease-out}.hero-photo.is-switching img{animation:photo-change .25s ease-out}.dialog[open]{animation:dialog-arrive .16s ease-out}.header-inner nav[data-open=true]{animation:menu-arrive .14s ease-out}}
@keyframes photo-arrive{from{opacity:.7;transform:scale(1.025)}to{opacity:1;transform:none}}
@keyframes photo-change{from{opacity:.65}to{opacity:1}}
@keyframes dialog-arrive{from{opacity:.8;translate:0 4px}to{opacity:1;translate:0 0}}
@keyframes menu-arrive{from{opacity:.7}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){*{scrollbar-color:auto}.button,.option,.evidence-card,.panel,.feature-choice,.signal-cell,.radio-grid button,.field input,.field select{border:1px solid ButtonText}.button{background:ButtonFace;color:ButtonText}.progress-line>.done{background:Highlight}.case-tabs a[aria-current=page],.header-inner nav>a[aria-current=page]{outline:2px solid Highlight}.badge{border:1px solid ButtonText}::-webkit-scrollbar-thumb{background:ButtonText;border-color:Canvas}}

@media(forced-colors:active){.stage-track [aria-current=step]{outline:2px solid Highlight}.stage-number{border-color:ButtonText}.resume-case progress{forced-color-adjust:auto}.game-modes .catalog-view[aria-pressed=true]{outline:2px solid Highlight}}
