@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=Fraunces:opsz,wght@9..144,700&display=swap";:root{color:#163c30;font-synthesis:none;--green:#183f32;--gold:#f5b82e;--cream:#fffaf0;--line:#d9d5c3;background:#f8f3e5;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 10% 15%,#f5d97655 0 9%,#0000 10%),linear-gradient(150deg,#fbf7e9,#edf2dc);min-height:100vh;margin:0}button,select,input{font:inherit}.bare{color:inherit;cursor:pointer;background:0 0;border:0}header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#fffaf0e8;border-bottom:1px solid #19423322;align-items:center;gap:28px;height:72px;padding:0 clamp(20px,6vw,80px);display:flex;position:sticky;top:0}.brand{font:700 1.2rem Fraunces,serif}.brand span{background:var(--gold);border-radius:50%;place-items:center;width:32px;height:32px;margin-right:7px;font:700 .65rem DM Sans,sans-serif;display:inline-grid}.games-link{font-size:.85rem;font-weight:700}.connection{text-transform:uppercase;letter-spacing:.08em;margin-left:auto;font-size:.72rem;font-weight:700}.connection i{background:#caa;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.connection i.online{background:#42a66b}main{max-width:1180px;margin:auto;padding:52px clamp(18px,5vw,60px)}.hero{text-align:center;max-width:760px;margin:0 auto 56px}.eyebrow{color:#9e6911;letter-spacing:.18em;font-size:.72rem;font-weight:700}.hero h1,.game-top h1{margin:12px 0 20px;font:700 clamp(2.6rem,7vw,5.2rem)/.98 Fraunces,serif}.hero em{color:#bd7c17;font-style:italic}.hero>p:last-child{color:#587064;max-width:620px;margin:auto;line-height:1.65}.section-heading h2{margin:8px 0 22px;font:700 clamp(2rem,4vw,3.2rem)/1 Fraunces,serif}.catalog{margin:0 auto 45px}.catalog-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.catalog-card{border:1px solid var(--line);background:#fffdf7;border-radius:20px;flex-direction:column;align-items:flex-start;gap:14px;min-height:260px;padding:22px;display:flex;box-shadow:0 14px 40px #334d3812}.game-icon{aspect-ratio:1;color:#724807;background:#f5c84e;border-radius:16px;place-items:center;width:58px;font:700 2rem Fraunces,serif;display:grid}.catalog-card small{letter-spacing:.12em;color:#9e6911;font-size:.59rem;font-weight:700}.catalog-card h3{margin:5px 0;font:700 1.45rem Fraunces,serif}.catalog-card p{color:#66776e;margin:0;font-size:.82rem;line-height:1.5}.card-play{margin-top:auto;font-weight:700}.game-main{max-width:1100px}.game-top{text-align:center;margin-bottom:22px}.game-top h1{margin:4px 0 18px;font-size:clamp(2.5rem,6vw,4.4rem)}.back{margin-bottom:20px;font-size:.78rem;font-weight:700;display:block}.play-choice,.mobile-tools{background:#e4e5d9;border-radius:12px;padding:4px;display:inline-flex}.play-choice button,.mobile-tools button{color:var(--green);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:9px 18px;font-weight:700}.play-choice button.active,.mobile-tools button.active{background:var(--green);color:#fff;box-shadow:0 3px 8px #183f3230}.game-card{border:1px solid var(--line);background:#fffdf7;border-radius:24px;padding:clamp(16px,3vw,32px);box-shadow:0 24px 80px #334d3822}.instructions{background:#f5f0df;border-radius:14px;align-items:start;gap:25px;margin-bottom:18px;padding:14px 18px;display:flex}.instructions strong{white-space:nowrap;font-family:Fraunces,serif}.instructions p{color:#587064;margin:0;font-size:.8rem;line-height:1.5}.toolbar{border-bottom:1px solid #dedbcd;align-items:end;gap:20px;margin-bottom:22px;padding-bottom:18px;display:flex}.toolbar label{letter-spacing:.1em;text-transform:uppercase;font-size:.64rem;font-weight:700}.toolbar select{color:var(--green);background:#faf8ef;border:1px solid #c9cbbb;border-radius:9px;margin-top:6px;padding:9px 34px 9px 11px;display:block}.clock,.mine-count{text-align:right;margin-left:auto}.clock small,.mine-count small,.rival small{letter-spacing:.12em;font-size:.62rem}.clock strong,.mine-count strong{font-variant-numeric:tabular-nums;font:700 1.7rem Fraunces,serif;display:block}.toolbar-action{margin-left:16px}.play-layout{justify-content:center;align-items:center;gap:30px;display:flex}.board{grid-template-columns:repeat(var(--columns),minmax(32px,58px));border:3px solid var(--green);background:#60776d;border-radius:12px;gap:1px;display:grid;overflow:hidden}.cell{aspect-ratio:1;border:0;place-items:center;display:grid}.cell.clue{color:#21463a;background:#e6dfc8;font:700 clamp(1rem,3vw,1.4rem) Fraunces,serif;box-shadow:inset 0 0 0 2px #d3c9aa}.cell.plot{cursor:pointer;color:#74500c;background:#f7f1df;font-size:clamp(1rem,3vw,1.8rem);font-weight:700}.cell.plot:hover{background:#fff3bc}.cell.flower{background:#fbd15c}.cell.cross{color:#77847d;background:#e1e7dd}.legend{color:#66776e;justify-content:center;gap:16px;margin-top:14px;font-size:.7rem;display:flex}.swatch{vertical-align:-2px;border-radius:3px;width:13px;height:13px;display:inline-grid}.swatch.flower{background:#fbd15c}.swatch.cross{background:#e1e7dd}.rival{background:#edf0e4;border-radius:16px;width:180px;padding:16px}.meter{background:#d1d8cd;border-radius:10px;height:10px;margin:14px 0;overflow:hidden}.meter i{background:var(--gold);height:100%;display:block}.cell.clue.invalid{color:#7d211d;background:#f7b4a2;box-shadow:inset 0 0 0 3px #bc3f32}.sun-tools{justify-content:center;gap:7px;margin:0 auto 18px;display:flex}.sun-tools button{color:var(--green);cursor:pointer;background:#f5f3e9;border:1px solid #c7cbbb;border-radius:10px;padding:9px 14px;font-weight:700}.sun-tools button.active{background:var(--green);color:#fff}.feedback{text-align:center;background:#e8f4d7;border-radius:10px;max-width:680px;margin:18px auto 0;padding:11px 14px;font-size:.8rem}.feedback.warning{color:#792c27;background:#fae1db}.pause-cover{text-align:center;background:#fff5ce;border:2px dashed #9a7a35;border-radius:12px;max-width:680px;margin:14px auto 0;padding:14px;font-weight:700}.actions button:disabled{opacity:.45;cursor:not-allowed}.rival{width:min(260px,35vw)}.rival-board{grid-template-columns:repeat(var(--columns),1fr);border:2px solid var(--green);background:#7b8b82;gap:1px;margin-top:10px;display:grid}.rival-board i{aspect-ratio:1;background:#faf5e7;place-items:center;font-size:clamp(.4rem,1.2vw,.7rem);font-style:normal;display:grid}.rival-board i.fixed{background:#ddd6c1}.rival-board i.flower{background:#fbd15c}.rival-board i.cross{color:#77847d;background:#e1e7dd}.mine-scroll{padding:2px;overflow:auto}.mine-board{grid-template-columns:repeat(var(--columns),32px);border:2px solid var(--green);background:#aab5aa;border-radius:10px;gap:2px;width:max-content;margin:auto;padding:3px;display:grid}.mine-cell{color:#183f32;cursor:pointer;background:#dde3d8;border:0;border-radius:3px;width:32px;height:32px;font-weight:700;box-shadow:inset 2px 2px #fff,inset -2px -2px #9daa9e}.mine-cell.revealed{box-shadow:none;background:#f3efdf}.mine-cell.flagged{color:#b65f28}.mine-cell.n1{color:#2368a2}.mine-cell.n2{color:#348248}.mine-cell.n3{color:#b83c35}.mine-cell.n4{color:#68398b}.mobile-tools{width:max-content;margin:0 auto 16px;display:flex}.sudoku-layout{justify-content:center;align-items:center;gap:28px;display:flex}.sudoku-board{border:3px solid var(--green);background:var(--green);grid-template-columns:repeat(9,minmax(36px,54px));gap:1px;display:grid}.sudoku-cell{aspect-ratio:1;color:#23604c;cursor:pointer;background:#fffdf7;border:0;font-size:1.2rem;position:relative}.sudoku-cell:nth-child(3n){border-right:2px solid var(--green)}.sudoku-cell:nth-child(9n){border-right:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--green)}.sudoku-cell.fixed{color:#253c34;background:#eee9d8;font-weight:700}.sudoku-cell.selected{z-index:1;background:#fff0b4;outline:3px solid #cf8a19}.sudoku-cell.conflict{color:#9c2f2a;background:#f8d5ce}.notes{color:#657a70;grid-template-columns:repeat(3,1fr);font-size:.52rem;display:grid;position:absolute;inset:2px}.notes i{font-style:normal}.keypad{grid-template-columns:repeat(3,50px);gap:7px;display:grid}.keypad button{height:46px;color:var(--green);cursor:pointer;background:#e7eadf;border:0;border-radius:9px;font-weight:700}.keypad button.active{background:var(--green);color:#fff}.actions{justify-content:center;gap:10px;margin-top:22px;display:flex}.actions button,.invite button,.secondary{cursor:pointer;border:0;border-radius:10px;padding:11px 18px;font-weight:700}.primary{background:var(--green);color:#fff}.secondary{color:var(--green);background:#ececdf}.invite{background:#f1f1e6;border-radius:12px;gap:8px;max-width:650px;margin:16px auto 0;padding:10px;display:flex}.invite label{flex:1;font-size:.65rem;font-weight:700}.invite input{color:#4d6259;background:0 0;border:0;width:100%;display:block}.invite button{background:var(--gold)}.success{background:#e8f4d7;border:1px solid #b8ce97;border-radius:14px;align-items:center;gap:14px;max-width:460px;margin:18px auto 0;padding:16px;display:flex}.success.failure{background:#fae1db;border-color:#e3aba0}.success>span{font-size:2rem}.success p{margin:3px 0 0;font-size:.82rem}footer{text-align:center;color:#718078;padding:10px 20px 35px;font-size:.72rem}.join-float{z-index:30;border:2px solid var(--gold);background:#fffdf7;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:6px 16px;width:min(390px,100vw - 28px);padding:20px;display:grid;position:fixed;bottom:clamp(14px,4vw,42px);right:clamp(14px,4vw,42px);box-shadow:0 18px 60px #183f3255}.join-float strong{font:700 1.15rem Fraunces,serif}.join-float span{color:#587064;font-size:.78rem}.join-float button{cursor:pointer;border:0;border-radius:12px;grid-area:1/2/3;padding:14px 20px;font-weight:700}.join-float button:disabled{opacity:.7}.duel-progress{letter-spacing:.1em;margin-left:auto;font-size:.68rem;font-weight:700}.join-float.invite-error{border-color:#bc3f32}button:focus-visible,select:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #d18b17}@media (max-width:760px){header{gap:12px;height:60px;padding:0 16px}.games-link{display:none}.connection{font-size:.58rem}main{padding-top:28px}.hero h1{font-size:2.8rem}.catalog-grid{grid-template-columns:1fr}.catalog-card{min-height:180px}.instructions{display:block}.instructions strong{margin-bottom:5px;display:block}.toolbar{flex-wrap:wrap}.clock{text-align:left;order:-1;width:100%;margin-left:0}.mine-count{margin-left:0}.play-layout.with-rival{align-items:flex-start;gap:8px}.rival{width:100px;padding:8px}.board{grid-template-columns:repeat(var(--columns),minmax(27px,1fr));width:min(92vw,520px)}.with-rival .board{width:min(69vw,520px)}.legend{flex-wrap:wrap}.legend span:last-child{display:none}.sudoku-layout{display:block}.sudoku-board{grid-template-columns:repeat(9,minmax(30px,1fr));width:min(92vw,490px);margin:auto}.sudoku-cell{font-size:1rem}.keypad{grid-template-columns:repeat(6,1fr);margin-top:18px}.keypad button{height:42px}.toolbar-action{margin-left:auto}.actions{flex-wrap:wrap}}@media (max-width:420px){.game-card{padding:12px}.mine-board{grid-template-columns:repeat(var(--columns),28px)}.mine-cell{width:28px;height:28px}.keypad{grid-template-columns:repeat(5,1fr)}.join-float{grid-template-columns:1fr}.join-float button{grid-area:auto/1;width:100%;margin-top:8px}}@media (prefers-reduced-motion:no-preference){.cell.plot,.mine-cell,.sudoku-cell{transition:transform .1s,background .1s}.cell.plot:active,.mine-cell:active,.sudoku-cell:active{transform:scale(.92)}}
