:root{--app-content-max:1500px}
html,body{height:100%}
body{display:flex;min-height:100%;flex-direction:column;background:var(--dk-light-contrasting-diagonal)}
.skip-link{position:fixed;z-index:100;top:.5rem;left:.5rem;transform:translateY(-160%);background:#fff;color:var(--dk-green-deep);padding:.65rem 1rem;font-weight:800}
.skip-link:focus{transform:none}
.site-content{min-height:0;flex:1;overflow-y:auto}
.site-footer a{color:inherit}
.app-main{width:min(var(--app-content-max),100%);margin:0 auto;padding:0 var(--dk-shell-padding) clamp(2rem,5vw,4rem)}
.content-plane,.game-shell{border:1px solid rgba(216,214,206,.78);background:var(--dk-light-content-surface);box-shadow:var(--dk-light-content-shadow)}
.content-plane{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:clamp(1.25rem,4vw,4rem);padding:clamp(1.25rem,4vw,3.5rem)}
.landing-intro{grid-template-columns:1fr}
.content-plane h2,.card h2,.card h3{margin:.15rem 0 .75rem;color:var(--dk-green-deep);font-weight:500;line-height:1.2}
.section-kicker{margin:0 0 .35rem;color:var(--dk-crimson);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.status-card{align-self:start;padding:1.4rem}
.game-shell{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem;padding:clamp(1rem,2.5vw,2rem)}
.card{border:1px solid var(--dk-line);border-top:5px solid var(--dk-gold);background:var(--dk-panel);padding:clamp(1rem,2.5vw,1.5rem);box-shadow:var(--dk-light-content-shadow)}
.rail{display:grid;gap:1.1rem;align-content:start}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.dk-button,button{appearance:none}
.dk-button--danger{border-color:var(--dk-crimson);background:var(--dk-crimson);color:#fff}
.dk-button:disabled,button:disabled{opacity:.48;cursor:not-allowed}
label{display:grid;gap:.35rem;color:var(--dk-green-deep);font-size:.86rem;font-weight:750}
input,select,textarea{width:100%;min-height:var(--dk-control-height);border:1px solid #789088;border-radius:0;background:#fff;padding:.7rem .8rem;color:var(--dk-ink);font:inherit}
#sessionForm.is-locked input{border-color:#aeb8bd;background:#e2e6e8;color:#66747b;cursor:not-allowed}
#sessionForm.is-locked label{color:#66747b}
textarea{min-height:96px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.wide{grid-column:1/-1}
.hint{min-height:48px;border-left:4px solid var(--dk-gold);padding:.75rem 1rem;background:rgba(230,198,135,.25);margin:.5rem 0}
.muted{color:var(--dk-muted)}
.message{white-space:pre-wrap;font-size:1.05rem;line-height:1.6}
.leaderboard{list-style:none;padding:0;margin:0}
.leaderboard li{display:flex;justify-content:space-between;border-bottom:1px solid var(--dk-line);padding:.65rem 0}
.tier{color:var(--dk-gold);font-size:2rem;font-weight:900}
.timer{font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:900}
.definitions{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;font-size:.88rem}
.definitions div{border:1px solid var(--dk-line);background:var(--dk-light-muted-surface);padding:.75rem}
.hidden{display:none!important}
.status{border-left:4px solid var(--dk-green);background:var(--dk-light-muted-surface);padding:.75rem 1rem;margin:.75rem 0}
.admin-tabs{margin-bottom:1.2rem}
.question-list{display:grid;gap:.65rem}
.question-item{display:flex;justify-content:space-between;gap:1rem;border:1px solid var(--dk-line);padding:.75rem}
.qr{width:100%;background:#fff;padding:.6rem}
.projector-qr{display:block;width:min(220px,100%);height:auto;margin:0 auto;background:#fff;padding:.55rem}
.display-meta{display:flex;justify-content:space-between;gap:1rem}
.display-app .site-content{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.projector-main{min-height:0;height:100%;padding-bottom:clamp(.75rem,1.5vw,1.25rem)}
.projector-game-shell{height:100%;min-height:0;grid-template-columns:minmax(0,1fr) minmax(190px,230px) minmax(250px,320px);gap:clamp(.75rem,1.4vw,1.25rem);padding:clamp(.75rem,1.5vw,1.25rem)}
.projector-play{min-height:0;overflow:hidden;padding:clamp(.65rem,1.1vw,1rem)}
.projector-play h2{margin:.1rem 0 .3rem;font-size:clamp(1rem,1.35vw,1.35rem)}
.projector-play .timer{font-size:clamp(1.65rem,2.2vw,2.15rem);line-height:1}
.projector-play .display-meta{align-items:center;font-size:.78rem}
.projector-play .hint{min-height:34px;margin:.3rem 0;padding:.45rem .75rem;font-size:.8rem;line-height:1.3}
.projector-play .hint:empty{display:none}
.projector-hints h3{margin:.35rem 0 .1rem;color:var(--dk-green-deep);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.projector-play .definitions{gap:.42rem;font-size:.72rem;line-height:1.3}
.projector-play .definitions div{padding:.48rem .55rem}
.projector-game-shell>.rail{min-height:0}
.projector-standings{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr);padding-bottom:.75rem;overflow:hidden}
.projector-standings .leaderboard{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem;scrollbar-gutter:stable}
.projector-standings .leaderboard li{gap:.75rem}
.projector-standings .leaderboard span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.projector-game-shell.is-lobby{grid-template-columns:minmax(280px,560px);place-content:center}
.projector-game-shell.is-lobby .projector-play,.projector-game-shell.is-lobby .projector-points,.projector-game-shell.is-lobby .projector-standings{display:none}
.projector-game-shell.is-lobby>.rail{display:block}
.projector-game-shell.is-lobby .projector-join{padding:clamp(1.25rem,3vw,2.25rem)}
.projector-game-shell.is-lobby .projector-qr{width:min(420px,100%)}
.projector-game-shell.is-practice{grid-template-columns:minmax(0,900px);place-content:center}
.projector-game-shell.is-practice>.rail,.projector-game-shell.is-practice>.projector-standings{display:none}
.participant-shell{width:min(680px,100%);margin:0 auto;padding:0 var(--dk-shell-padding) clamp(2rem,5vw,4rem)}
.participant-shell .card{margin-top:var(--dk-post-hero-space)}
.compact-page{width:min(1000px,100%);margin:0 auto;padding:0 var(--dk-shell-padding) clamp(2rem,5vw,4rem)}
.compact-page .card{margin-top:var(--dk-post-hero-space)}
.swim-fish{position:absolute;z-index:4;top:46%;left:-150px;width:96px;height:auto;opacity:0;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
.swim-fish.is-swimming{animation:fish-swim 9s linear}
.swim-fish.facilitator-fish{width:44px}
.projector-hero{position:relative}
@keyframes fish-swim{0%{left:-150px;opacity:0;transform:translateY(5px) rotate(1deg)}
8%{opacity:1}
45%{transform:translateY(-12px) rotate(-2deg)}
92%{opacity:1}
100%{left:calc(100% + 150px);opacity:0;transform:translateY(8px) rotate(2deg)}
}
@media(max-width:850px){.content-plane,.game-shell:not(.projector-game-shell){grid-template-columns:1fr}
.form-grid,.definitions,.choices{grid-template-columns:1fr}
.projector-game-shell{grid-template-columns:minmax(0,1fr) minmax(210px,38%)}
.projector-game-shell>.rail{display:none}
.projector-game-shell.is-lobby{grid-template-columns:minmax(260px,520px)}
}
@media(max-width:760px){.swim-fish{display:none}
}
@media(max-height:899px){.projector-play .hint{min-height:30px;margin:.22rem 0;padding:.35rem .65rem;font-size:.76rem;line-height:1.25}
.projector-play .definitions{gap:.35rem;font-size:.66rem;line-height:1.25}
.projector-play .definitions div{padding:.38rem .45rem}
.projector-hints h3{margin:.25rem 0 .08rem;font-size:.66rem}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}
.swim-fish{display:none!important}
}
