@font-face{font-family:Unbounded;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/unbounded-var.woff2)format("woff2")}:root{--kiln:#17262a;--tray:#1f3136;--cell-empty:#26393f;--cell-edge:#0f1a1d;--ink:#f1ede4;--ink-muted:#9db0b0;--kintsugi:#e8c170;--danger:#d96c5f;--glaze-1:#e0855a;--glaze-2:#5fb3a1;--glaze-3:#e4c25a;--glaze-4:#9a86c9;--glaze-5:#d97a94;--glaze-6:#6b9fd6;--font-display:"Unbounded", system-ui, sans-serif;--font-body:system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--fs-score:clamp(28px, 8vw, 44px);--fs-title:clamp(24px, 6vw, 36px);--fs-body:16px;--fs-small:13px;--page-width:560px;--gutter:16px;--header-h:84px;--tray-h:132px;--radius-button:14px;--t-lift:.12s;--t-snap:90ms;--t-return:.18s;--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-in-out:cubic-bezier(.45, .05, .55, .95)}:root[data-theme=light]{--kiln:#eee9df;--tray:#dcd5c7;--cell-empty:#e6e0d3;--cell-edge:#c9c0af;--ink:#1e2a2c;--ink-muted:#5d6e6e;--kintsugi:#b8892e;--danger:#b94e42}@media (prefers-color-scheme:light){:root[data-theme=auto]{--kiln:#eee9df;--tray:#dcd5c7;--cell-empty:#e6e0d3;--cell-edge:#c9c0af;--ink:#1e2a2c;--ink-muted:#5d6e6e;--kintsugi:#b8892e;--danger:#b94e42}}:root[data-motion=reduced],:root[data-motion=reduced] *{--t-lift:0s;--t-snap:0s;--t-return:0s;transition-duration:.001ms!important;animation-duration:.001ms!important}@media (prefers-reduced-motion:reduce){:root[data-motion=system],:root[data-motion=system] *{--t-lift:0s;--t-snap:0s;--t-return:0s;transition-duration:.001ms!important;animation-duration:.001ms!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--kiln);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;line-height:1.5}h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-weight:700;line-height:1.1}p{margin:0 0 12px}:focus-visible{outline:3px solid var(--kintsugi);outline-offset:2px}#app{min-height:100dvh}.screen{width:min(100vw, var(--page-width));padding:0 var(--gutter) calc(16px + env(safe-area-inset-bottom));flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.topbar{flex:none;justify-content:space-between;align-items:center;gap:12px;height:56px;display:flex}.topbar__title{font-size:var(--fs-title);letter-spacing:.06em;font-weight:900}.topbar__spacer{flex:1}.btn{appearance:none;border-radius:var(--radius-button);min-height:52px;font-family:var(--font-display);letter-spacing:.04em;cursor:pointer;transition:transform var(--t-snap) var(--ease-out);border:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--ink);color:var(--kiln)}.btn--secondary{color:var(--ink);border:1px solid var(--ink-muted);background:0 0}.btn--ghost{color:var(--ink-muted);min-height:44px;font-family:var(--font-body);letter-spacing:0;background:0 0;padding:0 12px;font-weight:500}.btn--block{width:100%}.iconbtn{appearance:none;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.iconbtn:hover{color:var(--ink)}.iconbtn svg{width:22px;height:22px;display:block}.home__hero{padding:8px 0 20px}.home__wordmark{font-family:var(--font-display);letter-spacing:.08em;margin:0;font-size:clamp(38px,13vw,64px);font-weight:900;line-height:1}.home__tagline{color:var(--ink-muted);font-size:var(--fs-small);margin:10px 0 0}.glazebar{gap:4px;margin-top:14px;display:flex}.glazebar span{background:var(--g);border-radius:2px;flex:1;height:6px}.card{background:var(--tray);border-radius:18px;flex-direction:column;gap:14px;padding:18px;display:flex}.card__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card__title{font-family:var(--font-display);letter-spacing:.02em;font-size:17px;font-weight:700}.card__date{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-muted)}.card__meta{font-size:var(--fs-small);color:var(--ink-muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.card__state{font-size:var(--fs-small);color:var(--ink-muted);align-items:center;gap:8px;display:inline-flex}.card__state:before{content:"";background:var(--ink-muted);border-radius:50%;width:8px;height:8px}.card__state--done:before{background:var(--kintsugi)}.card__state--playing:before{background:var(--glaze-2)}.streak{color:var(--kintsugi);font-family:var(--font-display);font-weight:700;font-size:var(--fs-small);letter-spacing:.02em}.home__actions{flex-direction:column;gap:10px;margin-top:22px;display:flex}.home__stats{color:var(--ink-muted);font-size:var(--fs-small);flex-wrap:wrap;gap:18px;margin-top:auto;padding-top:24px;display:flex}.home__stats b{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.rows{flex-direction:column;gap:2px;margin-bottom:24px;display:flex}.row{background:var(--tray);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:8px 14px;display:flex}.rows .row:first-child{border-radius:14px 14px 0 0}.rows .row:last-child{border-radius:0 0 14px 14px}.row--link{color:var(--ink);text-decoration:none}.row--link svg{width:18px;height:18px;color:var(--ink-muted)}.row__label{font-size:var(--fs-body)}.row__hint{font-size:var(--fs-small);color:var(--ink-muted);display:block}.row select{appearance:none;background:var(--kiln);color:var(--ink);border:1px solid var(--ink-muted);font-family:var(--font-body);font-size:var(--fs-small);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 16px) calc(50% + 1px),calc(100% - 11px) calc(50% + 1px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:10px;padding:8px 32px 8px 12px}.switch{flex:none;width:52px;height:30px;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch__track{background:var(--cell-empty);border:1px solid var(--cell-edge);transition:background var(--t-lift) var(--ease-out);pointer-events:none;border-radius:999px;position:absolute;inset:0}.switch__track:after{content:"";background:var(--ink-muted);width:22px;height:22px;transition:transform var(--t-lift) var(--ease-out), background var(--t-lift) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch__track{background:color-mix(in oklab, var(--kintsugi), transparent 70%)}.switch input:checked+.switch__track:after{background:var(--kintsugi);transform:translate(22px)}.switch input:focus-visible+.switch__track{outline:3px solid var(--kintsugi);outline-offset:2px}.prose{color:var(--ink);font-size:var(--fs-body);max-width:46ch}.prose ul{margin:0 0 20px;padding-left:1.1em}.prose li{margin-bottom:10px}.prose .muted{color:var(--ink-muted);font-size:var(--fs-small)}.link{color:var(--ink);-webkit-text-decoration-color:var(--kintsugi);text-decoration-color:var(--kintsugi);text-underline-offset:3px}.toasts{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:40;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:var(--kiln);font-size:var(--fs-small);animation:toast-in .16s var(--ease-out);border-radius:999px;padding:10px 18px;box-shadow:0 6px 20px #00000040}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}dialog.dialog{background:var(--tray);width:min(92vw,380px);color:var(--ink);border:0;border-radius:18px;padding:22px}dialog.dialog::backdrop{background:#0000008c}.dialog__title{font-family:var(--font-display);margin-bottom:10px;font-size:18px;font-weight:700}.dialog__body{color:var(--ink-muted);font-size:var(--fs-small);margin-bottom:20px}.dialog__actions{flex-direction:column;gap:8px;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game{--n:10;--board:min(100vw - 2 * var(--gutter), 100dvh - var(--header-h) - var(--tray-h) - 24px, 520px);height:100dvh;min-height:0;padding-bottom:calc(8px + env(safe-area-inset-bottom));--unit:calc(var(--board) / (var(--n) * 1.08 + .08));--grout:calc(var(--unit) * .08);--tile-radius:calc(var(--unit) * .14);touch-action:manipulation;overflow:hidden}.hud{height:var(--header-h);flex:none;align-items:center;gap:12px;display:flex}.hud .iconbtn{flex:none;margin-left:-10px}.hud__meta{flex-direction:column;align-items:flex-end;gap:4px;margin-left:auto;display:flex}.hud__scores{align-items:baseline;gap:16px;min-width:0;display:flex}.stat__label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;display:block}.stat__value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:900;line-height:1;display:flex;overflow:hidden}.stat--score .stat__value{font-size:var(--fs-score)}.stat--best .stat__value{color:var(--ink-muted);font-size:18px;font-weight:700}.digit{display:inline-block}.streakbadge{font-family:var(--font-display);font-weight:700;font-size:var(--fs-small);color:var(--kintsugi);border:1px solid color-mix(in oklab, var(--kintsugi), transparent 60%);border-radius:999px;align-self:center;padding:3px 10px}.modetag{font-family:var(--font-mono);color:var(--ink-muted);letter-spacing:.04em;font-size:11px}.game__play{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex}.boardwrap{width:var(--board);height:var(--board);flex:none;margin:0 auto;position:relative}.board{grid-template-columns:repeat(var(--n), var(--unit));grid-template-rows:repeat(var(--n), var(--unit));gap:var(--grout);width:100%;height:100%;padding:var(--grout);background:var(--tray);border-radius:calc(var(--tile-radius) * 1.6);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid}.board__row{display:contents}.cell{border-radius:var(--tile-radius);background:var(--cell-empty);box-shadow:inset 0 2px 3px color-mix(in oklab, var(--cell-edge), transparent 35%);position:relative}.cell[data-c="1"]{--glaze:var(--glaze-1)}.cell[data-c="2"]{--glaze:var(--glaze-2)}.cell[data-c="3"]{--glaze:var(--glaze-3)}.cell[data-c="4"]{--glaze:var(--glaze-4)}.cell[data-c="5"]{--glaze:var(--glaze-5)}.cell[data-c="6"]{--glaze:var(--glaze-6)}.cell:not([data-c="0"]){background:linear-gradient(160deg, color-mix(in oklab, var(--glaze), white 18%), var(--glaze) 55%, color-mix(in oklab, var(--glaze), black 12%));box-shadow:inset 0 1px 0 #ffffff59, 0 2px 0 var(--cell-edge)}.cell[data-preview="1"]:before{content:"";border-radius:inherit;background:color-mix(in oklab, var(--kintsugi), transparent 80%);position:absolute;inset:0}.cell[data-ghost]:after{content:"";border-radius:inherit;background:var(--ghost-color);opacity:.5;box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--ghost-color), white 30%);position:absolute;inset:0}.cell[data-ghost="1"]{--ghost-color:var(--glaze-1)}.cell[data-ghost="2"]{--ghost-color:var(--glaze-2)}.cell[data-ghost="3"]{--ghost-color:var(--glaze-3)}.cell[data-ghost="4"]{--ghost-color:var(--glaze-4)}.cell[data-ghost="5"]{--ghost-color:var(--glaze-5)}.cell[data-ghost="6"]{--ghost-color:var(--glaze-6)}.cell[data-cursor="1"]{outline:2px solid var(--kintsugi);outline-offset:1px}.tray{height:var(--tray-h);touch-action:none;flex:none;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.slot{appearance:none;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:14px;justify-content:center;align-items:center;padding:0;display:flex}.slot:disabled{cursor:default}.slot__grid{gap:calc(var(--grout) * .6);transition:opacity var(--t-lift) var(--ease-out);display:grid}.slot .cell{width:calc(var(--unit) * .6);height:calc(var(--unit) * .6);border-radius:calc(var(--tile-radius) * .6)}.slot .cell[data-c="0"]{box-shadow:none;background:0 0}.slot[data-dragging="1"] .slot__grid{opacity:0}.slot[data-selected="1"]{background:color-mix(in oklab, var(--kintsugi), transparent 86%)}.slot[data-dead="1"] .slot__grid{animation:piece-dim .6s var(--ease-in-out) forwards}@keyframes piece-dim{to{opacity:.25;filter:grayscale(.85)}}.slot[data-dead="1"] .cell:not([data-c="0"]){box-shadow:inset 0 0 0 1px var(--danger), 0 2px 0 var(--cell-edge)}.draglayer{pointer-events:none;z-index:30;position:fixed;inset:0}.dragpiece{will-change:transform;filter:drop-shadow(0 10px 14px #00000059);position:absolute;top:0;left:0}.dragpiece__grid{gap:var(--grout);display:grid}.dragpiece .cell{width:var(--unit);height:var(--unit)}.dragpiece .cell[data-c="0"]{box-shadow:none;background:0 0}.fxlayer{pointer-events:none;border-radius:calc(var(--tile-radius) * 1.6);position:absolute;inset:0;overflow:hidden}.fxtile{z-index:1;border-radius:var(--tile-radius);background:linear-gradient(160deg, color-mix(in oklab, var(--glaze), white 18%), var(--glaze) 55%, color-mix(in oklab, var(--glaze), black 12%));position:absolute;box-shadow:inset 0 1px #ffffff59}.fxtile[data-c="1"]{--glaze:var(--glaze-1)}.fxtile[data-c="2"]{--glaze:var(--glaze-2)}.fxtile[data-c="3"]{--glaze:var(--glaze-3)}.fxtile[data-c="4"]{--glaze:var(--glaze-4)}.fxtile[data-c="5"]{--glaze:var(--glaze-5)}.fxtile[data-c="6"]{--glaze:var(--glaze-6)}.kintsugi{z-index:2;background:linear-gradient(90deg, color-mix(in oklab, var(--kintsugi), transparent 40%), var(--kintsugi) 45%, color-mix(in oklab, var(--kintsugi), white 25%));box-shadow:0 0 10px color-mix(in oklab, var(--kintsugi), transparent 30%);border-radius:2px;position:absolute}.kintsugi--v{background:linear-gradient(180deg, color-mix(in oklab, var(--kintsugi), transparent 40%), var(--kintsugi) 45%, color-mix(in oklab, var(--kintsugi), white 25%))}.boardflash{border-radius:inherit;box-shadow:inset 0 0 0 3px var(--kintsugi), 0 0 40px color-mix(in oklab, var(--kintsugi), transparent 40%);position:absolute;inset:0}.fxlabel{font-family:var(--font-display);color:var(--kintsugi);letter-spacing:.04em;white-space:nowrap;font-size:clamp(20px,6vw,30px);font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay{z-index:50;background:color-mix(in oklab, var(--kiln), transparent 15%);padding:var(--gutter);animation:fade-in .2s var(--ease-out);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.overlay__panel{flex-direction:column;gap:18px;width:min(100%,400px);display:flex}.overlay__title{font-family:var(--font-display);color:var(--ink-muted);letter-spacing:.04em;font-size:18px;font-weight:700}.overlay__score{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:clamp(48px,16vw,76px);font-weight:900;line-height:1}.overlay__newbest{font-family:var(--font-display);font-weight:900;font-size:var(--fs-small);letter-spacing:.08em;color:var(--kintsugi);border-bottom:2px solid var(--kintsugi);align-self:flex-start;padding-bottom:2px;display:inline-block}.overlay__grid{border-top:1px solid color-mix(in oklab, var(--ink-muted), transparent 65%);border-bottom:1px solid color-mix(in oklab, var(--ink-muted), transparent 65%);grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 0;display:grid}.overlay__grid div{flex-direction:column;gap:4px;display:flex}.overlay__grid b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.overlay__actions{flex-direction:column;gap:8px;display:flex}@media (max-height:500px) and (orientation:landscape){.game{--board:min(100dvh - var(--header-h) - 16px, 60vw, 520px);width:min(100vw,900px)}.game__play{align-items:center;gap:24px;display:flex}.tray{height:auto;max-height:var(--board);flex:1;grid-template-rows:repeat(3,1fr);grid-template-columns:1fr;margin-top:0}}
