@charset "UTF-8";
:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC",sans-serif;color:#342d46;background:#171329;font-synthesis:none;--ink:#342d46;--paper:#fffaf1;--rose:#f3828f;--accent:#935777;--muted:#776b80;--line:#e8dce4}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%;overflow-x:hidden}body{background:radial-gradient(ellipse at 30% 5%,#463354,transparent 65%),#171329}button,select{font:inherit}button{cursor:pointer;min-height:44px;border:0;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible{outline:3px solid #856ad9;outline-offset:3px}button:disabled{cursor:default;opacity:.45}button{transition:transform .15s,background .15s}button:active:not(:disabled){transform:scale(.97)}[hidden]{display:none!important}.app-shell{width:100%;max-width:480px;min-height:100dvh;margin:auto;background:var(--paper);position:relative;box-shadow:0 0 100px #07041088;overflow:hidden}.topbar{height:calc(64px + env(safe-area-inset-top));padding:8px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff33;background:#fffaf2;flex:none;padding-top:calc(8px + env(safe-area-inset-top))}.brand{font-family:"Songti TC","Noto Serif TC",serif;font-size:21px;letter-spacing:3px;font-weight:800}.brand small{display:block;font:9px sans-serif;letter-spacing:3px;color:#927388;margin:3px 0 0 25px}.brand .star{font-size:19px;color:#d79b64;letter-spacing:1px}.icon-btn{width:44px;height:44px;border-radius:14px;background:#f1e7e9;font-size:20px}.actions{display:flex;gap:6px}.selection{padding:23px 16px max(22px,env(safe-area-inset-bottom));background:radial-gradient(circle at 80% 8%,#f2dfef,transparent 24%),var(--paper)}.eyebrow{font-size:10px;letter-spacing:2px;color:#8d5d6e;font-weight:750}.selection h1{font-family:"Songti TC",serif;font-size:30px;line-height:1.35;margin:9px 0 10px;font-weight:800;letter-spacing:1px}.selection h1 em{font-style:normal;color:#ab5f7b}.intro{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 19px}.section-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:750;margin:17px 0 10px}.counter{font-size:11px;color:#a0697d;border-radius:20px;padding:5px 10px;background:#f3e4e7}.roster{display:grid;grid-template-columns:1fr 1fr;gap:10px}.char-card{position:relative;min-width:0;border:1px solid var(--line);border-radius:17px;background:#fffef9;overflow:hidden;text-align:left;padding:0;box-shadow:0 4px 8px #563b5110}.char-card.selected{border:2px solid #bb708b;box-shadow:0 4px 16px #bc688926}.portrait{display:block;background-image:none;background-size:300% 200%;background-repeat:no-repeat;aspect-ratio:1;background-color:#ece5f4;position:relative}.char-card .portrait:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#fffef999)}.check{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;background:#fffffacc;color:#9f7085;border:1px solid #fff}.selected .check{background:#ae6581;color:#fff}.char-copy{display:block;padding:8px 10px 11px}.char-name{display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:800;gap:4px}.role{font-size:9px;font-weight:650;border-radius:5px;padding:3px 5px;background:color-mix(in srgb,var(--char-color) 18%,white);color:#61516c;white-space:nowrap}.char-title{display:block;color:#998496;font-size:10px;letter-spacing:1px;margin:3px 0 6px}.char-desc{display:block;font-size:10px;color:#73657d;line-height:1.6}.captain-choices{display:flex;gap:7px;min-height:48px;align-items:stretch}.captain-pick{flex:1;border-radius:12px;background:#f1e8e9;font-size:12px;min-width:0;padding:8px 3px;border:1px solid transparent}.captain-pick.active{background:#4d3d64;color:#fff;border-color:#b89be0}.captain-note{font-size:11px;line-height:1.6;color:var(--muted);min-height:37px;margin:10px 0 15px}.primary{min-height:50px;border-radius:14px;background:linear-gradient(105deg,#95506f,#ae586c);color:#fff;font-weight:750;font-size:14px;letter-spacing:1px;box-shadow:0 5px 14px #bd728433;width:100%;padding:12px 14px}.primary span{float:right}.fineprint{font-size:10px;color:#796575;text-align:center;line-height:1.7;margin:13px 0 0}.battle{height:calc(100dvh - 64px - env(safe-area-inset-top));min-height:420px;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);background:#edeaf3;position:relative}.battle-status{padding:12px 15px 10px;background:#fffaf2;flex:none}.status-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#817089}.wave-title{font-size:17px;font-weight:800;color:#483a5a;letter-spacing:1px}.wave-title small{font-size:10px;color:#80667b;font-weight:500;letter-spacing:0;margin-left:6px}.hp-row{display:flex;align-items:center;gap:8px;margin-top:9px}.hp-icon{font-size:18px;color:#c1798e}.hp-track{height:7px;flex:1;background:#eee2e8;border-radius:10px;overflow:hidden}.hp-fill{height:100%;width:100%;background:linear-gradient(90deg,#ba7899,#f39a99);transition:width .2s}.hp-text{font-size:10px;font-weight:650;white-space:nowrap;min-width:61px;text-align:right}.shield{color:#6b89a2;font-size:10px;margin-left:4px}.board-wrap{flex:1;min-height:0;position:relative;background:#e7e8f1;overflow:hidden}.board-wrap canvas{display:block;width:100%;height:100%}.lane-labels{position:absolute;top:12px;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);pointer-events:none;text-align:center;font-size:9px;letter-spacing:2px;color:#8c87a4}.lane-labels span{justify-self:center;border:1px solid #d5d0e3;border-radius:20px;background:#f6f3fbaa;padding:4px 9px}.wave-progress{position:absolute;top:40px;left:17px;right:17px;height:3px;background:#b8b1cf55;border-radius:3px;overflow:hidden}.wave-progress i{display:block;height:100%;background:#ac8ead;width:0;transition:width .2s}.battle-message{position:absolute;top:50px;left:16px;right:16px;text-align:center;font-size:11px;color:#685975;text-shadow:0 1px #fff;pointer-events:none;line-height:1.5}.bottom-controls{background:#fffaf2;padding:10px 13px 11px;flex:none;display:flex;align-items:center;gap:10px;border-top:1px solid #e4dce9}.captain-avatar{height:48px;width:48px;flex:none;border-radius:14px;background-image:none;background-size:300% 200%;border:1px solid #e3c8d6}.skill-copy{flex:1;min-width:0}.skill-name{font-size:13px;font-weight:800}.skill-caption{font-size:9px;color:#746177;line-height:1.5;margin-top:3px}.skill-button{min-width:95px;min-height:48px;border-radius:13px;background:#4e3e64;color:#fff;font-size:12px;font-weight:750;position:relative;overflow:hidden;padding:6px}.skill-button:disabled{opacity:.7;background:#dfd7e6;color:#72627f}.skill-button small{font-size:9px;display:block;margin-top:2px;font-weight:500}.qa-bar{display:flex;align-items:center;justify-content:center;gap:5px;padding:4px 8px;background:#eee3ba;color:#6a5830;font-size:9px;flex:none}.qa-bar button{font-size:10px;min-height:44px;min-width:44px;background:transparent;border-radius:8px}.qa-bar button.active{background:#fff9dd}.overlay{position:absolute;inset:0;background:#28223b70;z-index:4;display:flex;align-items:center;justify-content:center;padding:15px;backdrop-filter:blur(4px)}.panel{width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border-radius:23px;padding:21px 18px;box-shadow:0 15px 60px #24163266;border:1px solid #fff8}.panel-eyebrow{font-size:9px;color:#b18289;font-weight:750;letter-spacing:2px}.panel h2{font-family:"Songti TC",serif;color:#473a5b;font-size:25px;margin:7px 0 8px}.panel p{font-size:12px;line-height:1.7;color:#776177;margin:8px 0 17px}.deploy-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:17px 0}.deploy-card{border:1px solid #e1d0dc;border-radius:13px;overflow:hidden;text-align:center;background:#fffdf9;min-width:0}.deploy-card .portrait{aspect-ratio:1}.deploy-card strong{display:block;font-size:14px;margin:6px 0 3px}.lane-number{display:block;font-size:9px;color:#80667b;padding:7px 1px 0;letter-spacing:1px}.deploy-card select{max-width:100%;width:100%;min-height:44px;font-size:11px;border:0;background:#f4e9ef;color:#745369;padding:3px;border-radius:0 0 10px 10px}.captain-star{color:#bf9160;font-size:10px}.panel-note{padding:10px;border:1px dashed #e0cbd5;border-radius:10px;font-size:10px;line-height:1.7;color:#987889;margin:12px 0}.upgrade-list{display:grid;gap:9px;margin:16px 0 9px}.upgrade-choice,.route-choice{width:100%;min-height:85px;border:1px solid #e3d3e0;background:#fffdf9;border-radius:15px;padding:12px;text-align:left;display:flex;gap:12px;align-items:center}.upgrade-icon{width:38px;height:38px;flex:none;border-radius:12px;background:#efe8f7;color:#9571ba;font-size:21px;display:grid;place-items:center}.choice-copy{min-width:0}.choice-copy strong{display:block;font-size:14px;color:#51405e}.choice-copy small{display:block;font-size:10px;line-height:1.65;color:#8a7285;margin-top:4px}.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.tags span{font-size:8px;padding:2px 5px;background:#f0e6ef;border-radius:4px;color:#977291}.secondary{min-height:46px;width:100%;border:1px solid #d8cadc;border-radius:12px;color:#795e87;background:#fffaf4;margin-top:10px;font-size:12px}.run-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:15px 0;margin:8px 0 13px;border-top:1px solid #e5d8e1;border-bottom:1px solid #e5d8e1;text-align:center}.run-stats b{display:block;color:#735976;font-size:21px}.run-stats span{font-size:9px;color:#796575}.result-symbol{text-align:center;font-size:50px;color:#bd9162;margin:0 0 10px}.result-panel h2,.result-panel>p{text-align:center}.build-list{font-size:10px;color:#93798d;line-height:1.7;margin-bottom:13px;max-height:80px;overflow-y:auto}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:10;max-width:90vw;padding:11px 18px;background:#4d3a61ed;color:#fff;font-size:12px;line-height:1.5;border-radius:12px;box-shadow:0 4px 15px #30203644;pointer-events:none;opacity:0;transition:opacity .2s}.toast.visible{opacity:1}.modal-backdrop{position:fixed;inset:0;z-index:8;background:#171329a6;display:flex;align-items:center;justify-content:center;padding:22px}.modal-backdrop .panel{max-width:420px}.roster-help{font-size:11px;line-height:1.8;color:#796580}.help-row{padding:8px 0;border-bottom:1px solid #e8dae4}.help-row b{color:#5d4768}.pause-button.paused{color:#c96f87}.phase-chip{padding:4px 7px;border-radius:6px;background:#f2e6ed;font-size:9px;color:#aa7690}.control-tip{text-align:center;color:#81667a;font-size:9px;margin-top:10px}@media(max-height:700px){.topbar{height:calc(56px + env(safe-area-inset-top))}.battle{height:calc(100dvh - 56px - env(safe-area-inset-top))}.battle-status{padding:8px 13px}.bottom-controls{padding:7px 11px}.panel{padding:16px 14px}.panel h2{font-size:22px}.panel p{margin-bottom:10px;font-size:11px}.upgrade-choice{min-height:76px;padding:9px}.deploy-lanes{margin:10px 0}.panel-note{margin:8px 0;padding:7px}.captain-avatar{height:44px;width:44px}.selection{padding-top:17px}.selection h1{font-size:27px}}@media(min-width:650px){.app-shell{border-left:1px solid #6b51774d;border-right:1px solid #6b51774d}.selection{padding:27px 24px}.char-card .portrait{aspect-ratio:1}.selection h1{font-size:34px}.selection:before{content:"ORIGINAL GAME PROTOTYPE";position:fixed;top:50%;left:calc(50% - 355px);writing-mode:vertical-rl;letter-spacing:5px;font-size:10px;color:#ad8fb180;pointer-events:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.toast{transition:none}}

.planning-panel{display:flex;flex-direction:column}.planning-panel>.panel-eyebrow,.planning-panel>h2,.planning-panel>p{flex:none}.planning-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin}.planning-footer{flex:none;padding-top:6px;background:var(--paper)}.planning-body .deploy-lanes{margin-top:0}.brand{white-space:nowrap;flex:none}.brand small{white-space:nowrap}@media(max-width:350px){.topbar{padding-left:12px;padding-right:12px}.brand{font-size:19px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:1.4px;margin-left:20px}.actions{gap:4px}.planning-panel>p{font-size:10px;margin-bottom:8px}.planning-panel h2{font-size:20px}}

