:root{
  --bg:#0d1023;--bg2:#121735;--panel:#171c3b;--panel2:#1c2348;--tile:#242d61;--tile2:#19214c;
  --text:#f6f7ff;--muted:#b8bfdc;--faint:#7f88ad;--line:rgba(255,255,255,.12);--line-strong:rgba(255,255,255,.22);
  --cyan:#73e5f4;--violet:#9f87ff;--gold:#ffd27d;--good:#7de2a1;--bad:#ff7c8b;--ink:#0a0d1c;
  --shadow:0 24px 80px rgba(0,0,0,.34);--shadow-soft:0 12px 32px rgba(0,0,0,.24);
  --radius:22px;--radius-sm:14px;--focus:#ffe08a;--safe-bottom:env(safe-area-inset-bottom,0px);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(155deg,var(--bg),var(--bg2));overflow-x:hidden}
button,input,select,textarea{font:inherit}button{color:inherit}button:not(:disabled){cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.orb{position:absolute;border-radius:50%;filter:blur(55px);opacity:.18}.orb-a{width:42vw;height:42vw;right:-12vw;top:-15vw;background:var(--cyan)}.orb-b{width:35vw;height:35vw;left:-14vw;bottom:-8vw;background:var(--violet)}.orb-c{width:26vw;height:26vw;left:38vw;top:30vh;background:#3156ff;opacity:.08}
.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(150px,1fr);align-items:center;gap:18px;padding:12px clamp(14px,2.5vw,34px);background:rgba(13,16,35,.82);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;width:max-content;max-width:100%}.brand-mark{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(115,229,244,.2),rgba(159,135,255,.14));box-shadow:inset 0 1px rgba(255,255,255,.12)}.brand-mark img{width:26px;height:26px;object-fit:contain}.brand-copy{display:grid;min-width:0}.brand-copy strong{font-size:14px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topnav{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.035)}.nav-btn,.icon-btn{border:0;background:transparent}.nav-btn{min-height:38px;padding:0 12px;border-radius:999px;color:var(--muted);font-weight:720;font-size:13px}.nav-btn:hover,.nav-btn.is-active{color:var(--text);background:rgba(255,255,255,.09)}.nav-btn.is-active{box-shadow:inset 0 0 0 1px rgba(115,229,244,.18)}.top-actions{display:flex;justify-content:flex-end;gap:8px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.045);font-size:17px}.icon-btn:hover{background:rgba(255,255,255,.09)}
main{width:min(1500px,100%);margin:0 auto;padding:clamp(18px,3vw,38px)}.view{display:none}.view.is-active{display:block}
.home-view{padding-top:clamp(18px,4vw,62px)}.hero{max-width:920px;margin:0 auto 38px;text-align:center}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:850;color:var(--cyan)}.hero h1,.stats-header h1{font-size:clamp(38px,6vw,74px);line-height:.98;letter-spacing:-.055em;margin:0}.hero-copy{max-width:700px;margin:20px auto;color:var(--muted);font-size:clamp(16px,2vw,20px);line-height:1.65}.hero-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:26px}
.primary-btn,.secondary-btn,.toggle-btn,.card-link,.text-btn{border:0;border-radius:14px;min-height:46px;padding:0 16px;font-weight:800;letter-spacing:.01em}.primary-btn{background:linear-gradient(135deg,var(--cyan),#a9eff8);color:#08131b;box-shadow:0 12px 30px rgba(115,229,244,.13)}.primary-btn:hover{transform:translateY(-1px)}.secondary-btn{background:rgba(255,255,255,.065);border:1px solid var(--line);color:var(--text)}.secondary-btn:hover{background:rgba(255,255,255,.11)}.text-btn{background:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:4px}.compact{min-height:42px;padding-inline:12px}
.hero-stats{display:flex;justify-content:center;gap:clamp(20px,5vw,56px);margin-top:35px}.hero-stats div{display:grid;gap:4px}.hero-stats strong{font-size:26px}.hero-stats span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mode-card{min-height:255px;padding:24px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));box-shadow:var(--shadow-soft);display:flex;flex-direction:column;overflow:hidden;position:relative}.mode-card::after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-45px;top:-50px;background:var(--accent,var(--cyan));filter:blur(30px);opacity:.1}.search-card{--accent:var(--cyan)}.crossword-card{--accent:var(--violet)}.daily-card{--accent:var(--gold)}.custom-card{--accent:var(--good)}.mode-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:800}.mode-card h2{font-size:26px;margin:8px 0 10px}.mode-card p{color:var(--muted);line-height:1.55;margin:0 0 18px}.card-link{margin-top:auto;text-align:left;padding:0;background:transparent;color:var(--text);min-height:38px;width:max-content}.card-link span{display:inline-block;transition:transform .2s}.card-link:hover span{transform:translateX(4px)}
.game-view.is-active{display:grid;grid-template-columns:minmax(235px,300px) minmax(0,1fr) minmax(230px,285px);grid-template-areas:"goals board controls";gap:14px;align-items:stretch}.panel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.032));border-radius:var(--radius);box-shadow:var(--shadow-soft)}.goals-panel{grid-area:goals;padding:18px;min-height:650px}.board-panel{grid-area:board;padding:18px;min-height:650px;display:grid;grid-template-rows:auto 1fr auto;gap:12px;overflow:hidden}.control-panel{grid-area:controls;padding:18px;min-height:650px;display:flex;flex-direction:column;gap:14px}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:15px}.panel-heading h2{font-size:22px;margin:0}.difficulty-badge,.seed-chip{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 9px;white-space:nowrap}.goal-list{display:grid;gap:7px;max-height:520px;overflow:auto;padding-right:3px}.goal-item,.clue-item{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:12px;min-height:43px;padding:8px 10px;color:var(--text);text-align:left;display:flex;align-items:center;gap:9px}.goal-item strong{letter-spacing:.12em}.goal-item .goal-len{margin-left:auto;color:var(--faint);font-size:11px}.goal-item.is-found{background:rgba(125,226,161,.09);border-color:rgba(125,226,161,.28);color:#dff9e8}.goal-item.is-found strong{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgba(125,226,161,.6)}.clue-item{align-items:flex-start}.clue-num{min-width:24px;font-weight:900;color:var(--cyan)}.clue-copy{display:grid;gap:3px}.clue-copy small{color:var(--muted)}.clue-item:hover,.clue-item.is-active{background:rgba(115,229,244,.09);border-color:rgba(115,229,244,.28)}.panel-note{color:var(--faint);font-size:12px;line-height:1.55;margin:14px 2px 0}
.board-topline{display:flex;justify-content:space-between;align-items:center;gap:10px}.current-word{min-height:32px;display:flex;align-items:center;justify-content:flex-end;color:var(--muted);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-stage{position:relative;display:grid;place-items:center;min-height:450px;padding:12px;overflow:auto;border-radius:18px;background:radial-gradient(circle at 50% 40%,rgba(115,229,244,.08),transparent 58%)}
.search-board{display:grid;gap:clamp(5px,1vw,9px);touch-action:none;user-select:none;-webkit-user-select:none;position:relative;z-index:2}.search-tile{width:var(--search-cell,58px);height:var(--search-cell,58px);min-width:32px;min-height:32px;border:1px solid rgba(255,255,255,.11);border-radius:clamp(10px,1.2vw,16px);background:linear-gradient(180deg,var(--tile),var(--tile2));box-shadow:0 8px 17px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.07);color:#fff;font-weight:900;font-size:clamp(17px,3vw,28px);display:grid;place-items:center;position:relative;transition:transform .14s,background .14s,border-color .14s}.search-tile:hover{transform:translateY(-1px);border-color:rgba(115,229,244,.35)}.search-tile.is-selected{background:linear-gradient(180deg,#2f6d84,#213f73);border-color:rgba(115,229,244,.8);box-shadow:0 0 0 2px rgba(115,229,244,.18),0 8px 17px rgba(0,0,0,.24)}.search-tile.is-found{background:linear-gradient(180deg,#2c664d,#183c32);border-color:rgba(125,226,161,.35)}.search-tile.is-hint::after{content:"";position:absolute;inset:18%;border-radius:50%;border:3px solid var(--gold);box-shadow:0 0 18px rgba(255,210,125,.45)}.search-tile.is-bad{animation:shake .32s linear}.search-tile.is-crushing{animation:crush .4s ease-in forwards}.selection-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.selection-line{stroke:rgba(115,229,244,.42);stroke-width:16;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(115,229,244,.25))}
.crossword-board{display:grid;gap:2px;background:#080a15;padding:4px;border-radius:12px;box-shadow:0 12px 34px rgba(0,0,0,.35);position:relative;z-index:2}.cross-cell,.cross-block{width:var(--cross-cell,44px);height:var(--cross-cell,44px)}.cross-block{background:#090b16}.cross-cell{position:relative;border:0;background:#f7f5ee;color:#151721;font-weight:900;font-size:clamp(16px,2.4vw,25px);text-transform:uppercase;display:grid;place-items:center}.cross-cell:hover{background:#fff}.cross-cell.is-active{box-shadow:inset 0 0 0 4px #ffdb77;background:#fff3c2}.cross-cell.is-related{background:#dff6f8}.cross-cell.is-wrong{background:#ffd8dd;color:#8b1727}.cross-num{position:absolute;top:2px;left:3px;font-size:9px;line-height:1;font-weight:900;color:#3a4051}.cross-letter{line-height:1}
.learn-card{min-height:66px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"label word" "label clue";column-gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.learn-label{grid-area:label;writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--faint)}.learn-card strong{grid-area:word;letter-spacing:.08em}.learn-card span:last-child{grid-area:clue;color:var(--muted);font-size:12px;margin-top:2px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{padding:12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.04);display:grid;gap:3px}.stat strong{font-size:21px}.stat span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.11em}.progress-track{height:6px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden}.progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .25s}.control-stack{display:grid;gap:8px}.control-stack>*{width:100%}.toggle-btn{display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.05);border:1px solid var(--line)}.toggle-btn strong{color:var(--muted)}.toggle-btn[aria-pressed=true]{background:rgba(159,135,255,.1);border-color:rgba(159,135,255,.33)}.toggle-btn[aria-pressed=true] strong{color:#c9bcff}.calm-meter{margin-top:auto;padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035)}.calm-meter>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.flow-dots{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-top:9px}.flow-dots i{height:5px;border-radius:9px;background:rgba(255,255,255,.1)}.flow-dots i.is-on{background:var(--cyan)}
.stats-header{max-width:760px;margin-bottom:28px}.stats-header h1{font-size:clamp(36px,5vw,62px)}.stats-header p:last-child{color:var(--muted);line-height:1.6}.stats-grid-large{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.big-stat{padding:20px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045)}.big-stat strong{display:block;font-size:30px;margin-bottom:6px}.big-stat span{color:var(--muted);font-size:12px}.history-panel{padding:18px}.history-list{display:grid;gap:7px}.history-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:11px 2px}.history-row:first-child{border-top:0}.history-row span{color:var(--muted);font-size:12px}
.footer{display:flex;justify-content:space-between;gap:16px;padding:10px clamp(14px,2.5vw,34px) calc(12px + var(--safe-bottom));border-top:1px solid var(--line);font-size:11px;color:var(--faint)}
dialog{border:0;padding:0;background:transparent;color:var(--text);max-width:none}dialog::backdrop{background:rgba(4,6,16,.75);backdrop-filter:blur(7px)}.dialog-card{width:min(620px,calc(100vw - 28px));max-height:min(780px,calc(100vh - 28px));overflow:auto;background:linear-gradient(180deg,#1b2146,#11162f);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:24px;padding:22px}.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.dialog-card h2{font-size:28px;margin:0 0 16px}.dialog-x{width:42px;height:42px;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:13px;color:var(--text);font-size:23px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-card label{display:grid;gap:6px;color:var(--muted);font-size:12px}.dialog-card input:not([type=checkbox]):not([type=range]),.dialog-card select,.dialog-card textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;background:#0e1330;color:var(--text);padding:11px 12px}.dialog-card textarea{resize:vertical}.dialog-card input[type=range]{width:100%}.switch-row{grid-template-columns:1fr auto!important;align-items:center;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:12px}.switch-row input{width:20px;height:20px;accent-color:var(--cyan)}.dialog-note,.field-help{color:var(--faint);font-size:11px;line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions.stacked{display:grid}.pause-card,.win-card{text-align:center;width:min(460px,calc(100vw - 28px))}.pause-card p,.win-card p{color:var(--muted);line-height:1.6}.saved-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:12px}.form-error{min-height:20px;color:var(--bad);font-size:12px}.win-mark{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:rgba(115,229,244,.1);border:1px solid rgba(115,229,244,.24);font-size:32px;color:var(--cyan)}.win-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.win-metrics div{padding:13px;border:1px solid var(--line);border-radius:13px}.win-metrics strong{display:block;font-size:20px}.win-metrics span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.help-card{width:min(760px,calc(100vw - 28px))}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help-grid section{padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035)}.help-grid h3{margin:0 0 7px}.help-grid p{color:var(--muted);font-size:12px;line-height:1.6;margin:6px 0}.toast{position:fixed;left:50%;bottom:calc(22px + var(--safe-bottom));z-index:80;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#f1f4ff;color:#11162b;padding:10px 14px;border-radius:999px;box-shadow:var(--shadow-soft);font-size:12px;font-weight:850;transition:opacity .2s,transform .2s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}
body[data-theme=dawn]{--bg:#e9edf7;--bg2:#f5f7fb;--panel:#ffffff;--panel2:#f6f8fd;--tile:#dce5ff;--tile2:#c8d6f5;--text:#18203b;--muted:#59627e;--faint:#7a8299;--line:rgba(24,32,59,.13);--line-strong:rgba(24,32,59,.24);--ink:#fff}.topbar{background:color-mix(in srgb,var(--bg) 82%,transparent)}body[data-theme=dawn] .search-tile{color:#18203b}body[data-theme=dawn] dialog .dialog-card{background:linear-gradient(180deg,#fff,#edf1f8)}body[data-theme=dawn] .dialog-card input:not([type=checkbox]):not([type=range]),body[data-theme=dawn] .dialog-card select,body[data-theme=dawn] .dialog-card textarea{background:#fff;color:#18203b}
body[data-theme=contrast]{--bg:#000;--bg2:#000;--panel:#050505;--panel2:#080808;--tile:#0c0c0c;--tile2:#050505;--text:#fff;--muted:#fff;--faint:#ddd;--line:#777;--line-strong:#aaa;--cyan:#00ffff;--violet:#d7b7ff;--gold:#ffeb3b;--good:#71ff82;--bad:#ff768a;--focus:#fff000}.orb{display:none}body[data-theme=contrast] .search-tile{border-color:#aaa}body[data-theme=contrast] .panel,body[data-theme=contrast] .mode-card{box-shadow:none}
@keyframes shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}@keyframes crush{0%{transform:scale(1);opacity:1}55%{transform:scale(1.18) rotate(2deg);opacity:.9}100%{transform:scale(.25) rotate(-8deg);opacity:0}}
@media(max-width:1180px){.mode-grid{grid-template-columns:1fr 1fr}.game-view.is-active{grid-template-columns:minmax(220px,270px) minmax(0,1fr);grid-template-areas:"goals board" "controls board"}.control-panel{min-height:auto}.goals-panel{min-height:auto}.board-panel{min-height:690px}.calm-meter{margin-top:0}}
@media(max-width:820px){.topbar{grid-template-columns:1fr auto;grid-template-areas:"brand actions" "nav nav";gap:8px}.brand{grid-area:brand}.top-actions{grid-area:actions}.topnav{grid-area:nav;overflow-x:auto;justify-content:flex-start;border-radius:14px}.nav-btn{flex:1;min-width:max-content}.game-view.is-active{grid-template-columns:1fr;grid-template-areas:"board" "goals" "controls"}.board-panel{min-height:auto}.goals-panel,.control-panel{min-height:auto}.goal-list{max-height:none;grid-template-columns:1fr 1fr}.board-stage{min-height:0;padding:8px}.stats-grid-large{grid-template-columns:1fr 1fr 1fr}.footer{flex-direction:column}.footer span:last-child{display:none}}
@media(max-width:560px){main{padding:14px}.home-view{padding-top:18px}.mode-grid{grid-template-columns:1fr}.mode-card{min-height:210px}.hero h1{font-size:42px}.hero-stats{gap:22px}.hero-stats strong{font-size:22px}.brand-copy small{display:none}.topbar{padding:10px 12px}.icon-btn{width:40px;height:40px}.game-view.is-active{gap:10px}.panel{border-radius:18px}.board-panel,.goals-panel,.control-panel{padding:12px}.goal-list{grid-template-columns:1fr}.settings-grid,.help-grid{grid-template-columns:1fr}.stats-grid-large{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:1fr auto}.history-row span:last-child{display:none}.win-metrics{grid-template-columns:1fr 1fr 1fr}.dialog-card{padding:18px}.search-board{gap:5px}.current-word{max-width:58vw}.learn-card{min-height:75px}}
@media(max-width:380px){.brand-copy strong{font-size:12px}.top-actions{gap:4px}.hero h1{font-size:36px}.stats-grid-large{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.win-metrics{grid-template-columns:1fr}.search-board{gap:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.orb{display:none}}

body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}body.reduce-motion .orb{display:none}


/* Stability + responsive fit pass */
[hidden]{display:none!important}
html,body{width:100%;min-height:100%;overscroll-behavior-y:none}
body{min-height:100dvh}
.app-shell{min-height:100dvh;min-width:0}
main{min-width:0;padding-bottom:max(clamp(18px,3vw,38px),var(--safe-bottom))}
.view{min-width:0}
.board-meta{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.source-chip span{color:var(--cyan);font-weight:800}
.game-view.is-active{min-width:0;align-items:stretch}
.goals-panel,.board-panel,.control-panel{min-width:0;min-height:0}
.board-panel{height:auto}
.board-stage{width:100%;max-width:760px;height:min(64dvh,700px);min-height:300px;justify-self:center;overflow:hidden;contain:layout paint}
.search-board{gap:var(--board-gap,7px);max-width:100%;max-height:100%}
.search-tile{min-width:0;min-height:0;touch-action:none;font-size:clamp(10px,3.2vw,28px);border-radius:clamp(5px,1.2vw,16px)}
.crossword-board{max-width:100%;max-height:100%;overflow:hidden}
.cross-cell,.cross-block{min-width:0;min-height:0}
.crush-banner{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%) scale(.92);padding:10px 18px;border:1px solid rgba(255,210,125,.55);border-radius:999px;background:rgba(9,12,28,.9);box-shadow:0 16px 45px rgba(0,0,0,.38),0 0 34px rgba(255,210,125,.22);color:var(--gold);font-size:clamp(18px,4vw,32px);font-weight:950;letter-spacing:.16em;pointer-events:none;animation:crushBanner .42s ease both}
.board-stage.is-crushing{animation:boardPulse .42s ease both}
@keyframes crushBanner{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes boardPulse{0%,100%{filter:none}45%{filter:brightness(1.14) saturate(1.15)}}
.goal-list{min-height:0}
.dialog-card{max-height:calc(100dvh - 28px)}

@media(min-width:1025px){
  .game-view.is-active{grid-template-columns:minmax(210px,280px) minmax(360px,1fr) minmax(210px,270px);grid-template-areas:"goals board controls"}
  .board-stage{height:min(60dvh,calc(100dvh - 300px),700px)}
  .goals-panel,.board-panel,.control-panel{max-height:calc(100dvh - 132px)}
  .goals-panel,.control-panel{overflow:auto}
  .board-panel{overflow:hidden}
  .goal-list{max-height:none;overflow:auto}
}

@media(max-width:1024px){
  .topbar{grid-template-columns:1fr auto;grid-template-areas:"brand actions" "nav nav";gap:8px;padding-top:max(10px,env(safe-area-inset-top,0px))}
  .brand{grid-area:brand}.top-actions{grid-area:actions}.topnav{grid-area:nav;overflow-x:auto;justify-content:flex-start;border-radius:14px;scrollbar-width:none}.topnav::-webkit-scrollbar{display:none}.nav-btn{flex:0 0 auto;min-width:max-content}
  .game-view.is-active{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "goals" "controls";gap:12px}
  .board-panel,.goals-panel,.control-panel{min-height:0;max-height:none}
  .board-stage{height:auto;min-height:0;aspect-ratio:1/1;width:min(100%,calc(100dvh - 130px));max-width:760px}
  .goal-list{max-height:none;grid-template-columns:1fr 1fr}
  .calm-meter{margin-top:0}
  body[data-view=game] .footer{display:none}
}

@media(max-width:620px){
  main{padding:10px}
  .topbar{padding-inline:10px}
  .brand-mark{width:34px;height:34px;border-radius:10px}.brand-mark img{width:23px;height:23px}.brand-copy strong{font-size:12px}.brand-copy small{display:none}
  .top-actions{gap:5px}.icon-btn{width:38px;height:38px;border-radius:11px}
  .topnav{margin-inline:-2px}.nav-btn{min-height:36px;padding-inline:10px;font-size:12px}
  .game-view.is-active{gap:8px}
  .panel{border-radius:16px}.board-panel,.goals-panel,.control-panel{padding:10px}
  .board-topline{align-items:flex-start}.board-meta{gap:4px}.difficulty-badge,.seed-chip{padding:5px 7px;font-size:9px}.current-word{font-size:10px;max-width:34vw}
  .board-stage{padding:6px;border-radius:14px}
  .goal-list{grid-template-columns:1fr}
  .goal-item,.clue-item{min-height:42px}
  .learn-card{min-height:68px}
}

@media(max-width:420px){
  .brand-copy{max-width:132px}.current-word{max-width:29vw}
  .seed-chip.source-chip{display:none}
  .stat{padding:9px}.stat strong{font-size:18px}
  .control-stack{gap:6px}
  .primary-btn,.secondary-btn,.toggle-btn,.text-btn{min-height:44px}
}

@media(max-height:620px) and (min-width:700px){
  .topbar{position:relative}
  .board-stage{height:auto;aspect-ratio:1/1;width:min(100%,calc(100dvh - 100px));max-width:620px}
  .game-view.is-active{align-items:start}
  .goals-panel,.board-panel,.control-panel{max-height:none}
}

body[data-theme=dawn] .topbar{background:rgba(233,237,247,.9)}
body[data-theme=contrast] .topbar{background:rgba(0,0,0,.94)}


/* Spectacle effects layer */
.fx-layer{position:fixed;inset:0;z-index:70;pointer-events:none;overflow:hidden;contain:strict}
.fx-canvas{position:absolute;inset:0;width:100%;height:100%}
.fx-flash{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.24),rgba(115,229,244,.12) 28%,transparent 68%);mix-blend-mode:screen}
.fx-flash.is-active{animation:fxFlash .32s ease-out both}
.celebration-callout{position:absolute;left:50%;top:20%;display:grid;gap:4px;min-width:min(390px,82vw);text-align:center;transform:translate(-50%,-18px) scale(.94);opacity:0;filter:drop-shadow(0 12px 34px rgba(0,0,0,.38))}
.celebration-callout strong{font-size:clamp(24px,5vw,52px);line-height:.95;letter-spacing:-.035em;color:#fff;text-shadow:0 0 22px rgba(115,229,244,.35),0 2px 0 rgba(0,0,0,.2)}
.celebration-callout span{font-size:clamp(11px,1.8vw,15px);font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.celebration-callout.is-visible{animation:celebrationCallout .9s cubic-bezier(.2,.8,.2,1) both}
.app-shell.fx-shake{animation:screenImpact .46s cubic-bezier(.36,.07,.19,.97) both}
.board-panel.fx-win-glow{animation:winGlow 1.5s ease-out both}
.win-card{overflow:hidden;position:relative}
.win-card::before{content:"";position:absolute;inset:-45%;background:conic-gradient(from 0deg,transparent,rgba(115,229,244,.12),transparent,rgba(255,210,125,.1),transparent);opacity:0;pointer-events:none}
.win-card.is-celebrating::before{animation:winCardSweep 2.4s ease-out both}
.win-mark{position:relative;isolation:isolate}
.win-card.is-celebrating .win-mark{box-shadow:0 0 0 1px rgba(115,229,244,.2),0 0 42px rgba(115,229,244,.22)}
@keyframes fxFlash{0%{opacity:0}18%{opacity:.9}100%{opacity:0}}
@keyframes celebrationCallout{0%{opacity:0;transform:translate(-50%,12px) scale(.82)}22%{opacity:1;transform:translate(-50%,0) scale(1.04)}72%{opacity:1;transform:translate(-50%,-4px) scale(1)}100%{opacity:0;transform:translate(-50%,-18px) scale(.98)}}
@keyframes screenImpact{0%,100%{transform:translate3d(0,0,0) rotate(0)}12%{transform:translate3d(-7px,2px,0) rotate(-.18deg)}24%{transform:translate3d(7px,-3px,0) rotate(.2deg)}38%{transform:translate3d(-5px,2px,0) rotate(-.12deg)}55%{transform:translate3d(4px,-1px,0) rotate(.1deg)}72%{transform:translate3d(-2px,1px,0) rotate(-.05deg)}}
@keyframes winGlow{0%{box-shadow:var(--shadow-soft)}30%{box-shadow:0 0 0 1px rgba(115,229,244,.35),0 0 70px rgba(115,229,244,.2),0 30px 100px rgba(159,135,255,.14)}100%{box-shadow:var(--shadow-soft)}}
@keyframes winCardSweep{0%{opacity:0;transform:rotate(0deg) scale(.7)}22%{opacity:1}100%{opacity:0;transform:rotate(160deg) scale(1.1)}}
body[data-theme=dawn] .celebration-callout strong{color:#18203b;text-shadow:0 0 20px rgba(49,86,255,.18)}
body[data-theme=dawn] .fx-flash{mix-blend-mode:multiply;background:radial-gradient(circle at 50% 48%,rgba(115,229,244,.18),rgba(159,135,255,.08) 30%,transparent 68%)}
body[data-theme=contrast] .fx-flash{display:none}
body[data-theme=contrast] .celebration-callout strong{color:#fff;text-shadow:none}
body.reduce-motion .app-shell.fx-shake,.reduce-motion .board-panel.fx-win-glow{animation:none!important}
body.reduce-motion .fx-canvas{display:none}
body.reduce-motion .fx-flash.is-active{animation:none!important;opacity:.12}
body.reduce-motion .celebration-callout.is-visible{animation:reducedCallout .8s ease-out both!important}
@keyframes reducedCallout{0%{opacity:0}18%,78%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .fx-canvas{display:none}
  .app-shell.fx-shake,.board-panel.fx-win-glow{animation:none!important}
  .fx-flash.is-active{animation:none!important;opacity:.12}
  .celebration-callout.is-visible{animation:reducedCallout .8s ease-out both!important}
}


/* Spectacle ambience polish */
.board-stage::before{content:"";position:absolute;inset:-18%;z-index:0;pointer-events:none;background:conic-gradient(from 30deg,transparent 0 24%,rgba(115,229,244,.07) 31%,transparent 42% 62%,rgba(159,135,255,.065) 70%,transparent 80%);filter:blur(26px);opacity:.55;animation:boardAurora 18s linear infinite}
#winDialog::backdrop{background:rgba(4,6,16,.48);backdrop-filter:blur(4px)}
body[data-effects=calm] .board-stage::before{opacity:.28;animation-duration:28s}
body[data-effects=balanced] .board-stage::before{opacity:.42;animation-duration:22s}
@keyframes boardAurora{to{transform:rotate(360deg)}}
body.reduce-motion .board-stage::before{animation:none!important;opacity:.18}
@media(prefers-reduced-motion:reduce){.board-stage::before{animation:none!important;opacity:.18}}
