/* Shared wedding styling; puzzle dimensions and interaction styles stay intact. */
:root{--ink:#343b33;--muted:#68685e;--accent:#794c59;--paper:#fffdf8;--line:#ded9c9;--sage:#62735c;--blush:#f4e7e4;--gold:#aa8950}
body{background:#f5f2ea;background-image:radial-gradient(ellipse at 0 15%,#e7ebdf99,transparent 45%),radial-gradient(ellipse at 100% 50%,#f3e3df88,transparent 50%);color:var(--ink)}
header{position:relative;isolation:isolate;overflow:hidden;padding:42px 24px 32px;background:linear-gradient(110deg,#f0f2e9,#fffdf8 45%,#f8eeea);border-bottom:1px solid #d4c9ae}
.wedding-kicker{font-size:10px!important;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sage)!important;margin:0 auto 12px!important}
header h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(44px,7vw,72px);font-weight:400;line-height:1.1;letter-spacing:-.04em;margin:0 0 12px;color:#394b3c}
header h1 span{font-style:italic;color:var(--gold);font-size:.8em;padding:0 .12em}
.wedding-subtitle{font:italic 21px/1.4 Georgia,serif;color:#795662!important;margin:0 auto 12px!important}
header p:last-child{max-width:620px;font-size:14px;line-height:1.7}
.botanical{position:absolute;width:210px;height:240px;left:clamp(-55px,2vw,40px);bottom:-40px;z-index:-1;color:#7e9273;opacity:.37;transform:rotate(-12deg);pointer-events:none}
.botanical.right{left:auto;right:clamp(-55px,2vw,40px);transform:scaleX(-1) rotate(-12deg)}
.panel{border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 24px #4b4d3510;background:var(--paper)}
.competition{margin:24px auto;padding:24px 28px;gap:28px;border-top:3px solid #a5af93}
.competition h2,.clues h2{color:#40553f;font-weight:400}
.competition h2{font-size:27px;line-height:1.25;max-width:440px}
.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--accent)!important}
.competition>div>p:not(.eyebrow){font-size:14px}
.competition aside{padding-left:26px;border-left:1px solid var(--line)}
.competition label{font-size:13px;font-weight:600}
.join-row input{background:#fffefa;color:var(--ink);border-color:#cdcbbd;border-radius:8px;min-height:44px}
.join-row input:focus{outline:2px solid var(--sage);outline-offset:2px}
button{background:var(--accent);border-color:var(--accent);min-height:44px;transition:background-color .15s ease,box-shadow .15s ease}
button:hover:not(:disabled){filter:none;box-shadow:0 2px 8px #794c5920}
button.secondary{color:var(--accent);border-color:#d1b9bc;background:#fffaf7}
button:focus-visible{outline-color:#40553f}
.lang-toggle button,.tab{min-height:40px}
.lang-toggle button.active,.tab.active{background:var(--sage);border-color:var(--sage);color:white}
.clue:hover,.clue.selected{background:#edf0e6}
.clue{line-height:1.5;min-height:44px}
.clue .n{color:var(--accent)}
.group{font-size:10px;color:#6c715f;letter-spacing:.08em}
.current-clue{background:#eaf0e3;border:1px solid #d5ddca;border-left:3px solid #849575;color:#374d34;line-height:1.55}
.cell.black{background:#455944;border-color:#455944}
.cell input:focus{background:#f8eadc;box-shadow:inset 0 0 0 2px var(--accent)}
.cell.correct{background:#deeed8;border-color:#729168}.cell.correct input{color:#28502c}.cell.correct input:focus{background:#d0e5c9}
.cell.solved:not(.given){background:#deeed8;border-color:#729168}.cell.solved:not(.given) input{color:#28502c}.cell.solved:not(.given) input:focus{background:#d0e5c9}
.cell.incorrect{background:#f6dedd;border-color:#bb7277}.cell.incorrect input{color:#8b303d}.cell.incorrect input:focus{background:#efc9cc}
.clue[data-result="correct"]{background:#edf4e8}.clue[data-result="incorrect"]{background:#fae9e7}
.answer-badge{font-weight:700;align-self:center}.clue[data-result="correct"] .answer-badge,.key-correct{color:#28502c}.clue[data-result="incorrect"] .answer-badge,.key-incorrect{color:#8b303d}
.answer-key{font-size:12px;line-height:1.7;color:var(--muted)}.answer-key span{white-space:nowrap;margin-right:6px}
.reveal-panel{grid-column:1/-1;order:3}.reveal-panel h2{font:400 25px Georgia,serif;color:#40553f;margin:0 0 8px}.reveal-panel #reveal-note{border:0;padding:0;font-size:14px}
#edit-name{margin:0 0 8px;font-size:12px;min-height:36px}#name-form{margin:10px 0}#name-form label{display:block}
#leaderboard li{padding:11px 10px;border-bottom:1px solid #ece6da;font-size:14px}
#leaderboard strong{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:650}
#leaderboard .is-you{background:#edf0e6}
#leaderboard-status{font-size:12px;line-height:1.6}
#reveal-note{padding-top:10px;border-top:1px solid #ece6da;font-size:12px;color:#716859}
.reveal-notice.unlocked{margin-top:14px;padding:14px 16px;background:#eaf0e3;border:1px solid #a5b393;border-radius:10px}
.reveal-notice.unlocked #reveal-note{margin:0 0 10px;padding:0;border:0;font-size:14px;font-weight:600;line-height:1.6;color:#374d34}
.sync-row{font-size:12px;line-height:1.6}
.sync-row button{font-size:12px;padding:6px 10px;min-height:36px}
.legend{font-size:12px;line-height:1.6}
.wedding-footer{text-align:center;color:#797663;font:italic 15px/1.6 Georgia,serif;padding:4px 20px 30px}
.wedding-footer span{color:var(--gold);display:block;font-style:normal;letter-spacing:.4em;margin-bottom:5px}
.host-page main{background:var(--paper);border-color:var(--line);border-top:3px solid #a5af93;box-shadow:0 12px 40px #4b4d3512}
.host-page h1{color:#40553f;font-weight:400}
.host-page main>p:first-child{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.host-page #host-state{background:#edf0e6}
.host-page input{background:#fffefa;border-color:#cdcbbd;color:var(--ink)}
.host-page a{color:var(--accent)}
.host-table-wrap{overflow-x:auto;margin:14px 0;border:1px solid var(--line);border-radius:8px}.host-answers{width:100%;border-collapse:collapse;text-align:left;font-size:13px;min-width:480px}.host-answers th,.host-answers td{padding:10px;vertical-align:top;border-bottom:1px solid var(--line)}.host-answers th{background:#edf0e6}.host-answers td:nth-child(2){font-weight:650;overflow-wrap:anywhere;max-width:150px}.host-answers button{font-size:12px;min-height:44px;padding:8px;margin:0}.host-answers .clue-context{display:block;color:var(--accent);font-weight:600;margin-bottom:4px}.cell.given{background:#f5edcf;border-color:#b59a60}.cell.given input{color:#625124;cursor:default}.cell.given input:focus{background:#eee1b8}.clue[data-given="true"]{border-left:3px solid #b59a60}
.host-answers .solved-count{text-align:center;font-weight:700;color:var(--sage);font-variant-numeric:tabular-nums}
@media(min-width:1400px){.competition{max-width:1364px}}
@media(min-width:901px){.clue-list{max-height:65vh;overflow-y:auto;overscroll-behavior-y:contain}}
@media(max-width:1400px) and (min-width:901px){.competition{margin-left:18px;margin-right:18px}}
@media(max-width:900px){
 .current-clue{top:var(--clue-top,0px);box-shadow:0 4px 8px #343b3318}
 header{padding:30px 20px 24px}.botanical{width:140px;height:190px;left:-66px;bottom:-35px;opacity:.3}.botanical.right{right:-66px}
 .wedding-kicker{font-size:9px!important;letter-spacing:.16em}.wedding-subtitle{font-size:19px}
 .competition{margin:14px 10px;padding:18px;gap:18px}.competition h2{font-size:25px}
 .competition aside{padding:16px 0 0;border-left:0;border-top:1px solid var(--line)}
 .competition aside h2{font-size:23px;margin-bottom:6px}
 #leaderboard{max-height:180px}.wedding-footer{padding-bottom:22px}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.crossword-editor{position:fixed;left:0;bottom:0;width:1px;height:1px;opacity:0.01;pointer-events:none;border:0;padding:0;font-size:16px}
.cell.active-cell{box-shadow:inset 0 0 0 3px var(--accent)}
.cell.fixed-mismatch{box-shadow:inset 0 0 0 3px #bb4141}
