.Goban{position:relative;background-color:#dcb35c;display:inline-block;box-shadow:var(--goban-shadow);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none}.Goban .GobanMessage{position:absolute;inset:0;width:100%;height:100%;font-size:large;text-align:center;z-index:var(--z-goban-message)}.Goban .PenLayer{position:absolute;left:0;right:0;z-index:var(--z-goban-pen-layer)}.Goban .GridLayer{position:absolute;top:0;left:0;right:0;z-index:var(--z-goban-grid-layer);pointer-events:none}.Goban .GridBackgroundLayer{position:absolute;top:0;left:0;right:0;z-index:var(--z-goban-grid-background-layer);pointer-events:none}.Goban .StoneLayer{position:absolute;left:0;right:0;z-index:var(--z-goban-stone-layer)}.Goban .ShadowLayer{position:absolute;z-index:var(--z-goban-shadow-layer);left:0;right:0}.Goban .CrosshairLayer{position:absolute;z-index:var(--z-goban-crosshair-layer);left:0;right:0}.Goban .GobanMessage table{position:relative;width:100%;height:100%}.Goban .GobanMessage table td{background-image:none}.Goban .GobanMessage table td div{border-radius:3px;box-shadow:5px 5px 3px #00000042;color:#f50;background-color:#262626;padding:.3em;margin:.4em}.Goban .hidden{display:none}.Goban.borderless{box-shadow:var(--goban-shadow-borderless);width:100%;text-align:center;margin:0;border-radius:0}.Goban.small{font-size:small;box-shadow:0 2px 5px #00000042}.Goban.small canvas{box-shadow:0 2px 10px #00000029}.Goban svg text{font-family:Verdana,Arial,sans-serif;text-anchor:middle;font-weight:700;-webkit-user-select:none;user-select:none}:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:#1a1d2e;color:#e8e8f0}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1rem 1rem 3rem}.app main{width:100%;display:flex;justify-content:center}.app .menu-main{max-width:720px}.app .level-main{max-width:600px}.level-screen{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:1rem}.level-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.level-title{flex:1;text-align:center}.level-title .level-no{font-size:.75rem;color:#8b8fa3;letter-spacing:.05em}.level-title h2{margin:.1rem 0 0;font-size:1.1rem;color:#f5c451}.stars-badge{font-size:.8rem;color:#f5c451;background:#f5c4511a;padding:.35rem .6rem;border-radius:999px;white-space:nowrap}.topbar-badges{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.points-badge{font-size:.8rem;font-weight:700;color:#6bce8a;background:#6bce8a1f;border:1px solid rgba(107,206,138,.35);padding:.35rem .6rem;border-radius:999px;white-space:nowrap;cursor:pointer;transition:background .15s ease,transform .1s ease}.points-badge:hover{background:#6bce8a38}.points-badge:active{transform:scale(.95)}.instruction{margin:0;padding:.85rem 1rem;background:#ffffff0a;border-left:3px solid #f5c451;border-radius:4px;line-height:1.5;font-size:.95rem;transition:background .2s}.instruction.wrong-flash{background:#e74c3c2e;border-left-color:#e74c3c}.go-game-board{width:min(80vw,560px);height:min(80vw,560px);align-self:center}.actions{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:2.5rem;flex-wrap:wrap}.wrong-count{color:#e74c3c;font-size:.85rem}.best-record{color:#6bce8a;font-size:.85rem}.ghost-btn,.primary-btn{border:none;border-radius:6px;padding:.5rem .9rem;font-size:.9rem;cursor:pointer;font-family:inherit}.ghost-btn{background:#ffffff0f;color:#c5c9dd}.ghost-btn:hover{background:#ffffff1a}.primary-btn{background:#f5c451;color:#1a1d2e;font-weight:600}.primary-btn:hover{background:#ffd470}.result-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:10;animation:fade-in .18s ease-out}.result-card{animation:pop-in .32s cubic-bezier(.34,1.56,.64,1) both}.result-card{background:#232845;border:1px solid rgba(245,196,81,.3);border-radius:12px;padding:1.75rem 2rem 1.5rem;width:min(90vw,320px);text-align:center;box-shadow:0 12px 40px #0006}.result-title{font-size:1.4rem;color:#f5c451;font-weight:700;margin-bottom:.5rem}.result-stars{font-size:2.4rem;line-height:1;margin:.5rem 0 .75rem}.result-stars .star{color:#444;margin:0 .1rem;transition:color .3s,transform .3s}.result-stars .star.on{color:#f5c451;animation:star-pop .5s cubic-bezier(.34,1.56,.64,1) both}.result-points{color:#8b8fa3;margin-bottom:1.25rem}.result-actions{display:flex;gap:.5rem;justify-content:center}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.7) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes star-pop{0%{opacity:0;transform:scale(0) rotate(-45deg)}60%{opacity:1;transform:scale(1.3) rotate(8deg)}to{opacity:1;transform:scale(1) rotate(0)}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding-right:2.8rem}.topbar-back,.topbar-spacer{min-width:5rem}.topbar-title{flex:1;text-align:center}.topbar-subtitle{font-size:.72rem;color:#8b8fa3;letter-spacing:.05em;text-transform:uppercase}.topbar-title h2{margin:.15rem 0 0;font-size:1.05rem;color:#f5c451;line-height:1.2}.worldmap-screen,.chapter-screen{width:100%;display:flex;flex-direction:column}.chapter-list{display:flex;flex-direction:column;gap:.75rem}.chapter-card{display:block;width:100%;text-align:left;background:#232845;border:1px solid rgba(245,196,81,.18);border-radius:12px;padding:1rem 1.1rem;color:inherit;font-family:inherit;cursor:pointer;transition:border-color .15s,transform .15s}.chapter-card:hover:not(.locked){border-color:#f5c45180;transform:translateY(-1px)}.chapter-card.locked{opacity:.5;cursor:not-allowed;background:#ffffff05}.chapter-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.chapter-title{margin:0;font-size:1.05rem;color:#f5c451}.chapter-lock{font-size:.95rem}.chapter-desc{margin:0 0 .6rem;color:#8b8fa3;font-size:.82rem;line-height:1.4}.chapter-progress{height:5px;background:#ffffff0f;border-radius:999px;overflow:hidden;margin-bottom:.4rem}.chapter-progress-bar{height:100%;background:linear-gradient(90deg,#f5c451,#ffd470);transition:width .4s ease-out}.chapter-stats{display:flex;justify-content:space-between;font-size:.78rem;color:#c5c9dd}.chapter-stars{color:#f5c451}.chapter-description{margin:0 0 1rem;padding:.6rem .9rem;background:#ffffff08;border-left:2px solid #f5c451;border-radius:4px;color:#c5c9dd;font-size:.85rem;line-height:1.5}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}@media(min-width:540px){.level-grid{grid-template-columns:repeat(8,1fr)}}.level-tile{aspect-ratio:1;border:1px solid transparent;border-radius:10px;background:#ffffff0d;color:#c5c9dd;font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.35rem .2rem;transition:transform .12s,background .12s,border-color .12s}.level-tile:hover:not(:disabled){transform:translateY(-1px);border-color:#f5c45166}.level-tile.locked{opacity:.4;background:#ffffff05;cursor:not-allowed}.level-tile.unlocked{background:#ffffff14;color:#e8e8f0}.level-tile.completed{background:linear-gradient(135deg,#f5c45140,#f5c45114);border-color:#f5c45173;color:#f5c451}.level-tile-content{display:flex;align-items:center;justify-content:center;flex:1}.level-tile-no{font-size:1.05rem}.level-tile-lock{font-size:.95rem}.star-row{display:inline-flex;gap:.05rem;line-height:1}.star-row .star{color:#444;transition:color .2s}.star-row .star.on{color:#f5c451}.star-row.sm .star{font-size:.55rem}.star-row.md .star{font-size:.85rem}.star-row.lg .star{font-size:2.4rem}.mc-options{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:420px;align-self:center}.mc-option{width:100%;text-align:left;background:#ffffff0f;color:#e8e8f0;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.75rem 1rem;font-size:1rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.mc-option:hover:not(:disabled){background:#ffffff1a;border-color:#f5c45166;transform:translateY(-1px)}.mc-option:active:not(:disabled){transform:translateY(0)}.mc-option:disabled{cursor:default}.mc-option.disabled{opacity:.55}.mc-option.correct{background:#6bce8a2e;border-color:#6bce8a;color:#b6f0c6}.mc-option.wrong{background:#e74c3c2e;border-color:#e74c3c;color:#ffb3ab;animation:mc-shake .35s}.mc-option-label{display:block}@keyframes mc-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.settings-fab{position:fixed;top:.85rem;right:.85rem;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid rgba(245,196,81,.3);background:#232845e6;color:#f5c451;font-size:1.15rem;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .2s,border-color .2s}.settings-fab:hover{transform:rotate(45deg);border-color:#f5c451b3}.settings-card{width:min(90vw,360px);text-align:left}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.95rem}.settings-row:last-of-type{border-bottom:none}.settings-segment{display:inline-flex;gap:.35rem}.settings-segment .ghost-btn,.settings-segment .primary-btn{padding:.4rem .75rem;font-size:.85rem}.settings-reset-row{flex-direction:column;align-items:stretch;gap:.5rem}.settings-reset-btn{width:100%;color:#e74c3c;border:1px solid rgba(231,76,60,.35);background:#e74c3c14}.settings-reset-btn:hover{background:#e74c3c29}.settings-confirm{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}.settings-warn{font-size:.85rem;color:#e74c3c;text-align:center}.settings-danger{background:#e74c3c!important;color:#fff!important}.settings-danger:hover{background:#ff6b5b!important}@keyframes unlock-glow{0%{box-shadow:0 0 #f5c451b3;transform:scale(1)}50%{box-shadow:0 0 0 6px #f5c45100;transform:scale(1.08)}to{box-shadow:0 0 #f5c45100;transform:scale(1)}}.level-tile.just-unlocked{animation:unlock-glow 1.1s ease-out 2;border-color:#f5c451cc}.chapter-card.completed{border-color:#6bce8a73;background:linear-gradient(135deg,#6bce8a14,#232845e6)}.chapter-card.completed:hover:not(.locked){border-color:#6bce8ab3}.chapter-done{width:1.3rem;height:1.3rem;border-radius:50%;background:#6bce8a;color:#1a1d2e;font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.points-toast{position:fixed;top:38%;left:50%;transform:translate(-50%,-50%);z-index:100;pointer-events:none;font-size:4rem;font-weight:800;color:#6bce8a;text-shadow:0 0 20px rgba(107,206,138,.6),0 2px 8px rgba(0,0,0,.5)}.points-toast.in{animation:points-pop .25s cubic-bezier(.2,1.4,.4,1) both}.points-toast.out{animation:points-fade .2s ease-out forwards}@keyframes points-pop{0%{transform:translate(-50%,-30%) scale(.4);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes points-fade{to{transform:translate(-50%,-70%) scale(1.1);opacity:0}}.scorecard-card{width:min(92vw,400px);max-height:86vh;overflow-y:auto;text-align:left}.scorecard-rank{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1rem;padding:.6rem .8rem;background:linear-gradient(135deg,#f5c4512e,#f5c4510d);border-radius:8px}.scorecard-rank-label{font-size:.75rem;color:#9aa0c0}.scorecard-rank-value{font-size:1.3rem;font-weight:800;color:#f5c451}.scorecard-overall{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.8rem}.scorecard-stat{text-align:center;padding:.5rem .2rem;background:#ffffff0a;border-radius:8px}.scorecard-stat-num{display:block;font-size:1.15rem;font-weight:800;color:#fff}.scorecard-stat-num.points{color:#6bce8a}.scorecard-stat-lbl{display:block;font-size:.68rem;color:#9aa0c0;margin-top:.2rem}.scorecard-bar-wrap{position:relative;height:1.1rem;background:#ffffff12;border-radius:999px;overflow:hidden;margin-bottom:1rem}.scorecard-bar{height:100%;background:linear-gradient(90deg,#6bce8a,#f5c451);border-radius:999px;transition:width .4s ease}.scorecard-bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#1a1d2e;text-shadow:0 1px 2px rgba(255,255,255,.3)}.scorecard-chapters{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.scorecard-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.6rem;padding:.45rem .6rem;background:#ffffff0a;border-radius:6px;font-size:.78rem}.scorecard-row.done{background:#6bce8a1a}.scorecard-ch-name{color:#d8dcee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scorecard-ch-progress{color:#9aa0c0}.scorecard-ch-stars{color:#f5c451}.scorecard-ch-points{color:#6bce8a;font-weight:700}
