:root{color:#25362d;background:#f4ebd8;font-family:ui-rounded,PingFang SC,Hiragino Sans GB,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(#f6efde42,#f6efde42),url(/assets/ink-landscape-paper.png) center top / cover fixed,#f4ebd8}button,input{font:inherit}button{min-height:42px;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}.app-shell{width:min(100%,540px);min-height:100vh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom))}.home-shell,.setup-shell,.list-shell{background:linear-gradient(170deg,#ffffff6b,#f4ebd840)}.home-header,.compact-header,.game-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-header{margin-bottom:18px}.eyebrow{margin:0 0 4px;color:#52715a;font-size:11px;font-weight:800;letter-spacing:.11em}.home-header h1,.setup-intro h1{margin:0;color:#213529;font-family:Songti SC,STSong,serif;font-size:32px;letter-spacing:.04em}.home-subtitle{margin:5px 0 0;color:#708073;font-size:14px}.round-icon-button{display:grid;width:43px;min-height:43px;place-items:center;border:1px solid #cfc09d;border-radius:50%;background:#fffcf4bf;color:#3e6047;box-shadow:0 3px 10px #48361c17}.campaign-hero{position:relative;display:grid;width:100%;gap:2px;overflow:hidden;border:1px solid #4f7255;border-radius:18px;padding:20px;background:linear-gradient(135deg,#244b38,#3c704b);color:#fff7e8;text-align:left;box-shadow:0 12px 24px #21482e33}.campaign-hero:after{position:absolute;right:-35px;bottom:-75px;width:190px;height:170px;border:1px solid rgba(255,255,255,.22);border-radius:52% 48% 0 0;content:"";transform:rotate(-25deg)}.campaign-hero-kicker{color:#d7c486;font-size:12px;font-weight:800;letter-spacing:.15em}.campaign-hero strong{position:relative;z-index:1;font-family:Songti SC,serif;font-size:28px}.campaign-hero>span:not(.campaign-hero-kicker){color:#dce8d9;font-size:13px}.campaign-hero i{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:2px;color:#fff6df;font-size:13px;font-style:normal;font-weight:800}.home-section{margin-top:26px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.section-heading h2{margin:0;color:#283e30;font-family:Songti SC,serif;font-size:21px}.section-heading button{display:inline-flex;min-height:28px;align-items:center;border:0;background:transparent;color:#54745b;font-size:12px;font-weight:800}.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.entry-card{display:grid;min-height:112px;gap:3px;border:1px solid #dfd2b8;border-radius:14px;padding:14px;background:#fffcf5bf;color:#314637;text-align:left;box-shadow:0 5px 12px #624c280d}.entry-card i{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#e1eadc;color:#396347;font-style:normal}.entry-card strong{margin-top:3px;font-size:16px}.entry-card small{color:#788579;font-size:11px}.recent-panel{margin-top:26px;border-top:1px solid #dfd2b8;padding-top:18px}.result-mini-list{display:grid;gap:8px}.result-mini-list div{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border-bottom:1px dashed #d6c7aa;padding:8px 2px;font-size:13px}.result-mini-list strong{color:#40684a;font-size:12px}.result-mini-list small{color:#849086}.empty-copy{margin:12px 0;color:#879186;font-size:13px}.compact-header{min-height:46px}.compact-header h1{margin:0;color:#304535;font-family:Songti SC,serif;font-size:21px}.compact-header>span{width:43px}.setup-intro{margin:26px 0 18px}.setup-intro h1{font-size:27px}.category-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 -3px 14px;border-bottom:1px solid #d8caad}.category-tabs button{min-height:40px;border:0;border-bottom:2px solid transparent;background:transparent;color:#778476;font-size:13px;font-weight:700}.category-tabs button.active{border-color:#396a49;color:#2f5f40}.setup-panel{display:grid;gap:18px;border:1px solid #dfd2b8;border-radius:15px;padding:16px;background:#fffcf5c7}.field-group{display:grid;gap:8px}.field-group>span{color:#647468;font-size:12px;font-weight:800}.field-group>small{color:#7b877c;font-size:12px}.level-label{color:#314b38;font-family:Songti SC,serif;font-size:19px}.field-group input[type=range]{width:100%;accent-color:#397047}.mode-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mode-choice-grid button,.segmented button{border:1px solid #d9ccb4;border-radius:10px;background:#fffdf7;color:#45584b;font-size:13px}.mode-choice-grid button{min-height:45px}.mode-choice-grid button.active,.segmented button.active{border-color:#3e744e;background:#e3ecdf;color:#275d3b;font-weight:800}.segmented,.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.role-option{display:flex;min-height:42px;align-items:center;gap:8px;border:1px solid #d8ccb6;border-radius:10px;padding:7px 8px;font-size:13px}.role-option input{accent-color:#3b7148}.setup-summary{display:grid;gap:4px;margin:15px 2px}.setup-summary span{color:#55735c;font-size:12px;font-weight:800}.setup-summary strong{color:#334a39;font-size:15px}.setup-summary small{color:#758176;font-size:12px;line-height:1.45}.primary-wide-button{display:flex;width:100%;align-items:center;justify-content:center;gap:5px;border:1px solid #2e633f;border-radius:13px;background:#2f6741;color:#fff9ec;font-weight:800;box-shadow:0 5px 12px #2b5b3733}.rules-link{display:inline-flex;width:max-content;min-height:28px;align-items:center;gap:1px;margin-top:3px;border:0;padding:0;background:transparent;color:#3c704a;font-size:12px;font-weight:800}.history-hero{display:grid;gap:3px;margin:24px 0 15px;border-radius:15px;padding:18px;background:#315f41;color:#fff6e4}.history-hero .eyebrow{color:#d7e4ce}.history-hero strong{font-family:Songti SC,serif;font-size:36px}.history-hero strong small{font-family:inherit;font-size:16px}.history-hero>span{color:#d7e4d3;font-size:12px}.history-list,.settings-list{display:grid;gap:8px}.history-list article{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #dfd2b8;padding:12px 3px}.history-list article i{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#e5edde;color:#477354}.history-list article div{display:grid;gap:3px}.history-list article strong{font-size:14px}.history-list article span,.history-list time{color:#758176;font-size:11px}.setting-toggle,.settings-range{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #dfd2b8;padding:15px 3px}.setting-toggle>span,.settings-range>span{display:grid;gap:4px}.setting-toggle strong,.settings-range strong{font-size:14px}.setting-toggle small,.settings-range small,.settings-range em{color:#778379;font-size:11px;font-style:normal}.setting-toggle{position:relative}.setting-toggle input{position:absolute;width:1px;height:1px;opacity:0}.setting-toggle i{width:44px;height:25px;border-radius:15px;background:#c7c6b9;transition:.2s}.setting-toggle i:after{display:block;width:19px;height:19px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;content:"";transition:.2s}.setting-toggle input:checked+i{background:#397046}.setting-toggle input:checked+i:after{transform:translate(19px)}.settings-range{display:grid}.settings-range input{width:100%;accent-color:#397046}.game-shell{padding:max(12px,env(safe-area-inset-top)) 12px calc(132px + env(safe-area-inset-bottom))}.game-topbar{min-height:45px}.game-topbar>div{display:grid;justify-items:center}.game-topbar p{margin:0;color:#5b785f;font-size:11px;font-weight:800;letter-spacing:.1em}.game-topbar h1{margin:1px 0 0;color:#314836;font-family:Songti SC,serif;font-size:19px}.progress-pill{position:relative;width:110px;height:24px;overflow:hidden;margin:6px auto 8px;border:1px solid #b5b692;border-radius:15px;background:#fbf4e5;color:#3d6146;font-size:12px;font-weight:900;line-height:22px;text-align:center}.progress-pill span{position:absolute;inset:0 auto 0 0;z-index:0;background:#cbdcab}.progress-pill{isolation:isolate}.progress-pill:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;content:""}.player-rail{display:flex;gap:8px;overflow-x:auto;padding:4px 1px 9px;scrollbar-width:none}.player-token{display:grid;min-width:57px;justify-items:center;gap:2px;color:#6e796f;font-size:11px}.player-token .stone{width:29px;box-shadow:inset 0 -2px 3px #00000047,0 1px 2px #0000002e}.player-token.active .stone{box-shadow:0 0 0 3px #d7cf86,inset 0 -2px 3px #00000047}.player-token.active span{color:#275b3a;font-weight:900}.player-token small{color:#9aa296;font-size:9px}.board-zone{display:grid;place-items:center}.board{display:grid;grid-template-columns:repeat(var(--board-size),1fr);grid-template-rows:repeat(var(--board-size),1fr);width:min(calc(100vw - 24px),512px);aspect-ratio:1;border:7px solid #a97c46;border-radius:4px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 12px),#d8ad6e;box-shadow:0 10px 20px #412d1333,inset 0 0 0 2px #d6bc8a}.intersection{position:relative;display:grid;min-width:0;min-height:0;place-items:center;border:1px solid rgba(83,54,18,.42);border-radius:0;padding:0;background:transparent}.intersection:active{background:#ffffff38}.stone,.ghost-stone{display:grid;width:76%;aspect-ratio:1;place-items:center;border-radius:50%}.stone{background:var(--player-color);color:#fff;font-size:clamp(9px,2.4vw,13px);font-weight:800;box-shadow:inset 0 -2px 4px #00000042,0 1px 2px #00000040}.ghost-stone{border:2px dashed #397047;background:#ffffff4d;box-shadow:0 0 0 4px #4b7f4d2e}.disabled-stone .stone{opacity:.35;box-shadow:inset 0 0 0 3px #3b4651}.skill-target:after{position:absolute;top:8%;right:8%;bottom:8%;left:8%;z-index:2;border:2px solid #f6d45c;border-radius:50%;box-shadow:0 0 0 2px #6d371d99;content:"";animation:target-pulse .85s ease-in-out infinite alternate;pointer-events:none}.skill-target-create:after{border-color:#60d6c1;box-shadow:0 0 0 2px #0f766e8c}.skill-create-marker,.skill-cross{position:absolute;z-index:3;display:grid;width:76%;aspect-ratio:1;place-items:center;border-radius:50%;color:#fff;font-size:clamp(12px,4.4vw,24px);font-weight:900;pointer-events:none}.skill-create-marker{background:#0f766ee0}.skill-cross{text-shadow:0 1px 3px rgba(0,0,0,.8)}.turn-guidance{display:grid;justify-items:center;gap:3px;margin:10px 0 4px;text-align:center}.turn-guidance strong{color:#315a3d;font-family:Songti SC,serif;font-size:23px}.turn-guidance span{color:#788277;font-size:12px}.turn-guidance em{display:inline-flex;align-items:center;gap:3px;margin-top:2px;border:1px solid #cdd7c3;border-radius:14px;padding:4px 8px;color:#3d6b49;font-size:11px;font-style:normal;font-weight:800}.control-dock{position:fixed;right:0;bottom:0;left:0;z-index:5;display:grid;grid-template-columns:.9fr 1.55fr .9fr;gap:9px;width:min(100%,540px);margin:0 auto;border-top:1px solid #d8c9ab;padding:10px 12px calc(12px + env(safe-area-inset-bottom));background:#f8f1e2f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-dock button{display:grid;min-height:54px;place-items:center;border:1px solid #a8b297;border-radius:14px;background:#fffaf0;color:#456048;font-size:12px;font-weight:800}.control-dock button:not(.confirm-button){gap:1px}.control-dock .confirm-button{border-color:#2d633f;background:linear-gradient(135deg,#2b623d,#41794d);color:#fff9ed;font-family:Songti SC,serif;font-size:20px;box-shadow:0 4px 10px #22563238}.control-dock .skill-active{border-color:#e0b94d;background:#f8e9ae;color:#765a18}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:end center;padding:16px;background:#1f291e75}.rules-dialog{width:min(100%,500px);border:1px solid #dfd0b2;border-radius:20px;padding:21px;background:#fffaf0;box-shadow:0 18px 44px #0000003b}.rules-dialog h2{margin:0 0 9px;color:#314b38;font-family:Songti SC,serif;font-size:24px}.rules-dialog p{margin:0 0 16px;color:#5e6e60;font-size:14px;line-height:1.65}.rules-dialog>button{width:100%;border:1px solid #2e633f;border-radius:11px;background:#326b43;color:#fff9e8;font-weight:800}.guide-dialog,.result-dialog{text-align:center}.guide-dialog>svg,.result-dialog>svg{margin-bottom:7px;color:#4e7954}.guide-dialog .eyebrow,.result-dialog .eyebrow{margin-bottom:3px}.dialog-actions{display:grid;gap:8px}.dialog-actions button{width:100%;min-height:43px;border:1px solid #2e633f;border-radius:11px;background:#326b43;color:#fff9e8;font-weight:800}.dialog-actions .text-button{border-color:#d6c8ad;background:transparent;color:#617165}.skill-prompt,.skill-notice{position:fixed;z-index:24;top:max(10px,env(safe-area-inset-top));left:50%;width:min(calc(100vw - 28px),512px);transform:translate(-50%);border:1px solid #bacba9;border-radius:14px;padding:10px 12px;background:#fffcf3fa;box-shadow:0 9px 20px #172f1f2e;text-align:center}.skill-prompt p,.skill-notice{margin:0;color:#315f3d;font-size:13px;font-weight:800}.skill-prompt strong{display:block;margin-top:3px;color:#728074;font-size:12px}.skill-prompt-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.skill-prompt-actions button{min-height:34px;border:1px solid #aebaa3;border-radius:8px;background:#fffaf0;font-size:12px}.skill-prompt-actions button:first-child{border-color:#326b43;background:#326b43;color:#fff}.skill-notice{display:grid;gap:2px}.skill-notice span{color:#788477;font-size:10px;font-weight:500}.choice-shell{display:grid;grid-template-rows:auto 1fr}.skill-choice-card{align-self:center;border:1px solid #d9c9ab;border-radius:20px;padding:20px;background:#fffbf2c7}.skill-choice-card h1{margin:0;color:#304a38;font-family:Songti SC,serif;font-size:27px}.skill-choice-card>p:not(.eyebrow){color:#718073;font-size:13px}.skill-choice-grid{display:grid;gap:8px;margin:18px 0}.skill-choice-grid button{display:grid;grid-template-columns:28px 1fr;min-height:70px;align-items:center;gap:0 8px;border:1px solid #d2c6ae;border-radius:12px;padding:10px;background:#fffdf8;color:#365b3e;text-align:left}.skill-choice-grid button svg{grid-row:1 / 3}.skill-choice-grid small{color:#788277;font-size:11px}.skill-choice-card>span{color:#7b887c;font-size:11px}@keyframes target-pulse{0%{opacity:.45;transform:scale(.84)}to{opacity:1;transform:scale(1.08)}}.rules-hero{display:grid;gap:5px;margin:24px 0 16px;border:1px solid rgba(91,124,85,.25);border-radius:17px;padding:18px;background:#fffaf0ad}.rules-hero h1{margin:0;color:#314d3a;font-family:Songti SC,serif;font-size:25px}.rules-hero span{color:#718074;font-size:12px}.mode-rule-list{display:grid;gap:9px}.mode-rule-list article{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:1px solid rgba(209,194,165,.75);border-radius:14px;padding:12px;background:#fffcf4c2}.mode-rule-list i{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#e5eddf;color:#396849;font-family:Songti SC,serif;font-style:normal;font-weight:900}.mode-rule-list div{display:grid;gap:3px}.mode-rule-list strong{color:#334d3a;font-size:14px}.mode-rule-list p{margin:0;color:#778178;font-size:11px;line-height:1.45}.mode-rule-list>article>span{color:#55705b;font-size:11px;font-weight:800}@media(max-width:390px){.app-shell,.game-shell{padding-inline:10px}.board{width:min(calc(100vw - 20px),512px);border-width:5px}.control-dock{padding-inline:10px}.turn-guidance strong{font-size:21px}.campaign-hero{padding:17px}.home-header h1{font-size:29px}}.app-shell{position:relative;isolation:isolate}.app-shell:before{position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(94,114,77,.08),transparent 19%,transparent 81%,rgba(94,114,77,.08));content:"";pointer-events:none}.eyebrow{color:#496e50;text-shadow:0 1px rgba(255,255,255,.7)}.home-header h1,.setup-intro h1{color:#284a36;text-shadow:0 1px #fff8e9,0 3px 10px rgba(44,77,48,.12)}.round-icon-button{position:relative;overflow:hidden;border:1px solid #9b7a40;background:radial-gradient(circle at 35% 28%,#fffde9 0,#fffde9 12%,#e8dbb8 48%,#c0a470);color:#315b3e;box-shadow:inset 0 0 0 3px #fffbe4a6,0 4px 10px #48341a2b}.round-icon-button:after{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(73,101,61,.32);border-radius:50%;content:"";pointer-events:none}.campaign-hero{border:1px solid #bda460;background:linear-gradient(120deg,#153e2d,#286246 48%,#193c2c);box-shadow:inset 0 0 0 3px #edd79038,0 13px 24px #1e462b40}.campaign-hero:before{position:absolute;top:-70px;right:-16px;width:205px;height:205px;border:1px solid rgba(235,213,144,.34);border-radius:50%;box-shadow:0 0 0 15px #ebd59012,0 0 0 31px #ebd5900a;content:""}.campaign-hero strong{color:#fff2c9;text-shadow:0 2px #153d2c}.campaign-hero i{border:1px solid rgba(240,222,161,.45);border-radius:99px;padding:5px 8px;background:#0d302357}.section-heading{position:relative;padding-left:12px}.section-heading:before{position:absolute;top:4px;bottom:3px;left:0;width:4px;border-radius:4px;background:linear-gradient(#d6bd6f,#3e7148);content:""}.section-heading h2{color:#2a5038}.entry-card{position:relative;overflow:hidden;border:1px solid #b69a65;border-radius:15px;background:linear-gradient(145deg,#fffef4f0,#efe2bfe0);box-shadow:inset 0 0 0 3px #fffff49e,0 7px 14px #4c391d1c;transition:transform .16s ease,box-shadow .16s ease}.entry-card:after{position:absolute;right:-18px;bottom:-22px;width:72px;height:72px;border:1px solid rgba(75,112,76,.14);border-radius:50%;box-shadow:0 0 0 12px #4b704c0f;content:""}.entry-card:active{transform:translateY(1px) scale(.985);box-shadow:inset 0 0 0 3px #fffff49e,0 2px 6px #4c391d29}.entry-card i{position:relative;z-index:1;width:32px;height:32px;border:1px solid #b8a265;background:radial-gradient(circle at 30% 25%,#f8f1c8,#65906a 57%,#315e42);color:#fff9e6;box-shadow:inset 0 0 0 3px #ffffff40,0 2px 5px #39513340;text-shadow:0 1px #315e42}.entry-card strong{position:relative;z-index:1;color:#2c5139;font-family:Songti SC,serif;font-size:17px}.entry-card small{position:relative;z-index:1;color:#68776b}.category-tabs{gap:7px;border:0;padding:4px;border-radius:14px;background:#62775221}.category-tabs button{border:1px solid transparent;border-radius:10px;color:#526457}.category-tabs button.active{border-color:#8fa07a;background:linear-gradient(145deg,#41774b,#24543a);color:#fff9e7;box-shadow:inset 0 0 0 1px #ffedad3d,0 2px 5px #1d4b2b2e}.setup-panel{border-color:#bba26f;background:linear-gradient(145deg,#fffdf4eb,#eedfb9d1);box-shadow:inset 0 0 0 3px #fffcecb8,0 10px 20px #5a411e12}.mode-choice-grid button,.segmented button{position:relative;overflow:hidden;border-color:#c2aa76;background:linear-gradient(145deg,#fffdf4,#e8dab9);color:#405841;box-shadow:inset 0 0 0 2px #ffffff6e}.mode-choice-grid button.active,.segmented button.active{border-color:#285c3b;background:linear-gradient(145deg,#4f8656,#275b3b);color:#fff9e7;box-shadow:inset 0 0 0 2px #ffeba040,0 3px 6px #23502c2b}.role-option{border-color:#c2aa76;background:#fffcf1b8}.role-option:has(input:checked){border-color:#477b4e;background:#e3eddc;box-shadow:inset 0 0 0 2px #ffffff85}.rules-link{border-bottom:1px solid rgba(54,102,62,.36)}.primary-wide-button{position:relative;overflow:hidden;min-height:52px;border-color:#b99c4f;background:linear-gradient(135deg,#1d4b33,#3c7c4d 51%,#1e4b34);color:#fff2c9;font-family:Songti SC,serif;font-size:18px;letter-spacing:.08em;text-shadow:0 1px #183c2b;box-shadow:inset 0 0 0 3px #fce19138,0 6px 12px #204b2d40}.primary-wide-button:before,.confirm-button:before{position:absolute;top:5px;right:8px;bottom:5px;left:8px;border-top:1px solid rgba(255,235,166,.5);border-bottom:1px solid rgba(255,235,166,.3);border-radius:8px;content:"";pointer-events:none}.history-hero{position:relative;overflow:hidden;border:1px solid #bda461;background:linear-gradient(135deg,#214d35,#3f7850);box-shadow:inset 0 0 0 3px #fae59930,0 10px 18px #234b2d33}.history-hero:after{position:absolute;right:-25px;bottom:-45px;width:130px;height:130px;border:1px solid rgba(255,238,184,.27);border-radius:50%;content:""}.history-list article,.setting-toggle,.settings-range{border-color:#ae94638c}.history-list article i{border:1px solid #c0a774;background:linear-gradient(145deg,#fff8d9,#d2dfbc);box-shadow:inset 0 0 0 2px #ffffff85}.setting-toggle i{border:1px solid #ae9563;background:#cdbb91;box-shadow:inset 0 1px 2px #4f371740}.setting-toggle input:checked+i{background:linear-gradient(90deg,#2b5b3b,#4f8b55)}.rules-hero{border-color:#bca36e;background:linear-gradient(135deg,#fffdf5e6,#e8dab5b8);box-shadow:inset 0 0 0 3px #fffceeb3}.mode-rule-list article{border-color:#bfa773;background:linear-gradient(145deg,#fffef6eb,#eee0bec7);box-shadow:inset 0 0 0 2px #ffffff73}.mode-rule-list i{border:1px solid #bca263;background:radial-gradient(circle at 30% 25%,#fff2bd,#779a6e 57%,#396846);color:#fff9e2;box-shadow:inset 0 0 0 3px #ffffff3d}.player-token{position:relative;padding-top:2px}.player-token .stone{width:34px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.78),var(--player-color) 30%,color-mix(in srgb,var(--player-color),#102617 25%) 100%);border:1px solid rgba(255,245,204,.62);box-shadow:inset 0 0 0 3px #ffffff26,inset 0 -3px 5px #00000047,0 2px 5px #00000038}.player-token.active .stone{box-shadow:0 0 0 2px #fff6c3,0 0 0 4px #b99d51,inset 0 0 0 3px #ffffff2b,inset 0 -3px 5px #00000047}.player-token.active:after{position:absolute;top:40px;width:22px;height:2px;border-radius:2px;background:#bb9a43;content:""}.board{border-color:#88612f;border-radius:8px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 14px),repeating-linear-gradient(0deg,rgba(92,52,12,.045) 0 1px,transparent 1px 11px),#d6ad6d;box-shadow:inset 0 0 0 3px #efd298,inset 0 0 0 8px #9f7136,0 12px 22px #412d1340}.intersection{border-color:#4e300d85}.stone{background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.72),var(--player-color) 30%,color-mix(in srgb,var(--player-color),#102617 25%) 100%);border:1px solid rgba(255,245,204,.5);box-shadow:inset 0 0 0 3px #ffffff21,inset 0 -3px 5px #00000042,0 2px 3px #00000040}.ghost-stone{border-color:#e5c052;background:#306d416b;box-shadow:0 0 0 4px #faeba36b}.turn-guidance{position:relative;margin:13px 0 5px}.turn-guidance strong{color:#315b3b;text-shadow:0 1px #fffbe9}.turn-guidance em{border-color:#bba16a;background:linear-gradient(145deg,#fff8e6,#e4d8b7);color:#345f3c;box-shadow:inset 0 0 0 2px #ffffff85}.control-dock{border-top-color:#bfa873;background:linear-gradient(180deg,#faf2e0fa,#e8d8b1f5);box-shadow:0 -5px 16px #523b1b1a}.control-dock button{position:relative;overflow:hidden;border-color:#b49b64;background:linear-gradient(145deg,#fffef3,#e8dab8);color:#3d5e42;box-shadow:inset 0 0 0 2px #ffffff8c}.control-dock .confirm-button{border-color:#bca14e;background:linear-gradient(135deg,#1e4a32,#397a4c 52%,#1b4931);color:#fff1c6;font-size:21px;box-shadow:inset 0 0 0 3px #fbdf8738,0 5px 9px #1e462a40}.control-dock .skill-active{border-color:#b88731;background:linear-gradient(145deg,#f8e7a5,#ddbd55);color:#68470e}.rules-dialog{border-color:#bda267;background:linear-gradient(145deg,#fffdf2,#ebdcb9);box-shadow:inset 0 0 0 3px #fff9,0 18px 44px #00000040}.rules-dialog>button,.dialog-actions button{border-color:#b99c4f;background:linear-gradient(135deg,#1f4c33,#3b794c);color:#fff0c4;box-shadow:inset 0 0 0 2px #ffe58f38}.dialog-actions .text-button{border-color:#bdab82;background:#fffdf499;color:#536751;box-shadow:none}.skill-choice-card{border-color:#bca16a;background:linear-gradient(145deg,#fffdf4f2,#ebdcb7d4);box-shadow:inset 0 0 0 3px #ffffffa1,0 14px 25px #4c37191a}.skill-choice-grid button{border-color:#bda570;background:linear-gradient(145deg,#fffef5,#e8d9b8);box-shadow:inset 0 0 0 2px #ffffff85}.skill-choice-grid button:hover{border-color:#4f7d50;background:linear-gradient(145deg,#eff4df,#dbe8d2)}.category-tabs{grid-template-columns:repeat(3,1fr)}.rogue-intro p:last-child{margin:8px 0 0;color:#718074;font-size:13px}.resume-run-card{display:grid;grid-template-columns:auto 1fr auto;width:100%;align-items:center;gap:12px;margin-bottom:13px;border:1px solid #b99d5e;border-radius:14px;padding:13px;background:linear-gradient(145deg,#1f5137,#3f7b4d);color:#fff3ca;text-align:left;box-shadow:inset 0 0 0 2px #ffe6932e}.resume-run-card span{display:grid;gap:3px}.resume-run-card strong{font-family:Songti SC,serif;font-size:17px}.resume-run-card small{color:#dbe7d7;font-size:11px}.rogue-skill-grid{display:grid;gap:8px}.rogue-skill-grid button{display:grid;grid-template-columns:26px 1fr;align-items:center;gap:1px 8px;border:1px solid #c2aa76;border-radius:11px;padding:10px;background:linear-gradient(145deg,#fffef5,#e8d9b8);color:#405841;text-align:left}.rogue-skill-grid button svg{grid-row:1 / 3}.rogue-skill-grid button small{color:#718074;font-size:10px}.rogue-skill-grid button.active{border-color:#285c3b;background:linear-gradient(145deg,#4f8656,#275b3b);color:#fff9e7}.rogue-skill-grid button.active small{color:#e1eadc}.run-meta-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0}.run-meta-summary span{display:grid;min-height:62px;place-items:center;gap:3px;border:1px solid #c8b588;border-radius:11px;padding:7px;background:#fffcf1bd;color:#49624d;font-size:10px;text-align:center}.rogue-shell{padding-bottom:32px}.run-hud{position:sticky;z-index:4;top:4px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 14px;border:1px solid #b89d61;border-radius:13px;padding:8px;background:#f8f0d7f0;box-shadow:0 5px 12px #4533181a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.run-hud span{display:flex;align-items:center;justify-content:center;gap:4px;color:#3d6045;font-size:11px;font-weight:800}.rogue-map{display:grid;gap:7px}.map-layer{display:grid;grid-template-columns:22px 1fr;align-items:stretch;gap:6px}.map-layer>b{display:grid;place-items:center;color:#9a855a;font-size:10px}.map-layer>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.map-node{position:relative;display:grid;min-height:93px;justify-items:start;gap:2px;overflow:hidden;border:1px solid #c7b58c;border-radius:12px;padding:9px;background:linear-gradient(145deg,#fffdf4eb,#e9dcbbd4);color:#536453;text-align:left}.map-node i{display:grid;width:24px;height:24px;place-items:center;border:1px solid #bca363;border-radius:50%;background:#e1e9d5;color:#356344;font-family:Songti SC,serif;font-style:normal;font-weight:900}.map-node strong{font-size:11px}.map-node small{color:#788176;font-size:8px;line-height:1.25}.map-node em{position:absolute;top:7px;right:7px;color:#988357;font-size:8px;font-style:normal}.map-node.reachable{border-color:#3e794b;box-shadow:inset 0 0 0 2px #467d4e2e,0 4px 9px #315b391f}.map-node.completed{opacity:.62;filter:saturate(.65)}.map-node.completed:after{position:absolute;right:6px;bottom:5px;color:#347044;content:"✓";font-weight:900}.relic-strip{margin-top:15px;border-top:1px solid #d2c19b;padding-top:12px}.relic-strip>strong{color:#385743;font-size:12px}.relic-strip>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.relic-strip span{border:1px solid #a89461;border-radius:99px;padding:4px 8px;background:#f2e7c8;color:#486049;font-size:10px}.relic-strip small{color:#7d887e}.text-danger-button{display:block;min-height:34px;margin:18px auto 0;border:0;background:transparent;color:#9b5145;font-size:11px;text-decoration:underline}.reward-hero{margin:27px 0 16px;text-align:center}.reward-hero svg{color:#987c35}.reward-hero h1{margin:0;color:#2d5038;font-family:Songti SC,serif;font-size:27px}.reward-grid{display:grid;gap:9px}.reward-grid button{position:relative;display:grid;min-height:116px;gap:5px;border:1px solid #bba266;border-radius:14px;padding:15px;background:linear-gradient(145deg,#fffdf2,#e9d9b5);color:#35563f;text-align:left;box-shadow:inset 0 0 0 3px #ffffff8c}.reward-grid button>span{color:#a27c2d;font-size:9px;font-weight:900;letter-spacing:.12em}.reward-grid button>strong{font-family:Songti SC,serif;font-size:20px}.reward-grid button p{margin:0;color:#68776a;font-size:12px;line-height:1.5}.secondary-wide-button{width:100%;margin-top:12px;border:1px solid #9e8e67;border-radius:12px;background:#fffbedbf;color:#47614a;font-weight:800}.event-shell{display:grid;grid-template-rows:auto 1fr}.event-card{align-self:center;border:1px solid #bda36a;border-radius:20px;padding:22px;background:linear-gradient(145deg,#fffdf3,#e9dab9);text-align:center;box-shadow:inset 0 0 0 3px #ffffff94,0 14px 25px #46341a1a}.event-card>svg{color:#3f7350}.event-card h1{margin:4px 0 9px;color:#2c5039;font-family:Songti SC,serif;font-size:27px}.event-card>p:not(.eyebrow){color:#69786b;font-size:13px;line-height:1.6}.event-card>div{display:grid;gap:8px;margin-top:18px}.event-card button{border:1px solid #446f4c;border-radius:11px;background:#326b43;color:#fff7e3;font-weight:800}.event-card button+button{border-color:#b9a579;background:#fff9e8;color:#4f644f}.result-shell{display:grid;place-items:center}.run-result-card{width:100%;border:1px solid #b79c59;border-radius:22px;padding:25px;background:linear-gradient(145deg,#fffdf0,#e9d6aa);text-align:center;box-shadow:inset 0 0 0 4px #ffffff8c,0 18px 30px #48341824}.run-result-card>svg{color:#a17d27}.run-result-card h1{margin:5px 0;color:#294e36;font-family:Songti SC,serif;font-size:29px}.run-result-card>p:not(.eyebrow){color:#69786b;font-size:13px}.run-result-card>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.run-result-card span{display:grid;gap:2px;border:1px solid #c9b78d;border-radius:10px;padding:9px;color:#6c776c;font-size:9px}.run-result-card span strong{color:#365c3e;font-size:20px}.run-result-card>button{width:100%;border:1px solid #315f3f;border-radius:11px;background:#326b43;color:#fff5db;font-weight:800}.run-result-card>.text-button{margin-top:8px;border-color:#baa980;background:transparent;color:#526753}.seed-shell>section{margin-top:38px;text-align:center}.seed-shell h1{margin:4px 0;color:#2c5139;font-family:Songti SC,serif}.seed-shell p:not(.eyebrow){color:#718074;font-size:12px}.seed-grid{display:grid;grid-template-columns:repeat(5,1fr);width:min(82vw,350px);aspect-ratio:1;margin:20px auto;border:6px solid #956b35;background:#d6ad6d}.seed-grid button{position:relative;min-height:0;border:1px solid rgba(78,48,13,.5);background:transparent}.seed-grid button:after{position:absolute;top:27%;right:27%;bottom:27%;left:27%;border:1px dashed #3a7147;border-radius:50%;content:""}.seed-grid button:active:after{background:#3a7147}.campaign-battle-hud{display:flex;justify-content:center;gap:12px;margin:6px 0;color:#53705a;font-size:10px;font-weight:800}.campaign-battle-hud span{display:flex;align-items:center;gap:3px}.last-move:before{position:absolute;z-index:4;width:16%;aspect-ratio:1;border-radius:50%;background:#f6d45c;box-shadow:0 0 0 1px #6e4822;content:"";pointer-events:none}.winning-cell{background:#f7dd6057;box-shadow:inset 0 0 0 2px #95681994}.hint-cell{background:#41824e33}.hint-dot{width:30%;aspect-ratio:1;border:2px solid #3e7849;border-radius:50%;background:#fff8d0bf;box-shadow:0 0 0 3px #3e784921}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:-5px 0 15px}.result-stats span{border:1px solid #c9b88d;border-radius:8px;padding:6px;color:#627064;font-size:10px}.loading-shell{display:grid;place-content:center;justify-items:center;gap:10px;color:#3f6748}.loading-shell strong{font-family:Songti SC,serif;font-size:20px}@media(max-width:390px){.map-node{min-height:86px;padding:7px}.map-node strong{font-size:10px}.map-node small{font-size:7px}.run-hud span,.run-meta-summary span{font-size:9px}}.access-shell{display:grid;min-height:100vh;place-items:center;padding:max(20px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));background:linear-gradient(#f4ebd833,#f4ebd859)}.access-card{width:min(100%,460px);border:1px solid #b79c61;border-radius:24px;padding:28px 22px;background:linear-gradient(145deg,#fffef4f5,#ebdcb5eb);box-shadow:inset 0 0 0 4px #ffffff80,0 20px 50px #4531162e;text-align:center}.access-seal,.online-mark{display:grid;width:64px;height:64px;place-items:center;margin:0 auto 14px;border:1px solid #b99b50;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff6bf,#62916a 56%,#28583a);color:#fff8dc;box-shadow:inset 0 0 0 4px #ffffff3d,0 6px 13px #2d533333}.access-card h1,.online-intro h1{margin:3px 0 9px;color:#294e36;font-family:Songti SC,serif;font-size:29px}.access-card>p:not(.eyebrow),.online-intro>p:not(.eyebrow){margin:0 auto;color:#68776b;font-size:13px;line-height:1.65}.access-card form,.online-form{display:grid;gap:10px;margin-top:22px;text-align:left}.access-card label,.online-form label{display:grid;gap:7px;color:#49614c;font-size:12px;font-weight:800}.access-card label span{display:flex;align-items:center;gap:5px}.access-card input,.online-form input,.online-create-panel select{width:100%;min-height:50px;border:1px solid #baa573;border-radius:12px;padding:0 13px;outline:none;background:#fffdf5e6;color:#284b35;font-size:16px}.access-card input:focus,.online-form input:focus,.online-create-panel select:focus{border-color:#3b7047;box-shadow:0 0 0 3px #3b704721}.access-card form>button:not(.text-button){display:flex;min-height:50px;align-items:center;justify-content:center;gap:7px;border:1px solid #b99c4f;border-radius:12px;background:linear-gradient(135deg,#1f4c33,#3b794c);color:#fff1c6;font-weight:900}.access-card .text-button,.online-form .text-button,.online-create-panel .text-button,.rename-link{border:0;background:transparent;color:#51705a;font-size:11px;text-decoration:underline}.access-card>small{display:block;margin-top:18px;color:#849086;font-size:10px;line-height:1.5}.form-error,.online-error{margin:0;border:1px solid rgba(165,79,64,.25);border-radius:9px;padding:8px 10px;background:#ffebe1ad;color:#9a4c3f;font-size:12px;line-height:1.45}.access-loading{display:grid;justify-items:center;gap:10px;color:#426a4a}.access-loading strong{font-family:Songti SC,serif;font-size:18px}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.online-start-shell,.lobby-shell{background:linear-gradient(170deg,#ffffff6b,#f4ebd840)}.online-header .connection-icon{display:grid;width:43px;height:43px;place-items:center;border:1px solid #bda877;border-radius:50%;background:#fffcf2b8;color:#9b6b36}.connection-icon.online{color:#377249}.connection-icon.offline{color:#a25547}.online-intro{margin:28px 0 20px;text-align:center}.online-intro .online-mark{width:58px;height:58px}.online-intro h1{font-size:27px}.rename-link{min-height:28px;margin-top:8px}.connection-banner{display:flex;align-items:center;gap:7px;margin:9px 0;border:1px solid #c8ad72;border-radius:10px;padding:9px 11px;background:#fff8e0d9;color:#775d27;font-size:11px;font-weight:800}.connection-banner.compact{margin:2px 0 6px;padding-block:5px}.online-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.online-action-grid button{display:grid;min-height:142px;justify-items:start;gap:4px;border:1px solid #b99f68;border-radius:16px;padding:17px;background:linear-gradient(145deg,#fffdf3,#e8d9b7);color:#35583f;text-align:left;box-shadow:inset 0 0 0 3px #ffffff7a,0 7px 15px #4d3a1c14}.online-action-grid svg{margin-bottom:5px;color:#397049}.online-action-grid strong{font-family:Songti SC,serif;font-size:19px}.online-action-grid span{color:#748075;font-size:11px;line-height:1.45}.online-create-panel{margin-top:12px}.online-mode-rule{margin:0;border-left:3px solid #5b855c;padding-left:9px;color:#68776a;font-size:12px;line-height:1.55}.join-form{margin-top:14px;border:1px solid #bda775;border-radius:15px;padding:16px;background:#fffcf2c2}.room-invite-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:18px 0 10px;border:1px solid #b99c55;border-radius:18px;padding:17px;background:linear-gradient(135deg,#1d4c33,#3d7a4c);color:#fff2ca;box-shadow:inset 0 0 0 3px #ffe5932e,0 10px 19px #204a2c33}.room-invite-card>div{display:grid;gap:2px}.room-invite-card .eyebrow{color:#dfd6ac}.room-invite-card strong{font-family:ui-monospace,monospace;font-size:31px;letter-spacing:.14em}.room-invite-card span{color:#dce7d8;font-size:11px}.room-invite-card button{display:grid;min-width:55px;place-items:center;border:1px solid rgba(255,239,178,.45);border-radius:13px;background:#0f34235c;color:#fff3cc}.room-invite-card button small{font-size:9px}.lobby-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.lobby-meta span{border:1px solid #c5b183;border-radius:9px;padding:7px 4px;background:#fffcf2ad;color:#58705b;font-size:10px;font-weight:800;text-align:center}.seat-list{display:grid;gap:7px}.seat-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border:1px solid #c7b58b;border-radius:13px;padding:10px;background:#fffdf5c7}.seat-card.self{border-color:#4d7c52;box-shadow:inset 0 0 0 2px #43784c26}.seat-card>.stone{width:34px}.seat-card>div{display:grid;gap:2px}.seat-card strong{color:#35543e;font-size:13px}.seat-card div span{color:#788378;font-size:10px}.seat-card em{border-radius:99px;padding:3px 7px;background:#dfead7;color:#376442;font-size:10px;font-style:normal;font-weight:900}.seat-card button{min-height:31px;border:1px solid #9e956f;border-radius:8px;background:#fff9e9;color:#49664d;font-size:10px;font-weight:800}.seat-card>small{color:#9a6c39;font-size:9px}.lobby-skill-panel{margin:14px 0;border:1px solid #bda673;border-radius:16px;padding:14px;background:linear-gradient(145deg,#fffef5e6,#ecdebccc)}.lobby-skill-panel h2{margin:1px 0 3px;color:#31523a;font-family:Songti SC,serif;font-size:20px}.lobby-skill-panel>div>span{color:#768176;font-size:10px}.online-skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}.online-skill-grid button{display:grid;min-height:84px;justify-items:center;gap:2px;border:1px solid #c3ad79;border-radius:10px;padding:8px 4px;background:#fffcf1c7;color:#456048}.online-skill-grid button.active{border-color:#2e6740;background:linear-gradient(145deg,#447e50,#275a3b);color:#fff6da;box-shadow:inset 0 0 0 2px #ffe89933}.online-skill-grid strong{font-size:11px}.online-skill-grid small{color:#7c867b;font-size:8px;line-height:1.25}.online-skill-grid button.active small{color:#dfe9da}.lobby-actions{display:grid;gap:8px;padding-bottom:20px}.secondary-ready{width:100%;border:1px solid #a9925f;border-radius:12px;background:#fffbedcc;color:#526853;font-weight:800}.online-game-shell{position:relative}.online-game-shell .game-topbar>.connection-icon{display:grid;width:43px;height:43px;place-items:center;border-radius:50%;color:#39704a}.online-control-dock{grid-template-columns:.85fr 1.6fr .85fr}@media(max-width:390px){.access-card{padding:24px 17px}.online-action-grid{grid-template-columns:1fr}.online-action-grid button{min-height:105px}.room-invite-card strong{font-size:27px}.online-skill-grid strong{font-size:10px}.seat-card{grid-template-columns:34px 1fr auto;padding:8px}}
