:root{color-scheme:dark;--bg:#101518;--panel:#191f21;--panel-soft:#1d2426;--border:#30393a;--muted:#92a29e;--text:#eef1e7;--green:#d8ecac;--green-strong:#a9ca72;--ink:#1e2b24;--gold:#e6c57d;--red:#e29b89;--blue:#8dbcc8;--radius:18px;--icon-cut:#192022;font-family:Inter,"Avenir Next",Avenir,"PingFang TC","Microsoft JhengHei",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--text);background:radial-gradient(ellipse 60% 45% at 45% 0,#1b2825 0,transparent 80%),var(--bg);min-height:100vh;font-size:14px;line-height:1.5}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,main:focus-visible{outline:2px solid var(--green);outline-offset:4px}button{transition:background .18s,color .18s,border-color .18s,transform .18s,opacity .18s}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-decoration:none}svg{width:24px;height:24px;flex-shrink:0}img{max-width:100%;user-select:none}h1,h2,h3,p{margin:0}button svg{width:20px;height:20px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.app-shell{max-width:1552px;margin:auto;padding:0 48px}.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #293431;gap:24px}.brand{display:flex;align-items:center;gap:13px;font-family:Georgia,"Times New Roman",serif;font-size:21px;letter-spacing:3.2px;font-weight:700}.brand-mark{display:grid;place-items:center;width:42px;height:45px;border:1px solid #89a970;border-radius:12px 12px 18px 18px;color:var(--green);background:#263329}.brand-mark svg{width:27px;height:27px}.brand-sub{display:block;font:10px/1.6 system-ui,sans-serif;letter-spacing:5.2px;color:var(--muted);margin-top:2px}.edition{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:1px;color:var(--muted)}.live-dot,.save-light{height:5px;width:5px;border-radius:50%;display:inline-block;background:var(--green-strong)}.top-actions{display:flex;align-items:center;gap:12px}.quiet-button,.icon-button{background:transparent;border:1px solid transparent;color:#b8c4bb;min-height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.quiet-button{padding:0 12px;font-size:12px}.icon-button{width:44px;padding:0;font-size:28px}.quiet-button:hover,.icon-button:hover{background:#26312d;color:var(--text)}.language-button{font-size:11px;letter-spacing:1px;border-color:var(--border);min-width:44px}.help-circle{width:17px;height:17px;border:1px solid currentColor;border-radius:50%;font-size:11px;line-height:16px;text-align:center}.page-intro{display:flex;align-items:center;justify-content:space-between;padding:34px 0 29px;gap:20px}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--green-strong);font-size:9px;letter-spacing:2.2px;margin-bottom:11px;font-weight:600}.tiny-line{width:19px;height:1px;background:currentColor}h1{font-size:clamp(28px,2.6vw,40px);letter-spacing:1px;font-weight:500;line-height:1.25}.page-intro p{font-size:12px;color:var(--muted);margin-top:11px;letter-spacing:.4px}.expedition-summary{display:flex;align-items:center;gap:17px}.compass{font-size:48px;font-weight:200;color:#799177}.expedition-summary .label{display:block;font-size:10px;letter-spacing:1.7px;color:var(--muted);margin-bottom:2px}.expedition-summary strong{font-size:26px;font-weight:400;letter-spacing:1px;line-height:1.2}.expedition-summary strong span{font-size:15px;color:#718278}.game-layout{display:grid;grid-template-columns:192px minmax(0,1fr) 238px;gap:20px;align-items:start}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.journey-panel{padding:23px 19px 20px;min-height:553px;display:flex;flex-direction:column}.section-label{font-size:11px;letter-spacing:1.2px;font-weight:600;color:#d4decf;display:flex;align-items:center;justify-content:space-between;gap:9px}.section-label svg{width:16px;height:16px;color:var(--muted)}.journey-panel>.section-label:first-child{justify-content:flex-start}.journey-list{list-style:none;margin:23px 0 0;padding:0}.journey-stop{position:relative;display:flex;align-items:center;gap:11px;padding:0 0 23px;color:#788982}.journey-stop:not(:last-child):after{content:"";position:absolute;left:14px;top:31px;width:1px;height:17px;background:#37423d}.stop-number{display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid #38453e;border-radius:50%;font-size:10px;color:#8b9a8d;background:#1b2421}.stop-number svg{width:16px;height:16px}.stop-label strong{font-size:11px;font-weight:500;display:block;letter-spacing:.4px}.stop-label small{font-size:9px;color:#74867c;display:block;margin-top:2px}.journey-stop.active{color:var(--green)}.journey-stop.active .stop-number{border-color:#bdd291;color:var(--green);background:#2a3628;box-shadow:0 0 0 4px #b2d47b0b}.journey-stop.active small{color:#9cae8c}.journey-stop.complete .stop-number{background:var(--green);color:var(--ink);border-color:var(--green)}.journey-stop.complete{color:#bdc8b8}.journey-stop:last-child{padding-bottom:0}.journey-stop:last-child .stop-number{border-radius:9px;transform:rotate(45deg);font-size:9px}.journey-stop:last-child .stop-number>*{transform:rotate(-45deg)}.journey-divider{height:1px;background:var(--border);margin:23px 0 18px}.count{font-size:10px;color:#829385;padding:0 6px;border:1px solid #3d483f;border-radius:4px;line-height:16px}.relic-list{margin:14px 0 23px;display:grid;gap:10px}.empty-relic{color:#819187;font-size:10px;line-height:1.8}.relic-item{display:flex;align-items:center;gap:8px;font-size:10px;color:#cfdbc7}.relic-item svg{width:15px;height:15px;color:var(--gold)}.relic-item b{font-weight:400;color:var(--muted);margin-left:auto}.journey-bottom{display:flex;align-items:flex-start;gap:7px;margin-top:auto;color:#809084;font-size:9px;line-height:1.7}.journey-bottom .save-light{margin-top:5px;flex:none}.play-column{min-width:0}.arena{height:359px;overflow:hidden;border:1px solid #384643;border-radius:var(--radius);position:relative;background:radial-gradient(ellipse at 50% 15%,#37524f 0,#21363b 25%,#172a31 65%,#15252a 100%);isolation:isolate}.arena-scenery{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}.moon{position:absolute;width:57px;height:57px;background:#d4ddbb;border-radius:50%;top:46px;left:calc(50% - 28px);box-shadow:inset -12px 1px 0 #9cae9e55,0 0 45px #d5e8c535;opacity:.65}.moon:after{content:"";position:absolute;inset:9px 17px 21px 8px;border-radius:50%;background:#ebedc51c}.moon-halo{position:absolute;width:175px;height:175px;left:calc(50% - 87px);top:-12px;border:1px solid #ccdaba0d;border-radius:50%;box-shadow:0 0 0 32px #cfe1c003}.ray{position:absolute;top:0;height:390px;width:90px;transform:rotate(26deg);background:linear-gradient(0deg,transparent,#c5e4d60a);filter:blur(1px)}.ray-one{left:36%}.ray-two{left:54%;width:38px}.forest{position:absolute;width:100%;height:100%;inset:0}.forest-back{opacity:.65}.forest-front{opacity:.8}.arena-mist{position:absolute;inset:auto -15% -50px;height:180px;opacity:.3;background:radial-gradient(ellipse at center,#76a79588,transparent 66%)}.firefly{position:absolute;width:3px;height:3px;box-shadow:0 0 8px 2px #d2e6a37d;background:#d2e6a3;border-radius:50%;animation:firefly 5s infinite ease-in-out}.f1{left:20%;top:38%}.f2{left:43%;top:60%;animation-delay:1s}.f3{left:72%;top:32%;animation-delay:-2s}.f4{left:81%;top:73%;animation-delay:-3s}.f5{left:34%;top:80%;animation-delay:2s}.arena-top{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;position:relative}.location-tag{font-size:9px;letter-spacing:1.2px;color:#c3d0c0;display:flex;gap:7px;align-items:center}.location-dot{width:4px;height:4px;background:#acc190;transform:rotate(45deg)}.turn-tag{border:1px solid #ffffff1c;color:#b6c5b9;background:#101c2166;border-radius:5px;padding:3px 7px;font-size:9px;letter-spacing:.5px}.combatants{display:grid;grid-template-columns:1fr 46px 1fr;gap:14px;padding:0 25px;align-items:start;position:relative}.combatant{min-width:0;text-align:center;position:relative}.fighter-info{max-width:215px;margin:0 auto 2px}.fighter-meta{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:#deead8;line-height:1.5;letter-spacing:.4px}.fighter-meta>span:last-child{font-family:ui-monospace,monospace;font-size:10px;color:#afc4b7;white-space:nowrap}.health-track{height:5px;border-radius:8px;overflow:hidden;background:#09141680;margin-top:7px;border:1px solid #ffffff12}.health-fill{width:100%;height:100%;transition:width .55s ease;border-radius:8px}.player-fill{background:linear-gradient(90deg,#90ad78,#d6e9a7)}.enemy-fill{background:linear-gradient(90deg,#a45c55,#deab8e)}.fighter-art{height:206px;position:relative;margin-top:6px;display:flex;justify-content:center;align-items:flex-end;isolation:isolate}.fighter-art img{height:206px;width:auto;max-width:none;object-fit:contain;filter:drop-shadow(0 8px 4px #0003);position:relative;transform-origin:50% 90%;animation:idle 4s ease-in-out infinite}.hero-art img{animation-delay:-1s}.enemy-art img{animation-duration:5s}.ground-shadow{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);height:17px;width:124px;background:#050f11aa;border-radius:50%;filter:blur(3px);z-index:-1}.fighter-caption{font-size:9px;letter-spacing:.6px;color:#95b0a3;margin-top:13px;display:flex;align-items:center;justify-content:center;gap:6px}.caption-line{height:1px;width:12px;background:#8da993}.versus{align-self:center;display:flex;flex-direction:column;align-items:center;gap:9px;margin-top:3px;opacity:.55;color:#b2c1aa}.versus>span{height:22px;width:1px;background:linear-gradient(transparent,#a9bba75c)}.versus>span:last-child{transform:rotate(180deg)}.versus svg{width:15px;height:15px;transform:rotate(-45deg)}.intent-badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;background:#312e29cc;border:1px solid #a8835855;border-radius:7px;padding:3px 9px;font-size:9px;color:#e4c9a2;margin-top:7px;white-space:nowrap}.intent-badge svg{width:13px;height:13px}.arena-caption{position:absolute;bottom:11px;left:16px;right:16px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:8px;letter-spacing:1px;color:#8ba59a;line-height:1.4}.arena-caption>span:first-child,.arena-caption>span:last-child{width:24px;height:1px;background:#84988d55}.hand-panel{margin-top:17px;padding:21px 24px 17px;background:linear-gradient(145deg,#222a28,#1b2323);min-height:343px}.hand-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.micro{font-size:8px;letter-spacing:2px;color:var(--green-strong);font-weight:500}.hand-heading h2{font-size:17px;font-weight:500;letter-spacing:.5px;margin-top:3px}.selected-count{display:flex;align-items:baseline;gap:5px;background:#111a18;border:1px solid #354338;border-radius:8px;padding:4px 10px;white-space:nowrap}.selected-count b{font-size:17px;color:var(--green);font-weight:500}.selected-count span{font-size:11px;color:#798d7b}.dice-tray{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;max-width:453px;margin:22px auto 0}.die-wrap{position:relative;min-width:0}.die-button{display:flex;align-items:center;justify-content:center;position:relative;width:100%;aspect-ratio:1.13;min-height:65px;border-radius:15px;border:1px solid #515b51;border-bottom-width:4px;color:#e4eacb;background:linear-gradient(150deg,#3b463a,#283229);box-shadow:inset 0 1px 0 #b4c8a014,0 6px 12px #07100a20;isolation:isolate;transform-origin:center}.die-button:after{content:"";position:absolute;inset:5px;border:1px solid #b3c8a11a;border-radius:10px;pointer-events:none}.die-button>svg{width:38px;height:38px;transition:transform .22s;filter:drop-shadow(0 2px 0 #0002)}.die-button.shield{color:#b4d3da;background:linear-gradient(145deg,#39474b,#27353a);border-color:#4d636b}.die-button.star{color:#edcb88;background:linear-gradient(145deg,#494437,#353227);border-color:#6b6249}.die-button.miss{color:#929e92;background:linear-gradient(145deg,#343a36,#2b322d);border-color:#474f47}.die-button:hover:not(:disabled){transform:translateY(-3px);filter:brightness(1.13)}.die-button.selected{background:linear-gradient(145deg,#e1edb7,#bdcf8c);border-color:#849956;color:#263525;box-shadow:0 0 0 2px #c6dda52b,0 6px 17px #b9d38112;transform:translateY(-4px);--icon-cut:#accb78}.die-button.selected:after{border-color:#64804733}.die-button.selected svg{transform:scale(1.07)}.die-button.selected:hover:not(:disabled){transform:translateY(-6px)}.selected-check{position:absolute;top:-7px;right:-7px;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:var(--green);border:3px solid #202926;color:#263825;z-index:1;opacity:0;transform:scale(.7);transition:opacity .2s,transform .2s}.selected-check svg{width:12px;height:12px}.die-button.selected .selected-check{opacity:1;transform:scale(1)}.die-key{position:absolute;top:7px;left:9px;font:8px ui-monospace,monospace;opacity:.48}.die-name{text-align:center;font-size:10px;color:#a4b49f;margin-top:8px;letter-spacing:1px}.selection-hint{text-align:center;color:#94a790;font-size:10px;min-height:32px;padding-top:10px;line-height:1.5}.selection-hint.combo{color:var(--gold)}.preview-strip{display:flex;justify-content:center;align-items:center;gap:20px;margin:4px 0 17px;padding:11px 0;border-top:1px solid #49544044;border-bottom:1px solid #49544044}.preview-strip>div{display:flex;align-items:center;gap:5px;font-size:10px;color:#98a897;white-space:nowrap}.preview-strip svg{width:13px;height:13px}.preview-strip strong{font-size:13px;color:#dae5d0;font-weight:500;margin-left:2px}.preview-strip .incoming-preview{padding-left:18px;border-left:1px solid #49544066}.preview-strip .incoming-preview strong{color:#e2b4a0}.sword-color{color:#c9dbab}.shield-color{color:var(--blue)}.star-color{color:var(--gold)}.battle-actions{display:grid;grid-template-columns:1fr 1.12fr;gap:12px}.primary-button,.secondary-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:45px;padding:11px 15px;border-radius:9px;font-size:11px;letter-spacing:.3px;font-weight:600}.primary-button{background:var(--green);color:#233221;border:1px solid var(--green);box-shadow:inset 0 1px 0 #ffffff30}.primary-button:hover:not(:disabled){background:#e4f2c1;border-color:#e4f2c1;box-shadow:0 0 18px #c5de9b18}.primary-button:disabled{background:#3e4b3c;border-color:#4f5d49;color:#a7b3a0;box-shadow:none}.primary-button svg{width:19px;height:19px;margin-left:auto}.primary-button span{flex:1}.secondary-button{background:#222c26;border:1px solid #4e5c48;color:#c3d1b6}.secondary-button:hover:not(:disabled){background:#2e3c2e;border-color:#7c8e6c}.secondary-button:disabled{opacity:.5}.button-count{padding:0 5px;line-height:18px;border:1px solid #536348;border-radius:4px;font:10px/18px ui-monospace,monospace;margin-left:auto}.hand-footnote{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:8px;color:#87967f;margin-top:11px;line-height:1.5}.keyboard-hint{opacity:.8}.right-column{display:grid;gap:18px}.guide-panel{padding:22px 20px 12px}.little-diamond{color:#879b83;font-size:17px;line-height:1}.face-guide{display:grid;gap:16px;margin-top:23px}.face-guide-row{display:flex;align-items:center;gap:11px}.face-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid #435140;background:#293426;color:var(--green);flex:none}.face-icon svg{width:18px;height:18px}.face-icon.shield{background:#283539;border-color:#3c555e;color:var(--blue)}.face-icon.star{background:#353125;border-color:#5c5036;color:var(--gold)}.face-icon.miss{background:#292f2b;border-color:#3e4940;color:#8f9d8a}.face-text strong{display:block;font-size:11px;font-weight:500;color:#d5ddcc;letter-spacing:.3px}.face-text small{display:block;font-size:9px;color:#92a18c;margin-top:2px;line-height:1.5}.combo-note{display:flex;align-items:flex-start;gap:9px;padding-top:16px;border-top:1px solid #354033;margin-top:19px}.combo-stars{font-size:11px;color:var(--gold);white-space:nowrap;letter-spacing:-3px}.combo-note strong{font-size:10px;color:#d3c3a1;font-weight:500}.combo-note p{font-size:9px;line-height:1.8;color:#9eab96;margin-top:5px}.text-button{padding:0;min-height:35px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:#aabb9d;background:transparent;border:0}.text-button:hover{color:var(--green)}.text-button svg{width:14px;height:14px}.guide-panel .text-button{margin:10px 0 0 24px}.log-panel{padding:20px 19px}.log-dot{width:5px;height:5px;border:1px solid #a9b59d;border-radius:50%}.battle-log{list-style:none;margin:19px 0 0;padding:0;max-height:194px;overflow:auto;scrollbar-width:thin;scrollbar-color:#4f624a transparent}.log-item{position:relative;padding:0 0 13px 17px;margin-bottom:11px;border-bottom:1px solid #313d323b;color:#a9b6a2;font-size:9px;line-height:1.8}.log-item:last-child{border:0;margin-bottom:0;padding-bottom:0}.log-item:before{content:"";position:absolute;width:4px;height:4px;left:0;top:6px;border-radius:50%;background:#7f926f}.log-item:first-child:before{background:var(--green)}.log-time{display:block;font-size:8px;color:#81927b;margin-bottom:4px;letter-spacing:.7px}.log-item b{font-weight:500;color:#d7e3c6}.quiet-quote{padding:6px 23px 0;color:#a4b498;text-align:center}.quiet-quote>span{font:40px Georgia,serif;line-height:1;color:#607b5a}.quiet-quote p{font:italic 11px/2.1 Georgia,"PingFang TC",serif;letter-spacing:.7px;margin-top:-7px}.quiet-quote>div{color:#708768;font-size:8px;margin-top:11px;letter-spacing:1px}.page-footer{display:flex;justify-content:space-between;align-items:center;padding:25px 0 20px;color:#819078;font-size:9px;letter-spacing:.8px}.page-footer>span{display:flex;align-items:center;gap:8px}.page-footer svg{width:13px;height:13px;opacity:.6}.page-footer .text-button{min-height:44px;font-size:9px}.game-dialog{background:#1c2724;color:var(--text);border:1px solid #52604a;border-radius:21px;padding:28px;width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 100px #0009;overflow:auto}.game-dialog::backdrop{background:#051010bd;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.dialog-heading h2{font-size:23px;font-weight:500;margin-top:5px}.dialog-heading .icon-button{align-self:flex-start;font-size:26px;border:1px solid #485440;flex-shrink:0}.dialog-intro{font-size:13px;line-height:1.9;color:#bbcab1;margin:0 0 20px}.help-steps{display:grid;gap:12px;padding:0;list-style:none;margin:0 0 24px}.help-steps li{display:flex;gap:12px;color:#a9bda3;font-size:12px;line-height:1.9}.help-steps b{font-size:11px;width:25px;height:25px;background:#d6e8af18;border:1px solid #5b6d48;flex-shrink:0;text-align:center;border-radius:7px;color:var(--green);line-height:24px}.help-subtitle{font-size:12px;letter-spacing:1px;margin:19px 0 10px;color:var(--green)}.combo-table{display:grid;border:1px solid #43513c;border-radius:10px;overflow:hidden}.combo-row{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:11px 14px;background:#26302788;border-bottom:1px solid #43513c;color:#c6d2bd;font-size:11px;line-height:1.7}.combo-row:last-child{border:0}.combo-icons{display:flex;align-items:center;gap:3px}.combo-icons svg{width:17px;height:17px}.combo-row strong{display:block;color:#e3c998;font-size:11px;font-weight:500}.combo-row small{font-size:10px;color:#9aac91}.help-detail{font-size:10px;color:#95aa8a;line-height:1.9;margin:17px 0 24px}.wide{width:100%;margin-top:22px}.small-dialog{width:min(420px,calc(100vw - 32px))}.small-dialog p{font-size:13px;color:#b2c2a8;line-height:1.9}.small-dialog h2{font-size:19px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.outcome-panel{margin-top:17px;padding:28px 25px 25px;min-height:343px;text-align:center;background:radial-gradient(ellipse at top,#3b452b 0,#202a24 65%)}.outcome-icon{width:40px;height:40px;color:var(--gold);margin-bottom:10px}.outcome-panel h2{font-size:23px;font-weight:500;margin:0 0 8px}.outcome-subtitle{font-size:12px;line-height:1.9;color:#b3c2a4;max-width:450px;margin:auto}.reward-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:23px}.reward-card{text-align:left;background:#2a3629;color:#d7e4c6;border:1px solid #65764c;border-radius:12px;min-height:141px;padding:15px 12px;display:flex;flex-direction:column;align-items:flex-start}.reward-card svg{width:25px;height:25px;color:var(--gold);margin-bottom:12px}.reward-card strong{font-size:11px;font-weight:600}.reward-card small{font-size:9px;line-height:1.8;color:#9eb68d;margin-top:7px}.reward-card:hover{background:#3b4b32;border-color:var(--green);transform:translateY(-3px)}.reward-card>span{margin-top:auto;padding-top:11px;font-size:9px;color:var(--green)}.outcome-stats{display:flex;justify-content:center;gap:36px;margin:24px 0}.outcome-stats>div{display:flex;flex-direction:column;font-size:10px;color:#9baf8d}.outcome-stats strong{font-size:26px;font-weight:400;color:var(--green);margin-bottom:3px}.outcome-panel .primary-button{max-width:280px;margin:20px auto 0;width:100%}.damage-float{position:absolute;z-index:5;left:50%;top:30%;font:600 32px Georgia,serif;letter-spacing:1px;color:#f2d39b;text-shadow:0 3px 5px #08100aaa;opacity:0;pointer-events:none}.damage-float.show{animation:damage .85s ease-out both}.damage-float.heal{color:var(--green)}.fighter-art.hit img{animation:hit .45s ease both}.fighter-art.attack img{animation:attack .4s ease both}.enemy-art.defeated{opacity:.35;filter:grayscale(.7)}.rolling .die-button:not(.selected){animation:roll .52s ease-in-out both}.rolling .die-wrap:nth-child(2) .die-button{animation-delay:.025s}.rolling .die-wrap:nth-child(3) .die-button{animation-delay:.05s}.rolling .die-wrap:nth-child(4) .die-button{animation-delay:.075s}.arena.resolving:after{content:"";position:absolute;inset:0;z-index:4;background:#d5e3ba09;pointer-events:none;animation:impact .35s ease both}.arena[data-stage="1"]{background:radial-gradient(ellipse at 50% 15%,#3f425e 0,#272b47 35%,#182536 80%)}.arena[data-stage="2"]{background:radial-gradient(ellipse at 50% 15%,#455459 0,#283941 35%,#18252e 80%)}.arena[data-stage="3"]{background:radial-gradient(ellipse at 50% 15%,#4a3860 0,#30253f 35%,#20232e 80%)}.arena[data-stage="4"]{background:radial-gradient(ellipse at 50% 15%,#624339 0,#3e2d35 35%,#22232c 80%)}.arena[data-stage="4"] .moon{background:#e7b385;box-shadow:0 0 60px #db815741}.arena[data-stage="4"] .enemy-art img{height:222px}.arena[data-stage="2"] .enemy-art img{filter:hue-rotate(55deg) saturate(.75) drop-shadow(0 8px 4px #0003)}.arena[data-stage="3"] .enemy-art img{filter:hue-rotate(25deg) drop-shadow(0 8px 4px #0003)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@keyframes idle{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-4px) rotate(.6deg)}}@keyframes firefly{0%,100%{opacity:.25;transform:translate(0,0)}50%{opacity:.9;transform:translate(5px,-9px)}}@keyframes roll{0%{transform:rotate(0) translateY(0)}25%{transform:rotate(-9deg) translateY(-9px)}55%{transform:rotate(12deg) translateY(-13px)}80%{transform:rotate(-4deg) translateY(-3px)}100%{transform:rotate(0) translateY(0)}}@keyframes hit{0%,100%{transform:translateX(0)}25%{transform:translateX(11px) rotate(4deg);filter:brightness(1.4)}65%{transform:translateX(-5px) rotate(-2deg)}}@keyframes attack{0%,100%{transform:translateX(0)}40%{transform:translateX(13px) rotate(5deg)}}@keyframes damage{0%{opacity:0;transform:translate(-50%,10px) scale(.8)}20%{opacity:1;transform:translate(-50%,-8px) scale(1.1)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-45px) scale(.95)}}@keyframes impact{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
@media(min-width:1500px){.game-layout{grid-template-columns:208px minmax(0,1fr) 252px;gap:24px}.arena{height:388px}.fighter-art{height:225px}.fighter-art img{height:225px}.combatants{padding:5px 34px 0}.hand-panel{padding:23px 30px 18px}.dice-tray{max-width:485px}.journey-panel{min-height:580px}}
@media(max-width:1180px){.app-shell{padding:0 28px}.game-layout{grid-template-columns:165px minmax(0,1fr) 200px;gap:15px}.journey-panel{padding:20px 14px}.guide-panel{padding:20px 15px 12px}.log-panel{padding:19px 15px}.hand-panel{padding:20px 18px 15px}.combatants{padding:0 17px;gap:7px;grid-template-columns:1fr 32px 1fr}.fighter-art img{height:196px}.preview-strip{gap:12px}.preview-strip .incoming-preview{padding-left:12px}.battle-actions{gap:9px}.secondary-button,.primary-button{padding:10px 11px;font-size:10px}.button-count{margin-left:2px}.dice-tray{gap:12px}.die-button>svg{width:34px;height:34px}.fighter-meta{font-size:9px}.keyboard-hint{display:none}.edition{font-size:10px}.quiet-quote{padding:6px 10px}.page-intro{padding:30px 0 27px}}
@media(max-width:980px){.game-layout{grid-template-columns:155px minmax(0,1fr);gap:17px}.right-column{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:17px}.quiet-quote{display:none}.guide-panel{padding:20px}.face-guide{grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.combo-note{margin-top:15px;padding-top:13px}.guide-panel .text-button{margin-top:4px}.log-panel{padding:20px}.battle-log{max-height:205px}.journey-panel{min-height:560px}.arena{height:366px}.fighter-art img{height:212px}.fighter-art{height:212px}.hand-panel{padding:22px 25px 16px}.edition{display:none}.game-layout{align-items:stretch}.journey-panel{max-height:100%}.die-button{max-height:95px}.dice-tray{gap:16px}.primary-button,.secondary-button{font-size:11px;min-height:46px}.preview-strip{gap:24px}.preview-strip .incoming-preview{padding-left:20px}.hand-footnote{font-size:9px}}
@media(max-width:680px){.app-shell{padding:0 17px}.topbar{height:77px;gap:12px}.brand{font-size:16px;letter-spacing:2.6px;gap:9px}.brand-mark{width:34px;height:37px;border-radius:9px 9px 13px 13px}.brand-mark svg{width:21px;height:21px}.brand-sub{font-size:8px;letter-spacing:3.8px}.top-actions{gap:2px}.quiet-button{padding:0 8px}.language-button{min-width:38px;min-height:38px}.icon-button{width:40px;height:40px;min-height:40px}.help-button{width:35px;min-height:40px;padding:0}.help-button>span:last-child{display:none}.page-intro{padding:24px 0 21px;align-items:center}.eyebrow{font-size:7px;letter-spacing:1.6px;margin-bottom:9px;gap:6px}.tiny-line{width:13px}h1{font-size:28px;letter-spacing:.5px}.page-intro p{font-size:10px;max-width:255px;line-height:1.8;margin-top:9px;letter-spacing:0}.expedition-summary{gap:8px;align-self:center}.compass{display:none}.expedition-summary .label{font-size:8px;letter-spacing:.5px;white-space:nowrap}.expedition-summary strong{font-size:22px}.expedition-summary strong span{font-size:12px}.game-layout{display:flex;flex-direction:column;gap:14px}.journey-panel{padding:12px 14px;border-radius:12px;min-height:0;order:0}.journey-panel>.section-label,.journey-divider,.journey-panel>.journey-bottom{display:none}.journey-list{display:flex;justify-content:space-between;gap:6px;margin:0}.journey-stop{padding:0;flex:1;flex-direction:column;gap:6px;text-align:center;min-width:0}.journey-stop:not(:last-child):after{left:calc(50% + 20px);top:13px;width:calc(100% - 36px);height:1px;background:#43503e}.stop-number{width:26px;height:26px;font-size:9px;position:relative;z-index:1}.stop-label strong{font-size:8px;letter-spacing:0;white-space:nowrap}.stop-label small{display:none}.journey-stop:last-child .stop-number{border-radius:7px;width:23px;height:23px;margin-top:1px;margin-bottom:2px}.relic-list{display:none;margin:12px 0 0;padding-top:11px;border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.relic-list.has-relics{display:grid}.relic-item{font-size:8px;gap:4px}.relic-item svg{width:12px;height:12px}.relic-item b{margin-left:0}.play-column{order:1}.right-column{order:2;display:grid;grid-template-columns:1fr 1fr;gap:12px}.arena{height:325px;border-radius:15px}.arena-top{padding:16px 17px}.combatants{grid-template-columns:1fr 22px 1fr;gap:5px;padding:0 17px}.fighter-art{height:184px;margin-top:7px}.fighter-art img{height:187px}.arena[data-stage="4"] .enemy-art img{height:203px}.fighter-meta{font-size:9px;letter-spacing:0}.fighter-meta>span:last-child{font-size:9px}.fighter-caption{font-size:8px;margin-top:11px}.intent-badge{font-size:8px;padding:3px 7px;gap:4px}.arena-caption{font-size:7px;bottom:12px;letter-spacing:.6px}.moon{top:52px;width:44px;height:44px;left:calc(50% - 22px)}.versus svg{width:13px;height:13px}.hand-panel{padding:19px 18px 15px;margin-top:13px;min-height:325px;border-radius:15px}.hand-heading h2{font-size:17px}.micro{font-size:7px;letter-spacing:1.7px}.dice-tray{gap:13px;margin-top:21px;max-width:400px}.die-button{border-radius:12px;border-bottom-width:4px;min-height:58px}.die-button:after{border-radius:7px;inset:4px}.die-button>svg{width:31px;height:31px}.die-name{font-size:9px;margin-top:8px}.selected-check{width:19px;height:19px;top:-6px;right:-5px}.selected-check svg{width:11px;height:11px}.selected-count b{font-size:16px}.selected-count{padding:4px 9px}.selection-hint{padding-top:10px;font-size:9px;min-height:31px}.preview-strip{gap:16px;margin:5px 0 15px;padding:10px 0}.preview-strip>div{font-size:9px;gap:4px}.preview-strip strong{font-size:12px}.preview-strip svg{width:12px;height:12px}.preview-strip .incoming-preview{padding-left:13px}.primary-button,.secondary-button{min-height:46px;font-size:10px;padding:10px 11px;gap:7px}.primary-button svg,.secondary-button svg{width:18px;height:18px}.battle-actions{grid-template-columns:1fr 1.07fr;gap:10px}.button-count{font-size:9px;line-height:17px;padding:0 4px;margin-left:0}.hand-footnote{font-size:8px;justify-content:center;text-align:center;margin-top:11px}.section-label{font-size:10px}.guide-panel{padding:17px 14px 12px}.face-guide{grid-template-columns:1fr;gap:13px;margin-top:17px}.face-icon{width:29px;height:29px;border-radius:7px}.face-icon svg{width:15px;height:15px}.face-guide-row{gap:8px}.face-text strong{font-size:10px}.face-text small{font-size:8px}.combo-note{gap:7px;margin-top:15px;padding-top:12px}.combo-stars{font-size:9px}.combo-note strong{font-size:9px}.combo-note p{font-size:8px}.guide-panel .text-button{font-size:8px;margin-left:0;margin-top:7px;min-height:36px}.guide-panel .text-button svg{width:12px;height:12px}.log-panel{padding:17px 13px}.battle-log{max-height:295px;margin-top:17px}.log-item{font-size:8px;padding-left:12px}.log-time{font-size:7px}.page-footer{padding:17px 2px 20px;font-size:8px}.page-footer .text-button{font-size:8px}.outcome-panel{padding:23px 18px;min-height:325px;margin-top:13px}.outcome-panel h2{font-size:22px}.outcome-subtitle{font-size:11px}.reward-cards{gap:8px;margin-top:18px}.reward-card{padding:13px 10px;min-height:142px;border-radius:10px}.reward-card strong{font-size:10px}.reward-card small{font-size:8px}.reward-card svg{width:23px;height:23px;margin-bottom:9px}.reward-card>span{font-size:8px}.game-dialog{padding:24px 20px;border-radius:17px}.dialog-heading h2{font-size:21px}.dialog-intro{font-size:12px}.help-steps li{font-size:11px}.combo-row{padding:10px 11px;grid-template-columns:66px 1fr;gap:8px}.combo-icons svg{width:16px;height:16px}.outcome-stats{gap:29px}}
@media(max-width:370px){.app-shell{padding:0 12px}.brand{font-size:14px;letter-spacing:2px}.brand-sub{letter-spacing:2.8px}.top-actions{gap:0}.topbar{gap:5px}.page-intro{gap:8px}.page-intro p{max-width:220px;font-size:9px}.eyebrow{font-size:6px}h1{font-size:25px}.expedition-summary strong{font-size:19px}.hand-panel{padding:17px 13px 14px}.dice-tray{gap:11px}.hand-heading h2{font-size:15px}.preview-strip{gap:11px}.preview-strip .incoming-preview{padding-left:11px}.combatants{padding:0 12px;grid-template-columns:1fr 12px 1fr}.fighter-art img{height:177px}.arena{height:310px}.fighter-art{height:177px}.arena-caption{font-size:6px}.fighter-meta{font-size:8px}.intent-badge{font-size:7px}.right-column{gap:10px}.guide-panel{padding:16px 11px 10px}.log-panel{padding:16px 11px}.stop-label strong{font-size:7px}.face-text small{font-size:7px}.die-button>svg{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.firefly{opacity:.5}.damage-float.show{opacity:1;transform:translate(-50%,-15px)}}

.next-intent{font-size:7px;letter-spacing:.65px;color:#a7bbaa;text-align:center}.journey-bottom.save-unavailable{color:#e0b78f}.journey-bottom.save-unavailable .save-light{background:#e0b78f}
@media(max-width:680px){.next-intent{font-size:6px;letter-spacing:.25px}.journey-panel>.journey-bottom.save-unavailable{display:flex;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:9px}}

/* Readable controls and game information at every viewport size. */
body{font-size:15px}
.app-shell,.game-layout,.right-column,.panel,.hand-heading>div,.face-text{min-width:0}
.brand-sub{font-size:11px;letter-spacing:3px}
.section-label{font-size:13px;letter-spacing:.8px}
.micro,.eyebrow{font-size:11px;letter-spacing:1.5px}
.page-intro p{font-size:14px;line-height:1.65}
.expedition-summary .label{font-size:11px;letter-spacing:1px}
.stop-label strong{font-size:13px;letter-spacing:0;line-height:1.45;overflow-wrap:anywhere}
.stop-label small{font-size:11px;color:#a1b0a5}
.stop-number,.journey-stop:last-child .stop-number{font-size:11px}
.count{font-size:11px;line-height:19px}
.empty-relic,.relic-item{font-size:12px;line-height:1.55}
.relic-item>span{min-width:0;overflow-wrap:anywhere}
.journey-bottom{font-size:11px;line-height:1.6;color:#a0b19e}
.journey-bottom .save-light{margin-top:6px}

.arena{height:auto;min-height:0;padding-bottom:38px}
.arena-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:15px 20px 11px}
.location-tag{grid-column:1;grid-row:1;font-size:13px;letter-spacing:.2px;min-width:0;line-height:1.4}
.location-tag>span:last-child{overflow-wrap:anywhere}
.turn-tag{grid-column:2;grid-row:1;font-size:12px;white-space:nowrap}
.next-intent{grid-column:1/-1;grid-row:2;padding:4px 8px;border:1px solid #9eb3972e;border-radius:6px;background:#0d1d2266;font-size:12px;line-height:1.45;letter-spacing:.2px;color:#cfdec6;text-align:center;overflow-wrap:anywhere}
.combatants{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:12px;padding:0 22px}
.fighter-meta{font-size:13px;letter-spacing:0;gap:8px;align-items:baseline;line-height:1.45}
.fighter-meta>span:first-child{min-width:0;overflow-wrap:anywhere}
.fighter-meta>span:last-child{font-size:12px;color:#c9d8cd}
.health-track{height:8px;margin-top:7px}
.fighter-art{height:195px;margin-top:8px}
.fighter-art img{height:195px;max-width:calc(100% + 20px);object-position:center bottom}
.arena[data-stage="4"] .enemy-art img{height:210px}
.fighter-caption{font-size:12px;line-height:1.45;letter-spacing:0;margin-top:10px}
.intent-badge{display:flex;justify-content:center;width:100%;max-width:100%;min-height:40px;font-size:13px;line-height:1.45;letter-spacing:0;white-space:normal;gap:6px;padding:7px 9px;margin-top:8px}
.intent-badge svg{width:16px;height:16px}
.intent-badge>span{min-width:0;overflow-wrap:anywhere}
.arena-caption{font-size:11px;line-height:1.4;letter-spacing:.2px;text-align:center}

.hand-panel{min-height:0;padding:22px 24px 18px}
.hand-heading h2{font-size:20px;line-height:1.35;letter-spacing:0}
.selected-count{flex:none;padding:5px 10px}
.selected-count b{font-size:21px}
.selected-count span{font-size:13px;color:#a9b99c}
.dice-tray{gap:14px;max-width:460px;margin-top:18px}
.die-button{min-height:76px;max-height:none;aspect-ratio:1.1}
.die-button>svg{width:38px;height:38px}
.die-key{font-size:11px;opacity:.8}
.die-name{font-size:13px;line-height:1.4;letter-spacing:0;color:#cad8bb;margin-top:8px}
.selection-hint{font-size:13px;line-height:1.55;color:#b6c8a9;min-height:39px;padding-top:11px;overflow-wrap:anywhere}
.preview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px;margin:8px 0 14px;padding:11px 0}
.preview-strip>div{min-width:0;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:3px 5px;font-size:12px;line-height:1.4;white-space:normal;text-align:center;color:#becbb4}
.preview-strip svg{width:15px;height:15px;align-self:center}
.preview-strip strong{flex-basis:100%;font-size:22px;line-height:1.25;font-weight:600;margin-left:0}
.preview-strip .incoming-preview{padding-left:0;border-left:1px solid #74846755}
.battle-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.primary-button,.secondary-button{min-width:0;min-height:50px;font-size:14px;line-height:1.4;letter-spacing:0;padding:12px 14px;gap:8px}
.primary-button>span,.secondary-button>span:not(.button-count){min-width:0;overflow-wrap:anywhere}
.primary-button svg,.secondary-button svg{width:20px;height:20px}
.button-count{flex:none;font-size:12px;line-height:21px;padding:0 6px;margin-left:0}
.hand-footnote{font-size:11px;line-height:1.55;gap:6px 12px;color:#abbca0;letter-spacing:0}
.keyboard-hint{display:inline;opacity:.9}
.text-button,.guide-panel .text-button,.page-footer .text-button{min-height:44px;font-size:13px;line-height:1.4}
.text-button:disabled{opacity:.45}
.quiet-button{font-size:13px}
.language-button{font-size:12px}
.quiet-button,.icon-button,.language-button,.help-button,.share-button{min-height:44px;min-width:44px}
.share-button svg{width:18px;height:18px;transform:rotate(-35deg)}
.hand-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px 12px;margin-top:8px}
.hand-tools .text-button{font-size:13px;min-height:44px}
.hand-tools svg{width:17px;height:17px}
.hand-tools #clear-selection{color:#b2c0a8}
.quick-start{margin-top:13px;padding:10px 12px;background:#b7d2880c;border:1px solid #7f98653d;border-radius:10px;font-size:13px;line-height:1.6;color:#cbd9be;overflow-wrap:anywhere}
.quick-start strong{color:#e0ecc9;font-weight:600}
.turn-summary{padding:11px 13px;margin-bottom:15px;border:1px solid #8ca7753d;border-left:3px solid #a9c584;border-radius:8px;background:#101c1980;font-size:12px;line-height:1.6;color:#c3d4b5;overflow-wrap:anywhere}
.turn-summary strong{display:block;font-size:12px;line-height:1.5;color:#e0eacb;margin-bottom:3px;font-weight:600}
.turn-summary p{font-size:12px;line-height:1.6}
.hp-after{font-size:12px;line-height:1.5;color:#c6d7ba;text-align:center;margin:-3px 0 14px;overflow-wrap:anywhere}
.hp-after.lethal{color:#f0b6a0;font-weight:600}
.share-url{appearance:none;display:block;width:100%;min-width:0;max-width:100%;min-height:48px;margin:7px 0 3px;padding:11px 12px;background:#111c19;color:#e5eed8;border:1px solid #617752;border-radius:9px;font-family:inherit;font-size:16px;line-height:1.4}
.share-url:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-color:var(--green)}
.share-url::selection{background:#d8ecac;color:#1e2b24}
#share-dialog label{display:block;margin-top:17px;font-size:13px;line-height:1.5;color:#c7d6bb}
#share-message{font-size:12px;line-height:1.6;margin-top:10px;color:#c2d4b1}
#share-dialog .wide{margin-top:18px}

.face-guide{gap:16px}
.face-guide-row{min-width:0;align-items:flex-start;gap:10px}
.face-icon{width:34px;height:34px}
.face-icon svg{width:19px;height:19px}
.face-text strong{font-size:13px;line-height:1.45}
.face-text small{font-size:12px;line-height:1.55;color:#b0c0a6;overflow-wrap:anywhere}
.combo-note strong{font-size:13px;line-height:1.5}
.combo-note p{font-size:12px;line-height:1.6;color:#b4c1a9}
.combo-stars{font-size:13px}
.guide-panel .text-button{margin-left:0}
.battle-log{max-height:235px;margin-top:16px;overscroll-behavior:contain}
.battle-log:focus-visible{outline:2px solid var(--green);outline-offset:5px;border-radius:4px}
.log-item{font-size:12px;line-height:1.65;color:#bdcbb2;padding-left:13px;margin-bottom:10px;padding-bottom:11px}
.log-time{font-size:11px;line-height:1.4;letter-spacing:.2px;color:#a4b49a;margin-bottom:5px}
.page-footer{font-size:11px;letter-spacing:.2px;gap:10px;flex-wrap:wrap}
.dialog-intro,.help-steps li,.small-dialog p{font-size:14px;line-height:1.7}
.dialog-heading>div{min-width:0}
.help-steps b{font-size:12px}
.help-subtitle{font-size:13px;line-height:1.5;letter-spacing:.4px}
.combo-row{grid-template-columns:70px minmax(0,1fr);gap:10px;min-width:0}
.combo-row strong{font-size:13px;line-height:1.5}
.combo-row small{font-size:12px;line-height:1.55;color:#b6c8a8}
.help-detail{font-size:12px;line-height:1.7;color:#afc1a4}
.outcome-panel{min-height:0}
.outcome-subtitle{font-size:14px;line-height:1.65}
.reward-card{min-width:0;padding:15px 13px}
.reward-card strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.reward-card small{font-size:12px;line-height:1.55;color:#b4cba2;overflow-wrap:anywhere}
.reward-card>span{font-size:12px;line-height:1.4}
.outcome-stats{gap:clamp(16px,4vw,36px)}
.outcome-stats>div{font-size:12px;line-height:1.4;min-width:0}
.outcome-stats strong{font-size:28px}

@media(min-width:1500px){
  .fighter-art,.fighter-art img{height:215px}
  .arena[data-stage="4"] .enemy-art img{height:230px}
  .hand-panel{padding:24px 30px 20px}
  .dice-tray{max-width:480px}
}
@media(min-width:681px) and (max-width:1180px){
  .hand-panel{padding:20px}
  .hand-heading h2{font-size:19px}
  .combatants{padding:0 17px;gap:8px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}
  .fighter-meta{flex-wrap:wrap;justify-content:center;gap:0 8px;text-align:center;min-height:37px}
  .fighter-meta>span:first-child{flex-basis:100%;font-size:13px}
  .fighter-art,.fighter-art img{height:180px}
  .arena[data-stage="4"] .enemy-art img{height:195px}
  .fighter-caption,.intent-badge{font-size:12px}
  .face-guide{grid-template-columns:minmax(0,1fr)}
  .primary-button,.secondary-button{padding:11px 12px;font-size:14px}
}
@media(min-width:681px) and (max-width:980px){
  .game-layout{grid-template-columns:150px minmax(0,1fr);gap:16px}
  .journey-panel{padding:20px 12px}
  .journey-stop{gap:8px}
  .stop-label strong{font-size:12px}
  .right-column{grid-template-columns:1fr 1fr;gap:16px}
  .face-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .face-guide-row{flex-direction:column;gap:7px}
  .fighter-art,.fighter-art img{height:195px}
  .arena[data-stage="4"] .enemy-art img{height:210px}
}
@media(max-width:680px){
  .app-shell{padding:0 14px}
  .topbar{height:72px;gap:10px}
  .brand{font-size:16px;letter-spacing:1.8px;gap:8px;min-width:0}
  .brand-mark{flex:none;width:32px;height:36px}
  .brand-sub{font-size:10px;letter-spacing:1.8px}
  .top-actions{gap:2px;flex:none}
  .top-actions .icon-button,.top-actions .quiet-button{min-height:44px;height:44px;min-width:44px;padding:0 7px}
  .top-actions .icon-button,.help-button,.share-button{width:44px}
  .share-button>span{display:none}
  .help-circle{width:19px;height:19px;font-size:13px;line-height:18px}
  .page-intro{padding:18px 0 16px;gap:12px}
  .eyebrow{display:none}
  h1{font-size:25px;letter-spacing:0}
  .page-intro p{font-size:13px;line-height:1.5;max-width:340px;margin-top:7px}
  .expedition-summary .label{font-size:11px;letter-spacing:0;white-space:normal}
  .expedition-summary strong{font-size:23px}
  .expedition-summary strong span{font-size:13px}
  .game-layout{gap:12px}
  .journey-panel{padding:11px 10px}
  .journey-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .journey-stop{gap:5px}
  .stop-number{width:28px;height:28px;font-size:11px}
  .journey-stop:last-child .stop-number{width:25px;height:25px;font-size:11px}
  .stop-label{min-width:0;width:100%}
  .stop-label strong{font-size:11px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
  .journey-stop:not(:last-child):after{top:14px;left:calc(50% + 19px);width:calc(100% - 34px)}
  .relic-list.has-relics{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;padding-top:9px}
  .relic-item{font-size:12px;line-height:1.4;gap:5px;padding:4px 7px;border:1px solid #6478553b;border-radius:6px;background:#111b1540}
  .relic-item svg{width:14px;height:14px}
  .journey-panel>.journey-bottom.save-unavailable{font-size:12px;line-height:1.5;margin-top:9px;padding-top:9px}
  .arena{height:auto;padding-bottom:15px;border-radius:15px}
  .arena-top{padding:12px 13px 10px;gap:6px 8px}
  .location-tag{font-size:13px;line-height:1.35;gap:6px}
  .turn-tag{font-size:11px;padding:3px 6px}
  .next-intent{font-size:12px;letter-spacing:0;line-height:1.4;padding:4px 6px}
  .combatants{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);gap:6px;padding:0 13px}
  .fighter-meta{display:grid;grid-template-columns:minmax(0,1fr);gap:0;justify-items:center;align-content:end;font-size:13px;line-height:1.35;min-height:50px}
  .fighter-meta>span:first-child{min-height:34px;display:grid;place-items:center}
  .fighter-meta>span:last-child{font-size:12px;line-height:1.4}
  .health-track{height:8px;margin-top:6px}
  .fighter-art{height:165px;margin-top:6px}
  .fighter-art img{height:172px;max-width:calc(100% + 14px)}
  .arena[data-stage="4"] .enemy-art img{height:183px}
  .ground-shadow{width:min(100%,110px);height:13px}
  .fighter-caption,.arena-caption{display:none}
  .intent-badge{font-size:12px;line-height:1.4;min-height:40px;padding:6px 7px;gap:5px;margin-top:6px}
  .intent-badge svg{width:14px;height:14px}
  .hand-panel{padding:18px 16px 15px;margin-top:12px}
  .hand-heading{gap:9px}
  .hand-heading h2{font-size:19px;line-height:1.35}
  .micro{font-size:11px;letter-spacing:1px}
  .selected-count{padding:4px 8px}
  .selected-count b{font-size:20px}
  .selected-count span{font-size:12px}
  .quick-start{font-size:12px;line-height:1.55;padding:9px 10px;margin-top:11px}
  .hand-tools{margin-top:5px;gap:0 10px}
  .hand-tools .text-button{font-size:13px;min-height:44px}
  .turn-summary{font-size:12px;padding:10px 11px;margin-bottom:13px}
  .dice-tray{max-width:420px;margin-top:16px;gap:12px}
  .die-button{min-height:67px;aspect-ratio:1;max-height:none}
  .die-button>svg{width:34px;height:34px}
  .die-name{font-size:13px;margin-top:7px}
  .die-key{font-size:11px;top:6px;left:7px}
  .selection-hint{font-size:13px;min-height:40px;padding-top:10px;line-height:1.5}
  .preview-strip{gap:6px;padding:10px 0;margin:8px 0 12px}
  .preview-strip>div{font-size:12px;gap:3px 4px}
  .preview-strip strong{font-size:21px}
  .preview-strip .incoming-preview{padding-left:0}
  .hp-after{font-size:12px;margin:0 0 13px}
  .battle-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .primary-button,.secondary-button{min-height:50px;font-size:14px;line-height:1.4;padding:11px 10px;gap:6px}
  .primary-button svg,.secondary-button svg{width:18px;height:18px}
  .button-count{font-size:12px;line-height:21px;padding:0 5px}
  .hand-footnote{font-size:11px;margin-top:11px;line-height:1.5}
  .right-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .guide-panel,.log-panel{padding:17px 15px 12px}
  .section-label{font-size:13px;letter-spacing:.5px}
  .face-guide{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:16px}
  .face-guide-row{gap:9px}
  .face-icon{width:32px;height:32px}
  .face-icon svg{width:18px;height:18px}
  .face-text strong{font-size:13px}
  .face-text small{font-size:12px;line-height:1.5}
  .combo-note{gap:8px;margin-top:14px;padding-top:13px}
  .combo-note strong{font-size:13px}
  .combo-note p{font-size:12px;line-height:1.55}
  .combo-stars{font-size:12px}
  .guide-panel .text-button{font-size:13px;min-height:44px;margin:6px 0 0}
  .guide-panel .text-button svg{width:15px;height:15px}
  .battle-log{max-height:260px;margin-top:15px}
  .log-item{font-size:12px;line-height:1.6;padding-left:12px}
  .log-time{font-size:11px;letter-spacing:0}
  .page-footer{font-size:11px;padding:13px 0 18px;gap:3px 10px}
  .page-footer .text-button{font-size:13px}
  .outcome-panel{padding:22px 16px;min-height:0}
  .outcome-panel h2{font-size:23px;line-height:1.4}
  .outcome-subtitle{font-size:14px;line-height:1.6}
  .reward-card{padding:14px 11px}
  .reward-card strong{font-size:14px}
  .reward-card small,.reward-card>span{font-size:12px}
  .game-dialog{padding:22px 18px;max-height:calc(100dvh - 28px)}
  .dialog-heading h2{font-size:22px;line-height:1.35}
  .dialog-intro,.help-steps li,.small-dialog p{font-size:14px;line-height:1.65}
  .combo-row{padding:11px 10px;grid-template-columns:60px minmax(0,1fr);gap:8px}
  .combo-row strong{font-size:13px}
  .combo-row small,.help-detail{font-size:12px;line-height:1.6}
  .combo-icons svg{width:17px;height:17px}
  .outcome-stats{gap:22px}
}
@media(max-width:560px){
  .right-column{grid-template-columns:minmax(0,1fr)}
  .face-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 13px}
  .face-guide-row{gap:8px}
  .face-text small{font-size:11px;line-height:1.5}
  .battle-log{max-height:190px}
  .log-panel{padding-bottom:16px}
  .page-intro p{display:none}
  .reward-cards{grid-template-columns:minmax(0,1fr);gap:9px;margin-top:18px}
  .reward-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:5px 10px;min-height:0;padding:12px}
  .reward-card svg{grid-column:1;grid-row:1/3;align-self:center;width:25px;height:25px;margin:0}
  .reward-card strong{grid-column:2;grid-row:1;align-self:center;font-size:14px}
  .reward-card small{grid-column:2/-1;grid-row:2;margin:0;font-size:12px;line-height:1.5}
  .reward-card>span{grid-column:3;grid-row:1;align-self:center;justify-self:end;max-width:100px;margin:0;padding:0;font-size:12px;line-height:1.35;text-align:right}
}
@media(max-width:420px){
  .app-shell{padding:0 12px}
  .topbar{gap:7px;height:66px}
  .brand{font-size:14px;letter-spacing:1.6px}
  .brand-mark,.brand-sub{display:none}
  .top-actions{gap:0}
  .top-actions .quiet-button{padding:0 5px}
  .page-intro{padding:15px 0 13px;gap:10px}
  h1{font-size:22px;line-height:1.35}
  .expedition-summary .label{font-size:11px}
  .expedition-summary strong{font-size:21px}
  .hand-panel{padding:16px 13px 14px}
  .hand-heading h2{font-size:18px}
  .dice-tray{gap:9px}
  .die-button{min-height:60px}
  .die-button>svg{width:31px;height:31px}
  .die-key{font-size:11px;top:5px;left:6px}
  .preview-strip svg{display:none}
  .preview-strip>div{font-size:12px}
  .preview-strip strong{font-size:21px}
  .battle-actions .secondary-button>svg{display:none}
  .battle-actions .primary-button,.battle-actions .secondary-button{font-size:14px;min-height:52px}
  .combatants{padding:0 11px;gap:4px;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr)}
  .fighter-art{height:150px}
  .fighter-art img{height:157px;max-width:calc(100% + 10px)}
  .arena[data-stage="4"] .enemy-art img{height:168px}
  .intent-badge{font-size:12px;padding:6px;gap:4px}
  .face-guide{gap:14px 10px}
  .face-guide-row{gap:7px}
  .face-icon{width:28px;height:28px}
  .face-icon svg{width:16px;height:16px}
  .face-text strong{font-size:13px}
  .face-text small{font-size:11px}
  .outcome-stats{gap:18px}
  .dialog-actions{gap:9px}
  .dialog-actions .primary-button,.dialog-actions .secondary-button{font-size:14px;padding:11px 9px}
}

/* Four companions: dice, commands, and the camp between encounters. */
.phase-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 13px}
.phase-step{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:46px;padding:9px 10px;border:1px solid #3d4c42;border-radius:9px;background:#1a2421;color:#acbca5;font-size:13px;line-height:1.4;text-align:center}
.phase-step>b{display:grid;place-items:center;flex:none;width:23px;height:23px;border:1px solid #647457;border-radius:50%;font-size:12px;font-weight:500;line-height:1;color:#c9d5be}
.phase-step>span{min-width:0;overflow-wrap:anywhere}
.phase-step.active{background:#34452b;border-color:#bbd58b;color:#edf6d7;box-shadow:inset 0 -2px 0 #b2ce78}
.phase-step.active>b{background:#d8ecac;border-color:#d8ecac;color:#263522}
.phase-step.complete{background:#22352d;border-color:#688c72;color:#c7dfc8}
.phase-step.complete>b{border-color:#91b798;color:#d5edcd}
.play-column>.turn-summary{margin:0 0 13px}
.play-column>.hand-panel{margin-top:0}
.commands-panel,.camp-panel{min-width:0;padding:22px 24px 20px;background:linear-gradient(145deg,#222a28,#1b2323)}
.hand-heading{flex-wrap:wrap}
.hand-heading>div:first-child{flex:1 1 130px;min-width:0}
.fate-meter{display:grid;grid-template-columns:19px auto;align-items:center;column-gap:7px;row-gap:0;flex:none;min-height:48px;padding:6px 9px;background:#393321;border:1px solid #9d84503f;border-radius:9px;color:#ecd394}
.fate-meter>svg{grid-column:1;grid-row:1/3;width:19px;height:19px;color:#f0d18b}
.fate-copy{grid-column:2;grid-row:1;font-size:12px;line-height:1.3;color:#d7c79e}
.fate-meter>strong{grid-column:2;grid-row:2;font-size:20px;line-height:1.2;font-weight:600;letter-spacing:-.3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.hand-tools>.selected-count{margin:0 2px}
.party-list{display:grid;gap:9px;margin-top:14px}
.party-member{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 8px;background:#14211a66;border:1px solid #60724b33;border-radius:9px}
.member-emblem{display:grid;place-items:center;flex:none;width:31px;height:34px;border:1px solid #6a7b533f;border-radius:8px;background:#33402c;color:#d5e8b1}
.member-emblem svg{width:19px;height:19px}
.party-member>div{min-width:0}
.party-member>span:last-child{min-width:0}
.party-member strong{display:block;font-size:13px;line-height:1.4;font-weight:600;overflow-wrap:anywhere;color:#dfe9d2}
.party-member small{display:block;font-size:12px;line-height:1.45;margin-top:2px;color:#b6c5ab;overflow-wrap:anywhere}
.party-note,.command-intro,.forecast-note{font-size:13px;line-height:1.6;color:#b9c9ae;overflow-wrap:anywhere}
.party-note{margin:12px 0 19px;font-size:12px}
.face-text small,.hand-footnote{font-size:12px}
.command-intro{margin:13px 0 4px}
.forecast-note{margin:8px 0 14px;font-size:12px;color:#b9c6b0}
.arrow-color{color:#d0b7f2}
.face-icon.arrow,.member-emblem.arrow{color:#d9c3f9;background:#3a3249;border-color:#796389}
.die-button.arrow:not(.selected){color:#e0c8ff;background:linear-gradient(145deg,#4b3f59,#312a40);border-color:#7c648c}
.die-owner{display:grid;place-items:center;min-height:2.8em;margin-bottom:9px;font-size:13px;font-weight:600;line-height:1.4;text-align:center;color:#d9e5cb;overflow-wrap:anywhere}
.die-skill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-width:0;min-height:48px;margin-top:9px;padding:7px 5px;border:1px solid #82946466;border-radius:7px;background:#2c3828;color:#d9e9c1;font-size:12px;line-height:1.4;text-align:center;overflow-wrap:anywhere}
.die-skill:hover:not(:disabled){background:#3b4a30;border-color:#c4dc94}
.die-skill:disabled{opacity:1;background:#202a23;border-color:#485848;color:#afbfaa;cursor:not-allowed}
.die-skill strong,.die-skill small{font-size:12px;line-height:1.4;font-weight:500}
.die-faces{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));justify-items:center;align-items:center;gap:2px;margin-top:8px;padding:6px 4px;background:#111c1880;border:1px solid #70855b29;border-radius:6px}
.die-faces svg{width:12px;height:12px}
.buff-grid,.combat-forecast{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 11px}
.buff-grid>div,.combat-forecast>div{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:10px 6px;border:1px solid #53664555;border-radius:8px;background:#131f1880;text-align:center}
.buff-grid span,.combat-forecast span{font-size:12px;line-height:1.4;color:#becdb4;overflow-wrap:anywhere}
.buff-grid strong,.combat-forecast strong{margin-top:auto;font-size:21px;line-height:1.2;font-weight:600;letter-spacing:-.3px;color:#dfedc9;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.buff-grid>div:nth-child(3) strong{color:#d8c1f6}
.buff-grid>div:nth-child(4) strong{color:#ead398}
.combat-forecast>div:last-child strong{color:#edb29d}
.combo-status{padding:10px 12px;margin:10px 0 13px;border:1px solid #9d845038;border-radius:8px;background:#b3914c0a;color:#e3cc9e;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.combo-status:empty{display:none}
#lock-dice,#resolve{width:100%;min-height:52px;margin:15px 0 0;font-size:15px}
.locked-dice{display:flex;align-items:center;justify-content:center;flex:none;gap:6px;padding:8px 9px;border:1px solid #70825750;border-radius:9px;background:#142018}
.locked-dice svg{width:22px;height:22px}
.command-list{display:grid;gap:14px;margin:11px 0 17px}
.command-row{min-width:0;min-inline-size:0;margin:0;padding:10px 11px 12px;border:1px solid #60724f5c;border-radius:10px;background:#14201855}
.command-legend{max-width:100%;padding:0 6px;color:#d8e5ca;font-size:14px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.command-legend small{display:inline-block;margin-left:7px;font-size:12px;line-height:1.5;font-weight:400;color:#b7c8aa}
.command-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.command-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px;min-width:0;min-height:86px;padding:11px 10px;border:1px solid #5a6b4d;border-radius:8px;background:#263126;color:#dce8ce;text-align:left;line-height:1.45;overflow-wrap:anywhere}
.command-choice>strong{padding-right:15px;font-size:14px;line-height:1.4;font-weight:600;max-width:100%}
.command-choice>small{font-size:12px;line-height:1.55;color:#bbcbb0;max-width:100%}
.command-choice:hover:not(:disabled){background:#33432e;border-color:#afc78c}
.command-choice.chosen{background:#374a2c;border:2px solid #b9d28d;padding:10px 9px;box-shadow:inset 0 0 0 1px #d9eeb615}
.command-choice.chosen>strong{color:#eef8d7}
.command-choice.chosen::after{content:"✓";position:absolute;right:8px;top:9px;color:#d8ecac;font-size:15px;line-height:1}
.command-choice:disabled{opacity:1;background:#202724;border-color:#4b574d;color:#b8c6b1;cursor:not-allowed;box-shadow:none}
.command-choice:disabled>strong{color:#c9d1c2}
.command-choice:disabled>small{color:#acb9a5}
.commands-panel .hp-after{margin:0 0 8px}
.camp-heading{display:block;margin-bottom:13px}
.camp-heading>.micro{display:block;margin-bottom:6px}
.camp-heading>div{min-width:0}
.camp-heading h2{font-size:24px;line-height:1.35;font-weight:500;letter-spacing:0}
.camp-heading p{font-size:13px;line-height:1.6;color:#bdcdb1;margin-top:7px}
.camp-recovery{padding:10px 12px;margin:9px 0 15px;border:1px solid #829b6040;border-radius:8px;background:#32462955;color:#cdddba;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.recruit-banner{padding:12px 13px;margin:14px 0 16px;border:1px solid #ab905257;border-radius:9px;background:linear-gradient(120deg,#9273301c,#4e5f300c);color:#e3d0a5;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.recruit-banner strong{font-size:14px;color:#f0deaf}
.party-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.party-selectors label,.hero-faces-editor label,.hero-skill-editor{display:grid;gap:7px;min-width:0;font-size:13px;line-height:1.45;color:#c9d7bb;overflow-wrap:anywhere}
.camp-panel select,.camp-panel input{display:block;width:100%;min-width:0;max-width:100%;min-height:46px;border:1px solid #697e56;border-radius:8px;background:#111e18;color:#e0ecd2;padding:10px 29px 10px 10px;font-family:inherit;font-size:16px;line-height:1.4;color-scheme:dark}
.camp-panel input{padding-right:10px}
.camp-panel select:focus-visible,.camp-panel input:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-color:var(--green)}
.camp-panel select:disabled,.camp-panel input:disabled{opacity:1;color:#b4c1a9;background:#202922;border-color:#4f6045}
.hero-workshop,.collection-details{min-width:0;margin:16px 0 0;border:1px solid #62734e62;border-radius:10px;background:#111d1655}
.hero-workshop>summary,.collection-details>summary{min-height:48px;padding:13px 14px;border-radius:9px;font-size:14px;line-height:1.5;font-weight:600;color:#d6e5c4;cursor:pointer;overflow-wrap:anywhere}
.hero-workshop>summary::marker,.collection-details>summary::marker{color:#c0d99b}
.hero-workshop>summary:hover,.collection-details>summary:hover{background:#3a4b2c30}
.hero-workshop>summary:focus-visible,.collection-details>summary:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.hero-workshop[open]>summary,.collection-details[open]>summary{border-radius:9px 9px 0 0;border-bottom:1px solid #62734e50;background:#28362666}
.hero-workshop>p{margin:13px 14px;font-size:13px;line-height:1.6;color:#bfcfb2;overflow-wrap:anywhere}
.workshop-status{margin:0 14px 14px;font-size:12px;line-height:1.55;color:#d2e5b7;overflow-wrap:anywhere}
.workshop-status:empty{display:none}
.hero-faces-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px}
.hero-skill-editor{margin:14px}
.workshop-save{min-height:48px;width:calc(100% - 28px);margin:14px;font-size:14px}
.roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px}
.roster-card{min-width:0;padding:13px;border:1px solid #728c5057;border-radius:9px;background:#28372666;color:#c9d8ba}
.roster-card h3{font-size:16px;line-height:1.4;font-weight:600;color:#e4edda;margin:0 0 4px;overflow-wrap:anywhere}
.roster-card>strong,.roster-card small{display:block;font-size:12px;line-height:1.5;font-weight:500;color:#b5c8a5;overflow-wrap:anywhere}
.roster-role{font-size:12px;line-height:1.55;color:#bdcbae;overflow-wrap:anywhere}
.roster-card.locked{background:#1e292366;border-color:#56644d8a;color:#abbba0}
.roster-card.locked h3{color:#c7d1c0}
.roster-card.locked>strong,.roster-card.locked small{color:#b2bfa9}
.roster-faces{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;justify-items:center;gap:4px;margin:10px 0;padding:8px 6px;border-radius:7px;background:#101b16a3}
.roster-faces svg{width:18px;height:18px}
.roster-skill,.roster-special{font-size:12px;line-height:1.65;color:#bdcfaf;margin-top:8px;overflow-wrap:anywhere}
.roster-skill strong,.roster-special strong{color:#dfe9d1;font-weight:600}
.roster-card.locked .roster-skill,.roster-card.locked .roster-special{color:#adbea1}
.camp-actions{margin-top:18px}
.camp-actions .primary-button{width:100%;min-height:52px;margin:0;font-size:15px}

@media(min-width:681px) and (max-width:1180px){
  .commands-panel,.camp-panel{padding:20px}
  .party-member{padding:8px 6px;gap:7px}
  .member-emblem{width:27px;height:31px}
  .member-emblem svg{width:17px;height:17px}
  .party-member strong{font-size:12px}
  .party-member small{font-size:12px}
  .command-choice{padding:10px 9px}
  .command-choice.chosen{padding:9px 8px}
  .roster-grid{gap:9px;margin:12px}
  .roster-card{padding:11px}
}
@media(max-width:680px){
  .phase-track{gap:6px;margin:12px 0}
  .phase-step{gap:6px;min-height:46px;padding:8px 7px;font-size:12px;line-height:1.35}
  .phase-step>b{width:21px;height:21px;font-size:12px}
  .commands-panel,.camp-panel{padding:18px 16px 16px}
  .fate-meter{grid-template-columns:17px auto;column-gap:6px;padding:6px 8px}
  .fate-meter>svg{width:17px;height:17px}
  .fate-copy{font-size:12px}
  .fate-meter>strong{font-size:19px}
  .party-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid #59724438}
  .party-member{padding:8px;gap:8px}
  .member-emblem{width:29px;height:32px}
  .member-emblem svg{width:17px;height:17px}
  .party-member strong{font-size:13px}
  .party-member small{font-size:12px;line-height:1.35}
  .party-note{font-size:12px;line-height:1.5;margin:10px 0 2px}
  .die-owner{font-size:12px;line-height:1.35;min-height:2.7em;margin-bottom:8px}
  .die-skill{min-height:48px;font-size:12px;padding:7px 4px;line-height:1.35;margin-top:8px}
  .die-skill strong,.die-skill small{font-size:12px;line-height:1.35}
  .die-faces{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 2px;padding:6px 4px}
  .die-faces svg{width:14px;height:14px}
  .buff-grid,.combat-forecast{gap:6px;margin:14px 0 10px}
  .buff-grid>div,.combat-forecast>div{padding:9px 4px;gap:5px}
  .buff-grid span,.combat-forecast span{font-size:12px;line-height:1.35}
  .buff-grid strong,.combat-forecast strong{font-size:19px;letter-spacing:-.4px}
  .combo-status{font-size:12px;line-height:1.55;padding:9px 10px;margin:10px 0 12px}
  .locked-dice{gap:5px;padding:7px}
  .locked-dice svg{width:20px;height:20px}
  .command-intro{font-size:13px;line-height:1.55;margin:11px 0 3px}
  .command-list{gap:13px;margin-top:9px}
  .command-row{padding:9px 9px 10px}
  .command-legend{font-size:14px;padding:0 5px}
  .command-options{gap:8px}
  .command-choice{padding:10px 8px;min-height:88px;gap:5px}
  .command-choice.chosen{padding:9px 7px}
  .command-choice>strong{font-size:14px;line-height:1.4}
  .command-choice>small{font-size:12px;line-height:1.5}
  .forecast-note{font-size:12px;line-height:1.55}
  #lock-dice,#resolve{font-size:15px;min-height:52px;margin-top:14px}
  .camp-heading h2{font-size:23px;line-height:1.35}
  .camp-heading p,.camp-recovery,.recruit-banner{font-size:13px;line-height:1.55}
  .recruit-banner{padding:11px 12px}
  .party-selectors{grid-template-columns:minmax(0,1fr);gap:12px;margin:14px 0}
  .party-selectors label,.hero-faces-editor label,.hero-skill-editor{font-size:13px}
  .camp-panel select,.camp-panel input{font-size:16px;min-height:46px}
  .hero-workshop>summary,.collection-details>summary{font-size:14px;min-height:48px;padding:12px}
  .hero-faces-editor{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;margin:12px}
  .hero-skill-editor{margin:12px}
  .workshop-save{width:calc(100% - 24px);margin:12px;font-size:14px;min-height:48px}
  .roster-grid{grid-template-columns:minmax(0,1fr);gap:10px;margin:12px}
  .roster-card{padding:13px}
  .roster-card h3{font-size:16px}
  .roster-card>strong,.roster-card small,.roster-skill,.roster-special{font-size:12px}
  .roster-faces{grid-template-columns:repeat(6,minmax(0,1fr));max-width:245px;margin-top:10px;padding:8px 6px}
  .roster-faces svg{width:20px;height:20px}
  .camp-actions .primary-button{min-height:52px;font-size:15px}
}
@media(max-width:420px){
  .commands-panel,.camp-panel{padding:16px 13px 14px}
  .hand-heading{gap:9px}
  .hand-heading>div:first-child{flex-basis:120px}
  .fate-meter{padding:6px 7px;column-gap:5px}
  .fate-meter>strong{font-size:19px}
  .phase-step{padding:8px 5px;gap:5px;font-size:12px}
  .phase-step>b{width:19px;height:19px;font-size:12px}
  .party-member{padding:7px 6px;gap:6px}
  .member-emblem{width:25px;height:29px}
  .member-emblem svg{width:16px;height:16px}
  .party-member strong,.party-member small{font-size:12px}
  .die-skill{padding:6px 3px;font-size:12px}
  .buff-grid{gap:5px}
  .buff-grid>div{padding:8px 3px}
  .buff-grid strong{font-size:18px;letter-spacing:-.5px}
  .combat-forecast{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .combat-forecast strong{font-size:22px;letter-spacing:-.3px}
  .command-row{padding:8px 7px 9px}
  .command-options{gap:7px}
  .command-choice{padding:10px 7px;min-height:91px}
  .command-choice.chosen{padding:9px 6px}
  .command-choice>strong{font-size:13px;padding-right:13px}
  .command-choice>small{font-size:12px}
  .command-choice.chosen::after{right:6px;top:9px;font-size:14px}
  .locked-dice{padding:6px;gap:4px}
  .locked-dice svg{width:18px;height:18px}
  .camp-heading h2{font-size:22px}
  .hero-faces-editor,.hero-skill-editor{margin:11px}
  .hero-faces-editor{column-gap:9px}
  .workshop-save{width:calc(100% - 22px);margin:11px}
  .roster-grid{margin:11px}
}
