:root { --ink:#20201d; --paper:#f7f2e8; --red:#a32d29; --line:#bbb2a4; --gold:#c99d53; --correct:#dcebd9; --fix:#f6d6cf; --hint:#fff0ad; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#d8d0c2; font-family:Georgia, 'Times New Roman', serif; }
button { font:inherit; cursor:pointer; }
.paper { width:min(1180px, 100%); min-height:100vh; margin:auto; padding:22px clamp(16px,4vw,58px) 28px; background:var(--paper); box-shadow:0 0 45px #766d6144; }
.masthead { border-top:5px solid var(--ink); border-bottom:1px solid var(--ink); padding:8px 0 10px; text-align:center; }
.edition,.kicker { margin:0; font:700 11px/1.2 Arial,sans-serif; letter-spacing:1.5px; text-transform:uppercase; color:var(--red); }
.title-row { display:flex; align-items:center; justify-content:center; gap:16px; }.title-row span{color:var(--red);font-size:17px}.title-row h1{font-size:clamp(35px,6vw,64px);letter-spacing:-2px;margin:0}.date-line{margin:2px 0 0;font-size:14px}
.difficulty-panel { max-width:720px; margin:clamp(34px,8vh,90px) auto; text-align:center; }.difficulty-panel h2,.game h2 { margin:7px 0; font-size:clamp(28px,4vw,42px); }.difficulty-panel>p:not(.kicker){font-size:18px;line-height:1.45;margin:0 auto 26px;max-width:520px}
.difficulty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.difficulty{min-height:120px;padding:16px 12px;background:transparent;border:1px solid var(--ink);text-align:left;transition:.15s}.difficulty:hover,.difficulty:focus-visible{background:var(--ink);color:var(--paper);transform:translateY(-3px)}.difficulty b{display:block;font-size:23px}.difficulty span{display:block;margin-top:8px;font:14px/1.2 Arial,sans-serif}
.hidden{display:none}.game{padding-top:25px}.game-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:3px double var(--ink);padding-bottom:13px}.game h2{font-size:clamp(27px,4vw,38px)}.new-game{padding:9px 12px;background:transparent;border:1px solid var(--ink);font-size:15px}.instruction{font-size:16px;margin:15px 0 20px}.puzzle-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,.75fr);gap:clamp(22px,5vw,60px);align-items:start}.board-wrap{overflow:auto;padding:2px}.board{display:grid;gap:0;width:max-content;margin:auto;background:var(--ink);border:2px solid var(--ink)}.cell{width:clamp(25px,4.6vw,42px);aspect-ratio:1;background:var(--paper);border:1px solid #776f63;position:relative;display:grid;place-items:center}.cell.block{background:var(--ink);border-color:var(--ink)}.cell input{width:100%;height:100%;border:0;background:transparent;text-align:center;text-transform:uppercase;font:700 clamp(16px,3vw,26px) Arial,sans-serif;color:var(--ink);outline:none;padding:0}.cell.selected{box-shadow:inset 0 0 0 3px var(--red);z-index:1}.cell.word{background:#ede5d4}.cell.correct{background:var(--correct)}.cell.fixed{background:var(--fix)}.cell.hinted{background:var(--hint)}.number{position:absolute;left:2px;top:1px;font:9px Arial,sans-serif;color:#333;pointer-events:none}.clues{column-count:1}.clues section+section{border-top:1px solid var(--line);margin-top:17px;padding-top:12px}.clues h3{font-size:21px;margin:0 0 7px}.clues ol{margin:0;padding-left:29px}.clues li{padding:4px 0 4px 2px;font-size:16px;line-height:1.25}.clues li.active{color:var(--red);font-weight:bold}.notice{min-height:1.5em;margin:20px 0 10px;font-style:italic;font-size:17px}.actions{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:17px}.actions button{padding:11px 17px;border:1px solid var(--ink);background:transparent;font-size:17px}.actions .primary{background:var(--red);border-color:var(--red);color:white}.actions button:hover{filter:brightness(.91)}footer{border-top:1px solid var(--ink);margin-top:38px;padding-top:9px;font-size:13px;text-align:center}
@media(max-width:700px){.paper{padding:16px 13px 22px}.difficulty-options{grid-template-columns:1fr}.difficulty{min-height:0;text-align:center}.puzzle-layout{grid-template-columns:1fr}.clues{display:grid;grid-template-columns:1fr 1fr;gap:15px}.clues section+section{border-top:0;margin-top:0;padding-top:0}.clues h3{font-size:18px}.clues li{font-size:14px}.cell{width:clamp(24px,8.4vw,37px)}.game-heading{align-items:start}.new-game{font-size:13px;padding:7px}.actions button{flex:1 1 30%;font-size:15px;padding:11px 7px}}

/* Keep every generated grid within its column instead of scrolling sideways. */
.board-wrap{overflow:hidden}.board{width:min(100%,630px)}.cell{width:auto;min-width:0}

/* Schwedenrätsel: every non-answer field is a visible clue tile, never a black block. */
.puzzle-layout{display:block}.board{width:min(100%,940px);background:#9fcce0}.cell{background:#fff}.clue-cell{min-width:0;aspect-ratio:1;border:1px solid #222;background:#abd5e7;color:#111;display:flex;flex-direction:column;justify-content:space-around;padding:2px;font:10px/1.1 Arial,sans-serif;overflow:hidden;cursor:help}.clue-cell:empty{background:#d7ebf3}.clue-label{position:relative;display:block;padding-left:8px;overflow-wrap:normal;word-break:normal;hyphens:auto}.clue-label::before{position:absolute;left:0;font-size:.8em;font-weight:bold}.clue-label.across::before{content:'▶'}.clue-label.down::before{content:'▼'}.clue-cell.active-clue{background:#f7df8d;box-shadow:inset 0 0 0 2px var(--red);z-index:1}.cell.block{background:#abd5e7;border-color:#222}
.difficulty:disabled{cursor:wait;opacity:.55}
