:root{--ink: #241d16;--ink-soft: #5f4730;--paper: #f2e3c6;--paper-deep: #dcc39b;--paper-line: #8e7251;--paper-faint: rgba(255, 248, 229, .68);--blood: #8f2e20;--blood-bright: #b14a35;--inner: #1f5d60;--gold: #8f6d2a;color:#241d16;background:#d8c7a7;font-family:STKaiti,KaiTi,"Noto Serif SC",Microsoft YaHei,serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(120deg,rgba(73,55,35,.12),transparent 24%),linear-gradient(240deg,rgba(72,91,78,.12),transparent 28%),linear-gradient(180deg,#eadcc2,#cbb68f)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(90deg,rgba(82,57,37,.06) 1px,transparent 1px),linear-gradient(rgba(82,57,37,.045) 1px,transparent 1px);background-size:28px 28px}button,input,select{font:inherit}button{min-height:42px;border:1px solid var(--paper-line);background:linear-gradient(#f9efd8,#e8d6b8);color:var(--ink);padding:9px 12px;border-radius:4px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}button:focus-visible,.fighter-card.selectable:focus-visible{outline:2px solid rgba(151,58,44,.72);outline-offset:2px}button:not(:disabled):not(.node):active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary,button.selected{background:linear-gradient(#913d2c,#692c22);color:#fff4df;border-color:#5f291f}input,select{width:100%;border:1px solid #a78a64;background:#fff9ebc7;color:#241d16;padding:12px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-shell{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;display:grid;place-items:stretch;background:linear-gradient(180deg,#f5f8f40a,#e8e1cd2e),var(--home-bg-image) center / cover no-repeat,#d9d7c9}.home-shell-desktop{background:linear-gradient(180deg,#f5f8f40a,#e8e1cd2e),var(--home-bg-wide-image) center / cover no-repeat,#d9d7c9}.home-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(255,252,242,.14),transparent 26rem),linear-gradient(90deg,rgba(47,55,47,.045) 1px,transparent 1px),linear-gradient(rgba(47,55,47,.035) 1px,transparent 1px);background-size:auto,34px 34px,34px 34px;mix-blend-mode:multiply}.home-shell:after{content:"";position:absolute;inset:16px;pointer-events:none;border:1px solid rgba(30,42,38,.22);box-shadow:inset 0 0 0 1px #fffcf46b,inset 0 0 88px #1e23201f}.home-mist-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.home-mist{position:absolute;height:26vh;min-height:160px;border-radius:999px;background:radial-gradient(ellipse at center,rgba(255,255,248,.38),rgba(255,255,248,.08) 58%,transparent 72%);filter:blur(18px);opacity:.58;animation:homeMistDrift 24s ease-in-out infinite alternate}.home-mist-a{width:68vw;left:-20vw;top:14vh}.home-mist-b{width:76vw;right:-24vw;top:38vh;animation-duration:30s;animation-delay:-8s}.home-mist-c{width:58vw;left:18vw;bottom:6vh;animation-duration:34s;animation-delay:-14s}.home-stage{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(54px,9vh,112px);padding:clamp(28px,6vw,76px);text-align:center}.home-title-image{display:block;width:clamp(320px,38vw,690px);max-width:calc(100vw - 64px);height:auto;mix-blend-mode:multiply;filter:contrast(1.14) saturate(.92) drop-shadow(0 8px 14px rgba(30,26,20,.08))}.home-enter-button{min-width:clamp(180px,18vw,260px);min-height:52px;padding:13px 34px 12px;border:1px solid rgba(80,42,34,.78);background:linear-gradient(180deg,#bc583df0,#702a1ffa),#8f2e20;color:#fff4df;box-shadow:inset 0 0 0 1px #ffe2bc57,inset 0 -10px 18px #36130e2e,0 16px 32px #221d162e;font-size:clamp(20px,2.1vw,28px);font-weight:500;letter-spacing:0}.home-enter-button:not(:disabled):hover{border-color:#632d22eb;box-shadow:inset 0 0 0 1px #ffe8c775,inset 0 -10px 18px #36130e2e,0 18px 38px #221d1638}.home-icp{position:absolute;z-index:2;left:50%;bottom:clamp(14px,2.8vh,28px);display:inline-flex;align-items:center;justify-content:center;gap:12px;margin:0;padding:4px 10px;transform:translate(-50%);border:1px solid rgba(45,54,43,.18);background:#fffcf494;color:#1f2720e0;font-size:14px;font-weight:600;line-height:1.4;white-space:nowrap;text-shadow:0 1px 0 rgba(255,252,244,.66)}.home-icp a{color:inherit;text-decoration:underline;text-underline-offset:3px}@keyframes homeMistDrift{0%{transform:translate3d(-2vw,0,0) scale(1)}to{transform:translate3d(3vw,-1.5vh,0) scale(1.04)}}@media(prefers-reduced-motion:reduce){.home-mist{animation:none}}.home-shell-mobile .home-stage{justify-content:space-between;gap:0;padding:clamp(62px,11vh,118px) 24px clamp(88px,14vh,138px)}.home-shell-mobile .home-title-image{width:min(82vw,430px);max-width:calc(100vw - 44px)}.home-shell-mobile .home-enter-button{width:min(64vw,248px);min-width:0}.home-shell-mobile .home-icp{max-width:calc(100vw - 28px);overflow:hidden;text-overflow:ellipsis;font-size:12px;gap:8px}.home-shell-desktop .home-stage{padding-bottom:clamp(72px,9vh,120px);transform:translateY(-1vh)}.login-shell{position:relative;min-height:100vh;display:grid;place-items:center;padding:clamp(18px,4vw,42px);background:radial-gradient(circle at 50% 42%,rgba(255,250,239,.74),transparent 28rem),linear-gradient(135deg,#d9c8a9,#efe6d2 48%,#c7b18e);overflow:hidden}.login-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(79,58,36,.045) 1px,transparent 1px),linear-gradient(rgba(79,58,36,.035) 1px,transparent 1px);background-size:32px 32px;opacity:.5}.login-shell:after{content:"";position:absolute;inset:12px;pointer-events:none;border:1px solid rgba(46,40,32,.28);box-shadow:inset 0 0 0 1px #fffcf46b}.login-board{position:relative;z-index:1;width:min(940px,calc(100vw - 48px));min-height:min(620px,calc(100vh - 48px));min-height:min(620px,calc(100dvh - 48px));display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(24px,5vw,74px);align-items:end;padding:42px;border:1px solid rgba(45,37,28,.58);background:linear-gradient(90deg,#f8f2e599,#faf5eb57 42%,#ecdfc7bd),var(--login-bg-wide-image) center / cover no-repeat,#efe4cf;box-shadow:inset 0 0 0 1px #fffcf4d1,inset 0 0 52px #7154361f,0 22px 56px #241d1633}.login-board:before{content:"";position:absolute;pointer-events:none;inset:8px;border:4px double rgba(127,101,70,.46)}.login-title{position:relative;display:grid;justify-items:start;align-self:start;width:min(520px,100%);margin:34px 0 0 22px}.login-title-image{display:block;width:min(500px,46vw);max-width:100%;height:auto;mix-blend-mode:multiply;filter:contrast(1.08) saturate(.9)}.login-version{position:absolute;top:34px;right:36px;padding:2px 9px;border:1px solid rgba(86,70,49,.38);color:#5f4c36;background:#fffcf4a3;font-size:13px;line-height:1.35;margin:0}.display-mode-control{position:absolute;top:24px;left:24px;z-index:3;display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(91,72,47,.38);background:#f7eed9bd;box-shadow:inset 0 0 0 1px #fffcf47a,0 8px 18px #2f241814}.display-mode-control span{color:#5e4a31;font-size:13px;font-weight:700}.display-mode-control div{display:flex;gap:4px}.display-mode-control button{min-height:28px;padding:3px 9px;border-color:#6f56377a;background:#fffcf494;color:#483522;font-size:13px;line-height:1.2}.display-mode-control button.selected{background:linear-gradient(#7f3426,#5e281f);color:#fff4df;border-color:#5e281f}.login-form{position:relative;width:330px;display:grid;gap:10px;align-self:end;justify-self:end;margin:0;padding:22px 20px 20px;border:1px solid rgba(67,52,34,.58);background:radial-gradient(circle at 12% 10%,rgba(99,77,48,.1),transparent 7.5rem),radial-gradient(circle at 88% 92%,rgba(90,68,42,.09),transparent 8rem),repeating-linear-gradient(0deg,rgba(98,74,46,.035) 0 1px,transparent 1px 7px),linear-gradient(135deg,#fffcf4db,#e8d8bce0),#ead8b8;box-shadow:inset 0 0 0 1px #fffcf4c2,inset 0 0 0 6px #8f70481a,inset 0 0 32px #6146271a,0 2px #fffcf46b,0 12px 24px #34261933}.login-form:before,.dialog:before{content:"";position:absolute;pointer-events:none;inset:8px;border:3px double rgba(124,98,65,.45);box-shadow:inset 0 0 0 1px #fffcf45c}.login-form:after,.dialog:after{content:"";position:absolute;pointer-events:none;inset:11px;background:linear-gradient(90deg,rgba(106,82,52,.54) 18px,transparent 0) left top / 38px 1px no-repeat,linear-gradient(180deg,rgba(106,82,52,.54) 18px,transparent 0) left top / 1px 38px no-repeat,linear-gradient(270deg,rgba(106,82,52,.54) 18px,transparent 0) right top / 38px 1px no-repeat,linear-gradient(180deg,rgba(106,82,52,.54) 18px,transparent 0) right top / 1px 38px no-repeat,linear-gradient(90deg,rgba(106,82,52,.54) 18px,transparent 0) left bottom / 38px 1px no-repeat,linear-gradient(0deg,rgba(106,82,52,.54) 18px,transparent 0) left bottom / 1px 38px no-repeat,linear-gradient(270deg,rgba(106,82,52,.54) 18px,transparent 0) right bottom / 38px 1px no-repeat,linear-gradient(0deg,rgba(106,82,52,.54) 18px,transparent 0) right bottom / 1px 38px no-repeat;opacity:.7}.login-form label{display:grid;gap:6px}.login-form label span,.dialog-field span{color:#4d3825;font-size:15px;font-weight:700;line-height:1.25}.login-form input,.dialog-field input,.dialog-field select{height:44px;padding:8px 10px;border:1px solid rgba(107,83,54,.68);background:linear-gradient(#fffcf49e,#ecdfc794),#eadcc0;box-shadow:inset 0 2px 5px #44301d24,0 1px #fffcf485}.login-form input:-webkit-autofill,.dialog-field input:-webkit-autofill{-webkit-text-fill-color:#241d16;box-shadow:inset 0 0 0 1000px #eadcc0,inset 0 2px 5px #44301d24,0 1px #fffcf485;transition:background-color 9999s ease-in-out 0s}.login-form input[aria-invalid=true],.form-stack input[aria-invalid=true]{border-color:#9c3d31;background:linear-gradient(#fff6ebc2,#f0daccb8),#f1d8ca}.login-form button,.dialog button{height:48px;border:1px solid rgba(93,70,43,.74);border-radius:3px;background:linear-gradient(rgba(255,252,244,.18),transparent 42%),linear-gradient(#f0e2c8,#d7bd92);font-size:18px;font-weight:700;box-shadow:inset 0 1px #fff8e88f,inset 0 -3px #5e442624,0 2px #523c2429}.login-form button.primary,.dialog button.primary{background:linear-gradient(rgba(255,232,196,.18),transparent 44%),linear-gradient(#a74733,#702b21);color:#fff4df;border-color:#5b241b;text-shadow:0 1px 0 rgba(48,20,15,.56);box-shadow:inset 0 0 0 1px #ffe7c129,inset 0 -4px #3b16113d,0 2px #3a20183d}button.secondary,.login-form button.secondary,.dialog button.secondary{background:linear-gradient(rgba(211,244,232,.1),transparent 45%),linear-gradient(#2b6264,#183d40);color:#fff4df;border-color:#163638;text-shadow:0 1px 0 rgba(13,35,36,.58);box-shadow:inset 0 0 0 1px #d9f6e91f,inset 0 -4px #081c1d3d,0 2px #2a211633}.login-status{margin:0;min-height:30px;display:flex;align-items:center;justify-content:center;padding:5px 9px;border:1px solid rgba(96,112,73,.48);color:#36472d;background:linear-gradient(#fffcf457,#e2ecd394),#eef4e19e;font-size:13px;line-height:1.35;text-align:center;box-shadow:inset 0 1px 3px #463a2414}.login-status.is-pending{border-color:#8e6d3185;color:#694d21;background:linear-gradient(#fffcf452,#f2e1b899),#faecc69e}.login-status.is-danger{border-color:#92413294;color:#743024;background:linear-gradient(#fffcf44d,#eccec2a8),#f8e0d4ad}.login-message{margin:0;min-height:36px;display:flex;align-items:center;justify-content:center;padding:6px 9px;border:1px solid rgba(146,65,50,.5);color:#773327;text-align:center;background:linear-gradient(#fffcf44d,#f1dacb9e),#fff0e294;font-size:14px;line-height:1.4;box-shadow:inset 0 1px 3px #46301c14}.login-message.auth-message.is-empty{visibility:hidden}.character-name-option{min-height:64px;display:grid;place-items:center;border:1px solid rgba(102,79,51,.64);background:radial-gradient(circle at 18% 14%,rgba(114,84,48,.08),transparent 5rem),linear-gradient(#fffcf494,#e5d3b49e),#ead9b9;color:#241d16;font-size:24px;font-weight:700;box-shadow:inset 0 0 0 1px #fffcf485,inset 0 0 0 5px #7c624114}.login-hint{margin:-4px 0 0;color:#6b5135;font-size:13px;line-height:1.45}.seal,.eyebrow{margin:0;color:#773327;font-weight:700}.login-actions,.form-stack,.panel-actions,.battle-actions{display:grid;gap:10px}.dialog{position:relative;z-index:2;width:min(430px,calc(100vw - 28px));max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;padding:28px 24px 24px;border:1px solid rgba(54,43,29,.66);background:radial-gradient(circle at 16% 10%,rgba(92,69,41,.1),transparent 7rem),radial-gradient(circle at 90% 86%,rgba(83,61,36,.09),transparent 7rem),repeating-linear-gradient(0deg,rgba(98,74,46,.035) 0 1px,transparent 1px 7px),linear-gradient(135deg,#fffcf4e6,#e5d4b8f0),#ead8b8;box-shadow:inset 0 0 0 1px #fffcf4c2,inset 0 0 0 6px #8f70481a,inset 0 0 32px #6146271a,0 18px 48px #14110e57}.login-modal-backdrop{place-items:center;padding:14px;overflow:auto;background:#15120f57;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.dialog h2,.drawer-page h2,.battle-view h2{position:relative;margin:0 0 16px;text-align:center;font-size:28px;letter-spacing:0}.dialog h2{margin-bottom:18px;color:#2f2419;font-size:26px;font-weight:700;text-shadow:0 1px 0 rgba(255,248,232,.64)}.dialog h2:after{content:"";display:block;width:118px;height:1px;margin:9px auto 0;background:linear-gradient(90deg,transparent,rgba(107,82,52,.55),transparent)}.dialog-field{display:grid;gap:6px}.create-character-dialog{width:min(560px,calc(100vw - 28px))}.origin-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.origin-option{min-height:74px;display:grid;align-content:center;justify-items:start;gap:4px;padding:9px 10px;text-align:left;border:1px solid rgba(101,78,49,.55);background:linear-gradient(#fffcf475,#e0cfb180),#ead9b9;box-shadow:inset 0 0 0 1px #fffcf46b,inset 0 -2px #63492a14}.origin-option strong{font-size:17px}.origin-option small{color:#6a5237;font-size:12px;line-height:1.35}.origin-option.selected{color:#241d16;border-color:#20575a;background:linear-gradient(#fffcf475,#d0e1d361),#e3d3ae;box-shadow:inset 0 0 0 1px #20575a3d,inset 0 -2px #183d401f,0 0 0 1px #fff7e5b3}.dialog .segmented button{color:#241d16;border:1px solid rgba(101,78,49,.55);background:linear-gradient(#fffcf475,#e0cfb180),#ead9b9;box-shadow:inset 0 0 0 1px #fffcf46b,inset 0 -2px #63492a14}.dialog .segmented button.selected{color:#241d16;border-color:#20575a;background:linear-gradient(#fffcf475,#d0e1d361),#e3d3ae;text-shadow:none;box-shadow:inset 0 0 0 1px #20575a3d,inset 0 -2px #183d401f,0 0 0 1px #fff7e5b3}.initial-attributes{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:8px;border:1px solid rgba(101,78,49,.48);background:repeating-linear-gradient(90deg,rgba(111,86,55,.06) 0 1px,transparent 1px 25%),linear-gradient(#fffcf46b,#e0cfb175),#ead9b9;box-shadow:inset 0 0 0 1px #fffcf45c}.initial-attributes span{display:grid;justify-items:center;gap:3px;min-width:0}.initial-attributes em{color:#674f34;font-size:12px;font-style:normal}.initial-attributes strong{font-size:18px}.login-shell-mobile{padding:14px 10px}.login-shell-mobile .display-mode-control{top:8px;left:12px}.login-shell-mobile .login-board{width:min(360px,calc(100vw - 24px));height:min(820px,calc(100vh - 28px));height:min(820px,calc(100dvh - 28px));min-height:0;grid-template-columns:1fr;grid-template-rows:auto auto;align-content:start;gap:clamp(76px,12vh,112px);gap:clamp(76px,12dvh,112px);padding:30px 20px 24px;background:linear-gradient(#f8f2e55c,#ecdfc799),var(--login-bg-image) center / cover no-repeat,#efe4cf}.login-shell-mobile .login-title{justify-items:center;margin:66px 0 0;width:100%}.login-shell-mobile .login-title-image{width:min(330px,82vw)}.login-shell-mobile .login-version{top:20px;right:18px;padding:1px 7px;font-size:12px}.login-shell-mobile .login-form{width:min(304px,100%);align-self:start;justify-self:center}.login-shell-desktop .login-board{width:min(940px,calc(100vw - 48px));min-height:min(620px,calc(100vh - 48px));min-height:min(620px,calc(100dvh - 48px));grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:none;gap:clamp(24px,5vw,74px);padding:42px}.login-shell-desktop .login-title{justify-items:start;width:min(520px,100%);margin:34px 0 0 22px}.login-shell-desktop .login-title-image{width:min(500px,46vw)}.login-shell-desktop .login-version{top:34px;right:36px}.login-shell-desktop .login-form{width:330px;justify-self:end}@media(max-width:720px){.login-shell{padding:14px 10px}.login-board{width:min(360px,calc(100vw - 24px));min-height:calc(100vh - 28px);min-height:calc(100dvh - 28px);grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:22px;padding:28px 20px 20px}.login-title{justify-items:center;margin:34px 0 0;width:100%}.login-title-image{width:min(320px,86vw)}.login-version{top:26px;right:18px}.login-form{width:min(304px,100%);justify-self:center}.login-modal-backdrop{align-items:start;padding:12px}.dialog{width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:22px 18px 18px}.create-character-dialog{width:min(340px,calc(100vw - 24px))}.origin-option-grid{grid-template-columns:1fr;gap:6px}.origin-option{min-height:52px;padding:7px 9px}.dialog h2{margin-bottom:12px;font-size:24px}.dialog h2:after{margin-top:7px}.dialog button{height:44px;min-height:44px}.dialog-field input,.dialog-field select{height:42px}}@media(max-width:380px),(max-height:680px){.login-shell{padding:14px 10px}.login-board{min-height:calc(100vh - 28px);min-height:calc(100dvh - 28px);padding:26px 18px 18px}.login-title{margin-top:56px}.login-title-image{width:min(286px,84vw)}.login-form{margin-top:28px;padding:14px}.dialog{width:min(330px,calc(100vw - 20px));max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);padding:20px 16px 16px}.dialog h2{margin-bottom:8px;font-size:22px}.form-stack{gap:7px}.dialog-field{gap:4px}.dialog-field input,.dialog-field select{height:38px;padding:8px 10px}.dialog button{height:40px;min-height:40px;font-size:16px}.origin-option{min-height:46px}.origin-option small{display:none}.initial-attributes{gap:4px;padding:6px}.initial-attributes strong{font-size:16px}}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.app-shell{position:relative;width:min(430px,100%);min-height:100vh;margin:0 auto;padding:0 0 78px;background:linear-gradient(#fffaeb2e,#78563314),var(--paper-deep);box-shadow:0 0 0 1px #070504,0 0 28px #18100b80}.connection-banner{position:sticky;top:0;z-index:22;min-height:30px;padding:6px 12px;border-right:4px double #8e7251;border-bottom:4px double #8e7251;border-left:4px double #8e7251;background:#fff3cf;color:#674728;font-size:13px;line-height:1.25;text-align:center}.connection-banner.is-danger{border-color:#884338;background:#f3d8ce;color:#743024}.status-scroll{position:relative;display:grid;grid-template-columns:64px 1fr 82px;gap:10px;align-items:center;height:112px;padding:8px 10px;border:4px double var(--paper-line);background:linear-gradient(90deg,rgba(93,65,39,.08),transparent 24%,transparent 76%,rgba(93,65,39,.08)),linear-gradient(#f7ead0,#dec9a8);box-shadow:inset 0 0 0 1px #fffae68c}.status-scroll:before,.status-scroll:after{content:"";position:absolute;right:92px;left:88px;height:1px;background:linear-gradient(90deg,transparent,rgba(98,75,47,.34),transparent)}.status-scroll:before{top:19px}.status-scroll:after{bottom:19px}.portrait-mark{display:grid;place-items:center;width:56px;aspect-ratio:1;border-radius:50%;border:3px double #806544;background:radial-gradient(circle at 42% 28%,#f7ead0 0 18%,transparent 19%),linear-gradient(145deg,#31483e,#d8c19d 52%,#5b372d);color:#f8ecd3;font-size:30px;font-weight:800;box-shadow:0 0 0 3px #3c27171f}.status-main{display:grid;gap:6px}.name-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;font-size:16px}.name-row strong{font-size:21px}.status-bar-row{display:grid;grid-template-columns:38px 1fr 54px;align-items:center;gap:7px}.status-bar-row em{font-style:normal;font-size:13px}.status-bar{height:16px;padding:2px;border:1px solid #725739;background:#c8b48e;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,7px 100%,0 50%)}.status-bar i{display:block;height:100%;clip-path:inherit}.status-bar.blood i{background:linear-gradient(90deg,#7d2419,var(--blood-bright))}.status-bar.inner i{background:linear-gradient(90deg,#17474c,#2d7678)}.status-bar.neutral i{background:linear-gradient(90deg,#77531e,#aa8437)}.money-display{min-height:62px;display:grid;place-items:center;gap:4px;border:0;border-left:1px solid rgba(111,84,52,.45);border-radius:0;background:transparent;color:#241d16;box-shadow:none}.money-display span{font-size:13px}.money-display strong{font-size:17px;line-height:1.15;word-break:keep-all;white-space:normal}.main-grid{display:grid;grid-template-rows:430px 132px 240px;gap:0}.paper-panel,.drawer-page,.battle-view{border:4px double var(--paper-line);background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 35%),linear-gradient(#f3e7ce,#dfc7a1);box-shadow:inset 0 0 0 1px #fffae675}.map-panel{position:relative;display:grid;grid-template-rows:42px 96px 220px;align-content:start;gap:8px;height:430px;overflow:hidden;padding:14px;background:#b8a27a}.map-panel-with-overlay{padding:0}.map-panel-head{display:flex;align-items:start;justify-content:space-between;gap:10px;min-width:0}.map-panel-head .brush-title{flex:1}.map-expand-button{z-index:1;min-height:38px;padding:6px 12px;color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f;white-space:nowrap}.brush-title{position:relative;display:inline-block;z-index:1;align-self:start;justify-self:start;padding:7px 14px;max-width:100%;height:40px;color:#f8eed8;font-size:19px;font-weight:800;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(90deg,#1d1a17,rgba(29,26,23,.82),transparent)}.scene-desc{position:relative;z-index:1;max-width:100%;margin:0;color:#3b2c20;line-height:1.5;font-size:14px;max-height:88px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}.node-map{position:relative;z-index:1;display:block;height:220px;border:0;background:transparent}.map-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.map-lines line{stroke:#5f462b;stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 1px 0 rgba(237,219,181,.55))}.map-line-segments line{stroke:#5f462b;stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 1px 0 rgba(237,219,181,.55))}.node{position:relative;z-index:1;position:absolute;width:76px;height:46px;transform:translate(-50%,-50%);display:grid;place-items:center;padding:4px 6px;border:3px double #9a8769;background:#ead8b8;box-shadow:inset 0 0 0 1px #fff8e7a6,0 5px 10px #3a281a24}.node:disabled{opacity:1}.node strong{font-size:13px;line-height:1.15;white-space:normal;text-align:center}.node.current{border-color:#913d2c;background:#ead8b8;box-shadow:inset 0 0 0 2px #913d2c,0 4px 9px #3a281a29;color:#2a1d13}.node.blocked{border-color:#8b4f3b;background:#dec8a3;color:#4b3524}.node.context{border-color:#8f7b5e;color:#6a573f;background:#e2cfab;box-shadow:inset 0 0 0 1px #fff8e773,0 3px 7px #3a281a1f}.node.exit{width:86px;border-color:#6b7d55;background:#dce5ca;color:#263823}.node.exit strong{display:grid;gap:2px}.node.exit strong span{font-size:11px;font-weight:700;color:#637057}.node.exit.context{border-color:#89916d;background:#d7d9c0;color:#637057}.node.exit.blocked{border-color:#8b4f3b;background:#dec8a3;color:#4b3524}.map-modal-backdrop{position:absolute;inset:0;place-items:center;padding:0;overflow:hidden;z-index:32}.full-map-sheet{width:100%;height:100%;max-width:100%;max-height:100%;box-sizing:border-box;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:8px;padding:12px;overflow:hidden;border:4px double #9b7851;background:radial-gradient(circle at 88% 16%,rgba(52,79,67,.1),transparent 11rem),linear-gradient(#f3e4c7,#e2c9a5);box-shadow:inset 0 0 0 2px #f4e5c6b8}.full-map-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.full-map-header h2{margin:0;font-size:24px;line-height:1.15}.full-map-header span{color:#6d5840;font-size:14px}.full-map-header button{min-height:34px;padding:5px 12px;color:#fff4df;background:linear-gradient(#913d2c,#692c22);border-color:#692c22}.full-map-tabs{justify-self:start;min-width:min(320px,100%)}.full-map-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}.full-map-toolbar button{min-height:32px;min-width:42px;padding:4px 8px;color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f}.full-map-toolbar span{min-width:48px;text-align:center;color:#5c3d27;font-weight:700}.full-map-body{position:relative;min-height:0;border:3px double #9a8769;background:linear-gradient(#fff7e570,#fff7e570),#b8a27a;overflow:hidden}.map-transform-viewport{touch-action:none;overscroll-behavior:contain;cursor:grab;-webkit-user-select:none;user-select:none}.map-transform-viewport:active{cursor:grabbing}.map-transform-layer{position:absolute;inset:0;transform-origin:0 0;will-change:transform}.full-map-canvas{display:block;overflow:visible}.map-svg-node{color:#241d16;cursor:pointer;outline:none}.map-svg-node rect{fill:#ead8b8;stroke:#9a8769;stroke-width:3;filter:drop-shadow(0 5px 6px rgba(58,40,26,.14))}.map-svg-node text{fill:currentColor;font-size:13px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.map-svg-node.current{color:#2a1d13}.map-svg-node.current rect{stroke:#913d2c;stroke-width:5}.map-svg-node.blocked{color:#4b3524}.map-svg-node.blocked rect{fill:#dec8a3;stroke:#8b4f3b}.map-svg-node.context{color:#6a573f;cursor:default}.map-svg-node.context rect{fill:#e2cfab;stroke:#8f7b5e}.map-svg-node.exit{color:#263823}.map-svg-node.exit rect{fill:#dce5ca;stroke:#6b7d55}.map-svg-node.exit.context{color:#637057;cursor:default}.map-svg-node.exit.context rect{fill:#d7d9c0;stroke:#89916d}.map-svg-node.exit.blocked{color:#4b3524}.map-svg-node.exit.blocked rect{fill:#dec8a3;stroke:#8b4f3b}.map-svg-node:focus-visible rect{stroke-width:5}.full-node-map{height:100%;min-height:100%}.full-node{width:76px;height:44px}.world-node-map .map-lines line,.world-node-map .map-line-segments line{stroke-dasharray:4 4}.world-region{width:90px;height:48px;pointer-events:none}.scene-panel{padding:8px;height:132px}.ornament-title,.scroll-cap{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px;color:#5c3d27;font-size:20px;font-weight:800}.ornament-title:before,.ornament-title:after,.scroll-cap:before,.scroll-cap:after{content:"";flex:1;height:1px;background:#9d835e}.object-list{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,52px);gap:6px;min-height:110px;align-content:start}.object-list button{position:relative;min-height:0;height:52px;display:grid;place-items:center;gap:2px;padding:4px 3px;border:2px double #9a8769;background:#eee1c7e6}.object-list span{display:grid;place-items:center;width:23px;aspect-ratio:1;border-radius:50%;border:1px solid #8e7251;color:#f8edd7;background:#334e48}.object-list strong{display:grid;place-items:center;width:100%;min-width:0;font-size:11px;line-height:1.15;text-align:center;overflow-wrap:anywhere;word-break:break-word}.object-list button.player-unit strong,.object-list button.battle-npc strong{padding-bottom:10px}.object-list button.player-unit{background:#e2eee5eb}.object-list button.page-unit{background:#dacdb1f5}.object-list button.page-unit span{background:#6b563b}.object-list button.battle-npc,.object-list button.battle-player{border-color:#8b3f34}.object-list button.practice-player{border-color:#587047;background:#e2eed9f0}.object-list button.player-unit em{position:absolute;right:3px;bottom:2px;color:#71342b;font-size:9px;font-style:normal;line-height:1}.object-list button.practice-player em{color:#42643c}.object-list button.battle-npc em{position:absolute;right:3px;bottom:2px;color:#8b3f34;font-size:9px;font-style:normal;line-height:1}.info-panel{position:relative;height:240px;padding:14px 18px 12px;border:2px solid #7c5e3c;box-shadow:inset 0 0 0 2px #f4e5c6b8}.target{margin:8px 0 10px;padding:8px 10px;color:#71342b;border-top:1px solid rgba(137,108,75,.45);border-bottom:1px solid rgba(137,108,75,.45)}.quest-list{display:grid;gap:10px}.quest-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.quest-tabs button{min-height:46px;border:3px double #9a8769;font-size:18px}.quest-tabs .selected{background:linear-gradient(#2d5d5d,#1f4042);color:#fff4df}.quest-card{display:grid;gap:6px;padding:10px;border:3px double #9a8769;background:#fff6e294}.quest-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.quest-card header strong{font-size:20px}.quest-card header span{color:#71342b;font-size:15px}.log-list{max-height:none;overflow:auto;display:flex;flex-direction:column;gap:7px}.info-panel .log-list{height:142px;padding-right:10px;scrollbar-gutter:stable;overscroll-behavior:contain}.chat-line{color:#375146}.system-line{color:#71342b}.warning-line{color:#8b3f34}.chat-input{position:absolute;left:18px;right:18px;bottom:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 64px;grid-template-rows:26px 32px;gap:5px 6px;height:63px}.chat-channel-tabs{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.chat-input .chat-channel-tabs button{height:26px;min-height:0;padding:0 6px;font-size:12px}.chat-input .chat-channel-tabs .selected{color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f}.chat-input input{grid-column:1 / 4;min-width:0;height:32px;padding:5px 8px;border:1px solid #8e7251;background:#fff6e2c7;color:#241d16}.chat-input button{height:32px;padding:0 8px;font-size:13px}.log-list p{position:relative;margin:0;line-height:1.5;white-space:pre-line}.log-list p{padding-left:0}.info-prefix{display:inline-block;margin-right:6px;color:#5f4730;font-weight:700}.bottom-nav{position:absolute;left:0;bottom:0;z-index:5;width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:0;border:4px double #8e7251;background:linear-gradient(#ebdcc0,#d4bd98)}.bottom-nav button{min-width:0;min-height:70px;display:grid;place-items:center;gap:2px;padding:4px 1px;border:0;border-right:1px solid rgba(112,86,55,.35);background:transparent}.bottom-nav button:last-child{border-right:0}.bottom-nav span{display:grid;place-items:center;width:30px;aspect-ratio:1;border-radius:50%;color:#f7ecd4;background:#3b332b;font-weight:800}.bottom-nav .selected span{background:#813a2d}.subpage-backdrop{position:absolute;inset:0;place-items:center;padding:16px;z-index:12}.menu-backdrop,.character-backdrop{padding:0;width:100%;transform:none}.drawer-page,.menu-sheet{position:relative;width:100%;max-height:none;height:100%;overflow:auto;margin:0;padding:18px;box-shadow:0 16px 42px #00000057;border-radius:0}.character-sheet{display:grid;grid-template-rows:auto repeat(5,min-content);gap:8px;width:100%;max-width:none;height:100%;max-height:none;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;border-radius:0;padding:12px}.character-sheet h2{margin-bottom:4px;font-size:26px}.profile-block,.sheet-section{border:3px double #9a8769;background:#fff6e294;padding:8px}.hero-profile{display:grid;grid-template-columns:.85fr 1.15fr;gap:10px}.hero-profile>div:first-child{display:grid;gap:8px}.profile-name{font-size:28px;line-height:1}.profile-vitals{display:grid;gap:5px}.profile-vitals p{display:flex;justify-content:space-between;margin:0;padding-bottom:6px;border-bottom:1px solid rgba(127,97,61,.4)}.sheet-section h3{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 7px;font-size:19px}.sheet-section h3:before,.sheet-section h3:after{content:"";flex:1;height:1px;background:#9d835e}.sheet-grid{display:grid;gap:6px}.sheet-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.section-status-row{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;padding:6px 10px;border:1px solid rgba(142,114,81,.45);background:#f8eed880}.section-status-row strong{min-width:48px;color:#2f2117;text-align:right}.info-cell{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:2px solid rgba(142,114,81,.45);background:#f8eed880}.info-cell strong{font-weight:500}.attribute-cell{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:2px solid rgba(142,114,81,.45);border-radius:0;background:#f8eed880}.attribute-cell.selected{color:#fff4df;border-color:#5f291f;background:linear-gradient(#913d2c,#692c22)}.attribute-cell strong{font-weight:500}.attribute-note{margin:7px 0 0;padding:6px 8px;color:#5f4b33;font-size:13px;line-height:1.4;border:1px solid rgba(142,114,81,.4);background:#fff8e985}.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.equipment-slot{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;color:inherit;text-align:left;border:2px solid rgba(142,114,81,.45);border-radius:0;background:#f8eed880}.equipment-slot:not(:disabled):hover{border-color:#5f291fbf;background:#fff6e2c7}.equipment-slot:disabled{cursor:default;opacity:.74}.equipment-slot strong{font-weight:500}.martial-sheet{display:grid;grid-template-rows:auto auto auto auto 1fr;gap:12px;padding:14px;position:relative}.martial-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;gap:12px;padding-right:78px}.martial-header h2{margin:0;text-align:left}.martial-header div{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:10px}.martial-header div span{white-space:nowrap}.martial-header strong{min-width:44px;max-width:92px;padding:5px 10px;overflow:hidden;color:#f8ecd4;text-align:center;text-overflow:ellipsis;background:linear-gradient(90deg,#1d1a17,#1d1a17d1)}.martial-class-tabs,.martial-tabs{display:grid;gap:7px}.martial-class-tabs{grid-template-columns:repeat(3,1fr)}.martial-tabs{grid-template-columns:repeat(5,1fr)}.martial-class-tabs button,.martial-tabs button{min-height:48px;border:3px double #9a8769;font-size:18px}.martial-class-tabs .selected,.martial-tabs .selected{background:linear-gradient(#2d5d5d,#1f4042);color:#fff4df}.move-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.move-slot-group{display:grid;grid-template-rows:22px 72px;gap:4px;min-width:0}.move-slot-label{display:block;color:#4b3927;font-size:14px;line-height:20px;text-align:center}.move-slot{min-height:72px;display:grid;align-content:center;justify-items:center;padding:8px 4px;border:2px solid rgba(142,114,81,.45);background:#f8eed880}.move-slot strong{font-size:16px;font-weight:500;color:#241d16;text-align:center}.reserve-panel{min-height:86px;display:grid;align-content:center;justify-items:center;gap:8px;padding:12px;border:2px solid rgba(142,114,81,.45);background:#f8eed880}.reserve-panel strong{font-size:20px;font-weight:500}.reserve-panel span{color:#6d5840}.inner-practice-panel{min-height:92px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px}.inner-practice-panel>div,.inner-practice-panel>span{min-height:54px;display:grid;align-content:center;gap:4px;padding:8px;border:2px solid rgba(142,114,81,.45);background:#f8eed880}.inner-practice-panel>span{grid-column:2 / -1;text-align:center;color:#6d5840}.inner-practice-panel span{color:#6d5840;font-size:13px}.inner-practice-panel strong{font-size:18px;line-height:1.2}.inner-practice-panel button{min-height:54px;color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f}.learned-list,.move-list{display:grid;gap:7px}.learned-row,.move-row{min-height:48px;display:grid;align-items:center;gap:8px;padding:7px 8px;border:2px solid rgba(142,114,81,.45);background:#f8eed880}.learned-row{grid-template-columns:1.25fr .7fr 1fr 72px}.learned-row-clickable{cursor:pointer}.learned-row-clickable:hover{background:#fff6e2c2}.move-row{grid-template-columns:1.25fr 1fr 72px}.learned-row button,.move-row button{min-height:34px;padding:4px 8px;color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f}.learned-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.learned-row-actions button{min-width:0;padding-inline:4px}.name-with-badge,.button-title-with-badge{display:inline-flex;align-items:center;gap:6px;min-width:0}.grade-badge{display:inline-grid;place-items:center;min-width:34px;padding:1px 6px;border:1px solid rgba(49,38,26,.22);border-radius:3px;color:#fdf5df;font-size:12px;font-style:normal;line-height:1.45;white-space:nowrap;box-shadow:inset 0 1px #ffffff2e}.grade-badge.grade-1{background:#746b5d}.grade-badge.grade-2{background:#3f7652}.grade-badge.grade-3{background:#356b8e}.grade-badge.grade-4{background:#73518d}.grade-badge.grade-5{background:#a97726}.grade-badge.grade-6{background:#9b3a31}.grade-badge.grade-7{background:linear-gradient(135deg,#b98024,#2d8173)}.empty-row{margin:0;padding:12px;text-align:center;border:2px solid rgba(142,114,81,.45)}.martial-detail-layer{position:absolute;inset:72px 18px 18px;z-index:2;display:grid;align-items:start;padding:0;background:transparent}.martial-detail-sheet{width:100%;max-height:100%;display:grid;grid-template-rows:auto auto auto;gap:10px;padding:14px;overflow:auto;border:4px double #8e7251;background:radial-gradient(circle at 90% 88%,rgba(52,79,67,.1),transparent 10rem),linear-gradient(#f1e4c9,#dfc9a7);box-shadow:0 12px 28px #2118113d}.qinggong-detail-sheet{grid-template-rows:auto auto minmax(180px,auto)}.move-detail-sheet{grid-template-rows:auto auto auto auto}.detail-back{justify-self:start;min-height:36px;padding:5px 14px;color:#fff4df;background:linear-gradient(#913d2c,#692c22)}.martial-detail-header{display:grid;gap:5px;text-align:center}.martial-detail-header h2{margin:0;font-size:25px}.martial-detail-header h2 .grade-badge{margin-left:7px;transform:translateY(-2px)}.martial-detail-header span{color:#6d5840}.martial-summary,.move-description-panel{display:grid;gap:7px;padding:9px;border:3px double #9a8769;background:#f6e7c7}.martial-summary{grid-template-columns:auto auto;align-items:center}.martial-summary p{grid-column:1 / -1}.martial-summary p,.move-description-panel p{margin:0;line-height:1.55}.compact-move-section{padding:7px}.martial-technique-bonus-line{display:inline-flex;align-items:center;width:max-content;max-width:100%;white-space:nowrap;font-weight:500}.detail-move-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.detail-move-column{display:grid;grid-template-rows:20px 58px;gap:5px;min-width:0}.detail-move-card{min-height:58px;padding:8px 4px;border:2px solid rgba(142,114,81,.55);background:#f8edd4;color:#241d16;font-size:16px;line-height:1.25;display:grid;align-content:center;justify-items:center;gap:3px}.detail-move-card.selected{border-color:#2d5d5d;box-shadow:inset 0 0 0 1px #2d5d5d5c}.detail-move-card.locked{border-color:#776b5873;background:#eee0c4;color:#6b5a45}.detail-move-card small{display:block;font-size:12px;line-height:1.2}.detail-move-card:disabled,.equip-move-button:disabled{opacity:.7}.equip-move-button{min-height:32px;padding:4px 6px;color:#fff4df;background:linear-gradient(#2d5d5d,#1f4042);border-color:#284d4f}.move-detail-equip{justify-self:end;min-width:92px;min-height:34px;padding:5px 16px;font-size:15px}.practice-overlay{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:22px;background:#120e0a7a}.practice-panel{width:min(310px,100%);min-height:300px;display:grid;align-content:center;justify-items:center;gap:14px;padding:24px 20px;border:5px double #9a7a54;background:#f6ebd3e6;box-shadow:0 18px 44px #18100b57;text-align:center}.practice-symbol{display:grid;place-items:center;width:92px;aspect-ratio:1;border:4px double #7b5f3d;border-radius:50%;color:#fff4df;background:radial-gradient(circle at 40% 28%,rgba(246,229,195,.55),transparent 28%),linear-gradient(145deg,#244f50,#8f392d);font-size:48px;font-weight:800}.practice-panel strong{font-size:24px}.practice-panel .practice-mode-label{min-height:0;line-height:1;color:#7a5d3c;font-weight:700}.practice-panel span{min-height:44px;line-height:1.5;color:#5d4731}.practice-exp-row{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 10px;border:1px solid rgba(114,87,57,.42);background:#fff8e9a3;color:#5d4731}.practice-exp-row span{min-height:0;line-height:1.2}.practice-exp-row strong{min-width:0;font-size:17px;text-align:right}.practice-progress{width:100%;height:18px;padding:2px;border:2px solid #725739;background:#c8b48e}.practice-progress i{display:block;height:100%;background:linear-gradient(90deg,#24595b,#913d2c);transition:width 60ms linear}.practice-panel button{width:100%;color:#fff4df;background:linear-gradient(#913d2c,#692c22);border-color:#713629}.move-description-panel{align-content:start;min-height:0;overflow:auto}.move-description-panel h3{margin:0;text-align:center;font-size:22px}.move-description-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:5px;border-bottom:1px solid rgba(142,114,81,.5)}.move-description-heading strong{font-size:20px;font-weight:500}.move-description-heading span{color:#6d5840}.move-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.move-stat-grid .info-cell{min-height:32px;padding:5px 7px}.qinggong-description-panel{min-height:178px;overflow:visible}.meridian-sheet{gap:14px}.meridian-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.meridian-card,.trait-slot-card{border:1px solid rgba(67,56,43,.18);border-radius:8px;padding:10px;background:#fffcf4b8;display:grid;gap:8px}.meridian-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}.meridian-card p{margin:0;color:#6d5d47;font-size:.9rem}.meridian-card small,.trait-slot-card small{color:#7b6b54;line-height:1.35}.meridian-card button,.trait-slot-card button{justify-self:start}.trait-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.trait-candidate-list{margin-top:10px}.settings-actions{display:grid;gap:14px;margin-top:28px}.settings-actions button{min-height:54px;border:4px double #9b8a70;font-size:21px}.modal-close{position:absolute;top:12px;right:12px;min-height:36px;padding:5px 12px;background:linear-gradient(#913d2c,#692c22);color:#fff4df}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-grid span,.mini-card,.inventory-row{border:3px double #9a8769;background:#fff6e2ad;padding:10px}.card-list{display:grid;gap:10px}.mini-card{display:grid;gap:8px}.mini-card h3,.mini-card p{margin:0}.inventory-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(72px,auto) minmax(34px,auto);align-items:center;column-gap:12px;text-align:left}.inventory-row span{min-width:0}.inventory-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-row span:nth-child(2),.inventory-row span:nth-child(3){color:#5d4b37;text-align:right;font-size:15px}.equipped-badge{display:inline-block;margin-left:6px;padding:1px 5px;color:#fff4df;font-size:12px;font-style:normal;background:#7b372b}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:end center;padding:10px 8px 84px;background:#0c0a088f}.modal-backdrop.interaction-backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-backdrop.login-modal-backdrop{place-items:center;padding:14px;overflow:auto}.login-shell-mobile>.login-modal-backdrop{position:absolute;inset:50% auto auto 50%;width:min(360px,calc(100vw - 24px));height:min(820px,calc(100vh - 28px));height:min(820px,calc(100dvh - 28px));transform:translate(-50%,-50%);align-items:start;padding:12px}.login-shell-mobile>.login-modal-backdrop .dialog{width:min(320px,calc(100% - 24px));max-height:calc(100% - 24px);padding:22px 18px 18px}.login-shell-mobile>.login-modal-backdrop .create-character-dialog{width:min(320px,calc(100% - 24px))}.login-shell-mobile>.login-modal-backdrop .dialog h2{margin-bottom:12px;font-size:24px}.login-shell-mobile>.login-modal-backdrop .dialog button{height:44px;min-height:44px}.login-shell-mobile>.login-modal-backdrop .dialog-field input,.login-shell-mobile>.login-modal-backdrop .dialog-field select{height:42px}.login-shell-mobile>.login-modal-backdrop .origin-option-grid{grid-template-columns:1fr;gap:6px}.login-shell-mobile>.login-modal-backdrop .origin-option{min-height:52px;padding:7px 9px}.app-shell>.modal-backdrop:not(.subpage-backdrop){z-index:30}.app-shell>.map-modal-backdrop{position:absolute;inset:0;z-index:32;place-items:stretch;padding:0;overflow:hidden}.subpage-backdrop{position:absolute;inset:0;z-index:12}.menu-backdrop,.character-backdrop{width:100%;padding:0;transform:none}.interaction-panel{width:min(410px,100%);max-height:78vh;overflow:auto;padding:20px;border:6px double #9b7851;border-radius:16px 16px 6px 6px;background:radial-gradient(circle at 82% 32%,rgba(94,84,69,.1),transparent 10rem),linear-gradient(#f3e4c7,#e2c9a5);box-shadow:0 -16px 40px #00000061;white-space:pre-line}.interaction-panel h2{margin:0 0 12px;font-size:34px}.panel-description,.npc-speech{margin:0 0 12px;padding:14px;border:3px double rgba(148,118,80,.48);line-height:1.7}.panel-description{min-height:72px}.npc-speech{min-height:58px;color:#71342b;background:#fff6e26b}.interaction-panel .panel-actions{margin-top:6px}.debug-item-form{display:grid;gap:10px}.debug-item-form label{display:grid;gap:5px;color:#59452d;font-size:14px;font-weight:700}.debug-item-form input{min-height:40px;padding:8px 10px;border:2px solid rgba(112,88,56,.46);border-radius:6px;background:#fff8e6c2;color:#352719;font:inherit}.effect-summary{display:grid;gap:4px;padding:7px 8px;border:1px solid rgba(112,88,56,.36);background:#fff8e685;color:#59452d;font-size:13px;line-height:1.45}.effect-summary span{overflow-wrap:anywhere}.effect-summary span.locked{color:#7a6a53}.panel-actions button{min-height:48px;font-size:20px;border:4px double #9b8a70}.panel-actions button span{display:block;margin-top:4px;color:#6f5a3d;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.panel-actions button span.button-title-with-badge{display:inline-flex;margin-top:0;color:inherit;font-size:20px}.panel-actions button:first-child{border-color:#24595b}.battle-view{position:absolute;inset:0;z-index:28;display:grid;grid-template-rows:auto minmax(374px,42%) minmax(176px,1fr) auto;gap:8px;padding:13px;overflow:hidden;background:linear-gradient(#f9f0dde6,#eeddbcf5),linear-gradient(180deg,rgba(40,34,26,.12),transparent 92px),#e8d7b6;border:6px double #8e714d}.battle-view h2{position:relative;margin:0;color:#17110d;text-align:center;font-size:34px;line-height:1.1;font-weight:900;text-shadow:0 1px 0 rgba(255,248,230,.72)}.battle-view h2:after{content:"";display:block;width:172px;height:13px;margin:2px auto 0;background:linear-gradient(90deg,transparent,rgba(63,48,30,.34),transparent);clip-path:polygon(0 40%,42% 44%,50% 0,58% 44%,100% 40%,58% 56%,50% 100%,42% 56%)}.battle-field{padding-bottom:5px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch;border-bottom:3px double rgba(109,88,64,.45)}.battle-side{display:grid;grid-template-rows:auto 1fr;min-width:0}.battle-side h3{margin:0 0 5px;text-align:center;font-size:19px;font-weight:700}.ally-side h3{color:#20565a}.enemy-side h3{color:#8b2d25}.enemy-side{padding-left:8px;border-left:0}.fighter-stack{min-height:0;display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px}.battle-divider{display:none}.fighter-slot.empty{min-height:0;border:0;background:transparent}.fighter-card{min-height:0;display:grid;grid-template-rows:auto auto auto auto;gap:1px;padding:4px 6px;border:3px double #9a8769;background:linear-gradient(90deg,#fffbeed6,#f6e8c7b8),#fff6e2ad;box-shadow:0 2px #47311d0f;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease,opacity .18s ease}.fighter-card.enemy{border-color:#9a4e43;background:linear-gradient(90deg,#fff4e8db,#f2dcc3bd),#fff6e2ad}.fighter-card.selectable{cursor:pointer}.fighter-card.selected{box-shadow:0 0 0 2px #f3e4c7f2,0 0 0 4px #8b2d2552}.fighter-card.ready{border-color:#b78a35;box-shadow:0 0 0 1px #ffefbec2,0 0 12px #ab802b3d}.fighter-card.wounded{box-shadow:inset 3px 0 #973020a3}.fighter-card.defeated{opacity:.58;filter:grayscale(.3)}.fighter-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;min-width:0}.fighter-card strong{font-size:12px;font-weight:600;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fighter-title span{font-size:10px;line-height:1.05;color:#6f5a3d;white-space:nowrap}.fighter-row,.fighter-status{display:grid;grid-template-columns:23px minmax(0,1fr) 35px;align-items:center;gap:2px;font-size:10px;line-height:1.1}.fighter-status{grid-template-columns:minmax(0,1fr) auto}.fighter-status .fighter-tactic{color:#20565a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fighter-status-effects{min-width:28px;display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;overflow:hidden}.fighter-status-icon{width:14px;height:14px;display:inline-grid;place-items:center;border:1px solid rgba(32,86,90,.52);background:linear-gradient(#fffff9d1,#dce8dbb8),#edf1e6;color:#20565a;font-size:10px;font-weight:700;line-height:1}.fighter-card.enemy .fighter-title span,.fighter-card.enemy .fighter-status-icon,.fighter-card.enemy .fighter-status .fighter-tactic{color:#8b2d25}.fighter-card.enemy .fighter-status-icon{border-color:#8b2d2585;background:linear-gradient(#fffff9d1,#edddd6b8),#f0e6dc}.hp{height:7px;padding:1px;border:1px solid #725739;background:#c8b48e}.hp i,.inner-bar i{display:block;height:100%}.hp i{background:linear-gradient(90deg,#7b2116,#b74b34)}.inner-bar{height:7px;padding:1px;border:1px solid #725739;background:#c8b48e}.inner-bar i{background:linear-gradient(90deg,#17484d,#2c7377)}.action-bar{height:7px;padding:1px;border:1px solid #725739;background:#c8b48e}.action-bar i{display:block;height:100%;background:linear-gradient(90deg,#765323,#bd9238)}.battle-inner-traits{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.battle-inner-traits button{min-width:108px;display:flex;justify-content:center;gap:8px;align-items:center}.battle-actions{grid-template-columns:repeat(4,1fr);gap:8px}.battle-actions button{min-height:48px;color:#fff2dd;font-size:19px;border:3px double rgba(255,238,205,.45)}.battle-actions button.selected{outline:2px solid #f3e4c7;box-shadow:0 0 0 2px #3a2d2059 inset}.battle-actions button:nth-child(1){background:linear-gradient(#9a3b28,#68281e)}.battle-actions button:nth-child(2){background:linear-gradient(#265e63,#1d4549)}.battle-actions button:nth-child(3){background:linear-gradient(#92703a,#66502d)}.battle-actions button:nth-child(4){background:linear-gradient(#5d5850,#3b3834)}.battle-action-slot{position:relative;min-width:0}.battle-action-slot.close{grid-column:1 / -1}.battle-action-trigger{width:100%;display:flex;min-height:48px;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.08;box-shadow:inset 0 0 0 1px #fff6db38}.battle-action-trigger strong{font-size:18px}.battle-action-trigger span{max-width:100%;overflow:hidden;color:#f8e6be;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.battle-actions>.battle-action-slot:nth-child(1) .battle-action-trigger{background:linear-gradient(#a3432e,#68281e)}.battle-actions>.battle-action-slot:nth-child(2) .battle-action-trigger{background:linear-gradient(#28696d,#1d4549)}.battle-actions>.battle-action-slot:nth-child(3) .battle-action-trigger{background:linear-gradient(#92703a,#66502d)}.battle-actions>.battle-action-slot:nth-child(4) .battle-action-trigger,.battle-action-slot.close .battle-action-trigger{background:linear-gradient(#5d5850,#3b3834)}.battle-action-popover{position:absolute;right:0;bottom:calc(100% + 8px);left:0;z-index:18;display:grid;gap:6px;min-width:142px;padding:8px;border:4px double #8d7657;background:#f1dfba;box-shadow:0 10px 24px #32221847}.battle-action-popover button{display:flex;min-height:34px;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;color:#3c2c1f;font-size:13px;line-height:1.15;border:1px solid rgba(72,53,36,.38);background:linear-gradient(#fff5da,#dfc796)}.battle-action-popover button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-action-popover button span{flex:0 0 auto;color:#6d4a2d;font-size:12px}.battle-action-popover button.selected{outline:2px solid #8f3328;background:linear-gradient(#f5dba6,#c89f66)}.battle-action-trigger:disabled,.battle-action-popover button:disabled{opacity:.55}@media(min-width:760px){.app-shell{margin-top:18px;margin-bottom:18px;min-height:calc(100vh - 36px)}}@media(max-width:560px){.full-map-sheet{gap:7px;padding:10px}.full-map-header{gap:8px}.full-map-header h2{font-size:22px}.full-map-header span{font-size:12px}.full-map-header button{min-height:34px;padding:4px 10px}.full-map-tabs{justify-self:stretch;width:100%}.full-map-tabs button{min-height:34px;padding:4px 8px}.full-map-toolbar{justify-content:stretch;gap:5px}.full-map-toolbar button{flex:1;min-width:0;min-height:32px;padding:4px 6px}.full-map-toolbar span{min-width:42px;font-size:13px}.full-map-body{border-width:2px}.full-node{width:76px;height:44px}.world-region{width:90px;height:48px}.full-node strong{font-size:12px}}@media(max-width:380px){.status-scroll{grid-template-columns:52px 1fr 74px;gap:6px}.portrait-mark{width:48px}.name-row strong{font-size:19px}.node-map{gap:9px}.object-list{grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,48px);gap:5px}.object-list button{height:48px}.battle-actions{grid-template-columns:repeat(2,1fr)}}.app-shell{background:linear-gradient(180deg,#f8f9f4f5,#e3e9e1f5),#edf0ea;color:#26231f}.app-shell-mobile{width:min(430px,100%)}.app-shell-desktop{width:min(1320px,100%);min-height:100vh;padding:0}.app-shell .paper-panel,.app-shell .drawer-page,.app-shell .battle-view{border-color:#7c7467;background:linear-gradient(135deg,rgba(255,255,255,.48),transparent 38%),linear-gradient(#f7f8f2,#e8eee6);box-shadow:inset 0 0 0 1px #ffffff9e}.status-scroll{grid-template-columns:minmax(0,1fr) 92px;height:112px;border-color:#72695f;background:linear-gradient(90deg,rgba(53,79,76,.08),transparent 26%,transparent 76%,rgba(112,58,46,.06)),linear-gradient(#f8f8f1,#e6ece4)}.status-scroll:before,.status-scroll:after{right:112px;left:18px;background:linear-gradient(90deg,transparent,rgba(77,84,76,.32),transparent)}.status-side-actions{display:grid;gap:6px;align-content:center;min-width:0}.settings-display,.money-display{min-height:38px;border:1px solid rgba(91,86,78,.46);background:#f9fbf5a8;box-shadow:inset 0 0 0 1px #ffffff8a}.settings-display{padding:5px 8px;color:#f7f4ea;background:linear-gradient(#276066,#1f484d);border-color:#244b4f}.money-display{min-height:44px;border-left:1px solid rgba(91,86,78,.46)}.desktop-menu{display:none}.mobile-menu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.bottom-nav{border-color:#777066;background:linear-gradient(#f6f7f1,#e2e8df)}.bottom-nav button{min-height:64px;padding:8px 2px}.bottom-nav strong{font-size:17px}.bottom-nav .selected strong,.desktop-menu .selected strong{color:#873428}.main-grid{grid-template-rows:430px 144px 246px}.app-shell .map-panel{isolation:isolate;grid-template-rows:auto minmax(54px,auto) minmax(0,1fr);height:430px;padding:12px;border-color:#6d665d;background:linear-gradient(#f4f7f06b,#ecf2ea94),var(--location-bg-image) center / cover no-repeat,#dfe8df}.map-panel:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(245,248,241,.58),transparent 96px),radial-gradient(circle at 50% 54%,transparent,rgba(33,31,27,.18))}.map-panel>*{position:relative;z-index:1}.map-panel-head{align-items:center}.brush-title,.scene-desc{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.brush-title{height:auto;min-height:36px;color:#292521;font-size:18px;font-weight:800;background:#f8f9f4c7;border:1px solid rgba(80,75,66,.42);box-shadow:inset 0 0 0 1px #ffffff8f}.map-expand-button{min-height:34px;color:#f7f4ea;background:linear-gradient(#276066,#1f484d);border-color:#244b4f}.scene-desc{max-height:76px;padding:8px 10px;border:1px solid rgba(80,75,66,.38);background:#f8f9f4b8;color:#302c25}.node-map{height:100%;min-height:210px}.map-lines line,.map-line-segments line{stroke:#171512;stroke-width:1.2;filter:none}.node{border-color:#746e63;background:#f1eee6;color:#28241f;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 0 0 1px #ffffffb8,0 4px 10px #1c181424}.node.current{border-color:#8f382c;background:#f6efe2;box-shadow:inset 0 0 0 2px #8f382c,0 5px 12px #1c18142e}.node.context{border-color:#879084;color:#4d504a;background:#eef2ea}.node.exit{border-color:#697f69;background:#eaf1e5;color:#243c31}.scene-panel{height:144px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;padding:8px}.scene-panel-title{min-height:20px;color:#4d4a43;font-size:13px;font-weight:700;letter-spacing:0;text-align:center}.object-list{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(48px,1fr));min-height:0}.object-list button{height:auto;border-color:#7f786d;background:#f7f9f3d6}.object-list button.player-unit{background:#ebf4ece6}.object-list button.page-unit{background:#e8ece4eb}.info-panel{height:246px;border-color:#6f695f;background:linear-gradient(#fafbf7d1,#ebf2eadb),#edf2eb}.chat-input{grid-template-columns:72px minmax(0,1fr) 62px;grid-template-rows:34px;height:34px;gap:6px}.chat-channel-tabs{display:none}.chat-channel-button{min-height:0;height:34px;padding:0 7px;color:#f7f4ea;font-size:13px;background:linear-gradient(#276066,#1f484d);border-color:#244b4f}.chat-input input{grid-column:auto;background:#f9fbf6db}.chat-input button[type=submit]{min-height:0;height:34px}.interaction-panel{border-color:#756d62;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 42%),linear-gradient(#f8f8f2,#e5ebe4)}.panel-description,.npc-speech,.effect-summary{border-color:#615b506b;background:#f9fbf69e}.interaction-panel .panel-actions{display:grid;grid-template-columns:1fr;gap:9px}.panel-actions button{width:100%;border-color:#766f64;background:linear-gradient(#fbfcf8,#e5ebe4);text-align:center;-webkit-tap-highlight-color:transparent}.interaction-panel .panel-actions button:first-child{color:inherit;border-color:#766f64;background:linear-gradient(#fbfcf8,#e5ebe4)}.interaction-panel .panel-actions button:focus{outline:none}.interaction-panel .panel-actions button:focus-visible{outline:2px solid rgba(129,58,45,.72);outline-offset:2px}.interaction-panel .panel-actions button:active,.interaction-panel .panel-actions button:first-child:active{border-color:#5d5549;background:linear-gradient(#fffcf494,#ddd3c19e),#e6ddce}@media(max-width:380px){.status-scroll{grid-template-columns:minmax(0,1fr) 92px}.portrait-mark{display:none}}@media(min-width:900px){.app-shell-desktop .status-scroll{height:104px;grid-template-columns:minmax(0,1fr) 120px}.app-shell-desktop .settings-display{display:none}.app-shell-desktop .desktop-menu{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:8px 10px;border-right:4px double #777066;border-bottom:4px double #777066;border-left:4px double #777066;background:linear-gradient(#f8f9f4,#e5ebe4)}.app-shell-desktop .desktop-menu button{min-height:42px;background:#f8faf5c2}.app-shell-desktop .desktop-menu .selected{border-color:#8f382c;background:#faf5eee6}.app-shell-desktop .mobile-menu{display:none}.app-shell-desktop .main-grid{height:calc(100vh - 158px);min-height:640px;display:grid;grid-template-columns:286px minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr);grid-template-areas:"scene map info";gap:10px;padding:10px}.app-shell-desktop .map-panel{grid-area:map;height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr)}.app-shell-desktop .scene-panel{grid-area:scene;height:100%;padding:12px;grid-template-rows:auto minmax(0,1fr)}.app-shell-desktop .scene-panel-title{min-height:34px;display:grid;place-items:center;border-bottom:1px solid rgba(97,91,80,.34);font-size:17px}.app-shell-desktop .object-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(46px,auto);align-content:start;overflow:auto;min-height:0}.app-shell-desktop .object-list button{min-height:46px;height:auto;justify-items:start;padding:8px 10px;text-align:left}.app-shell-desktop .object-list strong{place-items:center start;text-align:left;font-size:15px}.app-shell-desktop .info-panel{grid-area:info;height:100%;min-height:0}.app-shell-desktop .info-panel .log-list{height:calc(100% - 76px)}.app-shell-desktop .node-map{min-height:0}.app-shell-desktop .subpage-backdrop{position:fixed;padding:24px}.app-shell-desktop .drawer-page,.app-shell-desktop .menu-sheet{width:min(900px,calc(100vw - 48px));height:min(760px,calc(100vh - 48px));border-radius:6px}}.app-shell{width:min(430px,100%);height:100vh;height:100dvh;min-height:0;display:grid;grid-template-areas:"status" "banner" "desktop-menu" "main" "mobile-menu";grid-template-rows:auto auto auto minmax(0,1fr) auto;margin:0 auto;padding:0;overflow:hidden;background:radial-gradient(circle at 18% 8%,rgba(255,255,255,.4),transparent 12rem),repeating-linear-gradient(90deg,rgba(83,65,42,.025) 0 1px,transparent 1px 31px),repeating-linear-gradient(0deg,rgba(83,65,42,.02) 0 1px,transparent 1px 29px),linear-gradient(180deg,#e6ddce,#cdbfa9);color:#27221c;font-family:STKaiti,KaiTi,"Noto Serif SC",Microsoft YaHei,serif;font-weight:400;box-shadow:0 0 0 1px #191510,0 14px 36px #17120c47}.app-shell button,.app-shell input,.app-shell select{font-family:inherit}.app-shell button,.app-shell .brush-title,.app-shell .scene-panel-title,.app-shell .object-list strong,.app-shell .node,.app-shell .bottom-nav strong,.app-shell .desktop-menu strong,.app-shell .chat-channel-button,.app-shell .chat-input button,.app-shell .panel-actions button{font-weight:600}.app-shell .scene-desc,.app-shell .info-panel .log-list,.app-shell .chat-input input{font-weight:400}.status-scroll{grid-area:status;height:86px;grid-template-columns:minmax(0,1fr) 112px;gap:6px;padding:7px 9px;overflow:hidden;border:3px double #6d6254;background:radial-gradient(circle at 16% 12%,rgba(255,255,255,.44),transparent 8rem),repeating-linear-gradient(0deg,rgba(91,72,48,.035) 0 1px,transparent 1px 7px),linear-gradient(#f1ece0,#d8cbb7);box-shadow:inset 0 0 0 1px #fffaeeb8,inset 0 -10px 24px #5d483012}.status-scroll:before,.status-scroll:after{display:none}.status-main{min-width:0;display:grid;grid-template-columns:84px minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:2px 7px;align-items:center}.name-row{grid-column:1;grid-row:1 / span 3;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;color:#2b251d;font-size:12px;line-height:1.15}.name-row strong{max-width:100%;overflow:hidden;font-size:20px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.name-row span{color:#3d3428;font-size:12px;font-weight:600}.status-bar-row{grid-column:2;min-width:0;grid-template-columns:31px minmax(0,1fr) 52px;gap:4px;color:#3a3126}.status-bar-row span,.status-bar-row em{min-width:0;font-size:12px;line-height:1;white-space:nowrap}.status-bar-row em{overflow:hidden;color:#4d4234;text-align:right;text-overflow:ellipsis}.status-bar{height:11px;padding:1px;border-color:#6f624f;background:#bda985}.status-side-actions{display:grid;grid-template-columns:72px 32px;grid-template-areas:"money settings";gap:4px;align-content:center;min-width:0}.settings-display,.money-display{min-height:0;border:1px solid rgba(88,75,58,.52);border-radius:2px;box-shadow:inset 0 0 0 1px #fff9eb85,0 1px #44342214}.settings-display{grid-area:settings;width:32px;height:66px;padding:5px 0;writing-mode:vertical-rl;text-orientation:upright;letter-spacing:0;background:linear-gradient(rgba(222,249,237,.08),transparent 44%),linear-gradient(#275d61,#1a3e42);color:#fbf5e8}.money-display{grid-area:money;height:66px;display:grid;place-items:center;align-content:center;gap:2px;min-width:0;padding:3px 4px;background:linear-gradient(#fffcf257,#dacbb075),#e7d9c2}.money-display span{font-size:12px;line-height:1.1}.money-display strong{max-width:100%;overflow:visible;font-size:13px;line-height:1.1;text-align:center;overflow-wrap:anywhere;white-space:normal;word-break:break-all}.connection-banner{grid-area:banner}.desktop-menu{grid-area:desktop-menu}.mobile-menu{grid-area:mobile-menu}.main-grid,.battle-view{grid-area:main;min-height:0}.main-grid{height:auto;min-height:0;display:grid;grid-template-rows:minmax(250px,1.2fr) minmax(102px,.34fr) minmax(142px,.68fr);gap:6px;padding:6px;overflow:hidden}.app-shell .paper-panel,.app-shell .drawer-page,.app-shell .battle-view,.interaction-panel{border:3px double #6d6254;background:radial-gradient(circle at 14% 8%,rgba(255,255,255,.42),transparent 8rem),radial-gradient(circle at 88% 94%,rgba(91,73,49,.08),transparent 10rem),repeating-linear-gradient(0deg,rgba(91,72,48,.034) 0 1px,transparent 1px 7px),linear-gradient(135deg,#faf7eeeb,#dacfbceb),#e7dcc8;box-shadow:inset 0 0 0 1px #fffaeead,inset 0 0 28px #5e482e14}.app-shell .map-panel,.app-shell .scene-panel,.app-shell .info-panel{height:auto;min-height:0}.app-shell .map-panel{grid-template-rows:auto minmax(46px,auto) minmax(0,1fr);padding:9px;border-color:#5f584d;background:linear-gradient(#f4f1e829,#e3dccc42),var(--location-bg-image) center / cover no-repeat,#d6d0c2}.map-panel:after{background:linear-gradient(180deg,rgba(248,245,236,.44),transparent 86px),radial-gradient(circle at 50% 56%,transparent,rgba(29,25,19,.12))}.map-panel-head{gap:7px}.brush-title,.scene-desc,.node{border-color:#4a403285;background:linear-gradient(#fffcf494,#dfd3bd80),#f1ebdecc;box-shadow:inset 0 0 0 1px #fffaee94,0 2px 7px #1c16101f;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.brush-title{min-height:34px;padding:6px 10px}.scene-desc{max-height:none;overflow:visible;padding:7px 9px;line-height:1.55}.map-expand-button,.chat-channel-button,.settings-display{background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);border-color:#1b3e40}.node-map{min-height:0}.app-shell .map-lines line,.app-shell .map-line-segments line{stroke:#111;stroke-width:1.2;filter:none}.node{min-height:38px;color:#29231c;border-color:#4a40328f;background:linear-gradient(#fffcf4,#ded3bf),#f1ebde;box-shadow:inset 0 0 0 1px #fffaeeb8,0 2px 7px #1c16101f;-webkit-backdrop-filter:none;backdrop-filter:none}.node.current{border-color:#8e3025;background:linear-gradient(#fff8ec,#e7d5bf),#f6eee0;box-shadow:inset 0 0 0 2px #8f3025e0,0 4px 11px #1f181129}.app-shell .node.context{background:linear-gradient(#f8fbf5,#dce6d7),#eef2ea}.app-shell .node.exit{background:linear-gradient(#f8fbf3,#d9e3cf),#eaf1e5}.app-shell .node.blocked,.app-shell .node.exit.blocked{background:linear-gradient(#f2e8d6,#d6bd98),#dec8a3}.scene-panel{grid-template-rows:auto minmax(0,1fr);gap:5px;padding:7px}.scene-panel-title{min-height:18px;color:#5d513f;font-size:13px;line-height:1.1}.object-list{min-height:0;grid-template-rows:repeat(2,minmax(40px,1fr));gap:5px}.object-list button{border-color:#6f6557;background:linear-gradient(#fffcf480,#ded5c38a),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee75}.object-list .unit-name-stack{min-width:0;width:100%;display:grid;place-items:center;gap:1px;line-height:1.1;text-align:center}.object-list .unit-name-stack small{max-width:100%;overflow:hidden;color:#6b5d49;font-size:10px;font-weight:600;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.object-list .unit-name-stack.name-only{min-height:100%}.object-list button .unit-name-stack strong{padding:0}.object-list .unit-status-icon{position:absolute;right:3px;bottom:2px;width:15px;height:15px;display:grid;place-items:center;border:1px solid rgba(91,79,62,.48);border-radius:50%;background:#f8f2e5c7;color:#71342b;font-style:normal;line-height:1}.object-list .unit-status-icon svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.object-list .unit-status-icon.practice{color:#42643c}.info-panel{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:8px;overflow:hidden}.info-panel .log-list{height:auto;min-height:0;padding:7px 8px;border:1px solid rgba(96,83,63,.42);background:repeating-linear-gradient(0deg,rgba(91,72,48,.024) 0 1px,transparent 1px 7px),#f6efe28a;color:#342a20;font-size:14px;line-height:1.42;scrollbar-color:#735f48 rgba(221,209,188,.72);scrollbar-width:thin}.info-panel .log-list::-webkit-scrollbar{width:8px}.info-panel .log-list::-webkit-scrollbar-track{border-left:1px solid rgba(96,83,63,.24);background:linear-gradient(#fffaeeb8,#dacdb6b8),#ddd1bc}.info-panel .log-list::-webkit-scrollbar-thumb{border:2px solid rgba(221,209,188,.72);border-radius:8px;background:linear-gradient(#7a6952,#4e4436)}.info-panel .log-list::-webkit-scrollbar-button{height:0;display:none}.log-list p{padding:0;font-size:inherit;line-height:inherit}.chat-input{position:static;left:auto;right:auto;bottom:auto;grid-template-columns:58px minmax(0,1fr) 52px;grid-template-rows:32px;height:32px;gap:4px}.chat-channel-select{position:relative;min-width:0;height:32px}.chat-channel-button,.chat-input button[type=submit]{width:100%;height:32px;min-height:0;padding:0 5px;font-size:13px}.chat-channel-menu{position:absolute;left:0;bottom:calc(100% + 5px);z-index:8;width:74px;display:grid;gap:3px;padding:5px;border:3px double #6d6254;background:repeating-linear-gradient(0deg,rgba(91,72,48,.03) 0 1px,transparent 1px 7px),linear-gradient(#f1eadc,#d6c8b2);box-shadow:0 8px 18px #1f181133}.chat-channel-menu button{width:100%;min-height:30px;height:30px;padding:0 6px;border:1px solid rgba(91,79,62,.58);background:linear-gradient(#fffcf485,#dad0bc7a),#ede7dbf0;color:#2b251d;font-size:13px}.chat-channel-menu button.selected{border-color:#1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8}.chat-input input{min-height:0;height:32px;padding:5px 8px;background:linear-gradient(#fffcf470,#e2d8c45c),#eee5d5}.bottom-nav{position:relative;left:auto;bottom:auto;height:56px;z-index:1;border-width:3px;border-color:#6d6254;background:repeating-linear-gradient(0deg,rgba(91,72,48,.03) 0 1px,transparent 1px 7px),linear-gradient(#eee8dc,#d3c4ad)}.bottom-nav button{min-height:50px;padding:5px 2px;background:transparent}.bottom-nav strong{font-size:16px}.subpage-backdrop{grid-area:1 / 1 / -1 / -1}.drawer-page,.menu-sheet{border-color:#6d6254}.modal-close{z-index:4;min-height:34px;padding:4px 12px;border-color:#5a241c;background:linear-gradient(rgba(255,232,196,.14),transparent 44%),linear-gradient(#a3432e,#6f2a20)}.app-shell .menu-sheet>h2,.app-shell .drawer-page>h2{margin:4px 72px 10px 0;color:#2c251d;font-size:23px;line-height:1.15;text-align:left}.app-shell .character-sheet{grid-template-rows:auto repeat(6,min-content);align-content:start;gap:8px;padding:10px 12px;overflow:hidden;font-size:15px}.app-shell .character-sheet>h2{min-height:48px;display:flex;align-items:center;margin:0;padding:8px 76px 8px 10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.36),transparent 5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .character-sheet>.modal-close{top:18px;right:20px;min-height:32px;padding:4px 13px}.app-shell .character-sheet .profile-block,.app-shell .character-sheet .sheet-section{padding:8px 9px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .character-sheet .hero-profile{grid-template-columns:124px minmax(0,1fr);gap:12px}.app-shell .character-sheet .profile-identity{display:grid;gap:3px;align-content:center;min-width:0}.app-shell .character-sheet .profile-name{min-width:0;overflow:hidden;font-size:25px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.app-shell .character-sheet .profile-identity span{min-width:0;color:#5f5140;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .character-sheet .profile-vitals{display:grid;gap:4px;align-content:center}.app-shell .character-sheet .profile-vitals .status-bar-row{grid-template-columns:32px minmax(110px,1fr) 56px;gap:6px;min-height:23px}.app-shell .character-sheet .profile-vitals .status-bar-row span,.app-shell .character-sheet .profile-vitals .status-bar-row em{color:#342a20;font-size:12px;line-height:1}.app-shell .character-sheet .profile-vitals .status-bar{height:14px;min-width:0}.app-shell .character-sheet .sheet-section h3{margin:0 0 7px;color:#514535;font-size:17px;line-height:1.15}.app-shell .character-sheet .sheet-grid{gap:6px}.app-shell .character-sheet .info-cell,.app-shell .character-sheet .attribute-cell,.app-shell .character-sheet .equipment-slot{min-height:31px;padding:5px 8px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .character-sheet .attribute-cell.selected{color:#fbf5e8;border-color:#1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648)}.app-shell .character-sheet .info-cell span,.app-shell .character-sheet .attribute-cell span,.app-shell .character-sheet .equipment-slot span{color:#5a4c3b}.app-shell .character-sheet .info-cell strong,.app-shell .character-sheet .attribute-cell strong,.app-shell .character-sheet .equipment-slot strong{color:#2b251d;font-weight:600}.app-shell .character-sheet .attribute-cell.selected span,.app-shell .character-sheet .attribute-cell.selected strong{color:#fbf5e8}.app-shell .character-sheet .equipment-grid{gap:6px}.app-shell .character-sheet .character-compact-section .sheet-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .character-sheet .character-compact-section .info-cell{gap:6px;padding:5px 8px}.app-shell .character-sheet .character-compact-section .info-cell span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .character-sheet .equipment-slot{min-width:0;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px}.app-shell .character-sheet .equipment-slot strong{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.app-shell .character-sheet .equipment-slot.is-equipped{border-color:#20575a9e;background:linear-gradient(#fffcf48a,#d3e0d361),#ece6d8eb;cursor:pointer;box-shadow:inset 0 0 0 1px #fffaee80,inset 3px 0 #20575a6b,0 1px 3px #1f18111a}.app-shell .character-sheet .equipment-slot.is-equipped:hover,.app-shell .character-sheet .equipment-slot.is-equipped:focus-visible{border-color:#1b3e40;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .character-sheet .equipment-slot.is-equipped em{display:inline-grid;place-items:center;min-width:32px;height:20px;margin-left:4px;padding:0 5px;border:1px solid rgba(32,87,90,.58);background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8;font-size:12px;font-style:normal;line-height:1}.app-shell .character-sheet .equipment-slot.is-empty{color:#756b5d}.app-shell .character-sheet .attribute-note{margin:5px 0 0;padding:4px 6px;font-size:12px;line-height:1.25;border:1px solid rgba(91,79,62,.42);background:linear-gradient(#fffcf47a,#dad0bc5c),#eee7dbc7}@media(max-height:860px){.app-shell .character-sheet{gap:5px;padding:8px 10px;font-size:14px}.app-shell .character-sheet>h2{min-height:44px;margin:0;padding:6px 74px 6px 8px;font-size:22px}.app-shell .character-sheet>.modal-close{top:14px;right:18px;min-height:31px}.app-shell .character-sheet .profile-block,.app-shell .character-sheet .sheet-section{padding:5px 7px}.app-shell .character-sheet .hero-profile{grid-template-columns:124px minmax(0,1fr);gap:9px}.app-shell .character-sheet .profile-name{font-size:24px}.app-shell .character-sheet .profile-identity span{font-size:12px}.app-shell .character-sheet .profile-vitals .status-bar-row{grid-template-columns:32px minmax(112px,1fr) 56px;min-height:19px}.app-shell .character-sheet .profile-vitals .status-bar{height:13px}.app-shell .character-sheet .sheet-section h3{margin-bottom:4px;font-size:15px}.app-shell .character-sheet .sheet-grid{gap:4px}.app-shell .character-sheet .info-cell,.app-shell .character-sheet .attribute-cell,.app-shell .character-sheet .equipment-slot{min-height:25px;padding:3px 6px}.app-shell .character-sheet .character-compact-section .sheet-grid.two{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell .character-sheet .character-compact-section .info-cell{gap:5px;padding:3px 6px}}@media(max-width:380px),(max-height:760px){.status-scroll{height:78px;grid-template-columns:minmax(0,1fr) 104px;padding:6px 7px}.status-main{grid-template-columns:76px minmax(0,1fr);gap:1px 5px}.name-row strong{font-size:18px}.status-bar-row{grid-template-columns:29px minmax(0,1fr) 46px;gap:4px}.status-bar-row span,.status-bar-row em{font-size:11px}.settings-display{width:30px;height:62px}.money-display{height:62px}.status-side-actions{grid-template-columns:66px 30px}.money-display strong{font-size:12px}.main-grid{grid-template-rows:minmax(220px,1.1fr) minmax(90px,.3fr) minmax(126px,.62fr);gap:5px;padding:5px}.scene-desc{max-height:none}.bottom-nav{height:52px}.bottom-nav button{min-height:46px}}@media(min-width:900px){.app-shell-desktop{width:min(1320px,100%);height:100vh;height:100dvh;min-height:0;grid-template-areas:"status" "banner" "desktop-menu" "main" "mobile-menu"}.app-shell-desktop .status-scroll{height:72px;grid-template-columns:minmax(0,1fr) 94px;padding:7px 10px}.app-shell-desktop .status-main{grid-template-columns:150px minmax(250px,520px) minmax(0,1fr);gap:2px 10px}.app-shell-desktop .status-side-actions{grid-template-columns:1fr;grid-template-areas:"money"}.app-shell-desktop .name-row{grid-column:1}.app-shell-desktop .status-bar-row{grid-column:2;grid-template-columns:34px minmax(0,1fr) 58px}.app-shell-desktop .settings-display{display:none}.app-shell-desktop .money-display{width:auto;height:54px}.app-shell-desktop .desktop-menu{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;height:48px;padding:5px 8px;border:3px double #6d6254;border-top:0;background:repeating-linear-gradient(0deg,rgba(91,72,48,.03) 0 1px,transparent 1px 7px),linear-gradient(#eee8dc,#d3c4ad)}.app-shell-desktop .desktop-menu button{min-height:36px;padding:4px 8px;border-color:#5b4f3e94;background:linear-gradient(#fffcf480,#dad0bc7a),#ede7dbdb}.app-shell-desktop .desktop-menu .selected{border-color:#8e3025;background:linear-gradient(#fffaee9e,#e2cdb594),#e7d9c7}.app-shell-desktop .mobile-menu{display:none}.app-shell-desktop .main-grid{height:auto;min-height:0;grid-template-columns:minmax(220px,260px) minmax(420px,1fr) minmax(260px,320px);grid-template-rows:minmax(0,1fr);grid-template-areas:"scene map info";gap:8px;padding:8px}.app-shell-desktop .map-panel,.app-shell-desktop .scene-panel,.app-shell-desktop .info-panel{height:auto;min-height:0}.app-shell-desktop .map-panel{grid-area:map;grid-template-rows:auto minmax(54px,auto) minmax(0,1fr);padding:11px}.app-shell-desktop .scene-panel{grid-area:scene;padding:10px}.app-shell-desktop .scene-panel-title{min-height:30px;border-bottom:1px solid rgba(97,84,64,.28);font-size:16px}.app-shell-desktop .object-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(42px,auto);align-content:start;overflow:auto}.app-shell-desktop .object-list button{min-height:42px;justify-items:start;padding:7px 10px;text-align:left}.app-shell-desktop .object-list strong{place-items:center start;text-align:left;font-size:15px}.app-shell-desktop .info-panel{grid-area:info}.app-shell-desktop .subpage-backdrop{position:absolute;padding:22px}.app-shell-desktop .drawer-page,.app-shell-desktop .menu-sheet{width:min(900px,calc(100vw - 44px));height:min(760px,calc(100dvh - 44px));border-radius:4px}}.app-shell .martial-sheet{grid-template-rows:auto auto auto minmax(0,auto) minmax(0,1fr);align-content:start;gap:8px;padding:10px 12px;overflow:hidden;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.34),transparent 6rem),repeating-linear-gradient(0deg,rgba(91,72,48,.025) 0 1px,transparent 1px 7px),linear-gradient(#fffcf494,#dbd0bc80),#eee7dbeb;font-size:15px}.app-shell .martial-sheet>.modal-close{top:18px;right:18px;min-height:32px;padding:4px 13px}.app-shell .martial-header{min-height:48px;padding:8px 76px 8px 10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.36),transparent 5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .martial-header h2{color:#2c251d;font-size:23px;line-height:1.1}.app-shell .martial-header div{justify-self:end;width:min(168px,42vw);display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;color:#5a4c3b;font-size:14px}.app-shell .martial-header strong{min-width:0;max-width:none;padding:0;overflow:hidden;border:0;background:transparent;box-shadow:none;color:#2b251d;font-variant-numeric:tabular-nums;font-weight:600;text-align:right;text-overflow:ellipsis;white-space:nowrap}.app-shell .martial-class-tabs,.app-shell .martial-tabs{gap:6px}.app-shell .martial-class-tabs button,.app-shell .martial-tabs button{min-height:36px;padding:4px 6px;border:1px solid rgba(91,79,62,.58);background:linear-gradient(#fffcf480,#dad0bc7a),#ede7dbe6;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114;color:#2b251d;font-size:16px}.app-shell .martial-tabs button{min-height:32px;font-size:14px}.app-shell .martial-class-tabs .selected{border-color:#8e3025;background:linear-gradient(rgba(255,232,196,.13),transparent 44%),linear-gradient(#a3432e,#6f2a20);color:#fbf5e8}.app-shell .martial-tabs .selected{border-color:#1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8}.app-shell .martial-sheet .sheet-section{min-height:0;padding:8px 9px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .martial-sheet .sheet-section h3{margin-bottom:7px;color:#514535;font-size:17px;line-height:1.15}.app-shell .martial-sheet>.sheet-section:last-of-type{display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.app-shell .martial-sheet .section-status-row{min-height:28px;margin-bottom:6px;padding:4px 7px;border:1px solid rgba(91,79,62,.48);background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbdb;color:#5a4c3b}.app-shell .move-slots{gap:6px}.app-shell .move-slot-group{grid-template-rows:20px 60px;gap:4px}.app-shell .move-slot-label{color:#5a4c3b;font-size:13px;line-height:18px}.app-shell .move-slot{min-height:60px;padding:6px 5px;border:1px solid rgba(91,79,62,.58);background:linear-gradient(#fffcf485,#dad0bc75),#ede7dbe6;box-shadow:inset 0 0 0 1px #fffaee70,0 1px 3px #1f18111a}.app-shell .move-slot:not(:disabled){border-color:#20575a9e;box-shadow:inset 0 0 0 1px #fffaee7a,inset 3px 0 #20575a6b,0 1px 3px #1f18111f}.app-shell .move-slot:not(:disabled):hover,.app-shell .move-slot:not(:disabled):focus-visible{border-color:#1b3e40;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .move-slot:disabled{color:#756b5d;cursor:default}.app-shell .move-slot strong{max-width:100%;overflow:hidden;color:#2b251d;font-size:14px;font-weight:600;text-overflow:ellipsis}.app-shell .inner-practice-panel{min-height:0;gap:6px}.app-shell .inner-practice-panel>div,.app-shell .inner-practice-panel>span{min-height:42px;padding:6px 8px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbdb}.app-shell .learned-list{min-height:0;align-content:start;grid-auto-rows:minmax(42px,auto);overflow:auto;padding-right:2px;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .learned-row{min-height:42px;align-self:start;grid-template-columns:minmax(0,1fr) minmax(76px,max-content) minmax(70px,.72fr) minmax(56px,64px);gap:6px;padding:5px 7px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf485,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .learned-row-clickable{position:relative;border-left:4px solid rgba(32,87,90,.44)}.app-shell .learned-row-clickable:hover,.app-shell .learned-row-clickable:focus-within{border-color:#20575ab8;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .learned-row>span,.app-shell .learned-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .learned-row>span{color:#5a4c3b;font-size:13px}.app-shell .learned-row>span:first-of-type{min-width:76px;overflow:visible;text-overflow:clip}.app-shell .learned-row .name-with-badge{color:#2b251d;font-weight:600}.app-shell .learned-row button,.app-shell .move-row button{min-height:30px;padding:3px 6px;border:1px solid #1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8;font-size:14px}.app-shell .learned-row button:disabled{border-color:#5b4f3e80;background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbdb;color:#6d6254}.app-shell .learned-row-actions{gap:4px}.app-shell .grade-badge{min-width:30px;padding:1px 5px;border-radius:2px;font-size:11px}.app-shell .martial-detail-layer{inset:62px 12px 12px;z-index:5}.app-shell .martial-detail-sheet{position:relative;gap:8px;padding:10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf494,#dcd1be80),#eee7dbf5;box-shadow:inset 0 0 0 1px #fffaee94,0 12px 26px #2118113d;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .detail-back{min-height:32px;padding:4px 13px;border-color:#5a241c;background:linear-gradient(rgba(255,232,196,.14),transparent 44%),linear-gradient(#a3432e,#6f2a20)}.app-shell .martial-detail-sheet>.detail-back{position:absolute;top:10px;right:10px;z-index:1}.app-shell .martial-detail-header{gap:4px;padding-right:66px;padding-bottom:7px;border-bottom:1px solid rgba(91,79,62,.36);text-align:left}.app-shell .martial-detail-header h2{color:#2c251d;font-size:23px;line-height:1.15}.app-shell .martial-detail-header span{color:#5a4c3b}.app-shell .martial-summary,.app-shell .move-description-panel,.app-shell .compact-move-section{border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b}.app-shell .move-description-panel h3,.app-shell .compact-move-section h3{color:#514535;font-size:18px}.app-shell .move-stat-grid .info-cell{min-height:28px;border:1px solid rgba(91,79,62,.48);background:linear-gradient(#fffcf480,#dad0bc61),#ede7dbc7}.app-shell .detail-move-grid{gap:6px}.app-shell .detail-move-column{grid-template-rows:19px 54px;gap:4px}.app-shell .detail-move-card{min-height:54px;padding:6px 4px;border:1px solid rgba(91,79,62,.54);background:linear-gradient(#fffcf485,#dad0bc6b),#ede7dbe0;color:#2b251d;font-size:14px;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .detail-move-card.selected,.app-shell .detail-move-card:hover,.app-shell .detail-move-card:focus-visible{border-color:#1b3e40;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .detail-move-card.locked{border-color:#5b4f3e5c;background:linear-gradient(#fffcf45c,#d1c7b547),#e2daccb8;color:#756b5d}.app-shell .effect-summary{border-color:#5b4f3e6b;background:linear-gradient(#fffcf46b,#dad0bc57),#ede7dbc7;color:#594d3e}.app-shell .equip-move-button{border-color:#1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8}@media(max-height:860px){.app-shell .martial-sheet{gap:6px;padding:8px 10px;font-size:14px}.app-shell .martial-header{min-height:44px;padding:6px 74px 6px 8px}.app-shell .martial-sheet>.modal-close{top:14px}.app-shell .martial-header h2{font-size:22px}.app-shell .martial-class-tabs button{min-height:33px}.app-shell .martial-tabs button{min-height:29px}.app-shell .martial-sheet .sheet-section{padding:6px 7px}.app-shell .martial-sheet .sheet-section h3{margin-bottom:4px;font-size:15px}.app-shell .move-slot-group{grid-template-rows:18px 54px}.app-shell .move-slot{min-height:54px}.app-shell .learned-row{min-height:36px;padding:4px 6px}}@media(max-width:380px),(max-height:760px){.app-shell .martial-header div span{display:none}.app-shell .learned-row{grid-template-columns:minmax(0,.9fr) minmax(72px,max-content) minmax(48px,.5fr) minmax(46px,54px);gap:4px;font-size:13px}.app-shell .learned-row>span{font-size:12px}.app-shell .learned-row button,.app-shell .move-row button{font-size:13px}}@media(min-width:900px){.app-shell-desktop .martial-sheet{width:min(900px,calc(100vw - 44px));height:min(760px,calc(100dvh - 44px))}.app-shell-desktop .martial-detail-layer{inset:64px 16px 16px}}.app-shell .meridian-sheet{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);align-content:start;gap:10px;padding:10px 12px;overflow:hidden;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.34),transparent 6rem),repeating-linear-gradient(0deg,rgba(91,72,48,.025) 0 1px,transparent 1px 7px),linear-gradient(#fffcf494,#dbd0bc80),#eee7dbeb;font-size:15px}.app-shell .meridian-sheet>.modal-close{top:18px;right:18px;min-height:32px;padding:4px 13px}.app-shell .meridian-sheet .sheet-section{min-height:0;padding:8px 9px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .meridian-sheet .sheet-section h3{margin-bottom:7px;color:#514535;font-size:17px;line-height:1.15}.app-shell .meridian-sheet>.sheet-section:last-of-type{overflow:auto;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .meridian-sheet .sheet-grid{gap:6px}.app-shell .meridian-sheet .info-cell,.app-shell .trait-slot-card,.app-shell .meridian-card{border:1px solid rgba(91,79,62,.52);border-radius:0;background:linear-gradient(#fffcf485,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .meridian-sheet .info-cell{min-height:31px;padding:5px 8px}.app-shell .meridian-grid,.app-shell .trait-slot-grid{grid-template-columns:1fr;align-content:start;gap:8px}.app-shell .extraordinary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .meridian-card,.app-shell .trait-slot-card{min-height:96px;align-content:start;gap:7px;padding:8px 10px}.app-shell .meridian-summary-card{width:100%;display:grid;color:inherit;text-align:left;cursor:pointer}.app-shell .meridian-summary-card:hover,.app-shell .meridian-summary-card:focus-visible{border-color:#1b3e40;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .meridian-card header{min-height:24px;padding-bottom:4px;border-bottom:1px solid rgba(91,79,62,.32)}.app-shell .meridian-card header strong,.app-shell .trait-slot-card strong{min-width:0;overflow:hidden;color:#2b251d;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.app-shell .meridian-card header span,.app-shell .trait-slot-card>span{color:#5a4c3b;font-size:13px;white-space:nowrap}.app-shell .meridian-card p{color:#5a4c3b;font-size:14px;line-height:1.45}.app-shell .meridian-card small,.app-shell .trait-slot-card small{color:#6d6254;font-size:13px;line-height:1.35}.app-shell .meridian-card button,.app-shell .trait-slot-card button{justify-self:start;min-height:32px;padding:4px 13px;border:1px solid #1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8;font-size:14px}.app-shell .meridian-card button:disabled,.app-shell .trait-slot-card button:disabled{border-color:#5b4f3e75;background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbd1;color:#756b5d}.app-shell .trait-slot-grid+.trait-candidate-list{margin-top:8px}.app-shell .meridian-detail-section{position:relative}.app-shell .meridian-detail-section>h3{min-height:34px;margin:0 76px 8px 0;padding-right:0;align-items:center}.app-shell .meridian-detail-back{position:absolute;top:7px;right:10px;z-index:1;margin:0;min-height:30px;padding:3px 12px}.app-shell .meridian-detail-list{min-height:0;display:grid;align-content:start;gap:8px}.app-shell .meridian-stage-row{display:grid;gap:6px;padding:8px 10px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf485,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .meridian-stage-row.done{border-left:4px solid rgba(32,87,90,.58)}.app-shell .meridian-stage-row.current{border-color:#8e3025ad;border-left:4px solid rgba(142,48,37,.76);background:linear-gradient(#fffaee9e,#e2cdb594),#ede7dbf0}.app-shell .meridian-stage-row.locked{color:#756b5d;border-color:#5b4f3e5c;background:linear-gradient(#fffcf45c,#d1c7b547),#e2daccb8}.app-shell .meridian-stage-row header{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-shell .meridian-stage-row header strong{min-width:0;overflow:hidden;color:#2b251d;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.app-shell .meridian-stage-row header span{display:inline-grid;place-items:center;min-width:44px;height:22px;padding:0 6px;border:1px solid rgba(91,79,62,.42);background:linear-gradient(#fffcf470,#dad0bc61),#ede7dbe0;color:#5a4c3b;font-size:12px;white-space:nowrap}.app-shell .meridian-stage-row.done header span{border-color:#20575a8a;color:#1d4d4f}.app-shell .meridian-current-tag{justify-self:start;display:inline-grid;place-items:center;min-width:38px;height:22px;padding:0 7px;border:1px solid rgba(142,48,37,.58);background:linear-gradient(#fffaee8f,#e2cdb573),#ede7dbeb;color:#7b2d25;font-size:12px;font-style:normal;line-height:1}.app-shell .meridian-stage-row.current .meridian-current-tag{border-color:#8e302594;color:#7b2d25}.app-shell .meridian-stage-row p,.app-shell .meridian-stage-row small{margin:0;line-height:1.45}.app-shell .meridian-stage-row p{color:#5a4c3b;font-size:13px}.app-shell .meridian-stage-row small{color:#3f3529;font-size:13px}.app-shell .meridian-stage-row button{justify-self:start;min-height:32px;padding:4px 13px;border:1px solid #1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8;font-size:14px}.app-shell .meridian-stage-row button:disabled{border-color:#5b4f3e75;background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbd1;color:#756b5d}@media(max-height:860px){.app-shell .meridian-sheet{gap:6px;padding:8px 10px;font-size:14px}.app-shell .meridian-sheet>.modal-close{top:14px}.app-shell .meridian-sheet .sheet-section{padding:6px 7px}.app-shell .meridian-sheet .sheet-section h3{margin-bottom:4px;font-size:15px}.app-shell .meridian-sheet .info-cell{min-height:25px;padding:3px 6px}.app-shell .meridian-card,.app-shell .trait-slot-card{min-height:84px;gap:5px;padding:7px 9px}.app-shell .meridian-stage-row{gap:5px;padding:7px 9px}}@media(min-width:900px){.app-shell-desktop .meridian-grid,.app-shell-desktop .trait-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell-desktop .extraordinary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.app-shell .bag-sheet{display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:10px;padding:10px 12px;overflow:hidden;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.34),transparent 6rem),repeating-linear-gradient(0deg,rgba(91,72,48,.025) 0 1px,transparent 1px 7px),linear-gradient(#fffcf494,#dbd0bc80),#eee7dbeb;font-size:15px}.app-shell .bag-sheet>h2{min-height:48px;display:flex;align-items:center;margin:0;padding:8px 76px 8px 10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.36),transparent 5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .bag-sheet>.modal-close{top:18px;right:18px;min-height:32px;padding:4px 13px}.app-shell .bag-sheet .card-list{min-height:0;align-content:start;gap:8px;overflow:auto;padding:8px 9px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .bag-sheet .inventory-row{min-height:42px;grid-template-columns:minmax(0,1fr) minmax(76px,auto) minmax(34px,auto);column-gap:8px;padding:6px 8px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf485,#dad0bc6b),#ede7dbdb;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .bag-sheet .inventory-row:hover,.app-shell .bag-sheet .inventory-row:focus-visible{border-color:#1b3e40;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5}.app-shell .bag-sheet .inventory-row span:first-child{color:#2b251d;font-weight:600}.app-shell .bag-sheet .inventory-row span:nth-child(2),.app-shell .bag-sheet .inventory-row span:nth-child(3){color:#5a4c3b;font-size:13px}.app-shell .bag-sheet .equipped-badge{padding:1px 5px;border:1px solid rgba(32,87,90,.54);background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8}@media(max-height:860px){.app-shell .bag-sheet{gap:6px;padding:8px 10px;font-size:14px}.app-shell .bag-sheet>h2{min-height:44px;padding:6px 74px 6px 8px;font-size:22px}.app-shell .bag-sheet>.modal-close{top:14px}.app-shell .bag-sheet .card-list{gap:6px;padding:6px 7px}.app-shell .bag-sheet .inventory-row{min-height:36px;padding:5px 7px}}.app-shell .quest-sheet{display:grid;grid-template-rows:auto auto minmax(0,1fr);align-content:start;gap:10px;padding:10px 12px;overflow:hidden;background:radial-gradient(circle at 88% 12%,rgba(255,255,255,.34),transparent 6rem),repeating-linear-gradient(0deg,rgba(91,72,48,.025) 0 1px,transparent 1px 7px),linear-gradient(#fffcf494,#dbd0bc80),#eee7dbeb;font-size:15px}.app-shell .quest-sheet>h2{min-height:48px;display:flex;align-items:center;margin:0;padding:8px 76px 8px 10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.36),transparent 5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .quest-sheet>.modal-close{top:18px;right:18px;min-height:32px;padding:4px 13px}.app-shell .quest-sheet .quest-tabs{gap:8px;margin:0;padding:6px;border:3px double #6d6254;background:linear-gradient(#fffcf48a,#dcd1be6b),#eee7dbdb;box-shadow:inset 0 0 0 1px #fffaee80}.app-shell .quest-sheet .quest-tabs button{min-height:38px;padding:5px 8px;border:1px solid rgba(91,79,62,.56);background:linear-gradient(#fffcf4b3,#ded4c280),#eee7dbeb;box-shadow:inset 0 0 0 1px #fffaee75,0 1px 2px #1f181114;color:#33291f;font-size:16px}.app-shell .quest-sheet .quest-tabs .selected{border-color:#1f4446bd;background:linear-gradient(rgba(255,255,255,.12),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fff4df}.app-shell .quest-sheet .quest-list{min-height:0;align-content:start;gap:8px;overflow:auto;padding:8px 9px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .quest-sheet .quest-card{gap:7px;padding:9px 10px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf48f,#dad0bc6b),#ede7dbe0;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .quest-sheet .quest-card header{gap:10px}.app-shell .quest-sheet .quest-card header strong{min-width:0;overflow:hidden;color:#2b251d;font-size:17px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.app-shell .quest-sheet .quest-card header span{flex:0 0 auto;padding:2px 6px;border:1px solid rgba(113,52,43,.32);background:#f8eeda94;color:#71342b;font-size:13px}.app-shell .quest-sheet .quest-card .target{margin:0;padding:7px 0 0;border-top:1px solid rgba(137,108,75,.38);border-bottom:0;color:#4e4132;font-size:14px;line-height:1.55}.app-shell .quest-sheet .empty-row{margin:0;padding:14px 10px;border:1px dashed rgba(91,79,62,.45);background:#fffcf45c;color:#756754;text-align:center}@media(max-height:860px){.app-shell .quest-sheet{gap:6px;padding:8px 10px;font-size:14px}.app-shell .quest-sheet>h2{min-height:44px;padding:6px 74px 6px 8px;font-size:22px}.app-shell .quest-sheet>.modal-close{top:14px}.app-shell .quest-sheet .quest-tabs{gap:6px;padding:5px}.app-shell .quest-sheet .quest-tabs button{min-height:34px;font-size:15px}.app-shell .quest-sheet .quest-list{gap:6px;padding:6px 7px}.app-shell .quest-sheet .quest-card{padding:7px 8px}}.app-shell .map-modal-backdrop{background:#1f1b1557}.app-shell .full-map-sheet{gap:8px;padding:10px 12px;border:3px double #6d6254;background:radial-gradient(circle at 14% 8%,rgba(255,255,255,.42),transparent 8rem),radial-gradient(circle at 88% 94%,rgba(91,73,49,.08),transparent 10rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(135deg,#faf7eef0,#dacfbcf0),#e7dcc8;box-shadow:inset 0 0 0 1px #fffaeead,inset 0 0 28px #5e482e14}.app-shell .full-map-header{min-height:48px;padding:7px 10px;border:3px double #6d6254;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.36),transparent 5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbeb;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f}.app-shell .full-map-header h2{color:#2c251d;font-size:24px;line-height:1.1}.app-shell .full-map-header span{color:#5a4c3b;font-size:13px;font-weight:600}.app-shell .full-map-header button{min-height:32px;padding:4px 13px;border-color:#5a241c;background:linear-gradient(rgba(255,232,196,.14),transparent 44%),linear-gradient(#a3432e,#6f2a20);color:#fbf5e8}.app-shell .full-map-tabs{min-width:min(330px,100%);gap:6px;padding:6px;border:3px double #6d6254;background:linear-gradient(#fffcf48a,#dcd1be6b),#eee7dbdb;box-shadow:inset 0 0 0 1px #fffaee80}.app-shell .full-map-tabs button{min-height:36px;padding:4px 8px;border:1px solid rgba(91,79,62,.56);background:linear-gradient(#fffcf4b3,#ded4c280),#eee7dbeb;box-shadow:inset 0 0 0 1px #fffaee75,0 1px 2px #1f181114;color:#33291f;font-size:15px}.app-shell .full-map-tabs .selected{border-color:#1f4446bd;background:linear-gradient(rgba(255,255,255,.12),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fff4df}.app-shell .full-map-toolbar{justify-content:end;gap:6px;padding:6px;border:3px double #6d6254;background:linear-gradient(#fffcf480,#dad0bc6b),#ede7dbd6;box-shadow:inset 0 0 0 1px #fffaee75}.app-shell .full-map-toolbar button{min-height:32px;min-width:38px;padding:4px 10px;border-color:#1b3e40;background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#2c6769,#1c4648);color:#fbf5e8;font-size:14px}.app-shell .full-map-toolbar span{min-width:48px;padding:5px 8px;border:1px solid rgba(91,79,62,.48);background:linear-gradient(#fffcf494,#ded4c27a),#eee7dbe6;color:#3d3428;font-size:13px;font-weight:700}.app-shell .full-map-body{border:3px double #5f584d;background:linear-gradient(#f4f1e82e,#e3dccc42),repeating-linear-gradient(90deg,rgba(83,65,42,.025) 0 1px,transparent 1px 31px),repeating-linear-gradient(0deg,rgba(83,65,42,.02) 0 1px,transparent 1px 29px),linear-gradient(180deg,#e6ddce,#cdbfa9);box-shadow:inset 0 0 0 1px #fffaee80,inset 0 0 28px #30261b1a}.app-shell .full-map-canvas .map-line-segments line{stroke:#111;stroke-width:1.25;stroke-linecap:round;filter:none}.app-shell .world-node-map .map-line-segments line{stroke-dasharray:5 5}.app-shell .map-svg-node{color:#29231c}.app-shell .map-svg-node[aria-disabled=true]{cursor:default}.app-shell .map-svg-node rect{fill:#f1eadc;stroke:#6d6254;stroke-width:2;filter:drop-shadow(0 3px 5px rgba(31,24,17,.16))}.app-shell .map-svg-node text{fill:currentColor;font-size:13px;font-weight:700}.app-shell .map-svg-node.current{color:#2b1f18}.app-shell .map-svg-node.current rect{fill:#f3e7d9;stroke:#8e3025;stroke-width:4}.app-shell .map-svg-node.context{color:#5b554b}.app-shell .map-svg-node.context rect{fill:#ddd6c9;stroke:#756c5f}.app-shell .map-svg-node.exit{color:#283c2e}.app-shell .map-svg-node.exit rect{fill:#dce6d2;stroke:#5e7657}.app-shell .map-svg-node.exit.context{color:#586456}.app-shell .map-svg-node.exit.context rect{fill:#d7dcca;stroke:#7a846d}.app-shell .map-svg-node.blocked,.app-shell .map-svg-node.exit.blocked{color:#4b3524}.app-shell .map-svg-node.blocked rect,.app-shell .map-svg-node.exit.blocked rect{fill:#d8c4a4;stroke:#8b4f3b}.app-shell .map-svg-node:focus-visible rect{stroke-width:4}@media(max-width:560px){.app-shell .full-map-sheet{gap:6px;padding:8px}.app-shell .full-map-header{min-height:44px;padding:6px 8px}.app-shell .full-map-header h2{font-size:22px}.app-shell .full-map-tabs,.app-shell .full-map-toolbar{padding:5px}.app-shell .full-map-toolbar button{min-width:0;padding-inline:7px}.app-shell .full-map-body{border-width:2px}}.app-shell .map-panel-with-overlay{padding:0}.app-shell .practice-overlay{position:absolute;inset:0;z-index:9;display:block;padding:10px;background:linear-gradient(180deg,#14141157,#1414117a),radial-gradient(circle at 50% 40%,rgba(246,240,224,.18),transparent 44%);-webkit-backdrop-filter:blur(1.5px) saturate(.85);backdrop-filter:blur(1.5px) saturate(.85)}.app-shell .practice-panel{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;justify-items:stretch;gap:10px;padding:11px;border:4px double rgba(82,74,62,.72);border-radius:4px;background:linear-gradient(135deg,rgba(255,255,255,.46),transparent 34%),repeating-linear-gradient(0deg,rgba(93,74,48,.035) 0 1px,transparent 1px 7px),linear-gradient(#faf8f0e0,#e5decfe6);box-shadow:inset 0 0 0 1px #fffaeeb3,0 14px 34px #14100c38;color:#2e2922;text-align:left}.app-shell .practice-panel-head{min-height:44px;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:4px 0 9px;border-bottom:1px solid rgba(96,85,69,.3)}.app-shell .practice-panel-head>div{min-width:0;display:grid;gap:2px}.app-shell .practice-panel-head strong{min-width:0;overflow:hidden;color:#29241f;font-size:20px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.app-shell .practice-panel .practice-mode-label{min-height:0;color:#6a5d4c;font-size:13px;font-weight:700;line-height:1.2}.app-shell .practice-exit-button{width:100%;min-width:0;min-height:44px;padding:7px 14px;color:#fff7ed;background:linear-gradient(rgba(255,230,212,.12),transparent 42%),linear-gradient(#9a3c2d,#713025);border-color:#6c3027;box-shadow:inset 0 0 0 1px #fff4e62e;font-size:17px;white-space:nowrap}.app-shell .practice-body{min-height:0;display:grid;grid-template-rows:minmax(126px,1fr) auto;gap:10px}.app-shell .practice-visual-frame{min-height:126px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(94,84,68,.36);background:radial-gradient(circle at 50% 44%,#fcf8e8d1,#ded8c6a3 54%,#3a362f2e),linear-gradient(180deg,#eceee38c,#d3cfbe99);box-shadow:inset 0 0 0 1px #fffaee8a,inset 0 -18px 34px #4136271a}.app-shell .practice-visual{position:relative;width:min(168px,58%);min-width:128px;aspect-ratio:1.28}.app-shell .practice-aura,.app-shell .practice-motion,.app-shell .practice-sprite,.app-shell .practice-ink-figure,.app-shell .practice-figure,.app-shell .practice-ground{position:absolute;display:block}.app-shell .practice-ground{right:18%;bottom:20px;left:18%;height:8px;border-radius:999px;background:radial-gradient(ellipse at center,rgba(51,46,38,.3),transparent 72%)}.app-shell .practice-aura{inset:14% 16%;border:1px solid rgba(34,68,67,.22);border-radius:50%;opacity:0}.app-shell .practice-aura.one{animation:practice-aura-pulse 2.4s ease-out infinite}.app-shell .practice-aura.two{animation:practice-aura-pulse 2.4s ease-out 1.2s infinite}.app-shell .practice-sprite{left:50%;bottom:8px;width:min(164px,88%);aspect-ratio:1;overflow:hidden;transform:translate(-50%);filter:drop-shadow(0 5px 2px rgba(40,34,24,.18));image-rendering:auto}.app-shell .practice-sprite:before{content:"";position:absolute;inset:0 auto 0 0;width:800%;background-image:var(--practice-sprite-image);background-repeat:no-repeat;background-size:100% 100%;will-change:transform;animation:practice-sprite-loop 1.25s steps(8) infinite}.app-shell .practice-panel-meditation .practice-sprite{width:min(154px,82%)}.app-shell .practice-panel-meditation .practice-sprite:before{animation-duration:2.4s}.app-shell .practice-panel-training .practice-sprite{width:min(168px,88%)}.app-shell .practice-panel-training .practice-sprite:before{animation-duration:1.3s}.app-shell .practice-ink-figure{left:50%;bottom:18px;width:142px;height:110px;transform:translate(-50%);overflow:visible;filter:drop-shadow(0 4px 2px rgba(38,34,27,.16))}.app-shell .practice-ink-figure .ink-fill{fill:#202420}.app-shell .practice-ink-figure .ink-torso,.app-shell .practice-ink-figure .ink-sleeve,.app-shell .practice-ink-figure .ink-leg{fill:#1f2622}.app-shell .practice-ink-figure .ink-sleeve,.app-shell .practice-ink-figure .ink-leg{opacity:.96}.app-shell .practice-ink-figure .ink-stroke,.app-shell .practice-ink-figure .ink-weapon{fill:none;stroke:#1f2421;stroke-linecap:round;stroke-linejoin:round}.app-shell .practice-ink-figure .ink-stroke{stroke-width:5;opacity:.72}.app-shell .practice-ink-figure .ink-weapon{stroke-width:5;opacity:.88}.app-shell .practice-ink-meditation{animation:practice-breathe 2.4s ease-in-out infinite}.app-shell .practice-ink-training{bottom:14px;width:150px;height:116px;transform-origin:50% 86%;animation:practice-stance 1.35s ease-in-out infinite}.app-shell .practice-panel-meditation .practice-figure{left:50%;bottom:28px;width:62px;height:76px;transform:translate(-50%);border-radius:36% 36% 14% 14%;background:linear-gradient(90deg,transparent 0 16%,rgba(37,38,34,.98) 17% 83%,transparent 84%),linear-gradient(145deg,#202623,#284549);clip-path:polygon(50% 0,72% 18%,88% 82%,66% 100%,34% 100%,12% 82%,28% 18%);box-shadow:inset 9px 0 14px #fffaea14;animation:practice-breathe 2.4s ease-in-out infinite}.app-shell .practice-panel-meditation .practice-figure:before{content:"";position:absolute;top:-18px;left:50%;width:16px;height:18px;transform:translate(-50%);border-radius:42% 42% 48% 48%;background:#242722;box-shadow:0 2px #253e3f52}.app-shell .practice-panel-meditation .practice-figure:after{content:"";position:absolute;right:-30px;bottom:-3px;left:-30px;height:15px;border-radius:55% 45% 52% 48%;background:linear-gradient(90deg,transparent,#202623 14% 86%,transparent);filter:blur(.2px)}.app-shell .practice-panel-meditation .practice-motion{left:50%;width:52px;height:12px;transform:translate(-50%);border-top:1px solid rgba(34,68,67,.34);border-radius:50%;opacity:.7}.app-shell .practice-panel-meditation .practice-motion.one{top:38px;animation:practice-breath-line 2.4s ease-in-out infinite}.app-shell .practice-panel-meditation .practice-motion.two{top:58px;width:76px;animation:practice-breath-line 2.4s ease-in-out .7s infinite}.app-shell .practice-panel-training .practice-figure{left:50%;bottom:28px;width:30px;height:84px;transform:translate(-50%) rotate(-3deg);border-radius:22px 22px 8px 8px;background:linear-gradient(145deg,#1f2522,#284549);clip-path:polygon(48% 0,76% 14%,72% 100%,28% 100%,24% 14%);transform-origin:50% 86%;animation:practice-stance 1.35s ease-in-out infinite}.app-shell .practice-panel-training .practice-figure:before{content:"";position:absolute;top:-18px;left:50%;width:16px;height:18px;transform:translate(-50%);border-radius:42% 42% 48% 48%;background:#242722}.app-shell .practice-panel-training .practice-figure:after{content:"";position:absolute;top:21px;left:50%;width:112px;height:4px;transform:translate(-50%) rotate(-22deg);border-radius:999px;background:#1f2320;box-shadow:0 1px #fffaee47}.app-shell .practice-panel-training .practice-motion{left:50%;top:48px;width:112px;height:52px;border-top:2px solid rgba(37,68,66,.5);border-radius:50%;transform-origin:50% 70%;opacity:0}.app-shell .practice-panel-training .practice-motion.one{transform:translate(-50%) rotate(-24deg);animation:practice-sweep 1.35s ease-out infinite}.app-shell .practice-panel-training .practice-motion.two{transform:translate(-50%) rotate(18deg);animation:practice-sweep 1.35s ease-out .58s infinite}.app-shell .practice-data-panel{display:grid;grid-template-rows:auto auto auto;gap:8px;min-height:0}.app-shell .practice-exp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.app-shell .practice-exp-row{width:100%;min-height:38px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(94,84,68,.38);background:linear-gradient(#fffcf494,#e5dcca6b),#f8f6eeb8;color:#51483b}.app-shell .practice-exp-row span{min-height:0;color:#6a5d4c;font-size:13px;line-height:1.2}.app-shell .practice-exp-row strong{min-width:0;overflow:hidden;color:#2f2a23;font-size:14px;font-weight:700;text-align:right;text-overflow:ellipsis;white-space:nowrap}.app-shell .practice-panel-meditation .practice-exp-grid{gap:6px}.app-shell .practice-panel-meditation .practice-exp-row{min-height:34px;padding:5px 7px}.app-shell .practice-panel-meditation .practice-exp-row span{font-size:12px}.app-shell .practice-panel-meditation .practice-exp-row strong{font-size:13px}.app-shell .practice-progress-row{min-height:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;color:#5f5648;font-size:13px;font-weight:700;line-height:16px}.app-shell .practice-progress{width:100%;height:17px;padding:2px;overflow:hidden;border:1px solid rgba(77,66,49,.78);background:linear-gradient(#fffcf0a3,#c1b292c7),#d6caaeeb;box-shadow:inset 0 0 0 1px #fff9e870,inset 0 2px 3px #3a2d1d33}.app-shell .practice-progress i{display:block;min-width:2px;height:100%;background:linear-gradient(rgba(255,255,255,.16),transparent 48%),linear-gradient(90deg,#155a5a,#183a35);box-shadow:inset 0 0 0 1px #ffffff1f,1px 0 3px #18302947;transition:width 60ms linear}@keyframes practice-aura-pulse{0%{opacity:0;transform:scale(.62)}24%{opacity:.58}to{opacity:0;transform:scale(1.22)}}@keyframes practice-sprite-loop{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes practice-breathe{0%,to{transform:translate(-50%) translateY(0) scale(1)}50%{transform:translate(-50%) translateY(-4px) scale(1.03)}}@keyframes practice-breath-line{0%,to{opacity:0;transform:translate(-50%) translateY(7px) scaleX(.62)}45%{opacity:.7;transform:translate(-50%) translateY(0) scaleX(1)}}@keyframes practice-stance{0%,to{transform:translate(-50%) rotate(-5deg)}50%{transform:translate(-50%) rotate(5deg)}}@keyframes practice-sweep{0%{opacity:0;transform:translate(-50%) rotate(-36deg) scaleX(.62)}24%{opacity:.78}to{opacity:0;transform:translate(-50%) rotate(30deg) scaleX(1.08)}}@media(min-width:900px){.app-shell-desktop .practice-overlay{padding:12px}.app-shell-desktop .practice-body{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(220px,.95fr) minmax(260px,1fr);align-items:stretch}.app-shell-desktop .practice-visual-frame{min-height:0}.app-shell-desktop .practice-visual{width:min(260px,74%)}}@media(max-width:390px){.app-shell .practice-overlay{padding:8px}.app-shell .practice-panel{gap:8px;padding:9px}.app-shell .practice-panel-head strong{font-size:18px}.app-shell .practice-body{grid-template-rows:minmax(108px,1fr) auto;gap:8px}.app-shell .practice-exp-row{min-height:34px;padding:5px 7px}.app-shell .practice-sprite{width:min(142px,84%)}.app-shell .practice-ink-figure{width:126px;height:98px}.app-shell .practice-ink-training{width:134px;height:104px}}@media(prefers-reduced-motion:reduce){.app-shell .practice-aura,.app-shell .practice-motion,.app-shell .practice-sprite:before,.app-shell .practice-ink-figure,.app-shell .practice-figure,.app-shell .fighter-card.battle-event-turn-start,.app-shell .fighter-card.battle-event-hit,.app-shell .fighter-card.battle-event-blocked,.app-shell .fighter-card.battle-event-dodged,.app-shell .fighter-card.battle-event-hit:after,.app-shell .fighter-card.battle-event-blocked:after,.app-shell .fighter-card.battle-event-dodged:after,.app-shell .fighter-status-icon.pulse{animation:none}}.app-shell .battle-view{position:relative;inset:auto;z-index:1;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(260px,1.3fr) minmax(110px,.55fr) auto;gap:7px;padding:8px;overflow:hidden;border:3px double #5f584d;background:radial-gradient(circle at 15% 8%,rgba(255,255,255,.4),transparent 7rem),radial-gradient(circle at 90% 92%,rgba(91,73,49,.08),transparent 9rem),repeating-linear-gradient(0deg,rgba(91,72,48,.03) 0 1px,transparent 1px 7px),linear-gradient(135deg,#f3eee4,#d9cbb7),#e6dcc9;box-shadow:inset 0 0 0 1px #fffaeead,inset 0 0 28px #5e482e14}.app-shell .battle-title-panel{min-height:42px;display:grid;place-items:center;padding:5px 10px;border:1px solid rgba(91,79,62,.5);background:linear-gradient(#fffcf4a3,#dcd1be7a),#eee7dbf0;box-shadow:inset 0 0 0 1px #fffaee8a,0 1px 2px #1f181114}.app-shell .battle-view h2{margin:0;color:#27211a;font-size:24px;font-weight:600;line-height:1.12;text-align:center;text-shadow:none}.app-shell .battle-view h2:after{content:"";display:block;width:108px;height:1px;margin:5px auto 0;background:linear-gradient(90deg,transparent,rgba(91,79,62,.44),transparent);clip-path:none}.app-shell .battle-field{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:6px;align-items:stretch;padding:7px;overflow:visible;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf470,#dad0bc5c),#ede7dbe0;box-shadow:inset 0 0 0 1px #fffaee70}.app-shell .battle-side{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:5px;overflow:visible}.app-shell .battle-side h3{min-height:25px;margin:0;display:grid;place-items:center;border-bottom:1px solid rgba(91,79,62,.32);color:#3c3428;font-size:15px;font-weight:600;line-height:1}.app-shell .ally-side h3{color:#24595b}.app-shell .enemy-side{padding-left:0}.app-shell .enemy-side h3{color:#8e3025}.app-shell .battle-divider{position:relative;display:block;width:18px;align-self:stretch}.app-shell .battle-divider:before{content:"";position:absolute;top:12px;bottom:12px;left:50%;width:1px;background:linear-gradient(transparent,rgba(80,69,54,.45),transparent)}.app-shell .battle-divider:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border:1px solid rgba(80,69,54,.42);background:#ded5c6;transform:translate(-50%,-50%) rotate(45deg)}.app-shell .fighter-stack{min-height:0;display:grid;align-content:center;gap:5px;overflow:visible}.app-shell .fighter-slot.empty{display:none}.app-shell .fighter-card{position:relative;min-height:66px;display:grid;grid-template-rows:auto auto auto auto;gap:3px;padding:6px 7px;overflow:visible;border:2px solid rgba(91,79,62,.56);background:linear-gradient(#fffcf4ad,#ded4c27a),#eee7dbf5;color:#2e271f;box-shadow:inset 0 0 0 1px #fffaee80,0 1px 3px #1f18111a;transition:box-shadow .16s ease,border-color .16s ease,transform .16s ease,opacity .16s ease}.app-shell .fighter-card.battle-event-turn-start,.app-shell .fighter-card.battle-event-hit,.app-shell .fighter-card.battle-event-blocked,.app-shell .fighter-card.battle-event-dodged{z-index:3}.app-shell .fighter-card.battle-event-turn-start{animation:fighter-event-advance-ally .52s ease-out both}.app-shell .fighter-card.enemy.battle-event-turn-start{animation-name:fighter-event-advance-enemy}.app-shell .fighter-card.battle-event-hit{animation:fighter-event-hit .36s ease-out both}.app-shell .fighter-card.battle-event-blocked{animation:fighter-event-blocked .42s ease-out both}.app-shell .fighter-card.battle-event-dodged{animation:fighter-event-dodged .46s ease-out both}.app-shell .fighter-card.battle-event-hit:after,.app-shell .fighter-card.battle-event-blocked:after,.app-shell .fighter-card.battle-event-dodged:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none}.app-shell .fighter-card.battle-event-hit:after{border:2px solid rgba(142,48,37,.42);box-shadow:inset 0 0 14px #8e30253d;animation:fighter-event-overlay .42s ease-out both}.app-shell .fighter-card.battle-event-blocked:after{background:repeating-linear-gradient(135deg,rgba(36,89,91,.14) 0 2px,transparent 2px 7px),radial-gradient(circle at 50% 50%,rgba(36,89,91,.2),transparent 62%);border:2px solid rgba(36,89,91,.34);animation:fighter-event-overlay .52s ease-out both}.app-shell .fighter-card.battle-event-dodged:after{background:linear-gradient(90deg,transparent,rgba(255,252,244,.42),transparent);animation:fighter-event-overlay .46s ease-out both}.app-shell .fighter-action-fill{position:absolute;inset:0 auto 2px 0;z-index:0;pointer-events:none;max-width:100%;width:var(--action-from, 0%);background:linear-gradient(90deg,#97763747,#b98a3633),#bb975229;box-shadow:inset -1px 0 #6048222e}.app-shell .fighter-action-fill.running{animation:fighter-action-progress var(--action-duration, 1s) linear forwards}.app-shell .fighter-card.enemy .fighter-action-fill{background:linear-gradient(90deg,#8e302533,#b98a3624),#8e30251a}.app-shell .fighter-card.enemy{border-color:#8e302594;background:linear-gradient(#fffaeead,#e2cdb57a),#eee7dbf0}.app-shell .fighter-card.selectable{cursor:pointer}.app-shell .fighter-card.selectable:hover{border-color:#8e3025c2}.app-shell .fighter-card.selectable:focus-visible{outline:2px solid #1b3e40;outline-offset:2px}.app-shell .fighter-card.selected{border-color:#8e3025;box-shadow:inset 0 0 0 2px #8e3025b8,0 0 0 2px #f4e5c6e6,0 2px 8px #1f18112e}.app-shell .fighter-card.ready{box-shadow:inset 0 0 0 1px #ffefbeb8,inset 0 -3px #ab802b33,0 2px 8px #1f18111f}.app-shell .fighter-card.wounded{border-left:4px solid rgba(142,48,37,.8)}.app-shell .fighter-card.defeated{opacity:.56;filter:grayscale(.35)}.app-shell .fighter-title{position:relative;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:6px;padding:2px 4px 4px;overflow:hidden;border-bottom:1px solid rgba(91,79,62,.22);background:linear-gradient(90deg,#9f8f702e,#ddd3be1f),#fffcf42e}.app-shell .fighter-title>:not(.fighter-action-fill){position:relative;z-index:1}.app-shell .fighter-card strong{min-width:0;overflow:hidden;color:#29231c;font-size:14px;font-weight:700;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.app-shell .fighter-title>span:not(.fighter-action-fill){max-width:54px;overflow:hidden;color:#665846;font-size:11px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.app-shell .fighter-row,.app-shell .fighter-status{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr) 44px;align-items:center;gap:4px;color:#4f4639;font-size:11px;line-height:1.08}.app-shell .fighter-row small{min-width:0;overflow:hidden;color:#302a22;font-size:10px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.app-shell .fighter-status{grid-template-columns:minmax(0,1fr) auto}.app-shell .fighter-status .fighter-tactic{min-width:0;overflow:hidden;color:#24595b;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.app-shell .fighter-status-effects{min-width:34px;display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;overflow:hidden}.app-shell .fighter-status-icon{width:15px;height:15px;display:inline-grid;place-items:center;border:1px solid rgba(36,89,91,.52);background:linear-gradient(#fffff9d1,#dce8dbb8),#edf1e6;color:#24595b;font-size:10px;font-weight:700;line-height:1}.app-shell .fighter-status-icon.pulse{animation:fighter-status-pulse .62s ease-out both}.app-shell .fighter-damage-float{position:absolute;top:36%;right:-8px;z-index:6;min-width:24px;pointer-events:none;color:#8e3025;font-size:18px;font-weight:700;line-height:1;text-align:center;text-shadow:0 1px 0 rgba(255,248,232,.9),0 2px 5px rgba(48,31,22,.24);animation:fighter-damage-float .76s ease-out both}.app-shell .fighter-card.enemy .fighter-damage-float{right:auto;left:-8px}.app-shell .fighter-damage-float.blocked{color:#24595b}.app-shell .fighter-card.enemy .fighter-status .fighter-tactic,.app-shell .fighter-card.enemy .fighter-status-icon{color:#8e3025}.app-shell .fighter-card.enemy .fighter-status-icon{border-color:#8e302585;background:linear-gradient(#fffff9d1,#edddd6b8),#f0e6dc}.app-shell .fighter-card.enemy .fighter-title span{color:#8e3025}@keyframes fighter-action-progress{0%{width:var(--action-from, 0%)}to{width:100%}}@keyframes fighter-event-advance-ally{0%{transform:translate(0)}42%{transform:translate(8px)}to{transform:translate(0)}}@keyframes fighter-event-advance-enemy{0%{transform:translate(0)}42%{transform:translate(-8px)}to{transform:translate(0)}}@keyframes fighter-event-hit{0%,to{transform:translate(0)}24%{transform:translate(-2px)}48%{transform:translate(2px)}72%{transform:translate(-1px)}}@keyframes fighter-event-blocked{0%{transform:translate(0)}38%{transform:translate(2px) scale(.985)}to{transform:translate(0) scale(1)}}@keyframes fighter-event-dodged{0%{opacity:1;transform:translate(0)}42%{opacity:.62;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes fighter-event-overlay{0%{opacity:0}32%{opacity:1}to{opacity:0}}@keyframes fighter-status-pulse{0%{transform:scale(1);box-shadow:none}38%{transform:scale(1.18);box-shadow:0 0 0 2px #24595b24}to{transform:scale(1);box-shadow:none}}@keyframes fighter-damage-float{0%{opacity:0;transform:translateY(4px) scale(.84)}24%{opacity:1;transform:translateY(-2px) scale(1.08)}to{opacity:0;transform:translateY(-22px) scale(1)}}@media(prefers-reduced-motion:reduce){.app-shell .fighter-card.battle-event-turn-start,.app-shell .fighter-card.battle-event-hit,.app-shell .fighter-card.battle-event-blocked,.app-shell .fighter-card.battle-event-dodged,.app-shell .fighter-card.battle-event-hit:after,.app-shell .fighter-card.battle-event-blocked:after,.app-shell .fighter-card.battle-event-dodged:after,.app-shell .fighter-status-icon.pulse,.app-shell .fighter-damage-float{animation:none}}.app-shell .fighter-row .hp,.app-shell .fighter-row .inner-bar,.app-shell .fighter-row .action-bar{height:8px;padding:1px;overflow:hidden;border:1px solid #75654d;background:linear-gradient(#fffcf466,#b09e7d6b),#c7b895;box-shadow:inset 0 1px 2px #33271929}.app-shell .fighter-row .hp i,.app-shell .fighter-row .inner-bar i,.app-shell .fighter-row .action-bar i{display:block;height:100%}.app-shell .fighter-row .hp i{background:linear-gradient(90deg,#80281d,#b64a32)}.app-shell .fighter-row .inner-bar i{background:linear-gradient(90deg,#174f52,#2b7374)}.app-shell .fighter-row .action-bar i{background:linear-gradient(90deg,#765323,#b98a36)}.app-shell .battle-log{min-height:0;overflow-y:auto;padding:8px 10px;border:1px solid rgba(91,79,62,.56);background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.36),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48f,#dcd1be7a),#eee7dbe6;box-shadow:inset 0 0 0 1px #fffaee94,inset 0 0 18px #5b48300f;color:#332d24;font-size:13px;line-height:1.44;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .battle-view.battle-event-ended .battle-field{box-shadow:inset 0 0 0 1px #5b4f3e47,inset 0 0 26px #5b4f3e14}.app-shell .battle-log p{position:relative;margin:0;padding:4px 0;border-bottom:1px dashed rgba(114,83,50,.2);line-height:1.42}.app-shell .battle-log p:before{display:none}.app-shell .battle-log-line.damage{color:#793226}.app-shell .battle-log-line.damage:before{background:#9a372b}.app-shell .battle-log-line.recovery{color:#24595b}.app-shell .battle-log-line.recovery:before{background:#246c6e}.app-shell .battle-log-line.status{color:#75551f}.app-shell .battle-log-line.status:before{background:#9b742b}.app-shell .battle-log-line.result{color:#37271d;font-weight:700}.app-shell .battle-log-line.result:before{background:#8e3025}.app-shell .battle-actions{min-height:52px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.app-shell .battle-action-slot{position:relative;min-width:0}.app-shell .battle-action-slot.close{grid-column:1 / -1}.app-shell .battle-action-trigger{width:100%;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 6px;border:3px double rgba(255,238,205,.42);color:#fff2dd;font-size:16px;line-height:1.05;box-shadow:inset 0 0 0 1px #fff6db2e,0 1px 2px #1f18112e}.app-shell .battle-action-trigger strong{font-size:17px;font-weight:600}.app-shell .battle-action-trigger span{max-width:100%;overflow:hidden;color:#f8e6be;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.app-shell .battle-actions>.battle-action-slot:nth-child(1) .battle-action-trigger{background:linear-gradient(rgba(255,232,196,.14),transparent 44%),linear-gradient(#a3432e,#68281e)}.app-shell .battle-actions>.battle-action-slot:nth-child(2) .battle-action-trigger{background:linear-gradient(rgba(220,246,236,.1),transparent 45%),linear-gradient(#28696d,#1d4549)}.app-shell .battle-actions>.battle-action-slot:nth-child(3) .battle-action-trigger{background:linear-gradient(rgba(255,232,196,.12),transparent 44%),linear-gradient(#92703a,#66502d)}.app-shell .battle-actions>.battle-action-slot:nth-child(4) .battle-action-trigger,.app-shell .battle-action-slot.close .battle-action-trigger{background:linear-gradient(rgba(255,255,255,.1),transparent 44%),linear-gradient(#5d5850,#3b3834)}.app-shell .battle-action-trigger.selected{outline:2px solid #f0dfbd;box-shadow:inset 0 0 0 2px #3a2d2061,0 1px 2px #1f18112e}.app-shell .battle-action-popover{position:absolute;right:0;bottom:calc(100% + 7px);left:0;z-index:18;display:grid;gap:6px;min-width:144px;max-height:min(240px,54vh);overflow-y:auto;padding:8px;border:3px double #6d6254;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.38),transparent 5.5rem),repeating-linear-gradient(0deg,rgba(91,72,48,.028) 0 1px,transparent 1px 7px),linear-gradient(#fffcf48a,#dcd1be7a),#eee7dbf5;box-shadow:inset 0 0 0 1px #fffaee94,0 12px 26px #2118113d;scrollbar-color:#8d7a5d rgba(229,218,199,.5);scrollbar-width:thin}.app-shell .battle-action-popover button{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid rgba(91,79,62,.52);background:linear-gradient(#fffcf48f,#dad0bc6b),#ede7dbe0;color:#332a20;font-size:13px;line-height:1.15;box-shadow:inset 0 0 0 1px #fffaee6b,0 1px 2px #1f181114}.app-shell .battle-action-popover button strong{min-width:0;overflow:hidden;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.app-shell .battle-action-popover button span{flex:0 0 auto;color:#665846;font-size:12px}.app-shell .battle-action-popover button.selected{border-color:#20575a9e;background:linear-gradient(#fffcf49e,#ccdfd27a),#efe9dcf5;outline:none}.app-shell .battle-action-trigger:disabled,.app-shell .battle-action-popover button:disabled{opacity:.55}@media(min-width:900px){.app-shell-desktop .battle-view{grid-template-rows:auto minmax(330px,1.45fr) minmax(120px,.45fr) auto;gap:8px;padding:10px}.app-shell-desktop .battle-field{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:9px;padding:10px}.app-shell-desktop .battle-divider{width:24px}.app-shell-desktop .fighter-stack{gap:6px}.app-shell-desktop .fighter-card{min-height:72px;padding:7px 8px}.app-shell-desktop .battle-log{padding:10px 12px;font-size:14px}}@media(max-width:390px){.app-shell .battle-view{grid-template-rows:auto minmax(240px,1.18fr) minmax(96px,.5fr) auto;gap:6px;padding:7px}.app-shell .battle-title-panel{min-height:36px;padding:4px 8px}.app-shell .battle-view h2{font-size:21px}.app-shell .battle-field{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:4px;padding:5px}.app-shell .battle-divider{width:12px}.app-shell .battle-side h3{min-height:22px;font-size:13px}.app-shell .fighter-card{min-height:60px;gap:2px;padding:6px}.app-shell .fighter-card strong{font-size:13px}.app-shell .fighter-row{grid-template-columns:25px minmax(0,1fr) 38px;gap:3px;font-size:10px}.app-shell .fighter-status{grid-template-columns:minmax(0,1fr) auto;gap:3px;font-size:10px}.app-shell .fighter-status-effects{min-width:30px}.app-shell .fighter-status-icon{width:14px;height:14px;font-size:9px}.app-shell .battle-log{padding:7px 8px;font-size:12px}.app-shell .battle-action-trigger{min-height:48px;padding:3px 4px}.app-shell .battle-action-trigger strong{font-size:15px}}
