*{box-sizing:border-box}body{margin:0;background:#0a0e18;color:#f7f1df;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;min-height:100vh}.hidden{display:none!important}.topbar{height:58px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;background:rgba(10,14,24,.94);border-bottom:1px solid rgba(255,215,130,.25);position:sticky;top:0;z-index:10}.brand{font-family:Georgia,serif;letter-spacing:1.5px;color:#e9c979;font-size:20px}.iconbtn,.back,.secondary,.variationControls button{border:1px solid rgba(255,215,130,.4);background:#171d2c;color:#f7f1df;border-radius:12px;padding:9px 13px}.page{max-width:1120px;margin:auto;padding:18px}.hero{min-height:360px;border-radius:24px;background:radial-gradient(circle at 70% 20%,#283b63,transparent 38%),linear-gradient(135deg,#141a2b,#0c1020);border:1px solid rgba(255,215,130,.25);display:flex;align-items:center;justify-content:center;gap:25px;padding:24px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#e9c97955 1px,transparent 1px);background-size:28px 28px;opacity:.25}.yuko{position:relative;z-index:1;display:grid;place-items:center}.yuko.large{width:250px;height:300px}.yuko.small{width:105px;height:125px}.yuko.resultYuko{width:150px;height:180px;margin:auto}.yuko-face{width:78%;height:78%;border-radius:48% 48% 44% 44%;background:linear-gradient(#15151d 0 52%,#e9b28e 53%);border:2px solid #d9b96d;display:grid;place-items:end center;padding-bottom:14px;color:#f3d58c;font-family:Georgia,serif;box-shadow:0 0 35px #d9b96d33;position:relative}.yuko.large .yuko-face{font-size:28px}.yuko.small .yuko-face{font-size:15px}.yuko.resultYuko .yuko-face{font-size:21px}.yuko-face:before{content:"";position:absolute;top:42%;width:50%;height:4px;border-radius:50%;background:#d99a83;box-shadow:-23px 0 #d99a83,23px 0 #d99a83}.bubble{position:relative;z-index:2;max-width:410px;background:rgba(255,250,235,.96);color:#222;border-radius:18px;padding:16px 18px;box-shadow:0 10px 30px #0008;line-height:1.65}.bubble strong{color:#805e24}.progressCard{margin:16px 0;padding:15px 17px;background:#141b2b;border:1px solid #ffffff18;border-radius:16px}.progressCard>div:first-child{display:flex;justify-content:space-between;margin-bottom:9px}.progress{height:9px;background:#090c14;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#b88a35,#f2d18a);transition:.3s}.primary{border:0;border-radius:14px;background:linear-gradient(135deg,#c89b45,#f0d28a);color:#1a1720;font-weight:800;padding:15px 18px;font-size:16px;box-shadow:0 7px 22px #0006}.page>.primary{width:100%;margin-bottom:14px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menuBtn{background:#141b2b;border:1px solid #ffffff18;color:#f7f1df;border-radius:14px;padding:15px;font-weight:700}.menuBtn span{background:#9b5b57;border-radius:20px;padding:2px 7px;margin-left:5px}.problemHead{display:flex;align-items:center;gap:12px;margin-bottom:12px}.problemHead #problemNo{font-weight:800}.problemHead #topic{color:#d8bb75;font-size:13px}.questionLayout{display:grid;grid-template-columns:minmax(300px,1fr) 300px;gap:16px}.boardWrap,.sidePanel{background:#141b2b;border:1px solid #ffffff16;border-radius:18px;padding:14px}.turn{text-align:center;color:#e5c67c;margin-bottom:8px;font-weight:700}.board{margin:auto;width:min(82vw,680px);aspect-ratio:1;background:#d2ad68;position:relative;border-radius:8px;box-shadow:0 15px 35px #0008}.stone{position:absolute;width:5.2%;height:5.2%;border-radius:50%;transform:translate(-50%,-50%);box-shadow:inset -3px -4px 5px #0006,2px 3px 5px #0008}.black{background:#111;border:1px solid #333}.white{background:#eee;border:1px solid #bbb}.candidate{width:7.3%;height:7.3%;background:#6f4d1d;border:2px solid #f8dfa1;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:900;z-index:3}.candidate.selected{outline:3px solid #fff}.sidePanel{display:flex;flex-direction:column;align-items:center;gap:10px}.sidePanel .bubble{width:100%;font-size:14px}.choices{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.choice{background:#20283b;color:#fff;border:1px solid #ffffff18;border-radius:12px;padding:12px;font-weight:700;text-align:left}.choice.selected{border-color:#e8c978;background:#3a3040}.candidateNote{font-size:12px;color:#d8cfbb;text-align:center;margin-top:10px}.modal{position:fixed;inset:0;background:#050810d9;z-index:50;overflow:auto;padding:20px}.modalCard{max-width:620px;margin:5vh auto;background:#121a2a;border:1px solid #d9b96d55;border-radius:22px;padding:20px;box-shadow:0 25px 70px #000b}.resultCard{text-align:center}.resultCard h2{color:#f0d28a}.valueCompare{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px}.valueCompare span{background:#20283a;padding:8px 12px;border-radius:10px}.variationBox{background:#0a0f19;border-radius:15px;padding:10px}.miniBoard{width:min(70vw,360px);aspect-ratio:1;background:#d2ad68;margin:8px auto;position:relative}.variationControls{display:flex;justify-content:center;gap:8px}.variationControls button{font-size:18px;width:45px}.modalCard>label{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #ffffff12}.danger{margin:18px 0;width:100%;padding:13px;background:#5b2c35;color:white;border:1px solid #b96b75;border-radius:12px}.loading{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;background:radial-gradient(circle at 50% 35%,#26385e,#090d17 55%)}.magic-orb{width:90px;height:90px;border-radius:50%;background:#e9c97933;border:1px solid #e9c97999;box-shadow:0 0 55px #e9c97988;animation:pulse 1.5s infinite}.loading h1{font-family:Georgia,serif;color:#e9c979}.loading .progress{width:min(75vw,360px)}@keyframes pulse{50%{transform:scale(1.08);opacity:.65}}@media(max-width:720px){.hero{min-height:310px;flex-direction:column;gap:5px}.yuko.large{width:190px;height:215px}.questionLayout{grid-template-columns:1fr}.sidePanel{order:2}.board{width:min(94vw,600px)}.problemHead{flex-wrap:wrap}.bubble{font-size:14px}.modal{padding:10px}.modalCard{margin:2vh auto;padding:15px}}