/* Painted interface: one scalable frame family, readable live text, original icon atlas. */
button,.primary,.secondary,.forge-tabs button,.skill-card button,.advancement,.icon-button{border:12px solid transparent;border-image:url('./assets/panel-v05.webp') 125 fill / 12px / 0 stretch;background:#dfc7a0;color:#623c28;border-radius:0;box-shadow:0 2px 3px #30201135;min-height:44px;padding:5px 12px;touch-action:manipulation}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px);filter:brightness(.92)}button:disabled{filter:grayscale(.7);opacity:.55;cursor:not-allowed}.primary,.forge-tabs button.active,.class-picks button.active,.appearance-card.active{color:#782d25;font-weight:800;filter:saturate(1.3);box-shadow:0 0 0 2px #a24d2c66}.panel,.welcome,.action-card,.item-card,.fx-card{border:20px solid transparent;border-image:url('./assets/panel-v05.webp') 130 fill / 20px / 0 stretch;background:#f2e3c9;border-radius:0;padding:8px;color:#493224}.panel>header,.item-card>header{background:transparent;border-bottom:1px solid #b6945960}.panel>header{padding:12px 16px}.panel-content{padding:12px 16px 20px}.panel .icon-button{background:transparent}.panel button:focus-visible,.item-card button:focus-visible{outline:3px solid #307b91;outline-offset:3px}.painted-icon{display:inline-block;width:54px;height:54px;background-image:url('./assets/buttons-v05.webp');background-size:400% 300%;background-repeat:no-repeat;vertical-align:middle;flex-shrink:0}.icon-0{background-position:0 0}.icon-1{background-position:33.333% 0}.icon-2{background-position:66.667% 0}.icon-3{background-position:100% 0}.icon-4{background-position:0 50%}.icon-5{background-position:33.333% 50%}.icon-6{background-position:66.667% 50%}.icon-7{background-position:100% 50%}.icon-8{background-position:0 100%}.icon-9{background-position:33.333% 100%}.icon-10{background-position:66.667% 100%}.icon-11{background-position:100% 100%}.navigation button,.is-battle .navigation button{border:0;border-image:none;box-shadow:none;background:none;filter:none;padding:2px}.navigation button>span.painted-icon{background-image:url('./assets/buttons-v05.webp');background-size:400% 300%;background-color:transparent;border:0;border-radius:0;width:50px;height:50px}.is-battle .navigation button>span.painted-icon{width:38px;height:38px}.navigation button b{font-size:14px}.hero-art{display:inline-block;background-image:url('./assets/heroes-v05.webp');background-size:400% 400%;background-repeat:no-repeat;width:160px;height:160px;flex-shrink:0}.hero-0{background-position:0 0}.hero-1{background-position:33.333% 0}.hero-2{background-position:66.667% 0}.hero-3{background-position:100% 0}.hero-4{background-position:0 33.333%}.hero-5{background-position:33.333% 33.333%}.hero-6{background-position:66.667% 33.333%}.hero-7{background-position:100% 33.333%}.hero-8{background-position:0 66.667%}.hero-9{background-position:33.333% 66.667%}.hero-10{background-position:66.667% 66.667%}.hero-11{background-position:100% 66.667%}.hero-12{background-position:0 100%}.hero-13{background-position:33.333% 100%}.hero-14{background-position:66.667% 100%}.hero-15{background-position:100% 100%}.portrait-art.hero-art{width:64px;height:64px;position:absolute;inset:0;background-size:400% 400%;transform:scale(1.25);transform-origin:50% 60%}.identity-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #b48c6055}.identity-strip h3{font-size:24px;margin:0}.identity-strip span{font-size:14px}.creation-steps{display:flex;gap:5px;margin-bottom:20px}.creation-steps span{flex:1;font-size:14px;padding:8px 3px;text-align:center;border-bottom:3px solid #c4a46c}.creation-steps .active{color:#a13b2e;border-color:#a13b2e;font-weight:bold}.appearance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:560px;margin:16px auto}.appearance-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px}.appearance-card .hero-art{width:190px;height:190px}.class-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.class-picks button{padding:4px;display:flex;flex-direction:column;align-items:center}.class-picks .hero-art{width:90px;height:90px}.job-preview{display:flex;align-items:center;gap:24px;margin:20px 0}.job-preview>.hero-art{width:210px;height:210px}.job-preview>div{flex:1}.affinity{display:flex;align-items:center;gap:12px;font-size:14px;line-height:1.8}.affinity meter{width:70%;accent-color:#ab4b34}.class-skills{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.class-skills button{display:grid;grid-template-columns:48px 1fr;align-items:center;text-align:left;gap:5px;padding:8px}.class-skills small{grid-column:1/-1;font-size:13px;line-height:1.5}.class-skills .painted-icon{width:44px;height:44px}.roll-total{float:right;color:#98442f}.roll-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0}.roll-stats>div{display:flex;flex-direction:column;gap:8px;align-items:center;padding:14px 8px;background:#b5853920;border:1px solid #b28c5f66}.roll-stats strong{font:700 32px serif;color:#9f392b}.roll-stats small{font-size:13px;line-height:1.5}.creation-footer{display:flex;justify-content:space-between;gap:10px;position:sticky;bottom:-20px;background:#f3e2c3;padding:12px 0;margin-top:18px;border-top:1px solid #b79562}.creation-summary{display:flex;align-items:center;gap:20px}.creation-summary input{display:block;font-size:18px;padding:10px;width:100%;max-width:300px;margin-top:8px}.point-list{display:flex;flex-direction:column;gap:8px}.point-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 70px 44px;gap:10px;align-items:center;background:#fff4dc60;padding:10px;border-bottom:1px solid #a88c6344}.point-row small{display:block;font-size:13px;color:#7b604a;line-height:1.5;margin-top:5px}.point-row button{padding:0;font-size:20px}.point-row strong{text-align:center;font-size:20px}.point-row em{font-style:normal;font-size:15px;color:#28784f}.point-preview{background:#c8d4b738;padding:15px;margin:12px 0}.point-preview button{margin-right:8px}.camp-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.camp-menu button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px}.camp-menu small{font-size:13px;line-height:1.5}.camp-intro{padding:12px 0}.roster-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px}.roster-list button{display:flex;flex-direction:column;align-items:center}.roster-list .hero-art{width:120px;height:120px}.modal-inventory{display:block!important}.item-modal{position:absolute;inset:0;z-index:70;background:#171119b8;display:flex;align-items:center;justify-content:center;padding:20px}.item-card{width:min(560px,100%);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;overflow:hidden}.item-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 12px}.item-card h2{font-size:20px;color:#7c392c}.item-card>header button{font-size:22px;width:44px;padding:0}#itemContent{overflow:auto;overscroll-behavior:contain;padding:12px 10px 0}#itemContent .detail{border:0;background:none;padding:0}#itemContent .detail .actions{position:sticky;bottom:0;background:#f0dfbf;z-index:1;margin-bottom:0;padding:12px 0;display:flex;flex-wrap:wrap}#itemContent .detail dd{max-width:65%}#itemContent .description,#itemContent p{font-size:14px;line-height:1.6}.chapter-strip{display:flex;gap:6px;overflow-x:auto;padding:5px 0 15px}.chapter-strip button{flex:0 0 125px;padding:6px}.chapter-strip b,.chapter-strip small{display:block}.chapter-strip small{font-size:12px}.chapter-strip button.active{outline:2px solid #a44932}.lesson-hud{position:absolute;top:calc(240px + env(safe-area-inset-top));left:16px;max-width:calc(100% - 32px);z-index:15;background:#f2e1c1;border:12px solid transparent;border-image:url('./assets/panel-v05.webp') 130 fill / 12px;color:#513c2e;padding:8px 12px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;pointer-events:none}.lesson-hud strong{font-size:15px}.lesson-hud p{font-size:14px;margin:0;grid-column:1}.lesson-hud button{grid-row:1/3;grid-column:2;pointer-events:auto;font-size:13px;padding:0 8px}.lesson-story{text-align:center;max-width:550px;margin:auto}.lesson-story .hero-art{width:180px;height:180px}.system-guide{background:#cfdfc340;border-left:3px solid #568163;padding:10px 14px;margin-bottom:16px}.system-guide p{font-size:14px;margin-bottom:0}.skill-demo{min-height:110px;text-align:center;padding:14px;margin-top:12px;background:#b89b6930}.demo-stage{position:relative;max-width:360px;height:120px;margin:auto}.demo-caster{position:absolute;left:20px;bottom:0;width:110px;height:110px;animation:castPose 1.6s infinite}.demo-flash{position:absolute;left:110px;top:32px;animation:demoShot 1.6s infinite}.demo-target{position:absolute;right:20px;top:35px}.demo-target .painted-icon{width:55px;height:55px}.animated{animation:idlePose 2.5s ease-in-out infinite}.ability,.attack{border:0;border-image:none;background:none;box-shadow:none;color:#fff0d1;overflow:visible}.ability>span.painted-icon{width:64px;height:64px;display:block;margin:auto}.attack>span.painted-icon{width:92px;height:92px;display:block;margin:auto}.ability b,.attack b{text-shadow:0 2px 3px #110f12;font-size:13px}.ability.cooldown .painted-icon{filter:grayscale(.8) brightness(.55)}.ability i{z-index:2}.dodge .painted-icon{width:60px!important;height:60px!important}.ability kbd,.attack kbd{z-index:3}.fx-card h3,.fx-card p{color:#643b28!important}.fx-card .eyebrow{color:#8c5b34!important}.upgrade-fx .fx-card{background:#eddfc4!important}.inv-tile,.bag-equipped-slot{border-width:8px;border-image-width:8px}.inv-tile{padding:5px}.batch-bar button{font-size:14px}.panel .stat{border:1px solid #b1906166}.hidden{display:none!important}@keyframes idlePose{50%{transform:translateY(-4px)}}@keyframes castPose{0%,100%{transform:translateX(0) rotate(0)}35%{transform:translateX(-4px) rotate(-5deg)}55%{transform:translateX(8px) rotate(6deg)}}@keyframes demoShot{0%,38%{opacity:0;transform:translateX(0) scale(.5)}45%{opacity:1}80%{opacity:1;transform:translateX(130px) scale(1)}100%{opacity:0;transform:translateX(140px)}}
@media(max-width:640px){.panel{width:calc(100% - 12px);border-width:15px;border-image-width:15px}.panel-content{padding:8px 8px 16px}.panel>header{padding:8px}.appearance-grid{gap:10px}.appearance-card{padding:8px}.appearance-card .hero-art{width:125px;height:125px}.class-picks{gap:4px}.class-picks button{border-width:8px;border-image-width:8px;font-size:13px}.class-picks .hero-art{width:64px;height:64px}.job-preview{gap:8px}.job-preview>.hero-art{width:120px;height:120px}.job-preview p{font-size:14px}.job-preview h3{font-size:19px}.roll-stats{grid-template-columns:1fr}.roll-stats>div{display:grid;grid-template-columns:60px 40px 1fr;gap:8px;padding:8px}.roll-stats strong{font-size:25px}.point-row{grid-template-columns:minmax(0,1fr) 36px 57px 36px;gap:4px;padding:8px 3px}.point-row small{font-size:12px}.point-row button{min-height:38px}.camp-menu{grid-template-columns:repeat(2,1fr);gap:8px}.creation-summary{display:block;text-align:center}.creation-summary input{margin:8px auto}.creation-steps span{font-size:13px}.identity-strip{display:block}.identity-strip h3{margin-bottom:5px}.item-modal{padding:12px}.item-card{max-height:calc(100dvh - 24px);border-width:15px;border-image-width:15px}.item-card>header{padding:0 5px}.item-card .actions button{flex:1;padding:3px 8px}.navigation{gap:0}.is-battle .navigation button{min-height:58px}.is-battle .combat{bottom:calc(96px + env(safe-area-inset-bottom))}.class-skills{grid-template-columns:1fr}.lesson-hud{top:calc(240px + env(safe-area-inset-top));left:10px;max-width:calc(100% - 20px)}.is-battle:has(.lesson-hud:not(.hidden)) .quest{display:none}.creation-footer{bottom:-16px}.cast-status{bottom:calc(298px + env(safe-area-inset-bottom))}.stat-breakdown{overflow:auto}}
@media(prefers-reduced-motion:reduce){.animated,.demo-caster,.demo-flash{animation:none}.demo-flash{opacity:1;transform:translateX(85px)}}

/* Keep confirmations above item details; size artwork inside touch targets. */
#actionDialog{z-index:100}#upgradeFx{z-index:110}#toast{z-index:120}
#itemContent .detail dl{grid-template-columns:90px minmax(0,1fr)}#itemContent .detail dd{max-width:none;overflow-wrap:anywhere}
.ability{height:78px}.ability>span.painted-icon{width:52px;height:52px;margin:0}.attack>span.painted-icon{width:70px;height:70px;margin:0}.dodge .painted-icon{width:44px!important;height:44px!important}.ability b,.attack b{line-height:1.3;margin-top:2px}.dodge{height:68px}
.roadmap-wrap{overflow:auto}.roadmap{width:100%;border-collapse:collapse;font-size:14px}.roadmap th,.roadmap td{padding:12px;text-align:left;border-bottom:1px solid #b7956266;vertical-align:top}.roadmap th{color:#933e2b}.roadmap th:first-child{min-width:100px}.roadmap td:nth-child(2){min-width:180px}
@media(max-width:700px){.ability{height:70px}.ability>span.painted-icon{width:46px;height:46px}.ability b{font-size:12px}.attack>span.painted-icon{width:64px;height:64px}.dodge{height:64px}.lesson-hud{max-width:calc(100% - 32px)}}
