:root{--ink:#1b1c1b;--muted:#73746e;--paper:#f3efe5;--paper-deep:#e8e1d2;--card:#fbf9f3;--line:#d2ccbe;--lime:#d7f64a;--lime-dark:#b8d62f;--wood:#cfad72;--wood-dark:#9a7041;--red:#bb4936;--shadow:0 24px 70px #2a261c1a}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;color:var(--ink);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:radial-gradient(circle at 12% 2%,#faf7ef 0,transparent 29rem),var(--paper);min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #7b921d73}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-wrap{min-height:100vh}.site-header{border-bottom:1px solid #1b1c1b1f;justify-content:space-between;max-width:1440px;height:80px;margin:auto;padding:0 42px}.brand,.site-header{align-items:center;display:flex}.brand{letter-spacing:-.05em;cursor:pointer;background:0 0;border:0;gap:12px;padding:0;font-size:20px;font-weight:900}.brand-mark{width:34px;height:28px;display:block;position:relative}.brand-mark i{border-radius:50%;place-items:center;width:25px;height:25px;font:500 10px ui-monospace,SFMono-Regular,Consolas,monospace;display:grid;position:absolute;box-shadow:0 1px 2px #00000029}.brand-mark i:first-child{z-index:1;color:#fff;background:#202220;top:0;left:0}.brand-mark i:last-child{color:#181918;background:#fffaf0;border:1px solid #bab3a5;bottom:0;right:0}.header-note{color:var(--muted);letter-spacing:.14em;font-size:12px;font-weight:600}.room-code-wrap{border:1px solid var(--line);background:#fff6;border-radius:99px;align-items:center;gap:10px;padding:7px 8px 7px 13px;display:flex}.room-code-wrap>span{color:var(--muted);letter-spacing:.12em;font:500 9px ui-monospace,SFMono-Regular,Consolas,monospace}.room-code-wrap strong{letter-spacing:.12em;font:500 14px ui-monospace,SFMono-Regular,Consolas,monospace}.icon-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.landing{grid-template-columns:minmax(0,1.05fr) minmax(360px,.72fr);gap:clamp(50px,8vw,130px);max-width:1240px;min-height:calc(100vh - 80px);margin:auto;padding:64px 42px 80px;display:grid}.eyebrow,.landing{align-items:center}.eyebrow{color:#5d5e59;letter-spacing:.13em;gap:9px;font:500 11px DM Mono;display:flex}.live-dot{background:var(--lime-dark);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #b8d62f26}.intro-panel h1{letter-spacing:-.065em;margin:24px 0 18px;font-size:clamp(45px,5.4vw,76px);font-weight:900;line-height:1.08}.intro-panel h1 em{z-index:0;font-style:normal;position:relative}.intro-panel h1 em:after{content:"";z-index:-1;background:var(--lime);height:17px;position:absolute;bottom:5px;left:-3px;right:-8px;transform:rotate(-1.2deg)}.lead{color:#676861;max-width:520px;margin:0;font-size:17px;line-height:1.75}.probability-showcase{gap:clamp(15px,3vw,28px);margin-top:42px;display:flex}.demo-stone-wrap{color:var(--muted);flex-direction:column;align-items:center;gap:9px;font:500 10px DM Mono;display:flex}.demo-stone{aspect-ratio:1;border-radius:50%;place-items:center;width:clamp(48px,5.5vw,62px);font:500 clamp(18px,2vw,24px) DM Mono;display:grid;box-shadow:inset -4px -5px 9px #00000021,0 7px 10px #201f1b26}.demo-stone.q90{color:#fff;background:radial-gradient(circle at 35% 25%,#4a4c49,#181a19 70%)}.demo-stone.q70{color:#fff;background:radial-gradient(circle at 35% 25%,#777b78,#414542 72%)}.demo-stone.q30{color:#1f201f;background:radial-gradient(circle at 32% 25%,#f4f4f0,#bec1bc 76%);border:1px solid #92958f}.demo-stone.q10{color:#1f201f;background:radial-gradient(circle at 32% 25%,#fff,#e9e4d8 75%);border:1px solid #bdb6a8}.rules-card{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:540px;margin-top:42px}.rules-card summary{cursor:pointer;justify-content:space-between;padding:17px 3px;font-weight:700;list-style:none;display:flex}.rules-card summary::-webkit-details-marker{display:none}.rules-card[open] summary span{transform:rotate(45deg)}.rules-card ol{color:var(--muted);margin:0 0 20px;padding-left:23px;font-size:13px;line-height:1.9}.lobby-card{background:var(--card);box-shadow:var(--shadow);border:1px solid #1b1c1b24;border-radius:5px;overflow:hidden}.tab-list{border-bottom:1px solid var(--line);background:#e9e4da;grid-template-columns:1fr 1fr;display:grid}.tab-list button{color:#82827c;cursor:pointer;background:0 0;border:0;padding:19px 14px;font-size:13px;font-weight:700;position:relative}.tab-list button.active{color:var(--ink);background:var(--card)}.tab-list button.active:after{content:"";background:var(--ink);height:3px;position:absolute;bottom:-1px;left:22%;right:22%}.form-body{padding:38px}.form-heading{align-items:flex-start;gap:17px;margin-bottom:30px;display:flex}.step-number{background:var(--lime);border-radius:50%;flex:0 0 37px;place-items:center;height:37px;font:600 12px DM Mono;display:grid}.form-heading h2{letter-spacing:-.04em;margin:0 0 7px;font-size:21px}.form-heading p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.form-body label{color:#565752;margin:18px 0 8px;font-size:11px;font-weight:700;display:block}.form-body input{width:100%;height:51px;color:var(--ink);background:#fffdf8;border:1px solid #cbc5b8;border-radius:3px;padding:0 15px;transition:border .2s,box-shadow .2s}.form-body input:focus{border-color:#8fa626;outline:0;box-shadow:0 0 0 4px #bad53a1f}.form-body input::placeholder{color:#aaa89f}.form-body .code-input{letter-spacing:.2em;text-transform:uppercase;font:500 18px DM Mono}.form-error{color:var(--red);margin:12px 0 -3px;font-size:12px}.primary-button{background:var(--ink);color:#fff;cursor:pointer;width:100%;min-height:54px;box-shadow:4px 4px 0 var(--lime-dark);border:1px solid #111;border-radius:3px;justify-content:space-between;align-items:center;margin-top:24px;padding:0 20px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s;display:flex}.primary-button:hover:not(:disabled){box-shadow:7px 7px 0 var(--lime-dark);transform:translate(-2px,-2px)}.primary-button:disabled{opacity:.55;cursor:wait}.privacy-note{color:#8b8b84;text-align:center;margin:20px 0 0;font-size:10px}.privacy-note span{color:var(--lime-dark);margin-right:5px}.game-layout{grid-template-columns:minmax(580px,1fr) 300px;gap:32px;max-width:1280px;margin:0 auto;padding:30px 42px 60px;display:grid}.game-main{min-width:0}.turn-banner{background:#e6e0d4;border-left:4px solid #8e8f88;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:67px;margin-bottom:18px;padding:12px 18px;display:grid}.turn-banner.mine{border-left-color:var(--lime-dark);background:#edf3c8}.turn-banner.finished{background:var(--ink);color:#fff;border-left-color:var(--lime)}.turn-kicker{letter-spacing:.1em;opacity:.65;font:500 9px DM Mono}.turn-banner strong{font-size:17px}.turn-detail{color:var(--muted);font-size:11px}.turn-banner.finished .turn-detail{color:#ddd}.board-shell{background:linear-gradient(135deg,#ffffff21,transparent 45%),repeating-linear-gradient(90deg,transparent 0 9px,#5d3c1808 9px 10px),var(--wood);border:1px solid #896d43;border-radius:3px;width:100%;max-width:min(77vh,820px);margin:0 auto;padding:clamp(15px,2.2vw,24px);position:relative;box-shadow:inset 0 0 0 5px #5b3a1817,0 22px 45px #372b1930}.board{aspect-ratio:1;grid-template:repeat(13,1fr)/repeat(13,1fr)}.board,.intersection{display:grid;position:relative}.intersection{z-index:1;cursor:default;background-color:#0000;background-image:linear-gradient(90deg,#0000 calc(50% - .5px),#382716b8 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px)),linear-gradient(#0000 calc(50% - .5px),#382716b8 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px));border:0;place-items:center;min-width:0;padding:0}.board-shell.interactive .intersection:not(:disabled){cursor:pointer}.board-shell.interactive .intersection:not(:disabled):after{content:"";aspect-ratio:1;background:#fff0;border-radius:50%;width:62%;transition:background .12s}.board-shell.interactive .intersection:not(:disabled):hover:after{background:#d7f64ab3;box-shadow:0 0 0 3px #1b1c1b33}.intersection.star:before{content:"";z-index:-1;background:#4b3721;width:clamp(3px,.45vw,6px)}.intersection.star:before,.stone{aspect-ratio:1;border-radius:50%;position:absolute}.stone{z-index:3;place-items:center;width:92%;animation:.2s cubic-bezier(.2,1.7,.4,1) stone-in;display:grid}.stone.black,.stone.q90{color:#fff;background:radial-gradient(circle at 34% 27%,#50524f,#191b1a 72%);box-shadow:inset -3px -4px 6px #00000052,0 2px 4px #00000040}.stone.q70{color:#fff;background:radial-gradient(circle at 34% 27%,#7b7f7c,#414542 74%);box-shadow:inset -3px -4px 6px #0000003d,0 2px 4px #00000038}.stone.q30{color:#1d1e1d;background:radial-gradient(circle at 31% 24%,#f5f5f1,#bdc0bb 76%);border:1px solid #4549457a;box-shadow:inset -3px -4px 6px #3d413d1a,0 2px 4px #0000002b}.stone.q10,.stone.white{color:#1d1e1d;background:radial-gradient(circle at 31% 24%,#fff,#e9e4d8 74%);border:1px solid #4d443659;box-shadow:inset -3px -4px 6px #67583d1a,0 2px 4px #0000002e}.stone.quantum{outline-offset:-3px;outline:1px dashed #d7f64ab8}.stone.q10,.stone.q30{outline-color:#46484173}.stone-number{text-shadow:0 1px 2px #00000038;font:600 clamp(8px,1.35vw,16px)/1 DM Mono}.stone.latest:after{content:"";aspect-ratio:1;background:var(--lime);border-radius:50%;width:18%;position:absolute;box-shadow:0 0 0 1px #00000059}.stone.latest .stone-number+.sr-only{display:none}@keyframes stone-in{0%{opacity:.2;transform:scale(.35)}}.waiting-card{border:1px solid var(--line);text-align:center;background:#ffffff47;flex-direction:column;justify-content:center;align-items:center;min-height:min(68vw,690px);display:flex}.waiting-card h2{margin:27px 0 8px;font-size:25px}.waiting-card p{color:var(--muted);margin:0 0 28px;font-size:13px}.orbit-loader{border:1px solid #99988f;border-radius:50%;width:64px;height:64px;animation:3s linear infinite orbit;display:block;position:relative}.orbit-loader i,.orbit-loader:after{content:"";border-radius:50%;position:absolute}.orbit-loader:after{background:var(--ink);width:18px;height:18px;top:22px;left:22px}.orbit-loader i:first-child{background:var(--lime-dark);width:13px;height:13px;top:-7px;left:25px}.orbit-loader i:last-child{background:#fff;border:1px solid #777;width:9px;height:9px;bottom:7px;right:1px}@keyframes orbit{to{transform:rotate(1turn)}}.invite-code{border:1px solid var(--ink);background:var(--card);cursor:pointer;box-shadow:4px 4px 0 var(--lime-dark);flex-direction:column;gap:7px;padding:16px 34px;display:flex}.invite-code strong{letter-spacing:.18em;font:500 24px DM Mono}.invite-code span{color:var(--muted);font-size:10px}.observation-gate,.stone-picker{border:1px solid var(--line);background:var(--card);align-items:center;gap:12px;max-width:min(77vh,820px);margin:0 auto 9px;padding:10px 12px;display:flex}.observation-gate{background:#f0f6ce;border-color:#b3c05f;justify-content:space-between}.observation-gate div{flex-direction:column;gap:3px;display:flex}.observation-gate strong{font-size:11px}.observation-gate span{color:var(--muted);font-size:9px}.observation-gate button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:2px;min-height:36px;padding:0 14px;font-size:10px;font-weight:700}.stone-picker>span{color:var(--muted);font-size:10px;font-weight:700}.stone-picker>div{gap:6px;display:flex}.stone-picker button{cursor:pointer;opacity:.58;border:1px solid #0000;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;font:600 11px DM Mono;transition:opacity .15s,box-shadow .15s,transform .15s;display:grid}.stone-picker button.q90{color:#fff;background:#202220}.stone-picker button.q70{color:#fff;background:#4d514e}.stone-picker button.q30{color:var(--ink);background:#c8cbc6;border-color:#8d918b}.stone-picker button.q10{color:var(--ink);background:#fffdf7;border-color:#aaa398}.stone-picker button.active{opacity:1;box-shadow:0 0 0 3px var(--lime),0 0 0 4px #798710;transform:scale(1.04)}.stone-picker small{color:var(--muted);margin-left:auto;font-size:9px}.observe-bar{background:#f3f8d9;border:1px solid #bdca76;justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding:14px 16px;display:flex;box-shadow:4px 4px #d8e6a0}.observe-bar>div:first-child{align-items:center;gap:12px;display:flex}.observe-icon{background:var(--ink);width:38px;height:38px;color:var(--lime);border-radius:50%;place-items:center;font-size:22px;display:grid}.observe-bar p{flex-direction:column;gap:3px;margin:0;font-size:13px;display:flex}.observe-bar small{color:var(--muted);font-size:10px;font-weight:500}.observe-actions{gap:8px;display:flex}.observe-button,.secondary-button{cursor:pointer;border-radius:2px;min-height:42px;padding:0 17px;font-size:11px;font-weight:700}.secondary-button{background:0 0;border:1px solid #aeb591}.observe-button{border:1px solid var(--ink);background:var(--ink);color:#fff}.observe-button span{color:var(--lime);margin-left:7px}.result-actions{max-width:320px;margin:4px auto 0}.game-sidebar{flex-direction:column;gap:16px;display:flex}.game-sidebar section{border:1px solid var(--line);background:#fbf9f3b3;padding:18px}.game-sidebar h2{color:#777870;letter-spacing:.15em;margin:0 0 14px;font:500 9px DM Mono}.player-card{border-top:1px solid #dfd9cc;align-items:center;gap:11px;padding:12px 8px;display:flex}.player-card.active{background:#eff5cf;border-color:#0000;margin:0 -8px;padding-left:16px;padding-right:16px}.player-stone{aspect-ratio:1;border-radius:50%;flex:0 0 30px}.player-stone.black{background:radial-gradient(circle at 35% 25%,#555,#171817 70%);box-shadow:0 2px 4px #00000040}.player-stone.white{background:radial-gradient(circle at 35% 25%,#fff,#e7e1d4 70%);border:1px solid #b9b2a5;box-shadow:0 2px 4px #0000001f}.player-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.player-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.player-info small{background:var(--lime);vertical-align:2px;border-radius:2px;margin-left:4px;padding:2px 5px;font-size:8px;display:inline-block}.player-info>span{color:var(--muted);font:500 9px DM Mono}.observation-count{flex-direction:column;align-items:flex-end;display:flex}.observation-count small{color:var(--muted);font-size:8px}.observation-count strong{font:500 18px DM Mono}.empty-player{color:#93938c;border-top:1px dashed #c9c3b6;align-items:center;gap:9px;padding:13px 7px 3px;font-size:11px;display:flex}.empty-player span{border:1px dashed #aaa59a;border-radius:50%;place-items:center;width:29px;height:29px;display:grid}.legend-row{color:var(--muted);align-items:center;gap:7px;margin:8px 0;font-size:9px;display:flex}.mini-stone{border-radius:50%;flex:0 0 25px;place-items:center;height:25px;font:500 9px DM Mono;display:grid}.mini-stone.q90{color:#fff;background:#202220}.mini-stone.q70{color:#fff;background:#4d514e}.mini-stone.q30{color:var(--ink);background:#c8cbc6;border:1px solid #8d918b}.mini-stone.q10{color:var(--ink);background:#fffdf7;border:1px solid #aaa398}.history-panel ul{margin:0;padding:0;list-style:none}.history-panel li{color:#51524e;border-top:1px solid #e4dfd4;gap:9px;padding:8px 0;font-size:10px;display:flex}.history-panel li>span{color:#9b9b94;flex:0 0 13px}.history-panel li.observe>span,.history-panel li.win>span{color:#819c09}.history-panel li p{flex:1;justify-content:space-between;gap:8px;margin:0;display:flex}.history-panel li small{color:#aaa9a2;white-space:nowrap;font:400 8px DM Mono}.leave-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c6c0b4;margin-top:auto;padding:11px;font-size:10px}.observation-flash{z-index:20;color:#fff;background:#1a1c19f5;border:1px solid #75870f;flex-direction:column;align-items:center;min-width:260px;padding:27px 34px;display:flex;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #1516145c,0 25px 80px #0006}.observation-flash span{color:var(--lime);letter-spacing:.18em;font:500 9px DM Mono}.observation-flash strong{margin-top:8px;font-size:25px}.observation-flash p{color:#c7c9c2;margin:9px 0 0;font:500 12px DM Mono}.toast{z-index:30;background:var(--ink);color:#fff;border-radius:99px;padding:11px 18px;bottom:28px;box-shadow:0 9px 30px #00000038}.game-error,.toast{font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.game-error{z-index:25;color:#8e3527;background:#fff1ed;border:1px solid #d89487;align-items:center;gap:14px;padding:10px 13px 10px 16px;display:flex;top:92px;box-shadow:0 8px 20px #4f1e141f}.game-error button{cursor:pointer;background:0 0;border:0}.pop-enter-active,.pop-leave-active{transition:opacity .2s,transform .2s}.pop-enter-from,.pop-leave-to{opacity:0;transform:translate(-50%,-50%)scale(.85)}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,10px)}@media (width<=980px){.landing{grid-template-columns:1fr;gap:50px;max-width:700px}.intro-panel h1{font-size:clamp(46px,10vw,70px)}.game-layout{grid-template-columns:minmax(0,1fr);max-width:850px}.game-sidebar{grid-template-columns:1fr 1fr;display:grid}.history-panel{grid-row:span 2}.leave-button{grid-column:1/-1}}@media (width<=640px){.site-header{height:65px;padding:0 17px}.header-note{display:none}.landing{min-height:auto;padding:42px 18px 60px}.intro-panel h1{margin-top:20px;font-size:clamp(39px,12vw,55px)}.lead{font-size:14px}.probability-showcase{justify-content:space-between;gap:8px}.demo-stone{width:48px}.form-body{padding:27px 22px}.game-layout{padding:16px 10px 45px}.turn-banner{grid-template-columns:1fr;gap:3px;min-height:0;padding:10px 13px}.turn-detail{display:none}.board-shell{padding:10px}.stone{width:96%}.stone-number{font-size:clamp(7px,2.7vw,12px)}.observation-gate{flex-direction:column;align-items:stretch}.stone-picker{flex-wrap:wrap}.stone-picker small{flex-basis:100%;margin-left:0}.observe-bar{flex-direction:column;align-items:stretch}.observe-actions{grid-template-columns:1fr 1.2fr;display:grid}.game-sidebar{grid-template-columns:1fr}.history-panel{grid-row:auto}.room-code-wrap>span{display:none}.room-code-wrap strong{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
