:root{color:#14221f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface:#fffcf4b8;--surface-strong:#fffcf4eb;--border:#14221f1f;--ink-soft:#14221fad;--accent:#1f6f5f;--accent-dark:#164d42;--tile-hidden:#8ea698;--tile-revealed:#f6f1e4;--tile-flagged:#d07c48;--tile-mine:#8d3131;background:radial-gradient(circle at 0 0,#fff5d2e6,#0000 26%),radial-gradient(circle at 100% 0,#82d2b766,#0000 24%),linear-gradient(#f5ecd9 0%,#dfe9dd 100%);font-family:Space Grotesk,Segoe UI,sans-serif;font-weight:400;line-height:1.5}html,body,#app{min-height:100%;margin:0}body{justify-content:center;min-width:320px;display:flex;overflow-x:auto}button,input{font:inherit}button{cursor:pointer}.shell{box-sizing:border-box;width:100%;min-height:100vh;margin:0;padding:32px 20px 48px;overflow:visible}.shell-content{justify-items:center;width:max-content;min-width:100%;margin:0 auto;display:grid}.page-header{width:100%;margin-bottom:18px;display:grid}.layout-stack{justify-items:stretch;gap:22px;width:max-content;display:grid}.top-layout,.board-card,.contributors-card,.status-card,.username-form{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}h1{margin:0;font-size:clamp(1.9rem,3vw,3rem);line-height:.98}.title{text-align:center;width:100%;margin-bottom:0}.status-card,.username-form,.board-card,.contributors-card{border:1px solid var(--border);background:var(--surface);box-sizing:border-box;border-radius:24px;box-shadow:0 24px 60px #19322c1a}.status-card{padding:22px}.sidebar{gap:16px;width:300px;display:grid}.status-row{border-bottom:1px solid #14221f14;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.status-row:last-of-type{border-bottom:0}.offline{color:#8d3131}.timer-value{transition:color .14s}.timer-won{color:#1d8c52}.timer-lost{color:#a23636}.blame{color:#8d3131;margin:14px 0 0;font-weight:600}.username-form{gap:12px;padding:16px;display:grid}.username-form.compact{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-bottom:1px solid #14221f14;border-radius:0;gap:8px;margin-bottom:8px;padding:0 0 16px}.username-form.compact label{font-size:.88rem}.username-form.compact input{border-radius:12px;padding:10px 12px}.username-form.compact button{justify-self:stretch;padding:10px 14px}.username-form label{gap:8px;font-weight:600;display:grid}.username-form input{box-sizing:border-box;background:var(--surface-strong);border:1px solid #14221f29;border-radius:16px;width:100%;padding:14px 16px}.username-form button,.reset-button{color:#fff8f0;background:linear-gradient(135deg, var(--accent) 0%, #2f8e7a 100%);border:0;border-radius:16px;padding:12px 16px;box-shadow:0 16px 30px #1f6f5f40}.username-form button{justify-self:start}.reset-button{background:linear-gradient(135deg,#aa5d31 0%,#cc8a47 100%);width:100%;margin-top:16px;box-shadow:0 16px 30px #aa5d3133}.difficulty-picker{gap:8px;margin-top:14px;font-size:.88rem;font-weight:600;display:grid}.difficulty-tabs{flex-wrap:nowrap;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.username-form button:disabled,.reset-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.top-layout{grid-template-columns:300px auto 300px;justify-content:center;align-items:start;gap:22px;width:max-content;max-width:100%;display:grid}.board-card{justify-self:center;gap:10px;width:fit-content;min-width:0;padding:22px;display:grid;position:relative;overflow:visible}.board-stage{width:max(320px, var(--board-size));position:relative}.touch-hold-indicator{left:var(--touch-indicator-left,0px);top:var(--touch-indicator-top,0px);pointer-events:none;z-index:4;place-items:center;width:58px;height:58px;display:grid;position:absolute;transform:translate(-50%,-100%)}.touch-hold-ring{filter:drop-shadow(0 16px 30px #14221f2e);position:absolute;inset:0;overflow:visible}.touch-hold-ring-track,.touch-hold-ring-progress{fill:none;stroke-width:6px}.touch-hold-ring-track{stroke:#ffffff38}.touch-hold-ring-progress{stroke:#fffffffa;stroke-linecap:round;stroke-dasharray:163.36;stroke-dashoffset:163.36px;transform-box:fill-box;transform-origin:50%;animation:touch-hold-spin var(--touch-hold-delay,.42s) linear forwards;transform:rotate(-90deg)}.touch-hold-indicator.ready .touch-hold-ring-progress{stroke-dashoffset:0;animation:none}@keyframes touch-hold-spin{0%{stroke-dashoffset:163.36px}to{stroke-dashoffset:0}}.board{gap:var(--board-gap,3px);grid-auto-rows:1fr;width:100%;display:grid}.board-resize-handle{width:15px;height:15px;box-shadow:none;cursor:nwse-resize;touch-action:none;z-index:2;background:linear-gradient(135deg,#0000 0 36%,#14221f11 36% 46%,#0000 46% 58%,#14221f0c 58% 68%,#0000 68% 100%);border:0;border-radius:0;position:absolute;bottom:6px;right:6px}.tile{aspect-ratio:1;border-radius:var(--tile-radius,5px);width:100%;min-height:0;font-size:var(--tile-font-size,12px);color:#fffaf3;background:linear-gradient(180deg, #95ae9f 0%, var(--tile-hidden) 100%);touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.tile:not(:hover){transition:transform .12s,box-shadow .12s,background .12s,color .12s}.tile:hover{transform:translateY(-1px);box-shadow:0 12px 18px #14221f24}.tile.blank-revealed:hover{box-shadow:none;transform:none}.tile.blank-revealed{cursor:default}.tile.touch-flagging{transform:translateY(-1px)scale(.98);box-shadow:0 0 0 3px #fff8e5f5,0 0 0 7px #1f6f5f9e,0 14px 22px #14221f2e}.tile.touch-flagging.revealed{box-shadow:0 0 0 3px #fff8e5f5,0 0 0 7px #155b4f7a,0 12px 20px #14221f24}.tile.revealed{color:#16352f;background:linear-gradient(180deg, #fff9ef 0%, var(--tile-revealed) 100%)}.tile.flagged{background:linear-gradient(180deg, #95ae9f 0%, var(--tile-hidden) 100%)}.tile.locked{cursor:wait;box-shadow:inset 0 0 0 2px #fff6e1d9,0 10px 18px #14221f1f}.tile.locked:not(.revealed){background:linear-gradient(#b38b62 0%,#8f6b48 100%)}.tile:disabled{opacity:1}.tile:disabled:hover{box-shadow:inherit;transform:none}.tile.mine{background:linear-gradient(180deg, #a84545 0%, var(--tile-mine) 100%);color:#fff4f4}.tile.solved-mine{background:linear-gradient(180deg, #95ae9f 0%, var(--tile-hidden) 100%)}.flag-icon{width:var(--flag-width,12px);height:var(--flag-height,14px);justify-content:flex-start;align-items:flex-end;display:inline-flex;position:relative}.flag-pole{left:var(--flag-pole-left,2px);bottom:var(--flag-pole-bottom,1px);width:var(--flag-pole-width,2px);height:var(--flag-pole-height,10px);background:#fff3e9;border-radius:999px;position:absolute;box-shadow:0 0 0 1px #5f2a1214}.flag-cloth{left:var(--flag-cloth-left,3px);top:var(--flag-cloth-top,1.5px);width:var(--flag-cloth-width,6px);height:var(--flag-cloth-height,5px);clip-path:polygon(0 0,100% 18%,78% 50%,100% 82%,0 100%);border-radius:var(--flag-cloth-radius,1px);background:linear-gradient(135deg,#f4f0eb 0%,#b73535 35%,#8f2323 100%);position:absolute}.tone-1.revealed{color:#2d67c7}.tone-2.revealed{color:#2e8748}.tone-3.revealed{color:#bf3f35}.tone-4.revealed{color:#24468f}.tone-5.revealed{color:#8e2f2f}.tone-6.revealed{color:#1f7e7b}.tone-7.revealed{color:#6a4ea3}.tone-8.revealed{color:#66717b}.board-placeholder,.empty-state{color:var(--ink-soft)}.contributors-card{padding:22px}.top-contributors-card{width:300px}.contributors-card h2{margin:0 0 8px}.contributors-card p{color:var(--ink-soft);margin:0}.contributors-card ol{gap:12px;margin:20px 0 0;padding:0;list-style:none;display:grid}.contributors-card li{background:var(--surface-strong);border:1px solid #14221f14;border-radius:18px;align-items:center;gap:12px;padding:14px;display:grid}.contributor-entry{grid-template-columns:64px minmax(0,1fr)}.contributors-card li small{color:var(--ink-soft)}.contributor-details{align-content:center;gap:3px;min-width:0;display:grid}.contributor-name{overflow-wrap:anywhere;font-size:1.12rem;font-weight:700;line-height:1.05}.contributor-best{font-size:.82rem;display:block}.contributor-score{text-align:center;color:#1d2f2b;place-self:center;min-width:2.25ch;font-size:2rem;line-height:1}.global-leaderboard-card p{margin-bottom:0}.global-leaderboard-card{width:100%}.leaderboard-tabs{flex-wrap:wrap;gap:10px;display:flex}.leaderboard-tabs.difficulty-tabs{flex-wrap:nowrap;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.leaderboard-tab{color:#35544e;white-space:nowrap;background:#fffcf4c7;border:0;border-radius:999px;min-width:0;padding:9px 14px;box-shadow:inset 0 0 0 1px #14221f14}.leaderboard-tab.active{background:linear-gradient(135deg, var(--accent) 0%, #2f8e7a 100%);color:#fff8f0;box-shadow:0 12px 24px #1f6f5f2e}.history-list{gap:12px;margin:20px 0 0;padding-left:0;list-style:none;display:grid}.history-list li{background:var(--surface-strong);border:1px solid #14221f14;border-radius:18px;padding:14px;display:block}.history-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.history-meta{flex:none;align-items:center;gap:10px;display:flex}.history-rank{color:#141414;letter-spacing:.04em;background:0 0;border-radius:0;min-width:0;padding:0;font-weight:800;display:inline-block}.ranked-list li:first-child .history-rank{color:#c79a1b}.ranked-list li:nth-child(2) .history-rank{color:#8d939a}.ranked-list li:nth-child(3) .history-rank{color:#9c5f2d}.history-time{background:#fffcf4f2;border:0;border-radius:999px;min-width:5.2rem;padding:9px 12px;font-size:1.05rem}.history-contributors{color:var(--ink-soft);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.history-chip{color:#213632;background:#fffcf4eb;border:1px solid #14221f14;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;display:inline-flex}.history-chip.secondary{background:#fffcf4bd}.history-name{font-weight:600}.history-points{text-align:center;color:#1f6f5f;min-width:2ch;font-weight:700}@media (width<=900px){.page-header{justify-items:center}.top-layout{grid-template-columns:1fr;width:100%}.shell{padding-inline:14px}.shell-content{width:100%;min-width:0}.board-card,.board-stage,.global-leaderboard-card,.top-contributors-card,.sidebar,.layout-stack{width:100%}.board-stage{width:100%;max-width:min(100%, var(--board-size))}.history-row{flex-direction:column;align-items:flex-start}.history-meta{width:100%}.history-contributors{justify-content:flex-start}}
