:root{--linen:#14110d;--linen-2:#1b1712;--board:#221c16;--board-hi:#2b241c;--ink:#ece4d5;--ink-dim:#9d9384;--ink-faint:#6b6357;--gold:#d4a95a;--gold-lt:#f6dfa6;--gold-dk:#8a6a2a;--gold-grad:linear-gradient(118deg, #7d5f26 0%, #d4a95a 18%, #fbeec2 38%, #d4a95a 62%, #7d5f26 100%);--glaze:#f3ede1;--celadon:#9fbcac;--persimmon:#c9683c;--indigo:#46577c;--sumi:#2f2b28;--hair:#d6b77a24;--hair-2:#d6b77a47;--serif:"Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif;--sans:"Zen Kaku Gothic New", "Hiragino Sans", system-ui, -apple-system, sans-serif;--ease-clay:cubic-bezier(.22, 1.3, .36, 1);--ease-soft:cubic-bezier(.32, .72, .2, 1)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--linen);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-weight:400;overflow:hidden}body:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(90deg,#fff4e007 0 1px,#0000 1px 3px),repeating-linear-gradient(0deg,#fff4e006 0 1px,#0000 1px 3px),radial-gradient(120% 90% at 50% -10%,#221c15 0%,#14110d 58%,#0d0b08 100%);position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:1;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='0.45'/></svg>");position:fixed;inset:0}.kin{z-index:2;grid-template-rows:62px 1fr;height:100%;display:grid;position:relative}.brow{border-bottom:1px solid var(--hair);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(#2b241cb8,#14110d33);align-items:center;gap:26px;padding:0 20px 0 22px;display:flex}.mark{align-items:center;gap:11px;display:flex}.mark-kanji{font-family:var(--serif);letter-spacing:.06em;background:linear-gradient(150deg,#8a6a2a,#d4a95a 30%,#fff3d2 48%,#d4a95a 66%,#7d5f26);color:#0000;text-shadow:0 1px #00000080;-webkit-background-clip:text;background-clip:text;font-size:28px;line-height:1}.mark-latin{flex-direction:column;gap:1px;display:flex}.mark-latin b{font-family:var(--sans);letter-spacing:.42em;color:#e7dcc6;font-size:12.5px;font-weight:500}.mark-latin em{letter-spacing:.14em;color:var(--ink-faint);font-size:10px;font-style:normal}.ledger{align-items:center;gap:18px;margin-left:auto;display:flex}.tally{align-items:baseline;gap:6px;display:flex}.tally b{font-family:var(--serif);color:var(--gold-lt);text-align:right;min-width:18px;transition:transform .35s var(--ease-clay);font-size:20px}.tally.pop b{color:#fff6de;transform:scale(1.5)}.tally small{letter-spacing:.2em;color:var(--ink-faint);font-size:9.5px}.goldmeter{align-items:center;gap:9px;display:flex}.goldmeter span{font-family:var(--serif);color:var(--gold);opacity:.8;font-size:14px}.vein{background:#ffffff0d;border-radius:3px;width:150px;height:5px;overflow:hidden;box-shadow:inset 0 0 0 1px #0006}.vein i{width:0%;height:100%;transition:width .7s var(--ease-soft);background:linear-gradient(90deg,#8a6a2a,#d4a95a 40%,#ffeec4 70%,#d4a95a);border-radius:3px;display:block;box-shadow:0 0 10px #d4a95aa6}.brow-right{gap:8px;display:flex}.ghost{border:1px solid var(--hair);color:var(--ink-dim);cursor:pointer;font-family:var(--sans);transition:all .2s var(--ease-soft);background:#fff0d608;border-radius:11px 9px 12px 8px;align-items:center;gap:7px;padding:7px 12px;display:flex}.ghost:hover{color:var(--ink);border-color:var(--hair-2);background:#fff0d612}.ghost .g-kanji{font-family:var(--serif);font-size:15px}.ghost .g-txt{letter-spacing:.18em;font-size:10px}.ghost[aria-pressed=true]{color:#6b6357;opacity:.65;text-decoration:line-through}.floor{grid-template-columns:108px 1fr 268px;gap:14px;min-height:0;padding:14px;display:grid}aside{border:1px solid var(--hair);background:linear-gradient(180deg, var(--board-hi), var(--board) 42%, #1d1812);border-radius:16px 13px 17px 12px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:inset 0 1px #fff0d60f,0 24px 44px -26px #000}aside h2{border-bottom:1px solid #d6b77a17;align-items:baseline;gap:8px;margin:0;padding:13px 14px 11px;display:flex}aside h2 span{font-family:var(--serif);color:var(--gold);font-size:17px;font-weight:500}aside h2 em{letter-spacing:.2em;color:var(--ink-faint);font-size:9.5px;font-style:normal}.whisper{letter-spacing:.09em;color:var(--ink-faint);text-align:center;margin:auto 12px 14px;font-size:10px;line-height:1.7}.whisper.foot{font-family:var(--serif);letter-spacing:.06em;color:#7d7264;font-size:11.5px}.tiles{scrollbar-width:thin;scrollbar-color:#d4a95a40 transparent;flex-direction:column;gap:9px;padding:12px 10px;display:flex;overflow-y:auto}.tile{cursor:pointer;color:#3a332a;height:62px;transition:transform .24s var(--ease-clay), box-shadow .24s var(--ease-soft), filter .24s;background:radial-gradient(120% 130% at 32% 20%,#fdfaf3 0%,#e6ddcc 52%,#c3b8a3 100%);border:0;border-radius:15px 12px 16px 11px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffd9,inset 0 -3px 6px #78695047,0 6px 12px -6px #000c}.tile:after{content:"";opacity:.22;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='60'><g stroke='%23000' stroke-width='0.5' fill='none' opacity='0.5'><path d='M3 12 L22 18 L31 8 L48 16 L58 6'/><path d='M0 38 L14 33 L26 44 L44 36 L60 45'/><path d='M22 18 L18 33 L26 44'/><path d='M31 8 L34 26 L44 36'/><path d='M48 16 L52 30 L60 45'/></g></svg>");position:absolute;inset:0}.tile .t-kanji{font-family:var(--serif);z-index:1;font-size:21px;font-weight:500;line-height:1}.tile .t-name{letter-spacing:.16em;text-transform:uppercase;color:#6c6152;z-index:1;font-size:8px}.tile:hover{transform:translateY(-3px)rotate(-.6deg);box-shadow:inset 0 1px #ffffffe6,inset 0 -3px 6px #78695047,0 12px 20px -8px #000000d9,0 0 0 1px #d4a95a73}.tile:active,.tile.pressed{transition-duration:70ms;transform:translateY(3px)scale(.965);box-shadow:inset 0 3px 8px #5a4e3a73,0 2px 4px -3px #000}.tile:nth-child(3n){border-radius:12px 16px 11px 15px}.tile:nth-child(4n){border-radius:16px 11px 14px 13px}.tile:nth-child(odd){transform:rotate(-.5deg)}.tile:nth-child(3n+2){transform:rotate(.6deg)}.tile[data-swatch]:before{content:"";background:var(--sw);opacity:.9;border-radius:0 4px 4px 0;width:4px;position:absolute;top:8px;bottom:8px;left:0}.stage{border:1px solid var(--hair);background:repeating-radial-gradient(circle at 50% 52%,#ffeed007 0 1px,#0000 1px 26px),radial-gradient(58% 62% at 50% 52%,#d4a95a0f,#0000 72%),radial-gradient(94% 78% at 50% 26%,#241e17 0%,#17130f 66%,#0e0b08 100%);border-radius:18px 15px 19px 14px;min-width:0;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff0d60d,0 30px 60px -34px #000}.host,.host>*{width:100%;height:100%;position:absolute;inset:0}.fx{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0}.overlay{z-index:5;cursor:crosshair;position:absolute;inset:0}.overlay.strike{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='34' height='34'><g fill='none' stroke='%23f6dfa6' stroke-width='2'><path d='M6 28 L20 14'/><path d='M17 5 L29 17 L24 22 L12 10 Z' fill='%23d4a95a' stroke='%238a6a2a'/></g></svg>") 4 30,crosshair}.overlay.mend{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30'><g stroke='%23f6dfa6' stroke-width='2' fill='none'><circle cx='15' cy='15' r='6' fill='%23d4a95a' opacity='0.85'/><path d='M15 2v5M15 23v5M2 15h5M23 15h5'/></g></svg>") 15 15,pointer}.stage:after{content:"";z-index:3;pointer-events:none;opacity:0;transition:opacity .45s var(--ease-soft), box-shadow .45s var(--ease-soft);position:absolute;inset:0;box-shadow:inset 0 0 #0000}.stage.mode-strike:after{opacity:1;box-shadow:inset 0 0 90px -14px #c9683c8c}.stage.mode-mend:after{opacity:1;box-shadow:inset 0 0 90px -14px #d4a95a99}.hud{z-index:6;border:1px solid var(--hair-2);color:var(--gold-lt);letter-spacing:.2em;text-transform:uppercase;pointer-events:none;animation:hudIn .34s var(--ease-clay);background:#120f0bdb;border-radius:20px 16px 20px 15px;padding:8px 16px;font-size:11px;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 24px -12px #000}@keyframes hudIn{0%{opacity:0;transform:translate(-50%,-10px)}}.bench{z-index:6;border:1px solid var(--hair-2);background:linear-gradient(#2d261df5,#17130ef7);border-radius:20px 17px 21px 16px;align-items:center;gap:12px;padding:9px 12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #fff0d617,0 22px 40px -18px #000}.bench-mains{gap:8px;display:flex}.mainTool{color:var(--ink);cursor:pointer;font-family:var(--sans);transition:transform .2s var(--ease-clay), box-shadow .24s, background .24s, border-color .24s;background:linear-gradient(#3a3126,#262019);border:1px solid #fff0d61a;border-radius:15px 12px 16px 11px;align-items:center;gap:9px;padding:8px 15px 8px 11px;display:flex;box-shadow:0 5px 12px -8px #000}.mainTool .tool-kanji{font-family:var(--serif);color:var(--gold);transition:color .24s, transform .3s var(--ease-clay);font-size:19px;line-height:1}.mainTool .tool-lines{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.mainTool b{letter-spacing:.24em;font-size:10.5px;font-weight:500}.mainTool em{letter-spacing:.1em;color:var(--ink-faint);font-size:8.5px;font-style:normal}.mainTool:hover{border-color:var(--hair-2);transform:translateY(-2px)}.mainTool:active{transform:translateY(1px)scale(.98)}.mainTool.strike[aria-pressed=true]{background:linear-gradient(#6a3320,#3d1c11);border-color:#c9683cbf;box-shadow:0 0 0 1px #c9683c59,0 0 22px -4px #c9683c99}.mainTool.strike[aria-pressed=true] .tool-kanji{color:#ffb694;animation:nudge 1.5s var(--ease-soft) infinite}.mainTool.mend[aria-pressed=true]{background:linear-gradient(#6d5321,#3a2c12);border-color:#d4a95acc;box-shadow:0 0 0 1px #d4a95a66,0 0 24px -4px #d4a95aa6}.mainTool.mend[aria-pressed=true] .tool-kanji{color:#ffeec4;animation:nudge 1.5s var(--ease-soft) infinite}@keyframes nudge{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-1px,-2px)rotate(-9deg)}55%{transform:translateY(1px)rotate(3deg)}}.bench-smalls{align-items:center;gap:5px;display:flex}.bench-gap{background:var(--hair);width:1px;height:22px;margin:0 4px}.chip{width:34px;height:34px;color:var(--ink-dim);cursor:pointer;font-family:var(--serif);transition:all .18s var(--ease-soft);background:#fff0d609;border:1px solid #fff0d617;border-radius:12px 10px 13px 9px;place-items:center;font-size:15px;display:grid}.chip:hover:not(:disabled){color:var(--gold-lt);border-color:var(--hair-2);background:#d4a95a1f;transform:translateY(-2px)}.chip:active:not(:disabled){transform:translateY(1px)scale(.94)}.chip:disabled{opacity:.28;cursor:default}.chip.fire{color:#f0c07a;background:linear-gradient(#c9683c38,#c9683c0f);border-color:#c9683c59}.chip.fire:hover{color:#ffe0b0;box-shadow:0 0 18px -4px #e68c46cc}.boot{z-index:9;transition:opacity .7s var(--ease-soft), visibility .7s;background:radial-gradient(60% 60% at 50% 45%,#241d15,#100d0a);place-content:center;justify-items:center;gap:18px;display:grid;position:absolute;inset:0}.boot.gone{opacity:0;visibility:hidden}.boot p{letter-spacing:.32em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:10.5px}.boot-wheel{border:1px solid #d4a95a4d;border-top-color:var(--gold-lt);border-right-color:#d4a95abf;border-radius:50%;width:62px;height:62px;animation:1.5s linear infinite spin;box-shadow:0 0 26px -8px #d4a95a99}@keyframes spin{to{transform:rotate(360deg)}}.table{scrollbar-width:thin;scrollbar-color:#d4a95a40 transparent;overflow-y:auto}.selcard{border:1px solid var(--hair);transition:all .3s var(--ease-clay);background:#d4a95a12;border-radius:14px 11px 15px 10px;align-items:center;gap:11px;margin:12px 12px 4px;padding:10px 12px;display:flex}.selcard.is-empty{background:#ffffff05;border-style:dashed}.selcard.flash{background:#d4a95a33;transform:scale(1.02)}.sel-kanji{font-family:var(--serif);color:var(--gold-lt);font-size:22px;line-height:1}.selcard.is-empty .sel-kanji{color:var(--ink-faint)}.sel-lines{flex-direction:column;gap:2px;min-width:0;display:flex}.sel-lines b{letter-spacing:.08em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:500;overflow:hidden}.sel-lines em{letter-spacing:.11em;color:var(--ink-faint);font-size:9px;font-style:normal}.group{padding:12px 14px 2px}.group h3{font-family:var(--serif);color:var(--gold);align-items:baseline;gap:7px;margin:0 0 9px;font-size:13px;font-weight:500;display:flex}.group h3 em{font-family:var(--sans);letter-spacing:.19em;color:var(--ink-faint);font-size:9px;font-style:normal}.wells{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.well{aspect-ratio:1;cursor:pointer;background:var(--c);transition:transform .22s var(--ease-clay), box-shadow .22s;border:0;border-radius:50% 48% 52% 47%;padding:0;position:relative;box-shadow:inset 0 2px 5px #fff6,inset 0 -4px 8px #00000059,0 4px 9px -5px #000}.well:after{content:"";filter:blur(1.4px);background:#ffffff73;border-radius:50%;width:26%;height:18%;position:absolute;top:15%;left:22%}.well:hover{transform:translateY(-3px)scale(1.09)}.well:active{transform:translateY(1px)scale(.92)}.well.on{box-shadow:inset 0 2px 5px #fff6, inset 0 -4px 8px #00000059, 0 0 0 2px var(--linen), 0 0 0 3.5px var(--gold), 0 0 16px -2px #d4a95acc}.track{cursor:ew-resize;touch-action:none;background:linear-gradient(#17130e,#211b14);border:1px solid #00000080;border-radius:15px;height:30px;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #0009,0 1px #fff0d60d}.track-fill{background:linear-gradient(90deg,#d4a95a38,#f6dfa66b);width:100%;transition:width .12s linear;position:absolute;top:0;bottom:0;left:0}.track-knob{width:16px;transition:left .12s linear, transform .2s var(--ease-clay);background:radial-gradient(120% 130% at 30% 20%,#fdfaf3,#ddd2bc 60%,#b7ab95);border-radius:8px 6px 9px 5px;margin-left:-8px;position:absolute;top:3px;bottom:3px;left:100%;box-shadow:0 2px 5px -1px #000,inset 0 1px #fff}.track:hover .track-knob,.track.dragging .track-knob{transform:scaleY(1.12)}.track-val{font-family:var(--serif);color:#2b2118;pointer-events:none;letter-spacing:.06em;text-shadow:0 1px #fff5dc59;font-size:11.5px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.track:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.wheelgroup{padding-bottom:6px}.wheel{cursor:grab;touch-action:none;background:conic-gradient(from 0deg, #fff0d60d 0 2deg, transparent 2deg 30deg), radial-gradient(circle at 34% 28%, #3a3227, #1d1811 72%);border:1px solid var(--hair);border-radius:50%;place-items:center;width:108px;height:108px;margin:2px auto 0;display:grid;position:relative;box-shadow:inset 0 0 22px #000000bf,0 6px 14px -9px #000}.wheel:active{cursor:grabbing}.wheel-face{background:radial-gradient(circle at 33% 26%,#fbf6ec,#ddd2bd 55%,#a99d87);border-radius:50%;width:72px;height:72px;transition:transform 60ms linear;position:relative;box-shadow:inset 0 -4px 8px #5a4e3a66,0 3px 8px -3px #000}.wheel-mark{background:linear-gradient(#8a6a2a,#d4a95a);border-radius:2px;width:3px;height:17px;margin-left:-1.5px;position:absolute;top:5px;left:50%}.wheel b{font-family:var(--serif);color:var(--gold-lt);letter-spacing:.04em;background:#100d0ad9;border-radius:8px;padding:1px 8px;font-size:11px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.wheel:focus-visible{outline:1px solid var(--gold);outline-offset:3px}.stepper{justify-content:center;align-items:center;gap:14px;display:flex}.pbtn{border:1px solid var(--hair);width:30px;height:30px;color:var(--gold-lt);cursor:pointer;transition:all .16s var(--ease-soft);background:#fff0d60a;border-radius:11px 9px 12px 8px;font-size:16px}.pbtn:hover{background:#d4a95a29;transform:translateY(-2px)}.pbtn:active{transform:translateY(1px)scale(.93)}.stepper b{font-family:var(--serif);color:var(--ink);text-align:center;min-width:22px;font-size:19px}.table .group{transition:opacity .35s var(--ease-soft)}.table.locked .group:not(.pool){opacity:.32;pointer-events:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
