:root{--urushi:#0d0907;--urushi-2:#1a120c;--panel:#140d08d1;--panel-solid:#1d140d;--kin:#c9a24a;--kin-light:#f0d68e;--kin-dark:#8a6a26;--shu:#b8321f;--shu-light:#e2553a;--washi:#f3ead6;--text:#f3ead6;--muted:#bba889;--board-line:#6b4a22;--piece-text:#1d140b;--promoted:#b5201a;--last:#ff961e61;--selected:#2878ff66;--target:#1e5ac88c;--check:#e61e1e73;--font-brush:"Yuji Syuku", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-mincho:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-body:"Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;font-family:var(--font-body);color:var(--text);background:var(--urushi);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{background:var(--urushi);touch-action:manipulation;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}button{font:inherit;color:inherit;cursor:pointer}#root{min-height:100dvh}.fade-in{animation:.45s ease-out both fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}}.screen{max-width:560px;min-height:100dvh;padding:max(10px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:0 auto;display:flex;position:relative}.bg-title,.bg-menu,.bg-game{background-color:var(--urushi);background-position:top;background-size:cover;background-attachment:fixed}.bg-title{background-image:linear-gradient(#0003 0%,#0000 35%,#000000bf 100%),url(/images/title-bg.jpg)}.bg-menu{background-image:linear-gradient(#0805038c,#080503cc),url(/images/menu-bg.jpg)}.bg-game{background-image:linear-gradient(#08050373,#080503d9),url(/images/game-bg.jpg)}.topbar{grid-template-columns:1fr auto 1fr;align-items:center;min-height:40px;display:grid}.topbar>:last-child{justify-self:end}.topbar-title,.topbar .ply{font-family:var(--font-mincho);color:var(--kin-light);letter-spacing:.1em;font-size:17px;font-weight:800}.link{color:var(--washi);background:0 0;border:none;justify-self:start;padding:6px 4px;font-size:15px}.panel{background:var(--panel);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid #c9a24a73;border-radius:10px;padding:12px 12px 14px;box-shadow:inset 0 1px #f0d68e1f,0 6px 18px #00000073}.panel h2{font-family:var(--font-mincho);color:var(--kin-light);letter-spacing:.15em;margin:10px 0 8px;font-size:14px;font-weight:800}.panel h2:first-child{margin-top:0}.hint{color:var(--muted);margin:6px 0 0;font-size:12px}.btn,.controls button,.modal button{border:1px solid var(--kin-dark);min-height:48px;color:var(--washi);font-family:var(--font-mincho);letter-spacing:.08em;background:linear-gradient(#2c1f15 0%,#160e08 100%);border-radius:10px;padding:0 16px;font-size:17px;font-weight:800;transition:transform 80ms,box-shadow 80ms,filter .15s;position:relative;box-shadow:inset 0 1px #f0d68e40,0 3px #050302,0 6px 14px #00000080}.btn:active,.controls button:active,.modal button:active{transform:translateY(3px);box-shadow:inset 0 1px #f0d68e33,0 0 #050302,0 2px 6px #00000080}.btn-primary,button.primary{background:linear-gradient(180deg, var(--shu-light) 0%, var(--shu) 55%, #7d1d10 100%);border-color:var(--kin);color:#fff;text-shadow:0 1px 2px #00000080}.btn-big{letter-spacing:.3em;min-height:60px;font-size:22px}button:disabled{opacity:.4;cursor:default;transform:none!important}.chip{border:1px solid var(--kin-dark);color:var(--kin-light);background:#140d08bf;border-radius:16px;padding:5px 13px;font-size:13px}.segmented{gap:6px;display:flex}.segmented button{min-height:44px;color:var(--washi);background:#0a070499;border:1px solid #4a3826;border-radius:8px;flex:1;font-size:14px}.segmented button.on{background:linear-gradient(180deg, var(--kin-light), var(--kin) 60%, var(--kin-dark));border-color:var(--kin-light);color:#1d140b;font-weight:700}.title{text-align:center;padding-top:max(12px, env(safe-area-inset-top));justify-content:space-between}.title-key{aspect-ratio:16/9;object-fit:cover;width:calc(100% + 28px);margin:0 -14px;animation:1.1s ease-out both key-in;display:block;-webkit-mask-image:linear-gradient(#000 78%,#0000);mask-image:linear-gradient(#000 78%,#0000)}@keyframes key-in{0%{opacity:0;transform:scale(1.06)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.title-logo h1{font-family:var(--font-brush);justify-content:center;gap:.02em;margin:0;font-size:min(25vw,128px);font-weight:400;line-height:1;display:flex}.title-logo h1 span{background:linear-gradient(180deg, #fff6d6 0%, var(--kin-light) 35%, var(--kin) 65%, var(--kin-dark) 100%);color:#0000;filter:drop-shadow(0 4px 6px #000c);-webkit-background-clip:text;background-clip:text;animation:.9s cubic-bezier(.2,.8,.2,1) both logo-in}.title-logo h1 span:nth-child(2){animation-delay:.12s}.title-logo h1 span:nth-child(3){animation-delay:.24s}.title-logo h1 span:nth-child(4){animation-delay:.36s}@keyframes logo-in{0%{opacity:0;filter:blur(6px);transform:translateY(-18px)scale(1.25)}}.title-sub{font-family:var(--font-brush);letter-spacing:.18em;color:var(--kin-light);text-shadow:0 2px 6px #000;margin:4px 0 0;font-size:min(6.4vw,30px);animation:.9s cubic-bezier(.2,.8,.2,1) .5s both logo-in}.title-menu{flex-direction:column;gap:12px;width:min(100%,340px);margin:0 auto;display:flex}.title-tap{font-family:var(--font-mincho);letter-spacing:.2em;text-shadow:0 2px 6px #000;font-size:18px;font-weight:800;animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.35}}.title-note{color:var(--muted);margin:0;font-size:11px}.level-cards{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.level-card{background:#0a070499;border:1px solid #4a3826;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:10px 2px 8px;display:flex}.level-card.on{border-color:var(--kin-light);background:linear-gradient(#c9a24a59,#781e108c);box-shadow:0 0 12px #f0d68e59}.level-rank{font-family:var(--font-brush);color:var(--kin);font-size:13px}.level-name{font-family:var(--font-brush);color:var(--washi);font-size:21px}.level-desc{color:var(--muted);text-align:center;font-size:10px;line-height:1.3}.army-selects{gap:8px;display:flex}.army-select{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:12px;display:flex}.army-select select{min-height:44px;color:var(--washi);font:inherit;background:#0a0704bf;border:1px solid #4a3826;border-radius:8px;padding:0 10px;font-size:15px}.slider-row{align-items:center;gap:12px;margin:8px 0;font-size:14px;display:flex}.slider-row span{width:4em}.slider-row input,.slider{width:100%;accent-color:var(--kin);flex:1}.sound-test{flex-wrap:wrap;gap:8px;display:flex}.sound-test .chip{padding:8px 14px;font-size:14px}.credits ul{color:var(--muted);margin:0;padding-left:1.2em;font-size:12px;line-height:1.8}.intro{z-index:30;background:radial-gradient(#1e0c06db,#000000f0);justify-content:center;align-items:center;animation:.5s ease-in 4.1s forwards intro-out;display:flex;position:fixed;inset:0;overflow:hidden}.intro-curtain{background:repeating-linear-gradient(90deg,#ffffff0a 0 2px,#0000 2px 38px),linear-gradient(#3a0d08,#170503);width:50.5%;position:absolute;top:0;bottom:0;box-shadow:0 0 30px #000000e6}.intro-curtain.left{border-right:3px solid var(--kin);animation:1.1s cubic-bezier(.7,0,.3,1) .35s forwards curtain-left;left:0}.intro-curtain.right{border-left:3px solid var(--kin);animation:1.1s cubic-bezier(.7,0,.3,1) .35s forwards curtain-right;right:0}@keyframes curtain-left{to{transform:translate(-102%)}}@keyframes curtain-right{to{transform:translate(102%)}}.intro-body{text-align:center;padding:0 16px;animation:.9s ease-out .9s both intro-body;position:relative}@keyframes intro-body{0%{opacity:0;filter:blur(8px);transform:scale(1.4)}}.intro-kicker{font-family:var(--font-mincho);letter-spacing:.4em;color:var(--kin-light);text-shadow:0 2px 4px #000;margin:0 0 6px;font-weight:800}.intro-title{font-family:var(--font-brush);color:#fff;text-shadow:0 0 18px #b8321fe6,0 4px 8px #000;margin:0;font-size:min(15vw,84px);font-weight:400;line-height:1.1}.intro-note{color:var(--washi);text-shadow:0 1px 3px #000;margin:8px 0 0;font-size:12px}.intro-vs{font-family:var(--font-mincho);text-shadow:0 1px 4px #000;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:16px 0 0;font-size:15px;font-weight:800;display:flex}.intro-vs em{font-style:normal;font-family:var(--font-brush);color:var(--shu-light);font-size:26px}.intro-call{font-family:var(--font-brush);color:var(--kin-light);text-shadow:0 2px 6px #000;margin:18px 0 0;font-size:26px;animation:.6s ease-out 2.6s both intro-body}@keyframes intro-out{to{opacity:0;visibility:hidden}}.result-screen{z-index:25;background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;animation:.6s ease-out both fade-in;display:flex;position:fixed;inset:0}.result-screen.win{background-color:#3a2a10;background-image:linear-gradient(#00000026,#000000b3),url(/images/victory-bg.jpg)}.result-screen.lose{background-color:#10141a;background-image:linear-gradient(#0000004d,#000c),url(/images/defeat-bg.jpg)}.result-screen.draw{background-color:#1a120c;background-image:linear-gradient(#0006,#000c),url(/images/menu-bg.jpg)}.result-big{font-family:var(--font-brush);font-size:min(48vw,260px);line-height:1;animation:1s cubic-bezier(.2,.9,.2,1) both result-big}.win .result-big{background:linear-gradient(180deg, #fff6d6, var(--kin-light) 40%, var(--kin) 70%, var(--kin-dark));color:#0000;filter:drop-shadow(0 0 24px #f0d68eb3)drop-shadow(0 6px 10px #000);-webkit-background-clip:text;background-clip:text}.lose .result-big{color:#d9dde3;text-shadow:0 0 20px #506ea0cc,0 6px 10px #000}.draw .result-big{color:var(--washi);text-shadow:0 6px 10px #000}@keyframes result-big{0%{opacity:0;filter:blur(10px);transform:scale(2.2)}}.result-title{font-family:var(--font-mincho);letter-spacing:.15em;text-shadow:0 2px 6px #000;margin:0;font-size:26px;font-weight:800}.result-reason{color:var(--washi);text-shadow:0 1px 4px #000;margin:0 0 16px;font-size:14px}.result-buttons{flex-direction:column;gap:10px;width:min(100%,320px);animation:.5s ease-out .7s both fade-in;display:flex}.board-area{position:relative}.board-wrap{width:100%}.file-labels{color:var(--muted);text-align:center;grid-template-columns:repeat(9,1fr) 18px;font-size:11px;display:grid}.board-row{grid-template-columns:1fr 18px;display:grid}.rank-labels{color:var(--muted);grid-template-rows:repeat(9,1fr);place-items:center;font-size:11px;display:grid}.board{background:linear-gradient(135deg,#f0cc86,#dcae62);border:3px solid #4a2f14;grid-template-columns:repeat(9,1fr);display:grid;box-shadow:0 6px 18px #0009;container-type:inline-size}.cell{aspect-ratio:11/12;border:none;border-right:1px solid var(--board-line);border-bottom:1px solid var(--board-line);background:0 0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.cell:nth-child(9n){border-right:none}.cell:nth-child(n+73){border-bottom:none}.cell.star:before{content:"";background:var(--board-line);z-index:1;border-radius:50%;width:5px;height:5px;position:absolute;bottom:-3px;right:-3px}.cell.last{background:var(--last)}.cell.landed:before{content:"";pointer-events:none;z-index:2;background:radial-gradient(circle,#fff0bef2 0%,#ffbe4680 40%,#ffaa2800 70%);border-radius:50%;animation:.5s ease-out forwards landed;position:absolute;inset:-20%}@keyframes landed{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.5)}}.cell.selected{background:var(--selected)}.cell.check{background:var(--check)}.cell.target:after{content:"";background:var(--target);pointer-events:none;border-radius:50%;width:28%;height:26%;position:absolute}.cell.target.capture:after{border:3px solid var(--target);background:0 0;width:86%;height:86%}.piece{clip-path:polygon(50% 0,84% 14%,100% 100%,0 100%,16% 14%);width:86%;height:90%;color:var(--piece-text);font-family:var(--font-brush);pointer-events:none;-webkit-user-select:none;user-select:none;background:linear-gradient(170deg,#f6e2b3,#e7c88a);justify-content:center;align-items:center;padding-top:8%;font-size:7.2cqi;line-height:1;display:flex}.piece.up{transform:rotate(180deg)}.piece.promoted{color:var(--promoted)}.piece img{object-fit:contain;width:100%;height:100%}.piece.small{width:34px;height:38px;font-size:21px}.game .board-area{flex-direction:column;min-height:0;display:flex}.game .board-area .board3d.side{aspect-ratio:1/.98;flex:none}.game .board-area .board3d.front{aspect-ratio:auto;flex:1;min-height:58dvh;max-height:none}.board3d{aspect-ratio:3/4;background:radial-gradient(at 50% 45%,#462c168c 0%,#0a060333 70%);border:1px solid #c9a24a59;border-radius:10px;width:100%;max-height:70dvh;position:relative;overflow:hidden}.board3d.side{aspect-ratio:1/.86}.board3d canvas{touch-action:manipulation;width:100%;height:100%;display:block}.board3d-loading{color:var(--muted);justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;inset:0}.hand{background:linear-gradient(#281c12e0,#120c07e0);border:1px solid #c9a24a59;border-radius:8px;align-items:center;gap:8px;min-height:52px;padding:4px 10px;display:flex}.hand.compact{min-height:38px;padding:3px 12px}.hand.active{border-color:var(--shu-light);box-shadow:0 0 12px #e2553a80}.hand-name{font-family:var(--font-mincho);color:var(--washi);flex:none;min-width:4.5em;font-size:14px;font-weight:800}.hand-name .mark{color:var(--kin);margin-right:4px}.hand-pieces{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.hand-empty{color:var(--muted);opacity:.7;font-size:12px}.hand-piece{background:0 0;border:2px solid #0000;border-radius:6px;padding:1px;display:flex;position:relative}.hand-piece.selected{background:var(--selected);border-color:#4a8dff}.hand-piece .count{background:var(--shu);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;font-size:11px;line-height:18px;position:absolute;bottom:-4px;right:-4px}.hand-slot{position:relative}.status{min-height:36px;font-family:var(--font-mincho);text-shadow:0 1px 3px #000;justify-content:space-between;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.status.alert span{color:#ff8a7a}.last-move{border:1px solid var(--kin-dark);font-family:var(--font-mincho);color:var(--kin-light);background:#140d08d9;border-radius:8px;padding:5px 12px;font-size:15px;font-weight:800}.controls{gap:8px;display:flex}.controls button{flex:1}.controls.nav button{font-size:20px}.view-buttons{gap:6px;display:flex}.effect{font-family:var(--font-brush);color:#fff;text-shadow:0 0 16px var(--shu), 0 0 4px #000, 4px 4px 0 var(--shu);pointer-events:none;z-index:5;justify-content:center;align-items:center;font-size:min(26vw,140px);animation:ease-out forwards effect-pop;display:flex;position:absolute;inset:0}@keyframes effect-pop{0%{opacity:0;transform:scale(2)}15%{opacity:1;transform:scale(1)}75%{opacity:1}to{opacity:0}}.cutin{pointer-events:none;z-index:6;animation:ease-out forwards cutin-slide;position:absolute;top:50%;left:-14px;right:-14px;transform:translateY(-50%)}.cutin-band{background:linear-gradient(100deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 60%, #000) 100%);border-top:3px solid var(--kin);border-bottom:3px solid var(--kin);align-items:center;gap:14px;padding:10px 20px;display:flex;box-shadow:0 6px 24px #000000b3}.cutin.from-right .cutin-band{text-align:right;flex-direction:row-reverse}.cutin-portrait{background:var(--washi);color:#1d140b;width:74px;height:74px;font-family:var(--font-brush);border:3px solid var(--kin-light);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:22px;display:flex;overflow:hidden}.cutin-portrait img{object-fit:cover;width:100%;height:100%}.cutin-title{font-family:var(--font-brush);color:#fff;text-shadow:2px 2px #0009;font-size:42px;line-height:1.1}.cutin-name{font-family:var(--font-mincho);color:var(--kin-light);font-size:14px;font-weight:800}@keyframes cutin-slide{0%{opacity:0;clip-path:inset(0 100% 0 0)}12%{opacity:1;clip-path:inset(0)}85%{opacity:1}to{opacity:0}}.voice-bubble{z-index:7;background:var(--washi);color:#1d140b;border:1px solid var(--kin);max-width:72%;font-family:var(--font-mincho);pointer-events:none;border-radius:12px;padding:6px 12px;font-size:16px;font-weight:800;animation:.18s ease-out bubble-pop;position:absolute;right:8px;box-shadow:0 3px 10px #00000080}.voice-bubble.top{top:calc(100% + 6px)}.voice-bubble.bottom{bottom:calc(100% + 6px)}.voice-bubble .voice-name{color:#7a6448;font-size:11px;font-weight:400;display:block}@keyframes bubble-pop{0%{opacity:0;transform:scale(.8)}}.modal-bg{z-index:20;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--kin);text-align:center;background:linear-gradient(#2a1d13,#120b06);border-radius:12px;flex-direction:column;gap:12px;width:min(100%,360px);padding:18px;display:flex;box-shadow:0 10px 40px #000000b3}.modal p{font-family:var(--font-mincho);color:var(--kin-light);margin:0;font-size:19px;font-weight:800}.promo-choices{gap:12px;display:flex}.promo-choices button{flex-direction:column;flex:1;align-items:center;gap:6px;min-height:0;padding:12px 0;display:flex}.promo-choices .piece{width:56px;height:62px;font-size:34px}.modal-buttons{flex-direction:column;gap:8px;display:flex}.kifu-list{text-align:left;max-height:50vh;font-family:var(--font-mincho);grid-template-columns:1fr 1fr;gap:2px 8px;margin:0;padding:0;font-size:15px;font-weight:600;list-style:none;display:grid;overflow-y:auto}.kifu-list li{border-radius:4px;padding:4px 6px}.kifu-list .no{width:2.4em;color:var(--muted);font-size:12px;font-family:var(--font-body);display:inline-block}.review-list{background:var(--panel);border:1px solid #c9a24a59;border-radius:8px;max-height:22vh;padding:4px}.review-list li{cursor:pointer}.review-list li.start{grid-column:1/-1}.review-list li.current{background:var(--shu);color:#fff}.review-list li.current .no{color:#fff}.empty{color:var(--muted);text-align:center;margin-top:40px}.record-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.record-list li{background:var(--panel);border:1px solid #c9a24a59;border-radius:10px;display:flex}.record-main{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.record-date{color:var(--muted);font-size:12px}.record-players{font-family:var(--font-mincho);font-size:15px;font-weight:800}.record-result{color:var(--kin-light);font-size:13px}.record-delete{color:var(--muted);background:0 0;border:none;padding:0 14px;font-size:16px}.game{gap:6px;padding-left:8px;padding-right:8px}.game .topbar{grid-template-columns:auto 1fr auto;gap:6px;min-height:34px}.game .topbar .link{padding:4px 2px;font-size:14px}.game-status{line-height:1.15;font-family:var(--font-mincho);text-shadow:0 1px 3px #000;flex-direction:column;align-items:center;min-width:0;font-weight:800;display:flex}.game-status b{color:var(--kin-light);font-size:13px}.game-status span{color:var(--washi);white-space:nowrap;font-size:12px}.game-status.alert span{color:#ff8a7a}.game .chip{padding:4px 10px;font-size:12px}.game .hand.compact{min-height:28px;padding:2px 10px}.game .hand.compact .hand-name{font-size:12px}.compact-controls button{min-height:42px;padding:0 8px;font-size:15px}.compact-controls .kifu-button{color:var(--kin-light);white-space:nowrap;text-overflow:ellipsis;flex:1.3;font-size:14px;overflow:hidden}.game .board3d{border-radius:8px}.game .board3d.side{aspect-ratio:1/1.02}.game .file-labels,.game .rank-labels{font-size:10px}.game .board-row{grid-template-columns:1fr 14px}.game .file-labels{grid-template-columns:repeat(9,1fr) 14px}.settings .segmented{flex-wrap:wrap}.settings .segmented button{flex:40%;padding:6px 4px;font-size:13px;line-height:1.3}.game .board-area .board3d.none{aspect-ratio:1/1.04;flex:none}.campaign-lead,.campaign-hint,.campaign-note{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.campaign-note{font-size:11px}.campaign-reset{align-self:flex-start}.campaign-status{font-family:var(--font-mincho);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.campaign-tiers{gap:4px;display:flex}.campaign-tiers .tier{border:1px solid var(--kin-dark);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px}.campaign-tiers .tier.now{border-color:var(--kin-light);color:var(--kin-light);background:#c9a24a2e}.campaign-tiers .tier.done{border-color:var(--shu);background:var(--shu);color:var(--washi)}.japan-map{border:2px solid var(--kin-dark);touch-action:manipulation;background:radial-gradient(at 40% 40%,#e8dcbc,#c9b88f);border-radius:10px;width:100%;height:auto;display:block}.map-domain{cursor:pointer}.map-outline{fill:none;stroke:#2a1a0c;stroke-width:7px;stroke-linejoin:round}.map-province{stroke:#28190a73;stroke-width:1.2px;stroke-linejoin:round;transition:opacity .3s}.map-domain.locked .map-province{opacity:.45}.map-domain.open .map-outline{stroke:var(--kin-light);animation:1.4s ease-in-out infinite map-pulse}.map-domain.selected .map-outline{stroke:#fff6d6;stroke-width:10px}.map-domain.flash .map-province{animation:.8s ease-in-out 3 map-flash}@keyframes map-pulse{50%{stroke-opacity:.35}}@keyframes map-flash{50%{filter:brightness(2.2)}}.map-label{cursor:pointer;text-anchor:middle;font-family:var(--font-brush);paint-order:stroke;stroke:#1a0f06;stroke-linejoin:round}.map-label-name{fill:var(--washi);stroke-width:7px;font-size:34px}.map-label-tier{fill:var(--kin-light);stroke-width:5px;font-size:22px}.campaign-panel{background:var(--panel);border:1px solid var(--kin-dark);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.campaign-panel-row{align-items:center;gap:12px;display:flex}.campaign-panel-row p{margin:0}.campaign-panel-name{font-family:var(--font-mincho);color:var(--kin-light);font-size:17px}.campaign-panel-land{font-size:12px;line-height:1.5}.campaign-panel-tier{color:var(--muted);font-size:12px}.lord-portrait{border:2px solid var(--kin);background:var(--army,#333);border-radius:8px;flex:none;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.lord-portrait img{object-fit:cover;object-position:center 20%;width:100%;height:100%}.lord-portrait-ph{font-family:var(--font-brush);color:var(--washi);text-shadow:0 2px 4px #000;font-size:34px}.lord-portrait.big{border-width:3px;width:min(38vw,200px);height:min(38vw,200px)}.lord-portrait.big .lord-portrait-ph{font-size:min(20vw,110px)}.conquest-scene,.tenka-ending{z-index:30;text-align:center;background-color:#1a120c;background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px 16px;animation:.6s ease-out both fade-in;display:flex;position:fixed;inset:0}.conquest-scene.win,.tenka-ending{background-image:linear-gradient(#00000040,#000c),url(/images/victory-bg.jpg)}.conquest-scene.lose,.conquest-scene.draw{background-image:linear-gradient(#0006,#000000d9),url(/images/defeat-bg.jpg)}.conquest-lords{justify-content:center;align-items:flex-start;gap:14px;width:100%;max-width:520px;display:flex}.conquest-lord{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.conquest-lord p{margin:0}.conquest-lord.winner .lord-portrait{border-color:var(--kin-light);animation:.8s cubic-bezier(.2,.9,.2,1) both lord-in;box-shadow:0 0 28px #f0d68ecc}.conquest-lord.loser{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(12px)}.conquest-lord.loser.show{opacity:1;transform:none}.conquest-lord.loser .lord-portrait{filter:grayscale(.85)brightness(.7);border-color:#6b7380}@keyframes lord-in{0%{opacity:0;transform:scale(1.4)}}.conquest-name{font-family:var(--font-mincho);color:var(--kin-light);font-size:16px}.conquest-line{font-family:var(--font-mincho);font-size:14px;line-height:1.6}.conquest-title{font-family:var(--font-brush);color:var(--kin-light);text-shadow:0 0 18px #f0d68e99,0 4px 8px #000;opacity:0;margin:0;font-size:min(9vw,44px);transition:opacity .8s}.conquest-title.show,.conquest-scene.draw .conquest-title{opacity:1}.conquest-scene.lose .conquest-title{color:#d9dde3;text-shadow:0 0 18px #506ea0cc,0 4px 8px #000}.tenka-big{font-family:var(--font-brush);background:linear-gradient(180deg, #fff6d6, var(--kin-light) 40%, var(--kin) 70%, var(--kin-dark));color:#0000;filter:drop-shadow(0 0 24px #f0d68eb3)drop-shadow(0 6px 10px #000);-webkit-background-clip:text;background-clip:text;margin:0;font-size:min(20vw,120px);line-height:1.1;animation:1.2s cubic-bezier(.2,.9,.2,1) both result-big}.tenka-sub,.tenka-note{font-family:var(--font-mincho);margin:0}.tenka-sub{color:var(--kin-light);font-size:18px}.tenka-note{color:var(--muted);font-size:13px}.map-leader{stroke:#1a0f06;stroke-width:3px;stroke-dasharray:6 4}.map-leader-dot{fill:var(--washi);stroke:#1a0f06;stroke-width:3px}.intro-party{border-top:1px solid #c9a24a99;border-bottom:1px solid #c9a24a99;max-width:340px;margin:14px auto 0;padding:8px 12px;animation:.6s ease-out 1.8s both intro-body}.intro-party p{text-shadow:0 1px 4px #000;margin:0}.intro-party-main{font-family:var(--font-mincho);font-size:16px;font-weight:800}.intro-party-main strong{font-family:var(--font-brush);color:var(--kin-light);margin-left:6px;font-size:24px}.intro-party-detail{color:var(--washi);font-size:12px}.intro-party-history{font-family:var(--font-mincho);color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px!important}.btn-small{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.4;filter:grayscale(.6);cursor:not-allowed}.campaign-home-body{text-align:center;flex-direction:column;gap:12px;margin:auto 0;display:flex}.campaign-home-title{font-family:var(--font-brush);color:var(--kin-light);text-shadow:0 0 18px #f0d68e80,0 4px 8px #000;margin:0;font-size:min(18vw,84px)}.campaign-home-save{color:var(--muted);margin:-4px 0 6px;font-size:12px}.campaign-count{font-family:var(--font-mincho);font-size:16px}.campaign-count strong{color:var(--kin-light);font-size:24px}.campaign-sub{color:var(--muted);font-size:12px}.campaign-resume{border:1px solid var(--shu-light);background:#b8321f2e;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.campaign-brief{font-family:var(--font-mincho);font-size:14px;line-height:1.6}.campaign-brief strong{color:var(--shu-light);font-size:16px}.campaign-difficulty{border-radius:999px;padding:1px 10px;font-size:13px;font-weight:700;display:inline-block}.campaign-difficulty.d-やさしい{background:#2f6b3a}.campaign-difficulty.d-ふつう{background:#7a6326}.campaign-difficulty.d-むずかしい{background:var(--shu)}.map-province.locked{opacity:.45}.map-province.open{animation:1.6s ease-in-out infinite map-open}@keyframes map-open{50%{filter:brightness(1.45)}}.map-province.painting{animation:2.4s ease-out both map-paint}@keyframes map-paint{0%{fill-opacity:0;filter:brightness(3)}35%{fill-opacity:.4;filter:brightness(2.2)}to{fill-opacity:1;filter:none}}.map-selected{fill:none;stroke:#fff6d6;stroke-width:7px;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 6px #fff6d6e6)}.map-open-mark{cursor:pointer}.map-open-mark circle{fill:#1a0f06;stroke:var(--kin-light);stroke-width:3px}.map-open-mark text{text-anchor:middle;font-family:var(--font-brush);fill:var(--kin-light);font-size:22px}.conquest-result{opacity:0;flex-direction:column;gap:6px;transition:opacity .6s,transform .6s cubic-bezier(.2,.9,.2,1);display:flex;transform:scale(1.3)}.conquest-result.show{opacity:1;transform:none}.conquest-result .conquest-title{opacity:1;font-size:min(12vw,56px)}.conquest-info{font-family:var(--font-mincho);text-shadow:0 1px 4px #000;margin:0;font-size:14px;line-height:1.6}.conquest-info.gold{color:var(--kin-light);font-weight:700}.guide{text-align:left;max-width:360px}.guide-step{color:var(--muted);margin:0;font-size:12px}.guide-title{font-family:var(--font-brush);color:var(--kin-light);margin:4px 0 8px;font-size:26px}.guide-text,.confirm-text{margin:0 0 14px;font-size:14px;line-height:1.7}.guide-buttons{justify-content:flex-end;gap:8px;display:flex}.title-resume{border:1px solid var(--shu-light);text-align:center;background:#140d08d9;border-radius:10px;padding:10px}.title-resume p{margin:0 0 8px;font-size:13px}.title-resume-buttons{justify-content:center;gap:8px;display:flex}.map-leader,.map-leader-dot{pointer-events:none}.modal .guide-title{font-family:var(--font-brush);color:var(--kin-light);font-size:26px}.modal .guide-step{color:var(--muted);font-size:12px}.modal .guide-text{font-weight:400}.piece .piece-face{object-fit:cover;object-position:center 15%;pointer-events:none;border:1.5px solid #b8892e;border-radius:50%;height:auto;position:absolute;left:50%;transform:translate(-50%)}.piece.face-small .piece-face{aspect-ratio:1;width:46%;top:13%}.piece.face-small>span{padding-top:38%;font-size:.72em}.piece.face-large .piece-face{aspect-ratio:1;width:72%;top:9%}.piece.face-large>span{padding-top:70%;font-size:.42em}.piece.face-small,.piece.face-large{position:relative}
