:root{--cw-gold:#d8b646;--cw-ink:#f5ead3;--cw-panel:#100d09;--cw-line:rgba(216,182,70,.42);--cw-cell:#f2e5c8;--cw-letter:#211307}
.crossword-main{width:min(1280px,94vw);margin:0 auto;padding:clamp(22px,4vw,48px) 0 70px}.crossword-hero{text-align:center;margin-bottom:22px}.crossword-hero .eyebrow{margin-bottom:7px}.crossword-hero h1{margin:0;color:#ead076;font-family:Cinzel,Georgia,serif;font-size:clamp(2.25rem,5vw,4.8rem);line-height:1;text-shadow:0 3px #69470f,0 10px 30px #000}.crossword-hero p:last-child{max-width:720px;margin:14px auto 0;color:#d5c9b5;line-height:1.6}.crossword-cabinet{overflow:hidden;border:1px solid var(--cw-line);border-radius:24px;background:radial-gradient(circle at 52% 5%,rgba(216,182,70,.1),transparent 28%),linear-gradient(145deg,#1b140c,#070605 72%);box-shadow:0 28px 80px rgba(0,0,0,.52)}.crossword-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:13px;border-bottom:1px solid var(--cw-line);background:rgba(0,0,0,.34)}.crossword-tab{min-width:0;padding:11px 7px;border:1px solid rgba(216,182,70,.24);border-radius:10px;background:#171109;color:#cbbd9e;font:800 .68rem/1.15 Inter,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.crossword-tab span{display:block;margin-top:4px;color:#887a61;font-size:.58rem}.crossword-tab.is-active{border-color:#e1bd43;background:linear-gradient(#e0bd49,#a46b12);color:#160e04;box-shadow:0 7px 20px rgba(0,0,0,.34)}.crossword-tab.is-active span{color:#3b2508}.crossword-workspace{display:grid;grid-template-columns:minmax(470px,1.15fr) minmax(310px,.85fr);min-height:600px}.crossword-board-wrap{display:flex;align-items:center;justify-content:center;min-width:0;padding:clamp(15px,3vw,34px);background:radial-gradient(circle at center,rgba(211,178,74,.08),transparent 58%),repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 1px,transparent 1px 8px)}.crossword-board{--cols:15;display:grid;grid-template-columns:repeat(var(--cols),clamp(24px,2.45vw,38px));grid-auto-rows:clamp(24px,2.45vw,38px);gap:2px;padding:10px;border:1px solid rgba(216,182,70,.34);border-radius:14px;background:#050504;box-shadow:0 18px 45px rgba(0,0,0,.5),inset 0 0 24px rgba(216,182,70,.08)}.crossword-cell{position:relative}.crossword-cell input{width:100%;height:100%;padding:0;border:1px solid #a88a4e;border-radius:3px;background:linear-gradient(145deg,#fff4d8,#d8c194);color:var(--cw-letter);font:900 clamp(.72rem,1.35vw,1.08rem)/1 "Courier New",monospace;text-align:center;text-transform:uppercase;box-shadow:inset 0 1px rgba(255,255,255,.65)}.crossword-cell input:focus{position:relative;z-index:2;outline:3px solid #e8bc36;outline-offset:1px}.crossword-cell input.is-correct{background:#b9d59f;border-color:#4f7e35}.crossword-cell input.is-wrong{background:#e5aca0;border-color:#9c382b}.crossword-number{position:absolute;z-index:2;top:2px;left:3px;color:#684517;font:800 8px/1 Inter,sans-serif;pointer-events:none}.crossword-sidebar{min-width:0;padding:clamp(18px,3vw,32px);border-left:1px solid var(--cw-line);background:rgba(0,0,0,.22)}.crossword-dayline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(216,182,70,.24)}.crossword-dayline h2{margin:0;color:#f0cf69;font-family:Cinzel,Georgia,serif;font-size:clamp(1.4rem,2.5vw,2rem)}.crossword-dayline p{margin:5px 0 0;color:#a99b82;font-size:.8rem}.crossword-progress{flex:0 0 auto;padding:8px 11px;border:1px solid var(--cw-line);border-radius:999px;color:#e8cc78;font:800 .7rem Inter,sans-serif}.crossword-clues{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-height:390px;overflow:auto;padding-right:6px}.crossword-clues h3{margin:0 0 8px;color:#d9b749;font:800 .7rem Inter,sans-serif;letter-spacing:.15em;text-transform:uppercase}.crossword-clues ol{margin:0;padding:0;list-style:none}.crossword-clues li{margin-bottom:8px;color:#e5dac6;font-size:.79rem;line-height:1.35;cursor:pointer}.crossword-clues li:hover{color:#f0cb5e}.crossword-clues b{display:inline-block;min-width:1.7em;color:#d9b749}.crossword-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:17px;border-top:1px solid rgba(216,182,70,.2)}.crossword-actions button{min-height:42px;padding:9px 14px;border:1px solid var(--cw-line);border-radius:999px;background:#171109;color:#ead078;font:800 .68rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.crossword-actions .crossword-check{background:linear-gradient(#e0bd49,#a46b12);color:#160e04}.crossword-status{min-height:44px;margin:14px 0 0;padding:11px 13px;border-left:3px solid #d8b646;background:rgba(216,182,70,.07);color:#ddd0b9;font-size:.82rem;line-height:1.45}.crossword-status.is-win{border-color:#7db65e;background:rgba(86,132,61,.15);color:#eaf5df}.crossword-solution{display:block;margin-top:5px;color:#f0ca59;font-family:Cinzel,serif;font-size:1.08rem}.crossword-old{--cw-ink:#2b170c;--cw-line:rgba(79,45,20,.55)}.crossword-old .crossword-hero h1{color:#4a2915;text-shadow:0 1px #f1dba9,0 4px 8px rgba(65,34,13,.25)}.crossword-old .crossword-hero p:last-child{color:#3a2517}.crossword-old .crossword-cabinet{border-color:#70491f;border-radius:4px;background:linear-gradient(145deg,rgba(229,204,151,.96),rgba(173,126,70,.95));box-shadow:4px 20px 50px rgba(72,42,18,.3)}.crossword-old .crossword-tabs{border-color:#795124;background:rgba(81,45,20,.18)}.crossword-old .crossword-tab{border-radius:2px;border-color:#795124;background:#4b2b17;color:#f1ddaf;font-family:"Courier New",monospace}.crossword-old .crossword-board-wrap{background:rgba(245,222,170,.24)}.crossword-old .crossword-board{border-radius:2px;border-color:#75491f;background:#392115}.crossword-old .crossword-sidebar{border-color:#70491f;background:rgba(255,236,190,.3)}.crossword-old .crossword-dayline{border-color:rgba(86,47,20,.35)}.crossword-old .crossword-dayline h2,.crossword-old .crossword-dayline p,.crossword-old .crossword-clues li{color:#30190d}.crossword-old .crossword-clues h3,.crossword-old .crossword-clues b{color:#704019}.crossword-old .crossword-progress{border-color:#704019;color:#4b2814}.crossword-old .crossword-actions{border-color:rgba(86,47,20,.3)}.crossword-old .crossword-actions button{border-radius:2px;border-color:#704019;background:#3b2112;color:#f1d18b;font-family:"Courier New",monospace}.crossword-old .crossword-status{background:rgba(255,236,190,.32);color:#341c0f}
@media(max-width:900px){.crossword-main{width:min(100% - 20px,760px);padding-top:20px}.crossword-tabs{grid-template-columns:repeat(4,1fr)}.crossword-workspace{grid-template-columns:1fr}.crossword-sidebar{border-top:1px solid var(--cw-line);border-left:0}.crossword-board-wrap{overflow:auto;justify-content:flex-start}.crossword-board{margin:auto}.crossword-clues{max-height:none}}
@media(max-width:520px){.crossword-tabs{grid-template-columns:repeat(2,1fr)}.crossword-board{grid-template-columns:repeat(var(--cols),27px);grid-auto-rows:27px}.crossword-clues{grid-template-columns:1fr}.crossword-dayline{display:block}.crossword-progress{display:inline-block;margin-top:10px}.crossword-actions button{flex:1}.crossword-hero h1{font-size:2.15rem}}

/* Keep every generated puzzle inside its cabinet, regardless of its column count. */
.crossword-board{width:min(100%,620px);grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-auto-rows:auto}
.crossword-cell{min-width:0;aspect-ratio:1}
.crossword-board-wrap{align-items:flex-start}
@media(max-width:1100px){.crossword-workspace{grid-template-columns:1fr}.crossword-sidebar{border-top:1px solid var(--cw-line);border-left:0}.crossword-board-wrap{justify-content:center}.crossword-clues{max-height:none}}
@media(max-width:520px){.crossword-board{width:100%;grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-auto-rows:auto;gap:1px;padding:6px}.crossword-number{top:1px;left:2px;font-size:6px}.crossword-cell input{font-size:.66rem}}