/* Paprika forest prototype palette. Scoped so ?legacy=1 keeps its original art. */
.swarm-shell,
.swarm-shell ~ .modal-backdrop {
  --ink:#2f453a; --paper:#fffdf2; --muted:#68745e; --line:#d9e2cd;
  color:var(--ink);
}
.swarm-shell .selection {background:radial-gradient(circle at 85% 5%,#e5efd3,transparent 35%),var(--paper)}
.swarm-shell .topbar,.swarm-shell .battle-status,.swarm-shell .bottom-controls {background:#fffdf2f5;border-color:#d9e2cd}
.swarm-shell .selection h1 em {color:#507b5b}
.swarm-shell .eyebrow,.swarm-shell .panel-eyebrow {color:#547453}
.swarm-shell .char-card {background:#fffef8;box-shadow:0 4px 10px #2948350c}
.swarm-shell .char-card.selected {border-color:#9b9c5c;box-shadow:0 4px 14px #67834720}
.swarm-shell .selected .check {background:#537951}
.swarm-shell .icon-btn,.swarm-shell .captain-pick {background:#eaf0de}
.swarm-shell .captain-pick.active,.swarm-shell .skill-button {background:#3d674f;color:#fffdf2;border-color:#a7b87c}
.swarm-shell .skill-button:disabled {background:#dee7d8;color:#607059}
.swarm-shell .primary {background:linear-gradient(110deg,#477452,#63844f);box-shadow:0 5px 14px #4d744b24}
.swarm-shell .secondary {background:#fffdf2;border-color:#cbd8bd;color:#45674d}
.swarm-shell .overlay {background:#173d365c}
.swarm-shell .panel,.swarm-shell ~ .modal-backdrop .panel {border-color:#fffff9b3}
.swarm-shell .panel h2,.swarm-shell .wave-title,.swarm-shell .choice-copy strong {color:#314e3c}
.swarm-shell .char-title,.swarm-shell .char-desc,.swarm-shell .skill-caption,
.swarm-shell .panel p,.swarm-shell .panel-note,.swarm-shell ~ .modal-backdrop .panel p {color:var(--muted)}
.swarm-shell .counter,.swarm-shell .phase-chip,.swarm-shell .tags span {background:#edf2df;color:#58734a}
.swarm-shell .panel-note {border-color:#cad5bd}
.swarm-shell button:focus-visible {outline-color:#537951}
.swarm-shell ~ .toast {background:#345740ef}






















/* PAPRIKA UI V3 LIVE CONTRACT */
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-lgc.woff2') format('woff2');unicode-range:U+0020,U+0021,U+0022,U+0023,U+0024,U+0025,U+0026,U+0027,U+0028,U+0029,U+002A,U+002B,U+002C,U+002D,U+002E,U+002F,U+0030,U+0031,U+0032,U+0033,U+0034,U+0035,U+0036,U+0037,U+0038,U+0039,U+003A,U+003B,U+003C,U+003D,U+003E,U+003F,U+0040,U+0041,U+0042,U+0043,U+0044,U+0045,U+0046,U+0047,U+0048,U+0049,U+004A,U+004B,U+004C,U+004D,U+004E,U+004F,U+0050,U+0051,U+0052,U+0053,U+0054,U+0055,U+0056,U+0057,U+0058,U+0059,U+005A,U+005B,U+005C,U+005D,U+005E,U+005F,U+0060,U+0061,U+0062,U+0063,U+0064,U+0065,U+0066,U+0067,U+0068,U+0069,U+006A,U+006B,U+006C,U+006D,U+006E,U+006F,U+0070,U+0071,U+0072,U+0073,U+0074,U+0075,U+0076,U+0077,U+0078,U+0079,U+007A,U+007B,U+007C,U+007D,U+007E,U+00B7,U+00D7;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_31.woff2') format('woff2');unicode-range:U+961F,U+9695;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_36.woff2') format('woff2');unicode-range:U+8FF8;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_40.woff2') format('woff2');unicode-range:U+8B10;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_57.woff2') format('woff2');unicode-range:U+7329;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_58.woff2') format('woff2');unicode-range:U+71CE,U+71FC;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_59.woff2') format('woff2');unicode-range:U+6FFA,U+70D9;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_62.woff2') format('woff2');unicode-range:U+6C8C;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_65.woff2') format('woff2');unicode-range:U+6954;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_70.woff2') format('woff2');unicode-range:U+6269;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_74.woff2') format('woff2');unicode-range:U+5C94;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_100.woff2') format('woff2');unicode-range:U+76DE,U+8778;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_101.woff2') format('woff2');unicode-range:U+54E8,U+707C,U+72E9;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_103.woff2') format('woff2');unicode-range:U+53C2,U+5F27,U+77E2;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_104.woff2') format('woff2');unicode-range:U+66F3,U+6EEF,U+7130,U+7784,U+7EA7;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_105.woff2') format('woff2');unicode-range:U+679A,U+84C4,U+8755;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_106.woff2') format('woff2');unicode-range:U+4E0E,U+524A,U+58D8,U+5BC2,U+6C50,U+6E34,U+6E67,U+7149,U+7832,U+86D9;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_107.woff2') format('woff2');unicode-range:U+5F4C,U+62FE,U+64A4,U+6912,U+6F51,U+76FE,U+83C1,U+8CAB,U+9D5D,U+FF0B;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_108.woff2') format('woff2');unicode-range:U+2665,U+4F0D,U+51DD,U+53C9,U+5F79,U+6247,U+7BAD,U+7FFC,U+8108,U+82BD,U+8EF8,U+8F5F;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_109.woff2') format('woff2');unicode-range:U+5272,U+594F,U+5DE1,U+5E7D,U+5FAA,U+659C,U+6CBF,U+6DB5,U+6E21,U+71C3,U+758A,U+75D5,U+7720,U+77AC,U+8105,U+8106,U+88C2,U+8E8D,U+8ECC,U+9072,U+9234,U+92D2,U+971C,U+9A45,U+9CF4;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_110.woff2') format('woff2');unicode-range:U+4F54,U+5617,U+5821,U+5875,U+5E45,U+5F91,U+60A0,U+632F,U+64CB,U+6575,U+68AF,U+6B98,U+6D25,U+6F0F,U+7345,U+7375,U+7378,U+788E,U+790E,U+7DD2,U+7F72,U+8017,U+88C1,U+8F1D,U+903C,U+9130;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_111.woff2') format('woff2');unicode-range:U+2605,U+4E32,U+4EA1,U+5074,U+5144,U+517C,U+51CD,U+5269,U+52DF,U+5377,U+585E,U+58A8,U+58C1,U+5925,U+5F31,U+622A,U+6372,U+63EE,U+6458,U+64EC,U+64F4,U+651C,U+65E2,U+6668,U+69CD,U+6CC9,U+6EFE,U+6F64,U+70B8,U+7483,U+78E8,U+795D,U+7BC9,U+7DE9,U+7E6A,U+7FBD,U+827E,U+8CFA,U+8F14,U+8FF4,U+905E,U+963B,U+9ECE,U+9F20;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_112.woff2') format('woff2');unicode-range:U+500D,U+504F,U+5192,U+51AC,U+52F5,U+539A,U+5531,U+592E,U+5BEC,U+5E2D,U+62B5,U+62D6,U+6383,U+63D2,U+640D,U+64CD,U+65C1,U+6676,U+66AB,U+66FF,U+672B,U+67D3,U+6B78,U+6DF7,U+6FD5,U+7126,U+718A,U+7A3F,U+7A69,U+7D0B,U+7E2E,U+8010,U+885D,U+89F8,U+8C37,U+9014,U+9396,U+9583,U+9663,U+96BB,U+9707,U+9B25,U+9EB5,U+9F4A;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_113.woff2') format('woff2');unicode-range:U+4E92,U+4ECD,U+4F48,U+5012,U+52DD,U+53F3,U+56FA,U+57DF,U+5B88,U+5BA3,U+5BDF,U+5C04,U+5C3E,U+5C4F,U+5DDD,U+5E63,U+5EF6,U+5F48,U+6025,U+6162,U+6176,U+6297,U+62BD,U+6311,U+6389,U+63F4,U+64C1,U+6551,U+6557,U+6563,U+6696,U+675F,U+6838,U+69CB,U+6A39,U+6B66,U+71C8,U+7532,U+7686,U+76DB,U+7761,U+79D2,U+79FB,U+7A81,U+7A97,U+7D2F,U+7F3A,U+805A,U+81E8,U+8449,U+84CB,U+8B66,U+8DE8,U+8F2A,U+906D,U+9192,U+91CB,U+964D,U+968E,U+9694,U+96EA,U+96F7,U+975C,U+9760,U+9858,U+9918,U+FF0F,U+FF5C;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_114.woff2') format('woff2');unicode-range:U+4F34,U+50B7,U+51B0,U+523B,U+5354,U+5708,U+5A01,U+627F,U+63A1,U+64D4,U+65BD,U+68EE,U+6B4C,U+6BBA,U+6D6A,U+6E1B,U+6F6E,U+71D2,U+751C,U+7642,U+7E41,U+822A,U+8349,U+8840,U+8907,U+8FD4,U+93E1;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_115.woff2') format('woff2');unicode-range:U+4E03,U+4E45,U+4E5D,U+4EAE,U+4ED4,U+4ED8,U+4F01,U+5019,U+505C,U+51B7,U+5207,U+525B,U+5287,U+537B,U+542B,U+5438,U+555F,U+570D,U+58D3,U+591C,U+5920,U+5922,U+5957,U+5B83,U+5BB3,U+5C40,U+5DE6,U+5E55,U+5F85,U+5F8B,U+5FA9,U+6298,U+62DB,U+63A7,U+642D,U+64AD,U+653B,U+65B7,U+666E,U+6728,U+6839,U+6A94,U+6B7B,U+6C38,U+6C7A,U+6CE2,U+7206,U+723E,U+725B,U+734E,U+7387,U+76E4,U+77ED,U+77F3,U+7834,U+7A7F,U+7B46,U+7B54,U+7BC4,U+7D42,U+7E7C,U+7FFB,U+80CC,U+81F4,U+820A,U+88DC,U+8986,U+8A2A,U+8A73,U+8D8A,U+8DF3,U+8ECD,U+8F38,U+9000,U+9047,U+9060,U+9418,U+9589,U+968A,U+96AA,U+9748,U+9806,U+9808,U+9818,U+984D,U+9867,U+9B5A,U+FF1B;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_116.woff2') format('woff2');unicode-range:U+4E14,U+4F11,U+4F4E,U+4F4F,U+4FEE,U+503C,U+516B,U+516D,U+5236,U+5347,U+534A,U+5370,U+53CD,U+53E6,U+5411,U+5427,U+547D,U+589E,U+5931,U+59CB,U+5B58,U+5B98,U+5BC6,U+5BEB,U+5C6C,U+5E03,U+5E33,U+5E7E,U+5E8F,U+5E95,U+5F62,U+5F69,U+5F80,U+5FB7,U+614B,U+6230,U+623F,U+628A,U+6295,U+62C9,U+6309,U+63DB,U+64C7,U+64CA,U+64DA,U+652F,U+6545,U+6548,U+666F,U+671B,U+677F,U+6848,U+6975,U+6A21,U+6AA2,U+6B65,U+6BB5,U+6CE8,U+6DF1,U+6E96,U+6F2B,U+706B,U+724C,U+72C0,U+7368,U+7372,U+74B0,U+756B,U+78BA,U+78BC,U+7A4D,U+7B56,U+7B97,U+7C73,U+7D30,U+7DAD,U+7E8C,U+7F6E,U+7FA4,U+8003,U+8208,U+843D,U+88E1,U+89BA,U+89D2,U+8A66,U+8A72,U+8ABF,U+8B1D,U+8B58,U+8B80,U+8D70,U+8DA3,U+8DB3,U+8F03,U+8FCE,U+8FFD,U+900F,U+932F,U+9375,U+9632,U+9644,U+96A8,U+96D9,U+96E2,U+96F2,U+9752,U+97FF,U+9805,U+9810,U+986F,U+990A,U+9ED1;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_117.woff2') format('woff2');unicode-range:U+3000,U+4E26,U+4E94,U+4E9B,U+4EA4,U+4ECA,U+4EFB,U+4EFD,U+4F55,U+4F9B,U+4F9D,U+505A,U+5099,U+50CF,U+512A,U+5148,U+5169,U+5171,U+5217,U+5225,U+5247,U+5275,U+529F,U+52A9,U+5305,U+5341,U+5357,U+5361,U+5373,U+53BB,U+53C3,U+53D6,U+53D7,U+53E3,U+53EA,U+5404,U+5668,U+56DB,U+578B,U+57FA,U+5C0E,U+5C11,U+5C1A,U+5C55,U+5DF1,U+5E2B,U+5E36,U+5EE3,U+5EFA,U+5F37,U+5F9E,U+5FC5,U+606F,U+6232,U+624D,U+6253,U+627E,U+6280,U+62CD,U+6301,U+6307,U+6392,U+6539,U+653E,U+6559,U+6574,U+65C5,U+672A,U+6797,U+67E5,U+6A19,U+6B61,U+6BCF,U+6D41,U+6D88,U+6E05,U+6E2F,U+6EFF,U+7167,U+738B,U+73A9,U+7531,U+7559,U+767D,U+767E,U+76F4,U+793A,U+7A2E,U+7A31,U+7A7A,U+7AE0,U+7BA1,U+7BC0,U+7C21,U+7CFB,U+7D04,U+7D05,U+7D1A,U+7D66,U+7DE8,U+7E3D,U+8001,U+800C,U+8072,U+81F3,U+82B1,U+82F1,U+8457,U+8655,U+8853,U+88AB,U+88FD,U+898F,U+89AA,U+89BD,U+89C0,U+89E3,U+8A8D,U+8A9E,U+8B49,U+8B77,U+8B8A,U+8B93,U+8FD1,U+901F,U+9020,U+9054,U+90A3,U+914D,U+91CF,U+95B1,U+9650,U+9664,U+969B,U+96C6,U+9700,U+975E,U+97F3,U+98A8,U+9A57;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_118.woff2') format('woff2');unicode-range:U+300C,U+300D,U+4E09,U+4E3B,U+4E4B,U+4E5F,U+4E86,U+4E8B,U+4E8C,U+4EAB,U+4ED6,U+4EF6,U+4F4D,U+4F60,U+4F7F,U+4F86,U+4FDD,U+5011,U+50B3,U+5149,U+5167,U+5176,U+518D,U+5229,U+524D,U+529B,U+52A0,U+5316,U+5340,U+539F,U+53CA,U+53CB,U+5408,U+540C,U+540D,U+544A,U+548C,U+54C1,U+54E1,U+55AE,U+56DE,U+5716,U+5834,U+5916,U+5929,U+5973,U+597D,U+5B57,U+5B78,U+5B89,U+5B8C,U+5B9A,U+5BB9,U+5BE6,U+5C07,U+5C08,U+5C0D,U+5C31,U+5DE5,U+5DF2,U+5E73,U+5EA6,U+5F0F,U+5F71,U+5F8C,U+5F97,U+5FEB,U+6027,U+60C5,U+60F3,U+610F,U+61C9,U+6210,U+6216,U+6240,U+624B,U+63A5,U+63D0,U+6536,U+6578,U+6599,U+65B9,U+660E,U+661F,U+66F4,U+671F,U+679C,U+683C,U+689D,U+6A02,U+6A5F,U+6B0A,U+6B21,U+6B64,U+6C34,U+6C92,U+6CBB,U+6CD5,U+6D3B,U+7121,U+7247,U+7248,U+7269,U+7279,U+73FE,U+7406,U+7522,U+76EE,U+76F8,U+770B,U+771F,U+77E5,U+7A0B,U+7ACB,U+7AD9,U+7B2C,U+7B49,U+7CBE,U+7D50,U+7D93,U+7DDA,U+7F8E,U+8005,U+80FD,U+81EA,U+8207,U+8272,U+865F,U+8981,U+8996,U+8A08,U+8A18,U+8A2D,U+8A71,U+8AAA,U+8ACB,U+8CBB,U+8CC7,U+8D77,U+8D85,U+8DEF,U+8EAB,U+8ECA,U+8F49,U+9019,U+901A,U+9023,U+9032,U+904A,U+904B,U+904E,U+9053,U+9078,U+9084,U+90E8,U+90FD,U+91CD,U+91D1,U+9577,U+9580,U+9593,U+9762,U+982D,U+984C,U+9996,U+9AD4,U+9AD8,U+9EDE,U+FF01,U+FF08,U+FF09,U+FF1F;}
@font-face{font-family:'Chiron GoRound TC WS';font-style:normal;font-weight:200 900;font-display:swap;src:url('../assets/paprika/fonts/chiron-vf-t0-gf_119.woff2') format('woff2');unicode-range:U+3001,U+3002,U+4E00,U+4E0A,U+4E0B,U+4E0D,U+4E2D,U+4EBA,U+4EE5,U+4F5C,U+500B,U+5165,U+5168,U+516C,U+51FA,U+5206,U+5230,U+52D5,U+53EF,U+53F0,U+5728,U+5730,U+591A,U+5927,U+5B50,U+5C0F,U+5FC3,U+6211,U+6587,U+65B0,U+65BC,U+662F,U+6642,U+6700,U+6703,U+6708,U+6709,U+672C,U+6B63,U+70BA,U+751F,U+7528,U+767C,U+7684,U+7DB2,U+884C,U+958B,U+95DC,U+96FB,U+9801,U+FF0C,U+FF1A;}

/* UI v2 canonical prototype; all product rules opt in through .game-v2. */
html:has(.game-v2),body:has(.game-v2){margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#193c2f}
.game-v2{--gv-ivory:#fff7df;--gv-ink:#284c39;--gv-sage:#85ad68;--gv-gold:#efc865;--gv-danger:#d56870;--gv-scale:1;--gv-menu:url('../assets/paprika/ui-v2/layers/forest-menu-background-v2.png');position:fixed;inset:0;margin-inline:auto;width:100%;max-width:480px;height:100vh;height:100dvh;min-height:0;overflow:hidden;box-sizing:border-box;padding:max(env(safe-area-inset-top),var(--gv-test-top,0px)) max(env(safe-area-inset-right),0px) max(env(safe-area-inset-bottom),var(--gv-test-bottom,0px)) max(env(safe-area-inset-left),0px);font-family:'Chiron GoRound TC WS','Chiron GoRound TC','PingFang TC','Microsoft JhengHei',sans-serif;font-weight:700;font-synthesis:none;color:var(--gv-ink);background:#fff7df var(--gv-menu) center/cover no-repeat;isolation:isolate}
.game-v2[data-text=large]{--gv-scale:1.25}.game-v2[data-text=xlarge]{--gv-scale:1.5}
.game-v2 *{box-sizing:border-box;min-width:0}.game-v2 [hidden]{display:none!important}
.game-v2 button{font:inherit;font-size:calc(14px * var(--gv-scale));font-weight:900;line-height:1.15;min-width:44px;min-height:44px;border:2px solid #8c7848;border-radius:16px;padding:6px 10px;color:var(--gv-ink);background:linear-gradient(#fffdf1,#f5eac7);box-shadow:inset 0 2px #fffef3,0 3px #675c3440;cursor:pointer;touch-action:manipulation;flex-shrink:0}
.game-v2 button:active{transform:translateY(1px);box-shadow:inset 0 2px #ffffff60,0 1px #675c3440}.game-v2 button:disabled{cursor:default;opacity:.55;filter:saturate(.25)}
.game-v2 button:focus-visible,.game-v2 canvas:focus-visible{outline:3px solid #154f5f;outline-offset:2px}.game-v2 .gv-icon{width:44px;height:44px;padding:0;font-size:calc(22px * var(--gv-scale));border-radius:50%}
.game-v2 .gv-primary{background:linear-gradient(#ffeaa0,#efc865 70%,#e5b343);border-color:#b78332;box-shadow:inset 0 2px #fff3c5,0 3px #74522d60;font-size:calc(18px * var(--gv-scale));min-height:52px}
.game-v2 .gv-secondary{background:linear-gradient(#609169,#345f42);border-color:#274c36;color:#fff7df;box-shadow:inset 0 2px #abc598,0 3px #173c2860}
.game-v2 h1,.game-v2 h2,.game-v2 p{margin:0}.game-v2 h1{font-size:calc(18px * var(--gv-scale));font-weight:900;line-height:1.2}.game-v2 h2{font-size:calc(20px * var(--gv-scale));font-weight:900;line-height:1.2}
.game-v2 .gv-screen{height:100%;width:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px}
.game-v2 .gv-topbar{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;flex:none}.game-v2 .gv-topbar h1{flex:1;text-align:center;padding:5px 8px;border:2px solid #a58951;border-radius:16px;background:#fff7dfeb;box-shadow:0 2px #655c3433}
.game-v2 .gv-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}.game-v2 .gv-footer{flex:none;display:flex;gap:8px;min-height:52px}.game-v2 .gv-footer>*{flex:1}
.game-v2 .gv-slab{background:#fff7dfeb;border:2px solid #b79760;border-radius:18px;padding:10px;box-shadow:inset 0 2px #fffff0,0 3px #294c3930}
.game-v2 .gv-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:none}.game-v2 .gv-label{font-size:calc(12px * var(--gv-scale));line-height:1.3}.game-v2 .gv-badge{background:#284c39;color:#fff7df;border:1px solid #cee5ad;border-radius:20px;padding:4px 8px;font-size:calc(12px * var(--gv-scale));font-weight:900;line-height:1.2;white-space:nowrap}
.game-v2 .gv-pager{display:flex;gap:8px;justify-content:space-between;align-items:center;min-height:44px;flex:none}.game-v2 .gv-pager span{font-size:calc(14px * var(--gv-scale));font-weight:900;background:#fff7dfce;border-radius:10px;padding:3px 8px}
.game-v2 .gv-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex:none;min-height:62px}.game-v2 .gv-team button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:62px;padding:2px 4px;position:relative;font-size:calc(12px * var(--gv-scale))}
.game-v2 .gv-team canvas{height:30px;width:38px;display:block}.game-v2 .gv-team small{font-size:calc(11px * var(--gv-scale));line-height:1.1}.game-v2 .gv-crown{position:absolute;top:0;left:5px;color:#805114;font-size:16px;line-height:20px;pointer-events:none}
.game-v2 .gv-selected{border-color:#cc9a36!important;background:linear-gradient(#fff7ce,#f1d478)!important;box-shadow:inset 0 0 0 2px #fff8c9,0 3px #7c62244d!important}
.game-v2 .gv-hero{display:grid;grid-template-columns:34% 1fr;align-items:center;gap:8px;flex:none;height:clamp(66px,15vh,142px);padding:6px 10px}.game-v2 .gv-hero canvas{width:100%;height:100%;min-height:0;display:block}.game-v2 .gv-hero-meta{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.game-v2 .gv-hero h2{font-size:calc(20px * var(--gv-scale))}.game-v2 .gv-hero button{font-size:calc(12px * var(--gv-scale));padding:4px 8px}
.game-v2 .gv-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;flex:1;min-height:0}
.game-v2 .gv-member{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;position:relative;padding:4px;border-color:#8ead78;border-radius:18px;background:linear-gradient(#fffdebea,#d9e9b8ee);min-height:0}
.game-v2 .gv-member canvas{width:100%;flex:1;min-height:0;display:block}.game-v2 .gv-member span{display:block;flex:none;padding:2px 4px;background:#335f47;color:#fff7df;border-radius:10px;font-size:calc(14px * var(--gv-scale));line-height:1.2;white-space:nowrap}.game-v2 .gv-check{position:absolute;top:3px;left:5px;font-size:18px;color:#764a1e;background:#f6d880;border-radius:50%;width:24px;height:24px;line-height:24px}
.game-v2 .gv-logo{text-align:center;font-size:calc(32px * var(--gv-scale));font-weight:900;line-height:1.05;color:#fff1b6;text-shadow:2px 2px #284c39,-2px -2px #284c39,2px -2px #284c39,-2px 2px #284c39,0 4px #284c3970;flex:none;padding:5px}
.game-v2 .gv-key-art{width:100%;flex:1;min-height:60px;display:block;border-radius:24px}.game-v2 .gv-menu-actions{display:grid;gap:8px;flex:none}.game-v2 .gv-menu-actions button{min-height:52px}.game-v2 .gv-menu-actions .gv-footer button{min-height:44px}
.game-v2 .gv-map{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;gap:6px}.game-v2 .gv-map:before{content:'';position:absolute;inset:10% 45%;border-left:8px dotted #f2d47d;transform:rotate(16deg);z-index:-1}
.game-v2 .gv-node{display:flex;flex-direction:column;align-items:center;justify-content:center;width:70%;max-width:230px;min-height:84px;gap:4px}.game-v2 .gv-node .gv-node-icon{font-size:26px}.game-v2 .gv-node strong{font-size:calc(16px * var(--gv-scale))}.game-v2 .gv-node small{font-size:calc(12px * var(--gv-scale))}
.game-v2 .gv-field{position:relative;flex:1;min-height:0;border:2px solid #79915a;border-radius:18px;overflow:hidden;background:#bcda8b}.game-v2 .gv-field canvas{display:block;width:100%;height:100%;touch-action:none}.game-v2 .gv-telegraph{position:absolute;top:5px;left:5px;right:5px;background:#a63953ed;color:#fff7df;border:1px solid #ffdfbb;border-radius:10px;padding:6px;text-align:center;font-size:calc(12px * var(--gv-scale));font-weight:900;pointer-events:none}
.game-v2 .gv-hud{display:flex;flex-direction:column;gap:4px;flex:none}.game-v2 .gv-hud .gv-row>*{flex:1;text-align:center}.game-v2 .gv-progress-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;background:#fff7dfec;padding:4px 8px;border:1px solid #b9a76f;border-radius:16px;font-size:calc(12px * var(--gv-scale));line-height:1.2}
.game-v2 .gv-progress{height:10px;border-radius:8px;overflow:hidden;background:#43684933;border:1px solid #76935b}.game-v2 .gv-progress i{display:block;height:100%;width:40%;background:#80b56e;border-radius:8px}.game-v2 .gv-progress.hp i{background:#d56870;width:78%}
.game-v2 .gv-choice-stack{flex:1;min-height:0;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px}.game-v2 .gv-choice-stack.two{grid-template-rows:repeat(2,minmax(0,1fr))}
.game-v2 .gv-choice{display:flex;gap:4px;min-height:0;padding:3px;background:#fff7dfef;border:2px solid #aa8b55;border-radius:18px}.game-v2 .gv-choice-pick{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:6px;flex:1;text-align:left;min-height:0;padding:5px 7px;border:none;box-shadow:none;background:transparent}
.game-v2 .gv-choice-pick canvas{width:44px;height:54px}.game-v2 .gv-choice-copy{display:flex;flex-direction:column;gap:4px}.game-v2 .gv-choice-copy strong{font-size:calc(16px * var(--gv-scale));line-height:1.2}.game-v2 .gv-choice-copy small{font-size:calc(13px * var(--gv-scale));font-weight:700;line-height:1.25}.game-v2 .gv-choice .gv-icon{align-self:center;flex:none;margin-right:3px}
.game-v2 .gv-host-mini{display:flex;align-items:center;justify-content:center;height:clamp(66px,15vh,130px);flex:none}.game-v2 .gv-host-mini canvas{width:130px;height:100%;display:block}
.game-v2 .gv-story-art{flex:1;min-height:55px;border:2px solid #ae985e;border-radius:18px;overflow:hidden;background:#edf1d7}.game-v2 .gv-story-art canvas{width:100%;height:100%;display:block}.game-v2 .gv-dialogue{flex:none;padding:8px 10px;background:#fff7dfef;border:1px solid #c8b575;border-radius:14px}.game-v2 .gv-dialogue strong{display:block;font-size:calc(12px * var(--gv-scale));margin-bottom:5px}.game-v2 .gv-dialogue p{font-size:calc(14px * var(--gv-scale));line-height:1.5;overflow-wrap:anywhere}
.game-v2 .gv-info-copy{font-size:calc(16px * var(--gv-scale));line-height:1.5;display:flex;align-items:center;justify-content:center;flex:1;padding:14px;text-align:left}.game-v2 .gv-settings{display:flex;flex-direction:column;gap:12px;flex:1;justify-content:center}.game-v2 .gv-settings-row{display:flex;flex-direction:column;gap:8px}.game-v2 .gv-settings-row label{font-size:calc(16px * var(--gv-scale))}.game-v2 .gv-settings-options{display:flex;gap:6px}.game-v2 .gv-settings-options button{flex:1;padding:6px}
.game-v2 .gv-result-title{font-size:calc(30px * var(--gv-scale));color:#744821;text-align:center;line-height:1.1;flex:none}.game-v2 .gv-result-title.loss{color:#a34a5b}.game-v2 .gv-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:none}.game-v2 .gv-stats div{padding:7px;text-align:center;background:#fff7dfef;border:1px solid #bba266;border-radius:13px;font-size:calc(13px * var(--gv-scale))}.game-v2 .gv-stats strong{display:block;font-size:calc(20px * var(--gv-scale));font-weight:900}
.game-v2 .gv-checkpoint-art{flex:1;min-height:80px}.game-v2 .gv-checkpoint-art canvas{width:100%;height:100%}.game-v2 .gv-subtitle{font-size:calc(14px * var(--gv-scale));font-weight:900;text-align:center;background:#fff7dfe8;border-radius:12px;padding:5px;flex:none}
@media(max-height:620px){.game-v2 .gv-screen{padding:6px 8px 8px;gap:5px}.game-v2 .gv-content{gap:6px}.game-v2 .gv-hero{height:68px;padding:3px 8px}.game-v2 .gv-hero h2{font-size:calc(17px * var(--gv-scale))}.game-v2 .gv-team{min-height:58px}.game-v2 .gv-team button{min-height:58px}.game-v2 .gv-team canvas{height:26px}.game-v2 .gv-host-mini{height:62px}.game-v2 .gv-logo{font-size:calc(28px * var(--gv-scale))}.game-v2 .gv-slab{padding:8px}.game-v2 .gv-result-title{font-size:calc(26px * var(--gv-scale))}}
@media(max-height:500px){.game-v2 .gv-hero{height:58px}.game-v2 .gv-members{grid-template-rows:1fr}.game-v2 .gv-host-mini{height:44px}.game-v2 .gv-choice-stack{gap:5px}.game-v2 .gv-logo{font-size:calc(24px * var(--gv-scale))}}
@media(prefers-reduced-motion:reduce){.game-v2 *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Latest reference hierarchy. Shared class contract remains game-v2 / gv-*. */
.game-v2 .gv-home-hero{position:relative;flex:1;min-height:50px;overflow:hidden;border-radius:20px;background:#fff7df25}
.game-v2 .gv-home-hero>canvas{width:100%;height:100%;display:block}.game-v2 .gv-home-hero .gv-hero-name{position:absolute;left:6px;bottom:6px;background:#fff7dfe9;border:2px solid #b69a60;border-radius:15px;padding:5px 9px;font-size:calc(16px * var(--gv-scale));font-weight:900}
.game-v2 .gv-home-hero .gv-hero-controls{position:absolute;right:6px;bottom:6px;display:flex;gap:5px}.game-v2 .gv-home-hero .gv-hero-controls button{font-size:calc(12px * var(--gv-scale));padding:4px 8px}
.game-v2 .gv-home-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,80px);gap:4px;flex:none;padding:4px;background:#fff7dfdf;border:2px solid #a28b59;border-radius:18px}
.game-v2 .gv-home-roster .gv-member{border-radius:12px;padding:2px}.game-v2 .gv-home-roster .gv-member span{font-size:calc(12px * var(--gv-scale));padding:2px;line-height:1.15}.game-v2 .gv-home-roster .gv-check{width:20px;height:20px;line-height:20px;top:0;left:1px;font-size:14px}
.game-v2 .gv-bottom-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-height:52px;flex:none}.game-v2 .gv-bottom-nav button{font-size:calc(16px * var(--gv-scale));min-height:52px}
.game-v2 .gv-spot-hit{position:absolute;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;transform:translate(-50%,-50%);background:transparent;border:2px solid #fff9cb80;border-radius:50%;box-shadow:none;color:#577653;font-size:20px}
.game-v2 .gv-spot-hit:active{transform:translate(-50%,-50%)}.game-v2 .gv-spot-hit[aria-pressed=true]{border-color:#f3ca58;box-shadow:0 0 0 2px #fff9cb80}.game-v2 .gv-spot-hit[data-invalid=true]{border-color:#d56870;background:#d5687040}
.game-v2 .gv-spot-feedback{position:absolute;top:5px;left:5px;right:5px;pointer-events:none;font-size:calc(12px * var(--gv-scale));line-height:1.2;text-align:center;background:#fff7dfdb;border-radius:10px;padding:5px}
.game-v2 .gv-choice-symbol{font-size:30px;text-align:center}.game-v2 .gv-static-art{width:100%;height:100%;display:block;min-height:0}.game-v2 .gv-review-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1;min-height:0}.game-v2 .gv-review-list button{min-height:44px;font-size:calc(14px * var(--gv-scale))}
.game-v2 .gv-field-paused{filter:brightness(.74)}.game-v2 .gv-status-live{font-size:calc(12px * var(--gv-scale));line-height:1.2;text-align:center;min-height:18px;background:#fff7dfdc;border-radius:8px;flex:none}
.game-v2[data-text=xlarge] .gv-home-roster{grid-template-rows:repeat(2,86px)}
@media(max-height:620px){.game-v2 .gv-home-roster{grid-template-rows:repeat(2,68px)}.game-v2[data-text=xlarge] .gv-home-roster{grid-template-rows:repeat(2,74px)}.game-v2 .gv-home-hero .gv-hero-name{font-size:calc(14px * var(--gv-scale));padding:4px 7px}.game-v2 .gv-home-hero .gv-hero-controls{bottom:4px;right:4px}}
@media(max-height:500px){.game-v2 .gv-home-roster{grid-template-rows:repeat(2,60px)}.game-v2[data-text=xlarge] .gv-home-roster{grid-template-rows:repeat(2,64px)}}

.game-v2-token button{font:inherit;font-size:calc(14px * var(--gv-scale));font-weight:900;line-height:1.15;min-width:44px;min-height:44px;border:2px solid #8c7848;border-radius:16px;padding:6px 10px;color:var(--gv-ink);background:linear-gradient(#fffdf1,#f5eac7);box-shadow:inset 0 2px #fffef3,0 3px #675c3440;cursor:pointer;touch-action:manipulation;flex-shrink:0}
.game-v2-token button:active{transform:translateY(1px);box-shadow:inset 0 2px #ffffff60,0 1px #675c3440}.game-v2-token button:disabled{cursor:default;opacity:.55;filter:saturate(.25)}
.game-v2-token button:focus-visible,.game-v2-token canvas:focus-visible{outline:3px solid #154f5f;outline-offset:2px}.game-v2-token .gv-icon{width:44px;height:44px;padding:0;font-size:calc(22px * var(--gv-scale));border-radius:50%}
.game-v2-token .gv-primary{background:linear-gradient(#ffeaa0,#efc865 70%,#e5b343);border-color:#b78332;box-shadow:inset 0 2px #fff3c5,0 3px #74522d60;font-size:calc(18px * var(--gv-scale));min-height:52px}
.game-v2-token .gv-secondary{background:linear-gradient(#609169,#345f42);border-color:#274c36;color:#fff7df;box-shadow:inset 0 2px #abc598,0 3px #173c2860}
.game-v2-token .gv-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}.game-v2-token .gv-footer{flex:none;display:flex;gap:8px;min-height:52px}.game-v2-token .gv-footer>*{flex:1}
.game-v2-token .gv-pager{display:flex;gap:8px;justify-content:space-between;align-items:center;min-height:44px;flex:none}.game-v2-token .gv-pager span{font-size:calc(14px * var(--gv-scale));font-weight:900;background:#fff7dfce;border-radius:10px;padding:3px 8px}
.game-v2-token .gv-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex:none;min-height:62px}.game-v2-token .gv-team button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:62px;padding:2px 4px;position:relative;font-size:calc(12px * var(--gv-scale))}
.game-v2-token .gv-selected{border-color:#cc9a36!important;background:linear-gradient(#fff7ce,#f1d478)!important;box-shadow:inset 0 0 0 2px #fff8c9,0 3px #7c62244d!important}
.game-v2-token .gv-hero{display:grid;grid-template-columns:34% 1fr;align-items:center;gap:8px;flex:none;height:clamp(66px,15vh,142px);padding:6px 10px}.game-v2-token .gv-hero canvas{width:100%;height:100%;min-height:0;display:block}.game-v2-token .gv-hero-meta{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.game-v2-token .gv-hero h2{font-size:calc(20px * var(--gv-scale))}.game-v2-token .gv-hero button{font-size:calc(12px * var(--gv-scale));padding:4px 8px}
.game-v2-token .gv-key-art{width:100%;flex:1;min-height:60px;display:block;border-radius:24px}.game-v2-token .gv-menu-actions{display:grid;gap:8px;flex:none}.game-v2-token .gv-menu-actions button{min-height:52px}.game-v2-token .gv-menu-actions .gv-footer button{min-height:44px}
.game-v2-token .gv-choice-pick canvas{width:44px;height:54px}.game-v2-token .gv-choice-copy{display:flex;flex-direction:column;gap:4px}.game-v2-token .gv-choice-copy strong{font-size:calc(16px * var(--gv-scale));line-height:1.2}.game-v2-token .gv-choice-copy small{font-size:calc(13px * var(--gv-scale));font-weight:700;line-height:1.25}.game-v2-token .gv-choice .gv-icon{align-self:center;flex:none;margin-right:3px}
.game-v2-token .gv-info-copy{font-size:calc(16px * var(--gv-scale));line-height:1.5;display:flex;align-items:center;justify-content:center;flex:1;padding:14px;text-align:left}.game-v2-token .gv-settings{display:flex;flex-direction:column;gap:12px;flex:1;justify-content:center}.game-v2-token .gv-settings-row{display:flex;flex-direction:column;gap:8px}.game-v2-token .gv-settings-row label{font-size:calc(16px * var(--gv-scale))}.game-v2-token .gv-settings-options{display:flex;gap:6px}.game-v2-token .gv-settings-options button{flex:1;padding:6px}
/* v3 live DOM contract: paired with root's gv-* screen structure. */
.game-v2.app-shell{min-height:0;border:0;border-radius:0;box-shadow:0 0 80px #102f2780}
.game-v2 .gv-screen{position:relative;background:transparent;min-height:0;max-height:100%;padding:8px 10px 10px;letter-spacing:0}
.game-v2 .selection:before{display:none}.game-v2 .gv-screen>header{height:44px;padding:0;background:transparent;border:0}
.game-v2 .gv-screen>header h1{font-family:inherit;font-size:calc(18px * var(--gv-scale));margin:0;line-height:1.2;letter-spacing:0}
:is(.game-v2,.game-v2-token) .secondary{margin:0;width:auto;min-height:44px;letter-spacing:0}
:is(.game-v2,.game-v2-token) .primary{width:auto;letter-spacing:0;color:#284c39;padding:6px 10px}
.game-v2 .gv-home-hero{min-height:70px;position:relative;gap:0;background:transparent}
.game-v2 .gv-home-main-art{position:absolute;inset:0;width:100%;height:100%;display:block}
.game-v2 .gv-home-host{position:absolute;right:0;bottom:52px;width:26%;height:38%;pointer-events:none}
.game-v2 .gv-home-host canvas{width:100%;height:100%;display:block}
.game-v2 .gv-home-hero .gv-home-name{position:absolute;left:6px;top:6px;bottom:auto;z-index:1;padding:5px 9px;background:#fff7dfd9}
.game-v2 .gv-home-name small{display:block;font-size:calc(11px * var(--gv-scale));line-height:1.2}
.game-v2 .gv-home-name h2{font-size:calc(20px * var(--gv-scale))}
.game-v2 .gv-home-details{position:absolute;right:6px;bottom:6px;min-height:44px;z-index:1;padding:6px 10px;font-size:calc(12px * var(--gv-scale))}
.game-v2 .gv-home-team-title,.game-v2 .gv-home-roster-title{font-size:calc(13px * var(--gv-scale));line-height:1.2;padding:0 4px}
.game-v2 .gv-home-team-title small{font-size:calc(10px * var(--gv-scale))}
.game-v2 .gv-home-roster-title{min-height:24px}.game-v2 .gv-home-roster-title .gv-icon{width:44px;height:44px}
.game-v2 .gv-home-roster-title .gv-pager{gap:4px}.game-v2 .gv-home-roster-title .gv-pager button{width:44px;height:44px;padding:0}
.game-v2 .gv-home-roster{grid-template-rows:repeat(2,74px);padding:4px;gap:4px;border-radius:16px}
.game-v2 .gv-home-roster[data-count='4']{grid-template-rows:84px}
.game-v2 .gv-home-roster .gv-member span{font-size:calc(12px * var(--gv-scale));line-height:1.2;padding:1px 2px}
.game-v2 .gv-team-empty{display:flex;align-items:center;justify-content:center;min-height:62px;border:2px dashed #b29a63;border-radius:16px;background:#fff7dfbb;font-size:24px}
.game-v2 .gv-team .gv-team-key{padding:3px 4px;background:#fff7dfea;border-color:#a48f5f}
.game-v2 .gv-team .gv-team-key.is-captain,.game-v2 .gv-team .gv-team-key.active{border-color:#c79538;box-shadow:inset 0 0 0 2px #efd06d,0 3px #7c62244d}
.game-v2 .gv-home-start{min-height:52px}.game-v2 .gv-home-nav{min-height:48px}.game-v2 .gv-home-nav button{min-height:48px;font-size:calc(14px * var(--gv-scale));padding:5px}
.game-v2 .gv-hud{padding:0;background:transparent}.game-v2 .gv-hud .status-row{font-size:calc(12px * var(--gv-scale));color:#284c39}
.game-v2 .gv-hud .gv-row .gv-badge:nth-child(2){flex:1.5}
.game-v2 .wave-title{font-size:calc(15px * var(--gv-scale));line-height:1.2;letter-spacing:0}.game-v2 .wave-title small{font-size:calc(11px * var(--gv-scale))}
.game-v2 .phase-chip{font-size:calc(11px * var(--gv-scale));background:#fff7dfdc;color:#385b3f;padding:3px 5px}
.game-v2 .hp-row{margin:0;display:grid;grid-template-columns:auto 1fr auto}.game-v2 .hp-track{height:10px}.game-v2 .hp-text{font-size:calc(12px * var(--gv-scale));min-width:0}
.game-v2 .gv-progress i{width:0;transition:width .15s}.game-v2 .gv-spot-feedback{top:5px;left:5px;right:5px;color:#284c39;text-shadow:none;line-height:1.3}
.game-v2 .gv-field{min-height:80px}.game-v2 .gv-spot-hit{z-index:2}.game-v2 .gv-weapon-team{min-height:64px}.game-v2 .gv-weapon-team span{font-size:calc(12px * var(--gv-scale));line-height:1.2}
.game-v2 .gv-spot-hit,.game-v2 .gv-weapon-team [data-formation]{touch-action:none}
.game-v2 .gv-weapon-team small{display:block}.game-v2 .bottom-controls{padding:0;border:0;background:transparent;gap:6px;min-height:52px}
.game-v2 .bottom-controls>.skill-copy{flex:1.2;text-align:center}.game-v2 .skill-name{font-size:calc(12px * var(--gv-scale));line-height:1.2}.game-v2 .skill-caption{font-size:calc(10px * var(--gv-scale));line-height:1.2;margin-top:2px}
.game-v2 .skill-button{background:linear-gradient(#ffeaa0,#efc865);border-color:#b78332;color:#284c39;min-height:52px;min-width:80px;font-size:calc(15px * var(--gv-scale));box-shadow:inset 0 2px #fff3c5,0 3px #74522d60}
.game-v2 .skill-button small{font-size:calc(11px * var(--gv-scale));font-weight:700}
.game-v2 .gv-overlay{position:relative;inset:auto;flex:1;min-height:0;overflow:hidden;padding:0;background:transparent;backdrop-filter:none;display:flex;align-items:stretch}
:is(.game-v2,.game-v2-token) .gv-panel{width:100%;max-width:none;height:100%;max-height:100%;overflow:hidden;background:#fff7dfec;border:2px solid #b79760;border-radius:20px;box-shadow:inset 0 2px #fffff0,0 3px #294c3930;padding:10px;gap:8px;display:flex;flex-direction:column;min-height:0;color:#284c39}
:is(.game-v2,.game-v2-token) .gv-panel-heading{flex:none}:is(.game-v2,.game-v2-token) .panel-eyebrow{font-size:calc(10px * var(--gv-scale));line-height:1.2;letter-spacing:0;color:#55734d}
:is(.game-v2,.game-v2-token) .gv-panel h2{font-family:inherit;font-weight:900;font-size:calc(22px * var(--gv-scale));margin:3px 0 0;line-height:1.2;color:#284c39}
:is(.game-v2,.game-v2-token) .gv-panel p{font-family:inherit;font-weight:700;font-size:calc(16px * var(--gv-scale));line-height:1.5;margin:0;color:#284c39;overflow-wrap:anywhere}
.game-v2 .gv-panel.gv-map{align-items:stretch;justify-content:flex-start;gap:8px}.game-v2 .gv-panel.gv-map:before{display:none}
.game-v2 .gv-map-content{position:relative;flex:1;align-items:center;justify-content:space-evenly}.game-v2 .gv-map-node{padding:8px;min-height:88px;text-align:center}
.game-v2 .gv-map-node span{font-size:24px}.game-v2 .gv-map-node strong{font-size:calc(16px * var(--gv-scale))}.game-v2 .gv-map-node small{font-size:calc(12px * var(--gv-scale));line-height:1.2}
.game-v2 .gv-choices{margin:0}.game-v2 .gv-choice-row{min-height:74px}.game-v2 .gv-choice-pick{min-height:44px;width:auto;padding:5px;border:0;box-shadow:none;border-radius:12px;background:transparent}
.game-v2 .gv-choice-pick .gv-art{width:44px;height:54px;flex:none}.game-v2 .choice-copy strong{color:#284c39}.game-v2 .choice-copy small{color:#587051;margin:0}.game-v2 .gv-choice-info{margin:0;width:44px;height:44px;padding:0}
.game-v2 .gv-panel .gv-footer{align-items:center}.game-v2 .gv-panel .gv-footer>small{font-size:calc(12px * var(--gv-scale));line-height:1.3;text-align:center}
.game-v2 .gv-story-content{gap:6px}.game-v2 .gv-dialogue{padding:8px 10px}.game-v2 .gv-dialogue p{font-size:calc(14px * var(--gv-scale));line-height:1.4}.game-v2 .gv-dialogue strong{font-size:calc(12px * var(--gv-scale))}
.game-v2 .gv-route-options{display:grid;grid-template-rows:1fr 1fr;gap:8px}.game-v2 .gv-route-options button{display:flex;flex-direction:column;justify-content:center;text-align:center;gap:7px;width:100%;padding:10px;margin:0;min-height:88px;font-size:calc(18px * var(--gv-scale))}
.game-v2 .gv-route-options small{font-size:calc(13px * var(--gv-scale));line-height:1.3}.game-v2 .gv-route-options .gv-danger{background:linear-gradient(#ffe4d8,#edc5b0);border-color:#ba6f69}
.game-v2 .gv-result-cast{display:flex;flex-direction:row;justify-content:center;align-items:center}.game-v2 .gv-result-cast canvas{width:33.33%;height:100%;min-height:0}
.game-v2 .gv-stats.run-stats{grid-template-columns:repeat(3,minmax(0,1fr));padding:0;margin:0;border:0;gap:4px}.game-v2 .gv-stats b{font-size:calc(20px * var(--gv-scale));color:#284c39}.game-v2 .gv-stats span{font-size:calc(11px * var(--gv-scale));line-height:1.2;color:#426344}
.game-v2 :is(.gv-victory,.gv-defeat) .gv-footer{display:grid;grid-template-columns:1fr 1fr}.game-v2 :is(.gv-victory,.gv-defeat) .gv-footer button{font-size:calc(13px * var(--gv-scale));min-height:48px}
.game-v2-token{--gv-scale:1;--gv-ivory:#fff7df;--gv-ink:#284c39;--gv-sage:#85ad68;--gv-gold:#efc865;--gv-danger:#d56870;font-family:'Chiron GoRound TC WS','Chiron GoRound TC','PingFang TC',sans-serif;font-weight:700;font-synthesis:none;color:#284c39}
.game-v2-token *{box-sizing:border-box;min-width:0}.game-v2-token [hidden]{display:none!important}
.game-v2-token.modal-backdrop{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#173d367d;overflow:hidden}
.game-v2-token .gv-dialog{width:100%;max-width:460px;height:min(660px,calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom))));min-height:0;overflow:hidden}
.game-v2-token .gv-info-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:8px}
.game-v2-token .gv-info-copy{font-size:calc(16px * var(--gv-scale));line-height:1.5;overflow-wrap:anywhere;text-align:left}
.game-v2-token .gv-menu-actions{display:grid;gap:10px;flex:1;align-content:center}.game-v2-token .gv-menu-actions button{width:100%;min-height:52px}
.game-v2-token .gv-setting-options{display:flex;gap:6px;flex-wrap:wrap}.game-v2-token .gv-setting-options button{flex:1;min-width:70px}
.game-v2-token .gv-info-content>label{font-size:calc(16px * var(--gv-scale));line-height:1.3;font-weight:900}
.game-v2-token .gv-settings-content>strong{font-size:calc(16px * var(--gv-scale));font-weight:900;line-height:1.3}
.game-v2-token .gv-settings-content>small{font-size:calc(12px * var(--gv-scale));font-weight:700;line-height:1.4}
.game-v2 ~ .toast{font-family:'Chiron GoRound TC WS','PingFang TC',sans-serif;font-weight:700;font-size:14px;background:#284c39ec;max-width:min(440px,90vw);bottom:max(16px,env(safe-area-inset-bottom));text-align:center}
@media(max-height:699px){.game-v2 .gv-home-roster[data-count='4']{grid-template-rows:72px}.game-v2 .gv-home-hero{min-height:70px}.game-v2 .gv-home-team-title{min-height:20px}.game-v2 .gv-home-team-title small{display:none}.game-v2 .gv-screen{padding:6px 8px 8px;gap:5px}.game-v2 .gv-panel{padding:8px;gap:6px}.game-v2 .gv-panel h2{font-size:calc(20px * var(--gv-scale))}.game-v2 .gv-panel-heading{min-height:38px}}
@media(max-width:350px){.game-v2 .gv-screen>header h1{font-size:calc(16px * var(--gv-scale))}.game-v2 .gv-home-nav button{font-size:calc(12px * var(--gv-scale))}.game-v2 .gv-home-hero .gv-home-name h2{font-size:calc(18px * var(--gv-scale))}.game-v2 .gv-home-roster .gv-member span{font-size:calc(11px * var(--gv-scale))}.game-v2 .gv-team span{font-size:calc(11px * var(--gv-scale))}}

/* Same approved v3 illustration direction; recruit DOM extension owned by UI art. */
.game-v2[data-core='recruit']{--gv-wood:url('../assets/paprika/ui-v4/wood-title.svg');--gv-crest:url('../assets/paprika/ui-v4/green-crest.svg')}
:is(.game-v2[data-core='recruit'],.game-v2-token) .gv-icon{font-size:24px;line-height:1.35}
.game-v2[data-core='recruit'] .gv-home-team-title>strong{line-height:1.35}
.game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select']){padding:10px 10px 0;gap:6px}
.game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select'])>.gv-topbar{height:50px;min-height:50px;z-index:4}
.game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select'])>.gv-topbar h1{font-size:min(36px,calc(30px * var(--gv-scale)));height:50px;display:flex;align-items:center;justify-content:center;border:0;border-radius:0;padding:0 8px;background:var(--gv-wood) center/100% 100% no-repeat;box-shadow:none;color:#fff5d9;text-shadow:0 2px #533a25,1px 0 #533a25,-1px 0 #533a25;line-height:1.05}
.game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select'])>.gv-topbar .gv-icon{background:radial-gradient(circle at 40% 25%,#fffdf0,#eed7a3);border-color:#967345;box-shadow:inset 0 0 0 2px #fff8db,0 3px #593d2450;color:#795733}
.game-v2[data-core='recruit'] .gv-home-hero{flex:1;min-height:70px;margin:-6px -10px 0;border-radius:0;background:transparent;overflow:hidden;isolation:isolate}
.game-v2[data-core='recruit'] .gv-home-main-art{inset:0;width:100%;height:100%}
.game-v2[data-core='recruit'] .gv-home-host{right:0;bottom:0;width:34%;height:58%}
.game-v2[data-core='recruit'] .gv-home-name,.game-v2[data-core='recruit'] .gv-home-details{display:none}
.game-v2[data-core='recruit'] .gv-home-team-title{position:relative;z-index:3;align-self:center;justify-content:center;height:34px;min-height:34px;flex:none;margin-top:-24px;width:min(310px,100%);padding:0 24px;background:var(--gv-crest) center/100% 100% no-repeat;color:#fff9df;text-shadow:0 1px #214232;text-align:center;font-size:calc(16px * var(--gv-scale));font-weight:900}
.game-v2[data-core='recruit'] .gv-home-team-title small{display:none}
.game-v2[data-core='recruit'] .gv-home-captain{height:109px;min-height:109px;margin-top:6px;gap:8px;position:relative;z-index:2}
.game-v2[data-core='recruit'] .gv-home-captain>button{height:100%;min-height:44px;position:relative;padding:0;overflow:visible;border-radius:17px;border:2px solid #ac956b;background:linear-gradient(145deg,#f7e7c7,#fff8e3 65%,#dcd4a5);box-shadow:inset 0 0 0 2px #fff8e4,0 3px #8b6d3c40}
.game-v2[data-core='recruit'] .gv-home-captain>button.is-captain{border-color:#e2ae37;background:linear-gradient(145deg,#fff2af,#edca72);box-shadow:0 0 0 2px #fff3b8,inset 0 0 0 2px #ffe488,0 4px #85602350}
.game-v2[data-core='recruit'] .gv-home-captain>button.is-captain:before{content:'♛';position:absolute;top:-24px;left:calc(50% - 17px);z-index:2;font-size:32px;line-height:34px;color:#efca59;filter:drop-shadow(0 1px #805c30)}
.game-v2[data-core='recruit'] .gv-home-captain .gv-art{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:15px;clip-path:inset(0 round 15px)}
.game-v2[data-core='recruit'] .gv-home-captain>button>span{position:absolute;bottom:4px;left:3px;right:3px;min-height:23px;display:flex;align-items:center;justify-content:center;background:#355d48;border:1px solid #aebd84;border-radius:14px;color:#fff8df;font-size:calc(14px * var(--gv-scale));line-height:1.15;padding:2px 1px;font-weight:900;white-space:nowrap;z-index:1}
.game-v2[data-core='recruit'] .gv-home-captain .gv-team-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;border-style:dashed;background:radial-gradient(ellipse at 50% 35%,#f6edcd,#e6e5c9);color:#8e9871}
.game-v2[data-core='recruit'] .gv-team-empty>b{font-size:40px;line-height:1;padding-bottom:16px}
.game-v2[data-core='recruit'] .gv-home-captain .gv-team-empty>span{background:#7f9274;border-color:#c0c7a0}
.game-v2[data-core='recruit'] .gv-home-roster-title{height:35px;min-height:35px;position:relative;flex:none;justify-content:center;margin-top:5px}
.game-v2[data-core='recruit'] .gv-home-roster-title>strong{display:flex;align-items:center;justify-content:center;width:228px;height:35px;padding:0 20px;background:var(--gv-crest) center/100% 100% no-repeat;color:#fff9df;text-shadow:0 1px #214232;font-size:calc(18px * var(--gv-scale));font-weight:900;line-height:1.1}
.game-v2[data-core='recruit'] .gv-home-roster-title>.gv-icon{position:absolute;right:0;top:-5px;background:#fff4d5;color:#795733;border-color:#ba9250;z-index:3}
.game-v2[data-core='recruit'] .gv-home-roster-title .gv-pager{position:absolute;right:0;top:-5px;gap:3px;background:#fff3d4d9;border-radius:24px;padding:0 2px}
.game-v2[data-core='recruit'] .gv-home-roster-title .gv-pager span{font-size:calc(11px * var(--gv-scale));padding:2px;background:transparent}
.game-v2[data-core='recruit'] .gv-home-roster{height:167px;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;padding:5px;margin-top:-7px;border:2px solid #d4b97e;border-radius:20px;background:linear-gradient(#fff9e6f5,#f7e4b5f2);box-shadow:inset 0 0 0 2px #fff9dd,0 3px #5c573c33;flex:none}
.game-v2[data-core='recruit'] .gv-home-roster[data-count='4']{height:84px;grid-template-rows:minmax(0,1fr)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member{padding:0;border:2px solid #b39869;border-radius:13px;background:linear-gradient(135deg,#efe4bd,#fff6db);box-shadow:inset 0 0 0 2px #fff9eb}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member:nth-child(4n+2){background:linear-gradient(135deg,#dbeecf,#c5dbc3)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member:nth-child(4n+3){background:linear-gradient(135deg,#f9e7d5,#e8d1b5)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member:nth-child(4n){background:linear-gradient(135deg,#e5d7f1,#c9c1e0)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member .gv-art{position:absolute;inset:0 auto 0 9%;width:82%;height:100%;border-radius:11px;clip-path:inset(0 round 11px)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member>span{position:absolute;bottom:2px;left:2px;right:2px;min-height:19px;display:flex;justify-content:center;align-items:center;padding:1px 0;background:#355d48;border:1px solid #aebd84;color:#fff9df;border-radius:10px;font-size:calc(12px * var(--gv-scale));line-height:1.15;z-index:1}
.game-v2[data-core='recruit'] .gv-home-roster .gv-check{width:24px;height:24px;line-height:24px;top:1px;left:1px;font-size:18px;border:1px solid #b88530;box-shadow:0 1px #fff2b8;z-index:2}
.game-v2[data-core='recruit'] .gv-home-start{height:54px;min-height:54px;justify-content:center;align-items:stretch;gap:7px}
.game-v2[data-core='recruit'] .gv-home-start>.gv-primary{flex:none;width:min(280px,78%);border-radius:30px;font-size:calc(26px * var(--gv-scale));line-height:1.05;background:linear-gradient(#ffecaa,#f0c653 80%,#dfa234);border-color:#c1903e;box-shadow:inset 0 0 0 2px #ffefb8,0 4px #6e643746;padding:4px 8px}
.game-v2[data-core='recruit'] .gv-home-start:has(button:nth-child(2))>.gv-primary{width:auto;flex:2;font-size:calc(21px * var(--gv-scale))}
.game-v2[data-core='recruit'] .gv-home-start>button:nth-child(2){flex:1;border-radius:25px;font-size:calc(15px * var(--gv-scale))}
.game-v2[data-core='recruit'] .gv-home-nav{height:65px;min-height:65px;margin:4px -10px 0;padding:0 8px;gap:6px;background:linear-gradient(#8c8066ed,#5c604be8);border-top:3px solid #c5ba96;border-radius:25px 25px 0 0}
.game-v2[data-core='recruit'] .gv-home-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px 3px;min-height:44px;border:0;box-shadow:none;background:transparent;color:#fff5d8;font-size:calc(16px * var(--gv-scale));line-height:1.1;text-shadow:0 2px #444a34;border-radius:23px 23px 0 0}
.game-v2[data-core='recruit'] .gv-home-nav button:first-child{background:linear-gradient(#fff0c5,#eacf91);border:2px solid #b3955b;border-bottom:0;color:#634e2f;text-shadow:0 1px #fff4d1}
.game-v2[data-core='recruit'] .gv-home-nav button:before{content:'';display:block;width:32px;height:32px;background:url('../assets/paprika/ui-v4/nav-home.svg') center/contain no-repeat;flex:none}
.game-v2[data-core='recruit'] .gv-home-nav button:nth-child(2):before{background-image:url('../assets/paprika/ui-v4/nav-captain.svg')}
.game-v2[data-core='recruit'] .gv-home-nav button:nth-child(3):before{background-image:url('../assets/paprika/ui-v4/nav-chapters.svg')}
.game-v2[data-core='recruit'] .gv-coin{display:inline-flex;justify-content:center;align-items:center;gap:4px;min-height:24px;padding:2px 7px;border:1px solid #bd984c;border-radius:16px;background:#fff0ba;color:#6a5327;font-size:calc(12px * var(--gv-scale));font-weight:900;line-height:1.1}
.game-v2[data-core='recruit'] .gv-dock-paged{display:grid;grid-template-columns:44px repeat(3,minmax(0,1fr)) 44px;gap:4px;align-items:stretch;min-height:88px;height:88px;flex:none}
.game-v2[data-core='recruit'] .gv-dock-paged>.gv-icon{align-self:center}
.game-v2[data-core='recruit'] :is(#planning-tools,.gv-planning-tools)>button{font-size:calc(12px * var(--gv-scale));padding:5px 4px;line-height:1.2;min-height:48px}
:is(.game-v2,.game-v2-token) .gv-unit-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:72px;overflow:hidden;padding:0;border:2px solid #b29a63;border-radius:14px;background:linear-gradient(135deg,#f9efd1,#dbe7c2);font-size:calc(12px * var(--gv-scale));gap:0}
:is(.game-v2,.game-v2-token) .gv-unit-card>.gv-art{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:11px}
:is(.game-v2,.game-v2-token) .gv-unit-card>span{position:relative;z-index:1;display:block;width:100%;background:#365e49ed;color:#fff7df;padding:2px 0;font-size:calc(12px * var(--gv-scale));font-weight:900;line-height:1.15;text-align:center;white-space:nowrap}
:is(.game-v2,.game-v2-token) .gv-unit-card>small{position:relative;z-index:1;display:block;width:100%;background:#fff5dcea;color:#6b5731;padding:1px 1px;font-size:calc(10px * var(--gv-scale));font-weight:900;line-height:1.15;text-align:center;overflow-wrap:anywhere}
:is(.game-v2,.game-v2-token) .gv-unit-card:disabled{opacity:.68}
:is(.game-v2,.game-v2-token) .gv-unit-card[data-is-captain='true']{border-color:#d6a13b;box-shadow:inset 0 0 0 2px #f6dc8d}
.game-v2-token .gv-dialog:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions){height:min(780px,calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom))));height:min(780px,calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom),var(--gv-test-top,0px) + var(--gv-test-bottom,0px))))}
.game-v2-token.modal-backdrop:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions){padding-top:max(10px,env(safe-area-inset-top),var(--gv-test-top,0px));padding-bottom:max(10px,env(safe-area-inset-bottom),var(--gv-test-bottom,0px))}
.game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions){padding:10px;gap:7px;background:linear-gradient(#fffbe9f7,#f8e9c8f7);border-color:#b99660;box-shadow:inset 0 0 0 2px #fff7da,0 4px #23433440}
.game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions) h2{line-height:1.35}
.game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions)>.gv-footer{margin-top:auto}
.game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions)>.gv-footer>button{font-size:calc(16px * var(--gv-scale));line-height:1.3;padding:5px 6px}
:is(.game-v2,.game-v2-token) .gv-recruit-summary{display:grid;grid-template-columns:1fr 1fr;gap:4px;flex:none;align-items:center;background:#ede7c9;border:1px solid #c6b583;border-radius:13px;padding:6px 8px;font-size:calc(12px * var(--gv-scale));font-weight:900;line-height:1.25}
:is(.game-v2,.game-v2-token) .gv-recruit-summary>b{font-size:calc(19px * var(--gv-scale));color:#83672c}
:is(.game-v2,.game-v2-token) .gv-recruit-summary>small{font-size:calc(11px * var(--gv-scale));line-height:1.25}
:is(.game-v2,.game-v2-token) .gv-recruit-tabs{display:flex;gap:6px;flex:none;min-height:44px}
:is(.game-v2,.game-v2-token) .gv-recruit-tabs>button{flex:1;min-height:44px;font-size:calc(16px * var(--gv-scale));padding:4px}
:is(.game-v2,.game-v2-token) .gv-recruit-body{display:flex;flex-direction:column;gap:7px;flex:1;min-height:0;overflow:hidden}
:is(.game-v2,.game-v2-token) .gv-recruit-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1;min-height:0}
:is(.game-v2,.game-v2-token) .gv-recruit-options>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:6px;min-height:76px;font-size:calc(18px * var(--gv-scale));line-height:1.2}
:is(.game-v2,.game-v2-token) .gv-recruit-options>button>span{line-height:1.35}
:is(.game-v2,.game-v2-token) .gv-recruit-options strong{font-size:calc(27px * var(--gv-scale));color:#856426;line-height:1.35}
:is(.game-v2,.game-v2-token) .gv-recruit-options>button:is(.secondary,.gv-secondary) strong{color:#fff3b5;text-shadow:0 1px #304b31}
:is(.game-v2,.game-v2-token) .gv-recruit-options small{font-size:calc(12px * var(--gv-scale));font-weight:700;line-height:1.25}
:is(.game-v2,.game-v2-token) .gv-recruit-note{font-size:calc(13px * var(--gv-scale));font-weight:700;line-height:1.35;text-align:center;flex:none;margin:0}
:is(.game-v2,.game-v2-token) .gv-recruit-body>.gv-host-mini{height:clamp(60px,15dvh,120px);min-height:0}
:is(.game-v2,.game-v2-token) .gv-target-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-height:0;flex:1;overflow:hidden}
:is(.game-v2,.game-v2-token) .gv-target-roster[data-count='2']{grid-template-rows:minmax(0,1fr)}
:is(.game-v2,.game-v2-token) .gv-target-roster .gv-unit-card{min-height:60px}
:is(.game-v2,.game-v2-token) .gv-target-roster .gv-unit-card>.gv-art{position:absolute;inset:0;width:100%;height:100%}
:is(.game-v2,.game-v2-token) .gv-target-roster .gv-unit-card>span{font-size:calc(16px * var(--gv-scale))}
:is(.game-v2,.game-v2-token) .gv-target-roster .gv-unit-card>small{font-size:calc(12px * var(--gv-scale))}
:is(.game-v2,.game-v2-token) .gv-merge-cast{display:grid;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);gap:6px;align-items:stretch;flex:none;height:clamp(100px,24dvh,210px);min-height:80px;overflow:hidden}
:is(.game-v2,.game-v2-token) .gv-merge-cast>.gv-unit-card{min-height:80px;pointer-events:none}
:is(.game-v2,.game-v2-token) .gv-merge-cast>.gv-merge-arrow{align-self:center;text-align:center;font-size:24px;color:#937341;font-weight:900}
:is(.game-v2,.game-v2-token) .gv-merge-cast>.gv-unit-card>span{font-size:calc(17px * var(--gv-scale))}
:is(.game-v2,.game-v2-token) .gv-merge-cast>.gv-unit-card>small{font-size:calc(13px * var(--gv-scale))}
:is(.game-v2,.game-v2-token) .gv-merge-summary{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;flex:none;padding:8px 10px;background:#edf0d6;border:1px solid #b6bd82;border-radius:14px;font-size:calc(13px * var(--gv-scale));font-weight:700;line-height:1.35}
:is(.game-v2,.game-v2-token) .gv-merge-summary>strong,:is(.game-v2,.game-v2-token) .gv-merge-summary>p{grid-column:1/-1;text-align:center;font-size:calc(17px * var(--gv-scale));font-weight:900;line-height:1.2;margin:0}
:is(.game-v2,.game-v2-token) .gv-merge-summary>small{font-size:calc(12px * var(--gv-scale));line-height:1.3}
:is(.game-v2,.game-v2-token) .gv-merge-details{display:flex;flex-direction:column;gap:4px;flex:none;font-size:calc(12px * var(--gv-scale));font-weight:700;line-height:1.35;padding:5px 8px;background:#fff8e3;border-radius:10px}
:is(.game-v2,.game-v2-token) .gv-unit-actions{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;min-height:0;flex:1}
:is(.game-v2,.game-v2-token) .gv-unit-actions>button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;font-size:calc(17px * var(--gv-scale));line-height:1.25;padding:6px}
:is(.game-v2,.game-v2-token) .gv-unit-actions small{font-size:calc(12px * var(--gv-scale));font-weight:700}
:is(.game-v2,.game-v2-token) .gv-odds-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:7px;flex:1;min-height:0}
:is(.game-v2,.game-v2-token) .gv-odds-list[data-count='2']{grid-template-rows:repeat(2,minmax(0,1fr))}
:is(.game-v2,.game-v2-token) .gv-odds-row{display:grid;grid-template-columns:52px 1fr auto;gap:7px;align-items:center;min-height:44px;padding:5px 7px;background:#fff7df;border:1px solid #c6b282;border-radius:12px;font-size:calc(14px * var(--gv-scale));line-height:1.2}
:is(.game-v2,.game-v2-token) .gv-odds-row canvas{width:52px;height:52px;border-radius:10px}
:is(.game-v2,.game-v2-token) .gv-odds-row small{display:block;font-size:calc(11px * var(--gv-scale));line-height:1.2}
:is(.game-v2,.game-v2-token) .gv-odds-row strong{text-align:right;font-size:calc(16px * var(--gv-scale));font-weight:900}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-stack{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:7px}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice{display:flex;flex-direction:column;padding:4px}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-pick{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:5px;width:100%;text-align:center;min-width:0}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-pick canvas{width:100%;height:110px;min-height:0}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .choice-copy{display:flex;flex-direction:column;gap:7px}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .choice-copy strong{font-size:calc(16px * var(--gv-scale));line-height:1.35}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .choice-copy small{font-size:calc(13px * var(--gv-scale));line-height:1.35}
.game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-info{margin:0;align-self:center}
.game-v2[data-core='recruit'] .gv-celebration{position:relative;flex:1;min-height:90px;overflow:hidden;border-radius:16px;margin:-3px -4px 0}
.game-v2[data-core='recruit'] .gv-celebration>canvas{display:block;width:100%;height:100%;position:absolute;inset:0}
.game-v2[data-core='recruit'] .gv-panel.gv-reward:has(.gv-celebration) .gv-choice-stack{flex:none;height:172px;min-height:0}
.game-v2[data-core='recruit'] .gv-panel:has(.gv-celebration) .gv-panel-heading{flex:none;text-align:center}
.game-v2[data-core='recruit'] .gv-panel:has(.gv-celebration) .gv-panel-heading h2{font-size:calc(25px * var(--gv-scale));line-height:1.35;color:#68512d}
@media(max-width:350px),(max-height:699px){
 .game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select']){padding:6px 8px 0;gap:5px}
 .game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select'])>.gv-topbar{height:44px;min-height:44px}
 .game-v2[data-core='recruit'] .gv-screen:is([data-screen='title'],[data-screen='home'],[data-screen='select'])>.gv-topbar h1{height:44px;font-size:min(32px,calc(25px * var(--gv-scale)));padding:0 3px}
 .game-v2[data-core='recruit'] .gv-home-hero{min-height:50px;margin:-5px -8px 0}
 .game-v2[data-core='recruit'] .gv-home-team-title{height:28px;min-height:28px;margin-top:-20px;font-size:calc(13px * var(--gv-scale));padding:0 15px}
 .game-v2[data-core='recruit'] .gv-home-captain{height:60px;min-height:60px;margin-top:0;gap:6px}
 .game-v2[data-core='recruit'] .gv-home-captain>button>span{font-size:calc(12px * var(--gv-scale));min-height:19px;bottom:2px}
 .game-v2[data-core='recruit'] .gv-home-captain>button.is-captain:before{font-size:22px;line-height:24px;top:-18px;left:calc(50% - 12px)}
 .game-v2[data-core='recruit'] .gv-team-empty>b{font-size:27px;padding-bottom:16px}
 .game-v2[data-core='recruit'] .gv-home-roster-title{height:44px;min-height:44px;margin-top:0;justify-content:flex-start}
 .game-v2[data-core='recruit'] .gv-home-roster-title>strong{height:30px;width:174px;font-size:calc(14px * var(--gv-scale));padding:0 15px}
 .game-v2[data-core='recruit'] .gv-home-roster-title .gv-pager{top:0}
 .game-v2[data-core='recruit'] .gv-home-roster-title>.gv-icon{top:0}
 .game-v2[data-core='recruit'] .gv-home-roster[data-count='4']{height:66px;margin-top:-2px;padding:3px;gap:4px}
 .game-v2[data-core='recruit'] .gv-home-roster .gv-member>span{font-size:calc(11px * var(--gv-scale));min-height:17px}
 .game-v2[data-core='recruit'] .gv-home-start{height:52px;min-height:52px}
 .game-v2[data-core='recruit'] .gv-home-start>.gv-primary{font-size:calc(20px * var(--gv-scale));width:min(254px,90%)}
 .game-v2[data-core='recruit'] .gv-home-start:has(button:nth-child(2))>.gv-primary{font-size:calc(16px * var(--gv-scale));width:auto}
 .game-v2[data-core='recruit'] .gv-home-nav{height:47px;min-height:47px;margin:0 -8px;padding:0 6px;gap:4px}
 .game-v2[data-core='recruit'] .gv-home-nav button{font-size:calc(12px * var(--gv-scale));padding:0;gap:0}
 .game-v2[data-core='recruit'] .gv-home-nav button:before{width:20px;height:20px}
 .game-v2[data-core='recruit'] .gv-dock-paged{height:74px;min-height:74px;gap:3px}
 .game-v2[data-core='recruit'] .gv-dock-paged .gv-unit-card>span{font-size:calc(10px * var(--gv-scale))}
 .game-v2[data-core='recruit'] .gv-dock-paged .gv-unit-card>small{font-size:calc(9px * var(--gv-scale))}
 .game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions){padding:8px;gap:5px}
 .game-v2-token .gv-panel:has(.gv-recruit-summary,.gv-merge-cast,.gv-unit-actions) h2{font-size:calc(20px * var(--gv-scale));line-height:1.35;margin:0}
 .game-v2-token .gv-recruit-summary{padding:4px 6px;font-size:calc(11px * var(--gv-scale))}
 .game-v2-token .gv-recruit-summary{grid-template-columns:auto minmax(0,1fr)}
 .game-v2-token .gv-recruit-summary>span{font-size:calc(10px * var(--gv-scale))}
 .game-v2-token .gv-recruit-summary>small:first-of-type{display:none}
 .game-v2-token .gv-recruit-summary>small:last-of-type{grid-column:1/-1}
 .game-v2-token .gv-recruit-summary>b{font-size:calc(15px * var(--gv-scale))}
 .game-v2-token .gv-recruit-summary>small{font-size:calc(10px * var(--gv-scale))}
 .game-v2-token .gv-recruit-body{gap:5px}
 .game-v2-token .gv-recruit-body>.gv-host-mini{height:48px}
 .game-v2-token .gv-recruit-options>button{gap:4px;font-size:calc(14px * var(--gv-scale));min-height:64px;padding:4px}
 .game-v2-token .gv-recruit-options strong{font-size:calc(20px * var(--gv-scale))}
 .game-v2-token .gv-recruit-options small,.game-v2-token .gv-recruit-note{font-size:calc(11px * var(--gv-scale));line-height:1.25}
 .game-v2-token .gv-target-roster{gap:5px}
 .game-v2-token .gv-target-roster .gv-unit-card>span{font-size:calc(14px * var(--gv-scale))}
 .game-v2-token .gv-target-roster .gv-unit-card>small{font-size:calc(11px * var(--gv-scale))}
 .game-v2-token .gv-merge-cast{min-height:72px;max-height:115px;height:auto;flex:1;gap:4px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}
 .game-v2-token .gv-merge-cast>.gv-unit-card{min-height:72px}
 .game-v2-token .gv-merge-cast>.gv-unit-card>span{font-size:calc(14px * var(--gv-scale))}
 .game-v2-token .gv-merge-cast>.gv-unit-card>small{font-size:calc(11px * var(--gv-scale))}
 .game-v2-token .gv-merge-summary{padding:5px 6px;gap:3px 6px;font-size:calc(11px * var(--gv-scale))}
 .game-v2-token .gv-merge-summary>strong,.game-v2-token .gv-merge-summary>p{font-size:calc(14px * var(--gv-scale));line-height:1.35}
 .game-v2-token .gv-merge-cast>.gv-merge-arrow{font-size:20px}
 .game-v2-token .gv-merge-details{font-size:calc(11px * var(--gv-scale));padding:4px 6px;gap:3px}
 .game-v2-token .gv-unit-actions>button{font-size:calc(14px * var(--gv-scale));padding:4px;min-height:44px}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-stack{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr))}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice{flex-direction:row}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-pick{flex-direction:row;text-align:left;gap:7px;padding:2px 4px}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward .gv-choice-pick canvas{width:44px;height:48px;flex:none}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward .choice-copy{gap:4px}
 .game-v2[data-core='recruit'] .gv-panel.gv-reward:has(.gv-celebration) .gv-choice-stack{height:246px}
 .game-v2[data-core='recruit'] .gv-celebration{min-height:55px}
 .game-v2[data-core='recruit'] .gv-screen[data-screen='formation'] #weapon-team{height:74px;min-height:74px}
 .game-v2[data-core='recruit'] .gv-hud .status-row .wave-title{font-size:calc(12px * var(--gv-scale));line-height:1.25;white-space:nowrap;flex:1.4}
 .game-v2[data-core='recruit'] .gv-hud .status-row>:not(.wave-title){flex:.8}
 .game-v2[data-core='recruit'] .gv-hud .gv-progress-row{padding-block:2px;gap:4px}
 .game-v2[data-core='recruit'] #planning-tools{height:44px;min-height:44px}
 .game-v2[data-core='recruit'] :is(#planning-tools,.gv-planning-tools){gap:6px}
 .game-v2[data-core='recruit'] :is(#planning-tools,.gv-planning-tools)>button{min-height:44px;padding:3px 1px;line-height:1.35}
 .game-v2[data-core='recruit'] :is(#planning-tools,.gv-planning-tools)>button:nth-child(2){flex:1.25}
 .game-v2[data-core='recruit'] :is(#planning-tools,.gv-planning-tools)>button:nth-child(3){flex:1.5}
 .game-v2[data-core='recruit'][data-text='xlarge'] .gv-screen[data-screen='formation']{gap:4px;padding-bottom:6px}
 .game-v2[data-core='recruit'] .qa-bar{padding-block:0}
}
.game-v2[data-core='recruit'] .gv-xp-row{grid-template-columns:auto minmax(18px,1fr) auto auto}
.game-v2[data-core='recruit'] .gv-screen[data-screen='formation'] #board-wrap{min-height:174px}
.game-v2[data-core='recruit'][data-text='large'] .gv-home-roster-title,.game-v2[data-core='recruit'][data-text='xlarge'] .gv-home-roster-title{height:44px;min-height:44px;justify-content:flex-start}
.game-v2[data-core='recruit'][data-text='large'] .gv-home-roster-title>strong,.game-v2[data-core='recruit'][data-text='xlarge'] .gv-home-roster-title>strong{width:calc(100% - 118px);font-size:calc(14px * var(--gv-scale));padding:0 15px}
.game-v2[data-core='recruit'][data-text='large'] .gv-home-roster-title .gv-pager,.game-v2[data-core='recruit'][data-text='xlarge'] .gv-home-roster-title .gv-pager{top:0}
@media(max-height:620px){.game-v2[data-core='recruit'][data-text='xlarge'] .gv-panel.gv-reward .gv-celebration{display:none}}
@media(min-width:351px) and (min-height:700px){
 .game-v2[data-core='recruit'][data-text='xlarge'] .gv-home-nav{height:75px;min-height:75px}
 .game-v2[data-core='recruit'][data-text='xlarge'] .gv-home-nav button{line-height:1.35}
}

/* Generated from ui-v4/identity-colors.js; do not hand-edit tokens. */
:is(.game-v2,.game-v2-token) [data-member-key='nikofish']{--gv-member-identity:#C45E7F;--gv-member-label:#F6B6CB;--gv-member-text:#58283B;--gv-member-surface:#FDE6EF;--gv-member-border:#AA4666;--gv-member-selected:#AA4666}
:is(.game-v2,.game-v2-token) [data-member-key='eldur11']{--gv-member-identity:#4B916F;--gv-member-label:#B5DEC2;--gv-member-text:#1B4935;--gv-member-surface:#E3F3E6;--gv-member-border:#357154;--gv-member-selected:#357154}
:is(.game-v2,.game-v2-token) [data-member-key='mitsuru']{--gv-member-identity:#E5BD53;--gv-member-label:#FFE39B;--gv-member-text:#604217;--gv-member-surface:#FFF7D9;--gv-member-border:#A87825;--gv-member-selected:#A87825}
:is(.game-v2,.game-v2-token) [data-member-key='kiyomin']{--gv-member-identity:#8D5CB0;--gv-member-label:#DCC4EF;--gv-member-text:#48275F;--gv-member-surface:#F0E5FA;--gv-member-border:#784399;--gv-member-selected:#784399}
:is(.game-v2,.game-v2-token) [data-member-key='statalosa']{--gv-member-identity:#E8CEAA;--gv-member-label:#FFF0D5;--gv-member-text:#6B4429;--gv-member-surface:#FFFAEE;--gv-member-border:#B3794C;--gv-member-selected:#B3794C}
:is(.game-v2,.game-v2-token) [data-member-key='ching']{--gv-member-identity:#C34B9D;--gv-member-label:#F4BBE0;--gv-member-text:#5C204A;--gv-member-surface:#FCE5F3;--gv-member-border:#A73580;--gv-member-selected:#A73580}
:is(.game-v2,.game-v2-token) [data-member-key='yui']{--gv-member-identity:#3F8CB8;--gv-member-label:#B6DFEF;--gv-member-text:#1D435B;--gv-member-surface:#E2F3FB;--gv-member-border:#286A94;--gv-member-selected:#286A94}
:is(.game-v2,.game-v2-token) [data-member-key='tokchon']{--gv-member-identity:#946648;--gv-member-label:#D8B599;--gv-member-text:#4B2F22;--gv-member-surface:#F5E6D9;--gv-member-border:#855636;--gv-member-selected:#855636}
/* Member identity requires the resolved memberKey, never the unit UID. */
.game-v2[data-core='recruit'] .gv-home-roster .gv-member[data-member-key],
.game-v2[data-core='recruit'] .gv-home-captain>button[data-member-key],
:is(.game-v2,.game-v2-token) .gv-unit-card[data-member-key]{border-color:var(--gv-member-border);background:linear-gradient(135deg,var(--gv-member-surface),var(--gv-member-label));box-shadow:inset 0 0 0 2px var(--gv-member-surface)}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member[data-member-key]>span,
.game-v2[data-core='recruit'] .gv-home-captain>button[data-member-key]>span,
:is(.game-v2,.game-v2-token) .gv-unit-card[data-member-key]>span{background:var(--gv-member-label);color:var(--gv-member-text);border-color:var(--gv-member-border);text-shadow:none}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member[data-member-key]:is(.gv-selected,[aria-pressed='true']),
.game-v2[data-core='recruit'] .gv-home-captain>button[data-member-key].is-captain,
:is(.game-v2,.game-v2-token) .gv-unit-card[data-member-key]:is(.active,.gv-selected,[aria-pressed='true']){border-color:var(--gv-member-selected)!important;background:linear-gradient(135deg,var(--gv-member-surface),var(--gv-member-label))!important;box-shadow:inset 0 0 0 2px var(--gv-member-surface),0 0 0 2px var(--gv-member-selected)!important}
.game-v2[data-core='recruit'] .gv-home-roster .gv-member[data-member-key]>.gv-check{background:var(--gv-member-label);color:var(--gv-member-text);border-color:var(--gv-member-border);text-shadow:none}
:is(.game-v2,.game-v2-token) .gv-odds-row[data-member-key]{background:var(--gv-member-surface);border-color:var(--gv-member-border);color:var(--gv-member-text)}
:is(.game-v2,.game-v2-token) .skill-button[data-member-key]{background:linear-gradient(var(--gv-member-surface),var(--gv-member-label));color:var(--gv-member-text);border-color:var(--gv-member-border);text-shadow:none;box-shadow:inset 0 0 0 2px var(--gv-member-surface)}
:is(.game-v2,.game-v2-token) .skill-copy[data-member-key]{color:var(--gv-member-text);background:var(--gv-member-surface);border:1px solid var(--gv-member-border);border-radius:12px;padding:3px 6px}
:is(.game-v2,.game-v2-token) .skill-copy[data-member-key] .skill-name{color:var(--gv-member-text)}
:is(.game-v2,.game-v2-token) .skill-name[data-member-key]{color:var(--gv-member-text)}
:is(.game-v2,.game-v2-token) .gv-choice[data-member-key]{border-color:var(--gv-member-border);background:var(--gv-member-surface)}
:is(.game-v2,.game-v2-token) .gv-choice[data-member-key] .choice-copy>strong{color:var(--gv-member-text)}
:is(.game-v2,.game-v2-token) [data-member-key]>.gv-panel-heading h2{color:var(--gv-member-text);text-shadow:none}
/* Crown, stars and location stay explicit; their status meaning is unchanged. */

