:root{--bg:#14213d;--panel:#fff7ea;--ink:#2a1a10;--accent:#ffb347;--topbar-h:44px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);touch-action:manipulation;-webkit-text-size-adjust:100%;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif}.topbar{height:var(--topbar-h);padding:0 14px;padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right));color:#fff7ea;background:#00000040;justify-content:space-between;align-items:center;display:flex}.topbar a{color:inherit;font-size:15px;font-weight:700;text-decoration:none}.topbar .toplink{opacity:.85;font-weight:500}#game-wrap{width:100%;height:calc(100vh - var(--topbar-h));height:calc(100svh - var(--topbar-h));background:var(--bg);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;min-height:420px;position:relative}#game{width:100%;height:100%}#game canvas{outline:none;display:block}.noscript{color:#fff;text-align:center;padding:40px 16px}.content{background:var(--panel);border-radius:20px 20px 0 0;max-width:760px;margin:0 auto;padding:32px 20px 24px;line-height:1.6}.content h1{margin-top:0;font-size:28px}.content h2{margin-top:28px;font-size:22px}.content .lead{font-size:17px}.content details{border-top:1px solid #e8dcc8;padding:12px 0}.content summary{cursor:pointer;font-weight:600}.footer{text-align:center;color:#fff7ea;opacity:.7;background:var(--bg);padding:18px;font-size:13px}.embed-block{z-index:99999;text-align:center;background:var(--bg);color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;font-size:18px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.embed-block a{color:#3a2310;background:var(--accent);border-radius:999px;padding:12px 26px;font-weight:700;text-decoration:none}.sgw{color:#f8f4ea;--red:#d64545;--green:#2f8f5b;--gold:#f2c14e;--cream:#fff7ea;--ink:#1d2340;background:radial-gradient(120% 80% at 50% 0,#22346b 0%,#14213d 55%,#0d1730 100%);position:relative;overflow:hidden}.sgw button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.sgw :focus-visible{outline:3px solid var(--gold);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.snow{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.snow i{background:#fff;border-radius:50%;width:6px;height:6px;animation:linear infinite fall;position:absolute;top:-10px}@keyframes fall{to{transform:translate(18px,105vh)}}@media (prefers-reduced-motion:reduce){.snow i{animation:none;display:none}}.screen-host{position:absolute;top:0;bottom:0;left:0;right:0}.screen{padding:12px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));flex-direction:column;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.btn{cursor:pointer;color:var(--cream);background:#ffffff24;border:0;border-radius:999px;min-height:44px;padding:12px 22px;font-size:16px;font-weight:700}.btn.primary{background:var(--gold);color:#3a2a06;box-shadow:0 4px #b38a27}.btn.primary:active{transform:translateY(2px);box-shadow:0 2px #b38a27}.btn.ghost{background:0 0;border:2px solid #ffffff59}.btn.small{min-height:36px;padding:8px 16px;font-size:14px}.icon-btn{cursor:pointer;background:#ffffff1f;border:0;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.icon-btn.back{padding-bottom:4px;font-size:28px;line-height:1}.calendar{touch-action:pan-y;overscroll-behavior:contain;gap:10px;overflow-y:auto}.cal-head{justify-content:space-between;align-items:center;width:100%;max-width:560px;display:flex}.cal-head h2{letter-spacing:.5px;margin:0;font-size:24px}.status{text-align:center;opacity:.9;max-width:560px;margin:0;font-size:15px;line-height:1.4}.doors{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;max-width:560px;margin:4px 0 0;padding:0;list-style:none;display:grid}@media (min-width:640px) and (min-aspect-ratio:1){.doors{grid-template-columns:repeat(6,1fr);max-width:640px}}.door{aspect-ratio:1.25;cursor:pointer;background:var(--green);border:2px solid #ffffff40;border-radius:12px;justify-content:center;align-items:center;width:100%;display:flex;position:relative;box-shadow:inset 0 -6px #0000002e}.doors li:nth-child(3n+2) .door{background:var(--red)}.doors li:nth-child(3n) .door{background:#2d5aa8}.door .num{text-shadow:0 2px #00000040;font-size:clamp(18px,5vw,26px);font-weight:800}.door .mark{font-size:14px;position:absolute;top:4px;right:6px}.door.locked{filter:grayscale(.75)brightness(.6);cursor:not-allowed}.door.done .mark{color:#3a2a06;background:var(--gold);border-radius:50%;place-items:center;width:20px;height:20px;font-weight:900;display:grid;top:4px;right:4px}.door.today{border-color:var(--gold);animation:1.8s ease-in-out infinite alternate glow;box-shadow:0 0 0 3px #f2c14e73,inset 0 -6px #0000002e}@keyframes glow{to{box-shadow:0 0 0 6px #f2c14e33,inset 0 -6px #0000002e}}.shake{animation:.35s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.flash{opacity:.85;min-height:1.2em;margin:0;font-size:14px}.puzzle{gap:8px}.puz-head{align-items:center;gap:8px;width:100%;max-width:560px;display:flex}.puz-title{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.puz-title strong{font-size:17px}.puz-title span{opacity:.8;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.puz-stats{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;font-size:14px;display:flex}.timer{font-size:17px;font-weight:800}.count{opacity:.8}.board-area{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.board{--cell:34px;grid-auto-rows:var(--cell);background:var(--cream);color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:14px;padding:0;display:grid;position:relative;box-shadow:0 10px 30px #00000059,0 0 0 6px #ffffff1f}.board .row{grid-template-columns:repeat(10, var(--cell));display:grid}.cell{z-index:2;font-weight:700;font-size:calc(var(--cell) * .52);border-radius:50%;outline:none;place-items:center;line-height:1;display:grid;position:relative}.cell:focus-visible{box-shadow:inset 0 0 0 3px #3a6ad6}.cell.anchor{box-shadow:inset 0 0 0 3px var(--red)}.cell.selecting{color:#fff}.cell.found{opacity:.95}.lines{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.lines line{stroke-linecap:round;stroke-width:.78px}.lines .found-line{opacity:.45}.lines .sel{stroke:#3a6ad6;opacity:.85}.board.nope{animation:.3s shake}.words{flex-wrap:wrap;justify-content:center;gap:6px 8px;width:100%;max-width:560px;margin:0;padding:0 0 4px;list-style:none;display:flex}.word{letter-spacing:.5px;background:#ffffff1f;border-radius:999px;padding:5px 10px;font-size:14px;font-weight:700}.word.found{background:var(--c,#2a9d8f);color:#fff;opacity:.85;text-decoration:line-through;text-decoration-thickness:2px}.complete{z-index:5;background:#080e2099;place-items:center;padding:16px;animation:.25s ease-out fade;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}}.complete .card{background:var(--cream);width:min(360px,100%);color:var(--ink);text-align:center;border-radius:22px;padding:22px 20px;box-shadow:0 20px 50px #00000073}.complete .globe{color:#2d5aa8;background:radial-gradient(circle at 35% 30%,#fff,#bfe3ff 60%,#7fb5e6);border-radius:50%;place-items:center;width:64px;height:64px;margin:-54px auto 6px;font-size:30px;display:grid;box-shadow:0 6px #8a5a2b}.complete h2{margin:4px 0;font-size:24px}.complete .theme{opacity:.75;margin:0}.complete .time{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:44px;font-weight:800}.complete .best{color:var(--green);margin:0;font-weight:600}.complete .next{margin:10px 0 0;font-size:14px}.complete .actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.complete .btn:not(.primary){color:var(--ink);background:#e9e0cf}.complete .btn.ghost{background:0 0;border-color:#cdbfa6}.share-msg{min-height:1.2em;margin:8px 0 0;font-size:14px}
