:root{--bg:#040404;--panel:#0e0e0ed1;--line:#d4af3747;--gold:#d4af37;--gold-hi:#f2d675;--ink:#ece8dc;--dim:#8b8576;--bad:#d4553f;--ok:#8fd6a0;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;--serif:"Hiragino Mincho ProN", "Noto Serif JP", "Yu Mincho", serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--mono);margin:0;font-size:14px}body{background:radial-gradient(at 50% -10%,#17140a 0%,#060606 55%,#020202 100%) fixed;min-height:100vh}button{font:inherit;color:inherit;cursor:pointer}h1,h2{letter-spacing:.08em;margin:0;font-weight:600}h2{margin-bottom:.7rem;font-size:1.35rem}.dim{color:var(--dim)}.ok{color:var(--ok)}.bad{color:var(--bad)}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.app:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.07;background-size:64px 64px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 75%);mask-image:radial-gradient(#000 20%,#0000 75%)}.fx{pointer-events:none;z-index:90;background:repeating-linear-gradient(0deg,#ffffff08 0 1px,#0000 1px 3px);animation:6s infinite flicker;position:fixed;inset:0;box-shadow:inset 0 0 160px #000000d9}@keyframes flicker{0%,97%,to{opacity:1}98%{opacity:.82}99%{opacity:.95}}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1.1rem 1.2rem;position:relative;box-shadow:0 0 24px #d4af370d,inset 0 0 30px #0009}.panel:before,.panel:after{content:"";border:1px solid var(--gold);pointer-events:none;width:10px;height:10px;position:absolute}.panel:before{border-bottom:0;border-right:0;top:-1px;left:-1px}.panel:after{border-top:0;border-left:0;bottom:-1px;right:-1px}.eyebrow{color:var(--gold);letter-spacing:.22em;margin-bottom:.6rem;font-size:.72rem}.btn{border:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;background:0 0;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-size:.78rem;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--gold);color:var(--gold-hi);box-shadow:0 0 14px #d4af3740}.btn:disabled{opacity:.35;cursor:default}.btn.primary{border-color:var(--gold);color:var(--gold-hi);background:#d4af371f}.btn.danger{color:var(--bad);border-color:#d4553f80;margin-top:1rem}.btn.cta{border-color:var(--gold);color:#0a0a0a;background:linear-gradient(90deg, var(--gold), var(--gold-hi));font-weight:700}.btn.cta:hover{color:#000;box-shadow:0 0 26px #f2d67580}.btn.big{padding:.95rem 1.8rem;font-size:.9rem}.link{color:var(--dim);text-underline-offset:3px;background:0 0;border:0;padding:.3rem .5rem;text-decoration:underline}.link:hover{color:var(--gold)}.actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1rem 0;display:flex}:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}.nav{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050505d9;flex-wrap:wrap;align-items:center;gap:1rem;padding:.7rem 1.2rem;display:flex;position:relative}.brand{letter-spacing:.25em;color:var(--ink);background:0 0;border:0;font-weight:700}.brand span{color:var(--gold);font-family:var(--serif);margin-left:.3rem}.nav nav{gap:.25rem;margin-left:auto;display:flex}.nav nav button{letter-spacing:.15em;text-transform:uppercase;color:var(--dim);background:0 0;border:1px solid #0000;padding:.4rem .9rem;font-size:.72rem}.nav nav button.on{color:var(--gold-hi);border-color:var(--line);background:#d4af3714}.xpbar{color:var(--dim);align-items:center;gap:.5rem;font-size:.72rem;display:flex}.xpbar .rk{font-family:var(--serif);color:var(--gold);font-size:1.1rem}.bar{background:#1a1a1a;width:90px;height:4px;display:inline-block;position:relative;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--gold), var(--gold-hi));height:100%;box-shadow:0 0 8px var(--gold);transition:width .4s;display:block}.bar.wide{width:100%;height:6px;margin:.8rem 0}main{z-index:1;flex:1;width:100%;max-width:760px;margin:0 auto;padding:1.4rem 1rem 2rem;position:relative}.foot{z-index:1;text-align:center;color:var(--dim);letter-spacing:.25em;border-top:1px solid #d4af371a;padding:1rem;font-size:.68rem;position:relative}.boot{z-index:80;cursor:pointer;background:#020202;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex;position:fixed;inset:0}.boot-kanji{font-family:var(--serif);color:var(--gold);text-shadow:0 0 40px #d4af3799;font-size:7rem;animation:1.6s infinite pulse}@keyframes pulse{50%{opacity:.55}}.boot-log{width:min(460px,100%);min-height:9.5rem;color:var(--dim);font-size:.75rem;line-height:1.7}.boot-log div:last-of-type{color:var(--ink)}.cursor{background:var(--gold);vertical-align:middle;width:8px;height:1em;animation:.8s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.boot .bar{width:min(460px,100%)}.boot-pct{color:var(--gold);letter-spacing:.3em;font-size:.8rem}.boot-skip{color:#444;letter-spacing:.3em;text-transform:uppercase;font-size:.65rem}.landing{text-align:center;flex-direction:column;align-items:center;gap:1.6rem;display:flex}.hero{padding:1.5rem 0 .5rem;position:relative}.kanji{font-family:var(--serif);color:var(--gold);opacity:.06;pointer-events:none;font-size:15rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.glitch{letter-spacing:.3em;text-indent:.3em;text-shadow:0 0 24px #d4af3759;font-size:clamp(2.6rem,11vw,4.6rem);position:relative}.glitch:before,.glitch:after{content:attr(data-text);opacity:0;position:absolute;inset:0}.glitch:before{color:#6fe;clip-path:inset(10% 0 55%);animation:5s infinite gl;transform:translate(-2px)}.glitch:after{color:#f36;clip-path:inset(60% 0 5%);animation:5s .15s infinite gl;transform:translate(2px)}@keyframes gl{0%,92%,to{opacity:0}93%,96%{opacity:.55}94%{opacity:.2;transform:translate(3px,1px)}}.jp{font-family:var(--serif);color:var(--gold);text-shadow:0 0 18px #d4af3780;margin-top:.3rem;font-size:2.2rem}.tagline{letter-spacing:.4em;text-transform:uppercase;color:var(--gold-hi);margin-top:.4rem;font-size:.78rem}.meaning{color:var(--dim);max-width:34ch;margin:.8rem auto 0;line-height:1.6}.modes{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem;width:100%;display:grid}.mode{text-align:left;flex-direction:column;gap:.35rem;transition:all .2s;display:flex}.mode:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 0 24px #d4af372e}.mode .mi{color:var(--gold);letter-spacing:.3em;font-size:.7rem}.mode strong{letter-spacing:.12em;text-transform:uppercase}.mode em{color:var(--dim);font-size:.78rem;font-style:normal;line-height:1.5}.links{color:var(--dim)}.veil-overlay{z-index:70;-webkit-backdrop-filter:blur(32px)saturate(.5)brightness(.6);background:#000000b8;justify-content:center;align-items:center;padding:1rem;animation:.35s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:#080808eb;width:min(520px,100%);max-height:90vh;animation:.4s rise;overflow:auto}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.modal .btn{margin-top:.6rem}.steps{gap:.8rem;margin:1rem 0;padding:0;list-style:none;display:grid}.steps li{gap:.9rem;display:flex}.steps b{color:var(--gold);letter-spacing:.1em}.steps strong{letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;display:block}.steps span{color:var(--dim);font-size:.82rem;line-height:1.5}.check{color:var(--dim);align-items:center;gap:.5rem;font-size:.78rem;display:flex}.check input{accent-color:var(--gold)}.rules{color:var(--dim);gap:.6rem;padding-left:1.1rem;font-size:.82rem;line-height:1.55;display:grid}.rules b{color:var(--gold-hi)}.game{flex-direction:column;align-items:stretch;gap:1rem;display:flex}.hud{gap:.7rem;display:grid}.hud-row{flex-wrap:wrap;justify-content:space-between;gap:.5rem;display:flex}.chip{letter-spacing:.2em;color:var(--gold);border:1px solid var(--line);padding:.2rem .55rem;font-size:.7rem}.chip.dim{color:var(--dim)}.goal{line-height:1.5}.tag{background:var(--gold);color:#000;letter-spacing:.12em;margin-right:.4rem;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.stones-left{align-items:center;gap:.7rem;display:flex}.stones-left .lbl{color:var(--dim);letter-spacing:.2em;font-size:.68rem}.pips{flex-wrap:wrap;gap:5px;display:flex}.pips i{border:1px solid var(--line);border-radius:50%;width:12px;height:12px}.pips i.on{background:var(--ink);box-shadow:0 0 8px #ece8dc99}.stones-left b{color:var(--gold-hi);margin-left:auto;font-size:1.4rem}.status{text-align:center;letter-spacing:.16em;min-height:1.4em;color:var(--dim);text-transform:uppercase;font-size:.78rem}.status.won{color:var(--ok);text-shadow:0 0 12px #8fd6a099}.status.lost{color:var(--bad)}.board-wrap{justify-content:center;display:flex}.board{--cell:min(calc((100vw - 4rem) / var(--n)), 64px);grid-template-columns:repeat(var(--n), var(--cell));grid-auto-rows:var(--cell);padding:calc(var(--cell) * .35);border:1px solid var(--gold);background:linear-gradient(145deg,#111,#070707);display:grid;position:relative;box-shadow:0 0 40px #d4af3724,inset 0 0 40px #000}.pt{background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.pt:before,.pt:after{content:"";background:var(--gold);opacity:.55;pointer-events:none;position:absolute}.pt:before{width:1px;top:0;bottom:0;left:50%}.pt:after{height:1px;top:50%;left:0;right:0}.pt.t:before{top:50%}.pt.b:before{bottom:50%}.pt.l:after{left:50%}.pt.r:after{right:50%}.pt.region{background:#d4af371a;box-shadow:inset 0 0 0 1px #d4af3759}.pt.open:hover{background:#ece8dc12}.bait{z-index:2;color:var(--bad);font-size:calc(var(--cell) * .45);opacity:.75;text-shadow:0 0 10px var(--bad);animation:2.2s infinite bait}@keyframes bait{50%{opacity:.3}}.stone{z-index:2;aspect-ratio:1;width:72%;font-weight:700;font-size:calc(var(--cell) * .3);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.stone.mine{color:#111;background:radial-gradient(circle at 35% 30%,#fff,#d9d4c4 60%,#9a957f);box-shadow:0 2px 8px #000,0 0 12px #ece8dc40}.stone.mine.placed{animation:.25s pop;box-shadow:0 2px 8px #000,0 0 16px #d4af3780}.stone.mine.last{outline:2px solid var(--gold-hi);outline-offset:2px}.stone.mine.hit{background:radial-gradient(circle at 35% 30%,#fbb,#d4553f 70%)}.stone.foe{background:#050505;border:2px solid #7a7565;box-shadow:inset 0 0 10px #000,0 0 8px #000c}.stone.foe.reply{border-color:var(--bad);animation:.35s pop;box-shadow:0 0 14px #d4553f99}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.debrief,.pick{text-align:center}.debrief .actions{margin-bottom:1.2rem}.grid-stats{grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1rem 0;display:grid}.grid-stats.four{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.grid-stats div{border:1px solid var(--line);padding:.7rem .4rem}.grid-stats dt{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;font-size:.65rem}.grid-stats dd{color:var(--gold-hi);margin:.3rem 0 0;font-size:1.7rem}.grid-stats dd small{color:var(--dim);font-size:.9rem}.lesson{font-family:var(--serif);color:var(--ink);max-width:36ch;margin:1rem auto;font-size:1.05rem;line-height:1.6}.rankup{color:var(--gold-hi);letter-spacing:.2em;margin:.4rem 0;animation:1s 3 pulse}.set-sum{border:1px dashed var(--gold);color:var(--gold-hi);letter-spacing:.1em;margin:.8rem 0;padding:.6rem}.level-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem;margin-top:.8rem;display:grid}.lv{text-align:left;flex-direction:column;gap:.3rem;transition:all .2s;display:flex}.lv:hover{border-color:var(--gold);transform:translateY(-2px)}.lv.done{border-color:#8fd6a066}.lv-id{color:var(--gold);letter-spacing:.25em;font-size:.68rem}.lv-meta,.lv-best{color:var(--dim);font-size:.72rem}.tier{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:.62rem;position:absolute;top:.9rem;right:1rem}.tier.hard{color:var(--bad)}.tier.mid{color:var(--gold)}.profile{gap:1rem;display:grid}.rank-big{align-items:center;gap:1rem;display:flex}.rank-big h2{margin:0}.kanji-sm{font-family:var(--serif);color:var(--gold);text-shadow:0 0 20px #d4af3780;font-size:3.4rem}.ranks{color:#444;font-family:var(--serif);text-align:center;justify-content:space-between;margin:0;padding:0;font-size:1.3rem;list-style:none;display:flex}.ranks small{font-family:var(--mono);font-size:.6rem;display:block}.ranks li.got{color:var(--gold-hi);text-shadow:0 0 12px #d4af3799}.record{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.record li{color:#5c5849;border-bottom:1px solid #d4af3714;justify-content:space-between;padding:.3rem 0;font-size:.8rem;display:flex}.record li.got{color:var(--ok)}@media (width<=520px){.nav nav{order:3;width:100%;margin-left:0}.xpbar{margin-left:auto}.kanji{font-size:10rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
