:root{font-family:Noto Sans SC,system-ui,-apple-system,Segoe UI,sans-serif;color:#151515;background:#f6f6f6;font-synthesis:none;font-weight:400;--line: #dedede;--muted: #777}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:2px solid #111;outline-offset:4px}input{min-width:0;color:#111;background:#fff;border:1px solid #ccc;border-radius:8px;padding:12px 13px;outline-offset:2px}button{color:inherit}p{line-height:1.8}h1,h2,h3,p{margin-top:0}.game-app{max-width:1320px;min-height:100dvh;margin:0 auto;padding:0 44px 32px}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px;font-size:18px;letter-spacing:.08em;font-weight:800;border:0;background:none;padding:0}.logo-stones{display:flex;width:38px;align-items:center}.logo-stones i{width:24px;height:24px;display:block;border-radius:50%;border:1px solid #111;background:#111}.logo-stones i+i{margin-left:-9px;background:#fff}.header-actions{display:flex;align-items:center;gap:24px}.quiet-button{border:0;background:none;padding:10px 4px;min-height:40px;font-size:12px;color:#666}.quiet-button:hover{color:#111}.user-label{font-size:12px;color:#777}.home-view{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:calc(100dvh - 140px);gap:64px}.section-kicker{display:block;font-size:11px;letter-spacing:.2em;color:#777;font-weight:700}.home-copy h1{font-size:clamp(56px,6.2vw,86px);font-weight:900;line-height:1.18;letter-spacing:-.05em;margin:22px 0 44px}.main-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.button{min-height:56px;padding:15px 20px;display:inline-flex;align-items:center;justify-content:center;gap:28px;border:1px solid #ccc;border-radius:10px;font-size:15px;font-weight:700;transition:background .15s,border-color .15s;white-space:nowrap}.button span{font-weight:400;font-size:18px;margin-left:auto}.button.primary{background:#111;color:#fff;border-color:#111}.button.primary:hover:not(:disabled){background:#333}.button.outline{background:#fff;color:#111}.button.outline:hover:not(:disabled){border-color:#111}.button.compact{min-height:42px;padding:8px 14px;font-size:13px}.button.full{width:100%}.home-shortcuts{display:flex;gap:0;margin-top:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.home-shortcuts button{background:none;border:0;flex:1;padding:20px 0;text-align:left;font-size:12px}.home-shortcuts button+button{padding-left:24px;border-left:1px solid var(--line)}.home-shortcuts span{float:right;margin-right:20px;color:#777}.home-art{position:relative;padding:30px 20px}.art-board{display:grid;grid-template-columns:repeat(7,1fr);aspect-ratio:1;transform:rotate(-8deg);border-radius:4px;background:#eee;border:1px solid #ccc;padding:20px;box-shadow:22px 28px #e4e4e4,0 26px 50px #0000000b}.art-board>span{position:relative;display:grid;place-items:center;border-right:1px solid #c8c8c8;border-bottom:1px solid #c8c8c8}.art-board>span:nth-child(7n){border-right:0}.art-board>span:nth-child(n+43){border-bottom:0}.preview-stone{position:absolute;width:73%;aspect-ratio:1;border-radius:50%;box-shadow:3px 4px 6px #0002}.preview-stone.dark{background:radial-gradient(at 32% 26%,#454545,#090909 80%)}.preview-stone.light{background:radial-gradient(at 30% 25%,#fff,#e4e4e4);border:1px solid #bbb}.art-label{margin-top:62px;text-align:right;letter-spacing:.35em;font-size:10px;color:#999}.settings-view{max-width:960px;margin:54px auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.page-heading h2{font-size:34px;letter-spacing:-.06em;margin:10px 0 0}.setup-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}.setup-columns.system-setup{grid-template-columns:minmax(0,1fr)}.surface{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px}.surface h3{font-size:14px;margin:0 0 22px}.model-row{width:100%;background:#fff;display:flex;align-items:center;gap:14px;border:1px solid #e3e3e3;border-radius:10px;padding:15px;margin-bottom:10px;text-align:left}.model-row.is-selected{border-color:#111;box-shadow:inset 0 0 0 1px #111}.model-row strong{display:block;font-size:14px;word-break:break-all}.model-row small{display:block;color:#888;font-size:10px;margin-top:5px}.radio-mark{width:15px;height:15px;border:1px solid #bbb;border-radius:50%;margin-left:auto;flex-shrink:0}.is-selected .radio-mark{border:4px solid #111}.avatar{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:50%;background:#ececec;font-weight:700;font-size:15px;border:1px solid #ddd;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.large{width:48px;height:48px;font-size:20px}.avatar-button{border:0;padding:0;border-radius:50%;background:transparent;display:flex}.avatar-button:disabled{opacity:1}.setting-field{margin:0 0 24px}.setting-field>label{display:block;font-size:12px;color:#777;margin-bottom:10px}.segment-control{display:flex;border:1px solid #d4d4d4;padding:4px;background:#f5f5f5;border-radius:10px;margin-bottom:12px}.segment-control button{flex:1;min-height:38px;background:transparent;border:0;font-size:12px;border-radius:6px;color:#777;padding:8px 12px}.segment-control button.active{background:#111;color:#fff;font-weight:600}.setup-summary{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #eee;padding:20px 0 22px;font-size:12px;color:#777}.setup-summary b{color:#111;word-break:break-all}.multi-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.join-room{display:flex;gap:12px;border-top:1px solid #eee;margin-top:24px;padding-top:24px}.join-room input{flex:1}.brief-rule{color:#777;font-size:12px;margin-bottom:24px}.empty-content{min-height:170px;display:grid;place-items:center;color:#888;font-size:13px;text-align:center;padding:30px}.queue-view{text-align:center;padding:100px 20px}.queue-view h2{font-size:28px;margin-top:35px}.queue-view p{font-size:13px}.queue-mark{display:flex;justify-content:center;gap:10px}.queue-mark i{height:35px;width:35px;border-radius:50%;background:#111;border:1px solid #111}.queue-mark i+i{background:#fff}.queue-view .button{margin-top:20px;min-width:180px}.muted{color:#888;font-size:12px}.tiny{font-size:10px}.room-members{display:flex;gap:28px;margin-bottom:34px}.room-person{display:flex;flex:1;flex-direction:column;align-items:center;gap:16px;padding:35px 10px;border:1px solid #ddd;border-radius:12px;font-size:13px}.room-person .avatar{width:64px;height:64px}.room-person.empty{color:#999;border-style:dashed;justify-content:center}.empty-avatar{font-size:30px}.pill{background:#eee;color:#666;border-radius:20px;padding:5px 12px;font-size:10px}.room-invite,.room-ready{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.room-ready{margin-top:25px}.match-view{margin:24px 0 0}.opponent-top{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px 18px;min-height:80px;margin-bottom:18px}.opponent-info{min-width:90px;max-width:220px;display:grid;gap:5px}.opponent-info strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-info span{font-size:11px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danmaku-track{position:relative;flex:1;height:38px;overflow:hidden;min-width:0;pointer-events:none;margin:0 20px}.danmaku-item{position:absolute;top:7px;left:100%;white-space:nowrap;font-size:12px;padding:3px 10px;border-radius:20px;background:#eee;color:#444;animation:float-message 6.5s linear forwards}.clock{margin-left:auto;text-align:right;white-space:nowrap;display:flex;align-items:baseline;gap:7px}.clock b{font-size:28px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.clock span{font-size:11px;color:#888}.match-body{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px;align-items:start}.board-region{background:#fff;border:1px solid var(--line);padding:18px;border-radius:14px}.board-status{display:flex;align-items:center;gap:10px;margin:0 2px 20px;min-height:25px;font-size:12px}.board-status small{margin-left:auto;color:#999;font-size:10px}.color-dot{width:13px;height:13px;display:inline-block;border-radius:50%;border:1px solid #999}.color-dot.black{background:#111;border-color:#111}.color-dot.white{background:#fff}.gomoku-board{display:grid;grid-template-columns:repeat(15,1fr);width:100%;aspect-ratio:1;border:1px solid #ccc;border-radius:5px;padding:10px;background:#efefef}.intersection{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;width:100%;border:0;padding:0;background:transparent;border-radius:0}.intersection:disabled{opacity:1}.intersection:before,.intersection:after{content:"";position:absolute;background:#b8b8b8;pointer-events:none}.intersection:before{width:100%;height:1px;top:50%;left:0}.intersection:after{height:100%;width:1px;left:50%;top:0}.intersection.edge-top:after{top:50%;height:50%}.intersection.edge-bottom:after{height:50%}.intersection.edge-left:before{left:50%;width:50%}.intersection.edge-right:before{width:50%}.intersection:hover:not(:disabled){background:#fff9}.piece{position:relative;z-index:1;width:85%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:1px 3px 3px #0003}.piece.black{background:radial-gradient(at 30% 22%,#444,#0a0a0a 75%)}.piece.white{background:radial-gradient(at 30% 20%,#fff,#e5e5e5);border:1px solid #bbb}.piece i{width:17%;height:17%;border:1px solid white;border-radius:50%}.piece.white i{border-color:#333}.star-point{position:absolute;height:5px;width:5px;background:#777;border-radius:50%;z-index:0}.pending-marker{font-size:25px;z-index:1}.match-tools{display:grid;gap:14px}.player-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:20px}.player-summary .avatar{grid-row:span 2}.player-summary>strong{font-size:13px}.player-summary>span:last-of-type{font-size:11px;color:#999}.stock-grid{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #eee;gap:18px;margin-top:20px;padding-top:18px}.stock-grid>div{display:grid;gap:7px}.stock-grid small{font-size:10px;color:#888}.stock-grid b{font-size:22px}.chat-box{padding:16px}.chat-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.chat-recent{min-height:70px;max-height:145px;overflow:auto;display:flex;flex-direction:column;justify-content:flex-end;padding:10px 0 15px}.chat-recent p{font-size:11px;color:#777;word-break:break-all;margin:0 0 9px;line-height:1.6}.chat-recent b{color:#333;margin-right:8px}.chat-box form{display:flex;gap:6px}.chat-box input{width:0;flex:1;padding:10px;font-size:12px}.chat-box .button{padding:8px;font-size:11px}.match-bottom{display:flex;justify-content:space-between;padding:0 5px}.result-card{text-align:center;border:1px solid #111;border-radius:12px;padding:25px 18px}.result-card h2{font-size:28px;margin-bottom:10px}.result-card p{font-size:12px;color:#888}.mobile-confirm{display:none;margin-top:14px}.inline-error{font-size:12px;color:#666;line-height:1.7}.dialog-backdrop{position:fixed;inset:0;z-index:10;background:#0007;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{background:#fff;width:min(640px,100%);max-height:90dvh;display:flex;flex-direction:column;border-radius:16px;box-shadow:0 25px 100px #0003;overflow:hidden}.dialog>header{display:flex;align-items:center;justify-content:space-between;padding:23px 25px;border-bottom:1px solid #eee;gap:14px}.dialog>header h2{font-size:18px;letter-spacing:-.03em;margin:0}.close-button{font-size:25px;border:0;background:none;width:34px;height:34px;border-radius:6px}.dialog-body{padding:24px;overflow-y:auto;min-height:0}.dialog-body>p{font-size:13px;color:#666}.dialog-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.field-label{display:grid;gap:10px;margin-bottom:20px;color:#777;font-size:12px}.rules-content{padding:14px 0 0}.rules-content h3{font-size:15px}.rules-content p{font-size:13px;color:#666;margin-bottom:18px}.list-area{max-height:380px;overflow-y:auto;margin-top:20px}.rank-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #eee;padding:13px 0;font-size:13px}.rank-number{color:#999;font-size:14px;width:25px}.rank-row>b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row>span:last-child{font-size:12px}.rank-row.my-row{background:#f3f3f3}.personal-ranking{border-top:1px solid #ddd;margin-top:14px;padding:18px 0 8px;display:flex;justify-content:space-between;font-size:12px}.switch-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ddd;padding-top:18px;font-size:12px}.switch-row input{accent-color:#111;width:18px;height:18px}.history-stats{padding:18px 0 0;display:flex;justify-content:space-between;font-size:12px;gap:12px}.history-row{width:100%;background:transparent;color:inherit;text-align:left;border:0;border-radius:0;display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid #eee}.history-row-info{flex:1;min-width:0}.history-row:hover{background:#f5f5f5}.history-row-arrow{font-size:22px;color:#999}.history-detail-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:20px 0 16px;font-size:12px}.history-detail-summary small{color:#888;margin-left:auto}.history-player-legend{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:12px}.history-player-legend>span{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.history-player-legend .color-dot{flex:none}.history-final-board{margin:16px auto;max-width:460px}.game-app .history-final-board .gomoku-board{width:100%;height:auto;max-width:100%}.history-final-board .intersection{cursor:default}.history-final-stocks{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:11px;color:#666}.history-end-reason{margin-bottom:0}.history-row b{font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-row small{display:block;font-size:10px;color:#999;margin-top:5px}.result-pill{font-size:11px;border:1px solid #ddd;border-radius:20px;padding:4px 10px;white-space:nowrap}.result-pill.win{background:#111;color:#fff;border-color:#111}.notice-toast{position:fixed;z-index:30;left:50%;bottom:28px;transform:translate(-50%);background:#111;color:#fff;border:1px solid #555;border-radius:10px;padding:13px 22px;font-size:13px;max-width:90vw;box-shadow:0 6px 25px #0002}.platform-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 16px;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:12px}@keyframes float-message{0%{left:100%}to{left:0;transform:translate(-100%)}}.kook-stage{position:relative;width:min(100vw,calc(100dvh * 16 / 9));height:min(100dvh,56.25vw);aspect-ratio:16 / 9;min-height:0;padding:0 22px 16px;overflow:hidden}.kook-stage .site-header{height:56px}.kook-stage .home-view{min-height:0;height:calc(100% - 56px);padding:10px 35px;gap:70px}.kook-stage .home-copy h1{font-size:clamp(38px,6vw,82px)}.kook-stage .home-art{max-width:420px;padding:10px}.kook-stage .art-label{margin-top:35px}.kook-stage .settings-view{margin:20px auto;max-height:calc(100% - 70px);overflow:auto}.kook-stage .match-view{margin-top:12px;height:calc(100% - 68px)}.kook-stage .opponent-top{min-height:62px;height:62px;padding:8px 14px;margin-bottom:10px}.kook-stage .match-body{height:calc(100% - 72px);grid-template-columns:minmax(0,1fr) 245px;gap:14px}.kook-stage .board-region{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;padding:10px}.kook-stage .board-status{flex-shrink:0;align-self:stretch;margin-bottom:8px;min-height:22px}.kook-stage .gomoku-board{width:auto;height:calc(100% - 30px);max-width:100%}.kook-stage .match-tools{max-height:100%;overflow-y:auto;gap:8px}.kook-stage .surface{padding:12px}.kook-stage .chat-recent{min-height:30px;max-height:60px;padding:5px 0}.kook-stage .dialog-backdrop{position:absolute}.kook-stage .dialog{max-height:95%}.kook-stage .queue-view{padding:35px 10px}.kook-stage .dialog-body .list-area{max-height:200px}@media(prefers-reduced-motion:reduce){.danmaku-item{animation:none;left:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}}@media(min-width:1500px){.game-app{max-width:1400px}.gomoku-board{max-width:680px;margin:auto}.match-body{grid-template-columns:minmax(0,1fr) 310px}.home-copy h1{font-size:96px}}@media(max-width:900px){.game-app{padding:0 24px 24px}.home-view{gap:24px}.home-copy h1{font-size:60px}.home-art{padding:20px 15px}.match-body{grid-template-columns:minmax(0,1fr) 245px;gap:14px}.surface{padding:20px}.button{padding:14px}.opponent-info{max-width:160px}}@media(max-width:700px){.game-app{padding:0 16px 20px}.site-header{height:68px}.wordmark{font-size:15px}.header-actions{gap:12px}.home-view{grid-template-columns:1fr;gap:0;min-height:auto;padding:48px 8px 20px}.home-copy h1{font-size:68px;margin:14px 0 32px}.home-art{width:78%;margin:32px auto 0;order:2}.art-label{margin-top:40px}.main-buttons .button{min-height:60px}.home-shortcuts{margin-top:20px}.settings-view{margin:30px auto}.page-heading h2{font-size:28px}.setup-columns{grid-template-columns:1fr}.surface{padding:20px}.settings-view .surface{margin-bottom:14px}.model-picker{max-height:290px;overflow:auto}.match-view{margin-top:14px}.opponent-top{padding:12px;gap:10px;margin-bottom:12px}.opponent-info{max-width:125px;min-width:75px}.opponent-info strong{font-size:12px}.opponent-info span{font-size:10px}.avatar.large{width:40px;height:40px}.danmaku-track{margin:0 5px;height:32px}.danmaku-item{font-size:11px}.clock b{font-size:22px}.clock span{max-width:70px;overflow:hidden;text-overflow:ellipsis;font-size:10px}.match-body{grid-template-columns:1fr;gap:12px}.board-region{padding:12px}.board-status{font-size:11px;margin-bottom:12px}.gomoku-board{padding:5px}.match-tools{grid-template-columns:1fr;gap:10px}.player-summary{display:flex;gap:10px;padding:12px 15px}.player-summary .stock-grid{margin:0 0 0 auto;padding:0;border:0;gap:8px 15px;grid-template-columns:1fr 1fr}.stock-grid small{font-size:9px}.stock-grid b{font-size:15px}.mobile-confirm{display:block;width:100%}.chat-box{padding:12px}.chat-recent{min-height:40px;max-height:75px}.match-bottom{order:5}.join-room{gap:8px}.join-room .button{padding:8px 12px}.room-members{gap:12px}.room-person{padding:22px 8px}.room-invite .button{font-size:12px;min-height:45px}.dialog-backdrop{padding:15px}.dialog>header{padding:17px 18px}.dialog-body{padding:18px}.dialog{max-height:92dvh}.dialog>header h2{font-size:16px}.dialog-buttons .button{font-size:12px}.list-area{max-height:45dvh}.rank-row{gap:9px}.personal-ranking,.history-stats{font-size:11px}.notice-toast{bottom:16px}}
