@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Noto Sans TC,sans-serif;color:#f2eee5;background:#171b19;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;--paper: #f2eee5;--muted: #a5aaa2;--gold: #c3a26e;--line: rgba(226, 218, 198, .13);--panel: rgba(24, 29, 27, .9)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:100%;margin:0;overflow:hidden}button,select{font:inherit}button{cursor:pointer}#app{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 43%,#343a32 0,#222722 37%,#171b19 82%)}#go-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;z-index:0}.grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}.topbar{position:absolute;z-index:3;left:0;right:0;top:0;height:78px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#0f1211bd,#0f121140)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paper)}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(205,174,123,.52);border-radius:11px;color:#e0c18e;background:linear-gradient(145deg,#ae8b5733,#1f272199);font-size:20px;font-weight:700}.brand small,.overline{display:block;color:#b7a27d;font-size:9px;letter-spacing:.2em;font-weight:600}.brand strong{display:block;margin-top:3px;font-size:16px;letter-spacing:.04em}.match-pill{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;color:#e5e1d8;background:#161a18b8;font-size:11px;letter-spacing:.025em;white-space:nowrap}.match-pill i,.live-dot{width:7px;height:7px;border-radius:50%;background:#a9c1a8;box-shadow:0 0 10px #a9c1a880}.match-pill i.white-turn{background:#e6e3db}.pill-sep{color:#767c74}.icon-button{display:none;border:1px solid var(--line);background:#1f2622cc;color:#eee7da;border-radius:10px;width:40px;height:40px;font-size:19px}.board-caption{position:absolute;z-index:2;left:50%;top:96px;transform:translate(-50%);display:flex;align-items:center;gap:9px;color:#e6e2d8;text-shadow:0 1px 8px #111;font-size:11px;white-space:nowrap}.caption-divider{color:#788079}.live-dot{width:6px;height:6px}.glass{border:1px solid rgba(222,218,200,.14);background:linear-gradient(145deg,#1e2420ed,#161b19e8);box-shadow:0 22px 70px #00000045,inset 0 1px #ffffff09;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-radius:16px}.settings-card{position:absolute;z-index:3;left:30px;top:50%;transform:translateY(-45%);width:264px;padding:21px 20px 16px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.card-head h1,.coach-title h2{font-size:16px;letter-spacing:.015em;margin:4px 0 0;font-weight:600}.settings-card label{display:block;color:#adb2aa;font-size:10px;margin:13px 0 7px;letter-spacing:.025em}.settings-card select{width:100%;height:39px;padding:0 30px 0 11px;border:1px solid rgba(222,218,200,.11);border-radius:8px;color:#e8e4d9;background:#282e2a;font-size:11px;outline:none}.settings-card select:focus{border-color:#baa174}.settings-card select option{background:#282e2a}.primary-button{width:100%;height:39px;display:flex;justify-content:space-between;align-items:center;padding:0 13px;margin-top:17px;border:1px solid #a78755;border-radius:8px;background:linear-gradient(105deg,#b39769,#94764d);color:#171916;font-size:11px;font-weight:700;box-shadow:0 4px 16px #ae8b5724}.primary-button span{font-size:15px}.button-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.quiet-button{height:34px;border:1px solid rgba(222,218,200,.11);border-radius:7px;color:#d2d0c6;background:#ffffff09;font-size:10px}.quiet-button:hover{background:#ffffff14}.quiet-button:disabled{opacity:.4;cursor:default}.card-rule{height:1px;margin:16px 0 12px;background:var(--line)}.player-row{display:flex;align-items:center;gap:9px;margin:10px 0;color:#e0ded5;font-size:11px}.stone{display:block;width:13px;height:13px;border-radius:50%;box-shadow:inset 0 1px 2px #ffffff29,0 2px 4px #080909}.black-stone{background:#111311}.white-stone{background:#e8e2d5}.player-row small{margin-left:4px;color:#939990;font-size:9px}.player-row b{margin-left:auto;color:#a9aea5;font-size:9px;font-weight:500}.settings-foot{margin:15px 0 0;padding-top:11px;border-top:1px solid rgba(255,255,255,.06);color:#969c94;font-size:9px}.settings-foot span{color:#d2bb8f;margin-right:4px}.coach-card{position:absolute;z-index:3;right:30px;top:50%;transform:translateY(-44%);width:306px;padding:18px 18px 13px}.coach-toggle-button{display:none}.coach-title{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line)}.mentor-avatar{width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(207,178,128,.37);border-radius:50%;background:linear-gradient(145deg,#465044,#292d28);color:#dfc796;font-size:17px}.coach-title h2{font-size:14px}.online-tag{margin-left:auto;color:#9fb29c;font-size:9px}.online-tag:first-letter{color:#a8c49f}.coach-message{padding:13px 1px 9px}.coach-kicker{margin:0 0 8px;color:#c4aa7c;font-size:10px;letter-spacing:.07em}.coach-message>p:not(.coach-kicker){margin:0;color:#e3e0d6;font-size:11px;line-height:1.8}.pro-analysis{margin-top:13px;padding:9px 10px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#ffffff06}.pro-analysis summary{display:flex;justify-content:space-between;color:#b9bdb4;font-size:10px;cursor:pointer;list-style:none}.pro-analysis summary::-webkit-details-marker{display:none}.pro-analysis summary span{color:#b9a071}.pro-analysis[open] summary{margin-bottom:8px}.pro-analysis>p{margin:0;color:#afb4aa;font-size:10px;line-height:1.75}.coach-footer{display:flex;align-items:center;gap:7px;padding-top:11px;border-top:1px solid rgba(255,255,255,.07);color:#aeb3aa;font-size:9px}.coach-spark{color:#d1b27e;font-size:13px}.coach-footer #coach-tip{flex:1}.coach-footer button{border:0;background:none;color:#d3b985;font-size:9px;white-space:nowrap}.toast{position:absolute;z-index:5;bottom:28px;left:50%;transform:translate(-50%,12px);padding:10px 15px;border:1px solid var(--line);border-radius:99px;background:#151a17eb;color:#f0eadc;font-size:11px;opacity:0;transition:.22s;pointer-events:none}.toast.shown{transform:translate(-50%);opacity:1}.hidden{display:none!important}.mobile-backdrop{display:none}@media(max-width:760px){.topbar{height:63px;padding:0 15px}.brand{gap:9px}.brand-mark{width:34px;height:34px;font-size:18px}.brand small{font-size:8px}.brand strong{font-size:14px}.match-pill{top:69px;left:50%;font-size:10px;padding:8px 12px}.mobile-only{display:block}.board-caption{top:107px;font-size:10px}.settings-card{display:none;left:12px;right:12px;top:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:none;width:auto;max-height:73dvh;overflow:auto;padding:17px 17px calc(15px + env(safe-area-inset-bottom));border-radius:15px}.settings-card.mobile-open{display:block}.card-head{margin-bottom:12px}.card-head h1{font-size:15px}.close-mobile{display:block;width:32px;height:32px;font-size:21px}.settings-card label{margin-top:11px}.settings-card select{height:42px;font-size:12px}.primary-button{height:43px}.quiet-button{height:39px}.settings-foot{margin-top:12px}.coach-card{top:auto;right:11px;left:11px;bottom:max(13px,env(safe-area-inset-bottom));transform:none;width:auto;padding:12px 13px 10px;border-radius:13px;pointer-events:auto}.coach-title{padding-bottom:8px}.mentor-avatar{width:30px;height:30px;font-size:15px}.coach-title h2{font-size:12px}.coach-title .overline{font-size:8px}.coach-message{padding:8px 1px 6px}.coach-kicker{font-size:9px;margin-bottom:4px}.coach-message>p:not(.coach-kicker){font-size:11px;line-height:1.55}.pro-analysis{margin-top:7px;padding:7px 9px}.pro-analysis summary{font-size:9px}.pro-analysis>p{font-size:9px}.coach-footer{padding-top:7px;font-size:8px}.coach-footer button{font-size:8px}.mobile-backdrop.active{display:block;position:absolute;z-index:2;inset:0;background:#0507067a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings-card.mobile-open{z-index:4}.coach-card{z-index:3}.toast{bottom:calc(230px + env(safe-area-inset-bottom));font-size:10px}.grain{opacity:.1}}@media(max-width:380px){.coach-card{padding:10px 11px 8px}.coach-message>p:not(.coach-kicker){font-size:10px}.pro-analysis>p{font-size:8.5px}.settings-card{left:9px;right:9px}}@media(max-width:760px){.topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.match-pill{top:69px}.board-caption{top:109px}.coach-card{max-height:min(44dvh,360px);overflow-y:auto;overscroll-behavior:contain;padding:10px 12px max(9px,env(safe-area-inset-bottom))}.coach-title{min-height:44px;padding-bottom:7px}.coach-toggle-button{display:block;min-width:84px;min-height:44px;margin-left:auto;padding:0 10px;border:1px solid rgba(199,169,119,.35);border-radius:9px;color:#e9d7b1;background:#a6844f29;font-size:13px}.coach-card:not(.mobile-expanded){max-height:none;overflow:visible;padding-bottom:max(8px,env(safe-area-inset-bottom))}.coach-card:not(.mobile-expanded) .coach-message{display:none}.coach-card:not(.mobile-expanded) .coach-title{border-bottom:0;padding-bottom:0}.coach-card:not(.mobile-expanded) .coach-footer{padding-top:5px}.coach-card.mobile-expanded .coach-toggle-button{min-width:78px}.settings-card{max-height:calc(100dvh - 86px - env(safe-area-inset-top));padding-bottom:max(17px,env(safe-area-inset-bottom));overscroll-behavior:contain}.toast{bottom:calc(125px + env(safe-area-inset-bottom))}}@media(max-height:650px)and (min-width:761px){.settings-card,.coach-card{transform:translateY(-42%) scale(.9)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}}.brand small,.overline{font-size:11px}.brand strong{font-size:18px}.match-pill,.board-caption{font-size:14px}.settings-card{width:318px;padding:24px 23px 18px}.card-head h1{font-size:21px}.settings-card label{font-size:13px;margin-top:15px}.settings-card select{height:46px;padding-left:13px;font-size:14px}.primary-button{height:46px;font-size:14px}.quiet-button{height:40px;font-size:13px}.player-row{gap:11px;margin:12px 0;font-size:14px}.player-row small{font-size:11px}.player-row b{font-size:12px}.stone{width:16px;height:16px}.settings-foot{font-size:11px}.panel-move-hint{margin:7px 0 0;color:#a9afa5;font-size:11px;line-height:1.55}.coach-card{width:380px;padding:21px 21px 16px}.coach-title h2{font-size:18px}.mentor-avatar{width:42px;height:42px;font-size:20px}.online-tag{font-size:12px}.coach-message{padding:16px 1px 12px}.coach-kicker{font-size:13px}.coach-message>p:not(.coach-kicker){font-size:15px;line-height:1.75}.pro-analysis{padding:11px 12px}.pro-analysis summary,.pro-analysis>p{font-size:13px}.coach-footer{gap:9px;padding-top:13px;font-size:12px}.coach-footer button{font-size:12px}.toast{font-size:14px}.drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.lesson-open-button{width:100%;min-height:46px;margin-top:10px;border:1px solid rgba(199,169,119,.55);border-radius:9px;color:#f2e4c9;background:linear-gradient(120deg,#a3804957,#57695547);font-size:14px;font-weight:700}.lesson-open-button:hover{background:linear-gradient(120deg,#a3804985,#5769556b)}.lesson-open-button:disabled{opacity:.65;cursor:default}.lesson-panel{margin:0 0 13px;padding:14px;border:1px solid rgba(190,169,128,.28);border-radius:12px;background:linear-gradient(145deg,#70624033,#ffffff06)}.lesson-progress-row{display:flex;justify-content:space-between;gap:8px;color:#d5c59f;font-size:12px;font-weight:700}.lesson-progress-track{height:5px;margin:9px 0 13px;overflow:hidden;border-radius:99px;background:#ffffff1a}.lesson-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:#a9c1a8;transition:width .25s ease}.lesson-panel h3{margin:0 0 8px;color:#f1e4c7;font-size:17px;line-height:1.5}.lesson-panel>p{margin:0;color:#eee9df;font-size:14px;line-height:1.8}.lesson-actions{display:flex;gap:8px;margin-top:12px}.lesson-actions button{min-height:42px;padding:0 14px;border:1px solid rgba(200,174,126,.42);border-radius:8px;color:#f2e7d2;background:#a6844f3d;font-size:13px;font-weight:700}.lesson-actions button:disabled{opacity:.45;cursor:not-allowed}.lesson-actions #lesson-exit{margin-left:auto;color:#c5c9c0;background:#ffffff09}.coach-card.lesson-active .coach-kicker,.coach-card.lesson-active #plain-analysis{display:none}.settings-card{left:18px}.coach-card{right:18px}@media(max-width:760px){.settings-card{left:12px;right:12px;width:auto;padding:18px 17px calc(17px + env(safe-area-inset-bottom))}.settings-card label{font-size:13px}.settings-card select,.lesson-open-button{min-height:46px;font-size:14px}.coach-card{left:11px;right:11px;width:auto;padding:14px 15px 12px}.coach-title{padding-bottom:10px}.coach-title h2{font-size:16px}.coach-title .overline{font-size:10px}.mentor-avatar{width:36px;height:36px;font-size:18px}.coach-message{padding:10px 1px 8px}.coach-kicker{font-size:12px;margin-bottom:6px}.coach-message>p:not(.coach-kicker){font-size:14px;line-height:1.65}.lesson-panel{padding:11px;margin-bottom:8px}.lesson-progress-row{font-size:11px}.lesson-panel h3{font-size:16px}.lesson-panel>p{font-size:13px;line-height:1.65}.lesson-actions button{min-height:40px;font-size:12px}.pro-analysis{margin-top:8px;padding:8px 10px}.pro-analysis summary,.pro-analysis>p{font-size:12px}.coach-footer{padding-top:9px;font-size:11px}.coach-footer button,.panel-move-hint{font-size:11px}}@media(max-width:380px){.coach-card{padding:12px 12px 10px}.coach-message>p:not(.coach-kicker){font-size:13px}.lesson-panel>p{font-size:12px}}
