:root{color:#1d1b16;font-family:Inter,Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef1f4;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{border:0;border-radius:8px;background:#23262d;color:#fff;cursor:pointer;font-weight:800;min-height:42px;padding:0 16px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px #1d1b1629}button:disabled{cursor:not-allowed;opacity:.52}button.primary{background:#ba3f2f}button.secondary{width:100%;background:#3d6f69}input{width:100%;border:1px solid #d6d9dc;border-radius:8px;background:#fff;color:#1d1b16;min-height:44px;padding:0 12px;outline:0}input:focus{border-color:#3d6f69;box-shadow:0 0 0 3px #3d6f6929}.app-shell{min-height:100vh;padding:24px}header{align-items:center;display:flex;font-weight:900;gap:10px;margin:0 auto 24px;max-width:1180px}.brand-mark{background:radial-gradient(circle at 50% 50%,#151515 0 42%,transparent 44%),linear-gradient(90deg,transparent 46%,#3d6f69 46% 54%,transparent 54%),linear-gradient(0deg,transparent 46%,#ba3f2f 46% 54%,transparent 54%);border-radius:50%;display:inline-block;height:28px;width:28px}.lobby{align-items:center;display:grid;gap:32px;grid-template-columns:minmax(0,1fr) 380px;margin:8vh auto 0;max-width:1040px}.lobby-copy h1{font-size:clamp(2.25rem,5vw,5rem);line-height:1.04;margin:10px 0 18px;max-width:760px}.lobby-copy p{color:#52575c;font-size:1.08rem;line-height:1.7;margin:0;max-width:620px}.panel{background:#fff;border:1px solid #dde1e5;border-radius:8px;box-shadow:0 18px 44px #262d331a}.join-panel{display:grid;gap:18px;padding:22px}label{color:#3f454b;display:grid;font-size:.88rem;font-weight:800;gap:8px}.button-row{display:grid;gap:10px;grid-template-columns:1fr 1fr}.eyebrow{color:#ba3f2f;font-size:.78rem;font-weight:900;letter-spacing:0;margin:0;text-transform:uppercase}.notice{background:#fff4e6;border:1px solid #f2c280;border-radius:8px;color:#7a4314;font-size:.92rem;font-weight:800;line-height:1.5;margin:0;padding:10px 12px}.setup-panel{margin:12vh auto 0;max-width:680px;padding:28px}.setup-panel h1{font-size:2.1rem;line-height:1.15;margin:10px 0}.setup-panel p:last-child{color:#52575c;line-height:1.7;margin-bottom:0}.game-layout{display:grid;gap:24px;grid-template-columns:300px minmax(0,1fr);margin:0 auto;max-width:1180px}.game-info{align-content:start;display:grid;gap:18px;padding:20px}.room-code{color:#202126;font-size:2.2rem;font-weight:950;line-height:1;margin-top:8px}.score-list{display:grid;gap:10px}.player-badge{align-items:center;background:#f7f8f9;border:1px solid #e2e5e8;border-radius:8px;display:flex;gap:12px;min-height:66px;padding:12px}.player-badge.active{border-color:#ba3f2f;box-shadow:inset 0 0 0 2px #ba3f2f24}.player-badge strong{display:block;overflow-wrap:anywhere}.player-badge small{color:#646b72;display:block;font-weight:800;margin-top:2px}.stone-chip{border-radius:50%;flex:0 0 auto;height:30px;width:30px}.stone-chip.black{background:radial-gradient(circle at 34% 30%,#555 0,#555 12%,#111 50%,#050505)}.stone-chip.white{background:radial-gradient(circle at 34% 30%,#fff 0,#fff 14%,#f2f1ec 56%,#d5d1c7);border:1px solid #c6c0b4}.timer-box{align-items:center;background:#1f242a;border-radius:8px;color:#fff;display:flex;justify-content:space-between;min-height:68px;padding:14px 16px}.timer-box span{color:#c9d3d6;font-weight:800}.timer-box strong{font-size:2.25rem;line-height:1}.status-box{background:#edf6f5;border:1px solid #cce2df;border-radius:8px;color:#244844;font-weight:800;line-height:1.55;padding:12px}.status-box p{margin:0}.board-stage{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 100px);position:relative}.board{aspect-ratio:1;background:linear-gradient(90deg,transparent calc(50% - 1px),rgb(77 55 31 / 38%) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(0deg,transparent calc(50% - 1px),rgb(77 55 31 / 38%) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),#dcae62;background-size:calc(100% / 15) calc(100% / 15);border:14px solid #9f6a2f;border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff59,0 24px 54px #3c2f1f3d;display:grid;gap:0;grid-template-columns:repeat(15,1fr);max-width:min(76vh,820px);padding:4px;width:100%}.intersection{align-items:center;aspect-ratio:1;background:transparent;border-radius:50%;box-shadow:none;display:flex;justify-content:center;min-height:0;padding:0;position:relative;transform:none}.intersection:hover:not(:disabled){box-shadow:none;transform:none}.intersection:before{border-radius:50%;content:"";display:block;height:78%;opacity:0;transition:opacity .14s ease;width:78%}.intersection:hover:not(:disabled):before{background:#23262d3d;opacity:1}.black-stone:before,.white-stone:before{opacity:1}.black-stone:before{background:radial-gradient(circle at 34% 30%,#5d5d5d 0,#5d5d5d 10%,#121212 52%,#030303);box-shadow:0 6px 10px #00000052}.white-stone:before{background:radial-gradient(circle at 34% 30%,#fff 0,#fff 12%,#f2efe8 58%,#d0cabd);border:1px solid #c9c2b4;box-shadow:0 6px 10px #4635232e}.intersection.latest:after{background:#ba3f2f;border:2px solid #ffffff;border-radius:50%;content:"";height:10px;position:absolute;width:10px}.winner-banner{background:#fffffff0;border:1px solid #dde1e5;border-radius:8px;box-shadow:0 18px 44px #262d3329;left:50%;min-width:min(420px,calc(100vw - 48px));padding:22px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:2}.winner-banner p{color:#ba3f2f;font-weight:950;margin:0}.winner-banner h2{font-size:2.4rem;line-height:1.05;margin:8px 0;overflow-wrap:anywhere}.winner-banner span{color:#52575c;font-weight:800}@media(max-width:920px){.app-shell{padding:16px}.lobby,.game-layout{grid-template-columns:1fr}.lobby{margin-top:4vh}.board-stage{min-height:auto}.board{max-width:min(92vw,720px)}}@media(max-width:560px){header{margin-bottom:16px}.lobby-copy h1{font-size:2.25rem}.button-row{grid-template-columns:1fr}.game-info{gap:12px}.board{border-width:8px;padding:2px}.intersection.latest:after{height:7px;width:7px}}
