/* Emberfall 0.2 — clear, jewel-toned anime UI */
:root{--ink:#eef6ff;--muted:#abc0d9;--gold:#ffda8d;--line:#9ebfee35;--panel:#1d2c52;--green:#6eebd6;--red:#ff9a9d}html,body{touch-action:manipulation;-webkit-text-size-adjust:100%}button,a,select,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border-radius:7px;background:#263b64}button:hover{background:#34547a;border-color:#aacde4}#game{background:#214b63}#world,.joystick,.combat,.ability,.attack{touch-action:none}.vignette{background:linear-gradient(#132246ae,transparent 27%,transparent 68%,#152147ab)}.brand{filter:drop-shadow(0 2px 6px #162a4c)}.topbar .brand small{color:#b2e3fd}.portrait{background:#567aa0;border:2px solid #e1d9ad;box-shadow:0 0 14px #8fdaec55}.portrait-art{background-image:url('./assets/anime-actors.webp');background-size:225% 225%;background-position:2% 0}.hero-info{text-shadow:0 1px 3px #1b325c}.health i{background:linear-gradient(90deg,#f1809f,#ffc19d)}.stamina i{background:linear-gradient(90deg,#51bfee,#a9f8ec)}.meter{background:#162c5580}.icon-button{background:#1b2e54ac;border:1px solid #b5dfff55}.location{filter:drop-shadow(0 2px 5px #15264f)}.location h1{font-weight:700;color:#fff5da}.quest{background:linear-gradient(90deg,#152f55a6,transparent);padding:10px 12px 10px 15px;border-left:2px solid #8fe7eb;border-radius:0 7px 7px 0}.quest p{color:#d1e6f2}.quest .eyebrow{color:#a6edff}.navigation button{background:#172f542e;border:1px solid transparent}.navigation button:hover{background:#3154819e}.navigation button>span{color:#e6e4b7}.navigation b{color:#eef7ff;text-shadow:0 1px 4px #1c294e}.ability{background:radial-gradient(circle at 35% 25%,#6896cdeb,#273861ef);border-color:#a2d5ef;box-shadow:inset 0 0 15px #91d9ff24,0 5px 18px #16265150;border-radius:15px}.ability>span{color:#fff1c2;text-shadow:0 0 12px #bbf5ff}.ability i{background:#17264ed6}.attack{background:radial-gradient(circle at 35% 25%,#ffdea9,#d88971 55%,#924f74);border:2px solid #ffe8bd;box-shadow:0 0 0 5px #8cbadb35,0 5px 25px #1c3b6a65}.attack b,.attack span{color:#fff9e4}.dodge{background:radial-gradient(#589aaa,#244976);border-radius:50%}.auto-button{background:#1f3e60c9;border-color:#81b6d469}.joy-ring{border-color:#c5eaff9e;background:#d6f6ff17;box-shadow:inset 0 0 0 16px #e4f5ff0b}.stick{background:radial-gradient(#cae8f49c,#84b7d477);border-color:#e1f4ffad}.feed-item{text-shadow:0 1px 4px #112143;color:#eefbff}.panel{background:linear-gradient(140deg,#263e69f8,#142542fb);border:1px solid #b8dff27a;border-radius:15px;box-shadow:0 25px 100px #071f4c99}.panel>header{background:linear-gradient(90deg,#88bbf00c,transparent);border-bottom-color:#afd2ea30}.panel h2{color:#f7e6b9}.primary{background:linear-gradient(115deg,#ffe0a4,#ffb29d);color:#343951;border-color:#ffecc2;border-radius:7px;box-shadow:0 3px 12px #091e3c3a}.primary:hover{background:#ffe1b5}.secondary{background:#34507a7a;border-color:#bad5f04a;border-radius:7px}.danger{color:#ffc1c0;border-color:#faadb44a}.stat,.detail{background:#6891c210;border-color:#add4ff35;border-radius:8px}.stat b{color:#ffdf9e}.item{background:#253e63;border-radius:8px}.item.selected{background:#416183;border-color:#ffe0a7}.item-icon{background:#6eafcd24;border-color:#abd9f936;border-radius:8px}.item .rank{font-size:12px}.world-card{background:#243d63;border-color:#a6d6eb50;border-radius:9px}.world-art{background-image:linear-gradient(transparent,#243d63),url('./assets/anime-forest.webp')}.world-card:nth-child(2) .world-art{background-image:linear-gradient(transparent,#243d63),url('./assets/anime-ruins.webp');filter:none}.world-card:nth-child(3) .world-art{background-image:linear-gradient(transparent,#243d63),url('./assets/anime-ruins.webp');filter:hue-rotate(320deg)}.skill-card{background:linear-gradient(135deg,#304d75,#213454);border-color:#a3c9ea3b;border-radius:10px;position:relative;overflow:hidden}.skill-card.learned{background:linear-gradient(135deg,#43678a,#294359);border-color:#c8e4c187}.skill-card .glyph{filter:drop-shadow(0 0 10px #adddff66)}.skill-card button{border-radius:6px}.advancement{border-radius:8px;background:#2f466c}.forge-tabs button{border-radius:7px;background:#30496c}.forge-tabs button.active{background:#47729470;border-color:#ffe3a8;color:#fff0c7}.forge-option{background:#253e622e;border-radius:9px;border-color:#b5dafa33}.welcome{background:linear-gradient(135deg,#284c72ed,#242d54f5);border:1px solid #d2e9f89e;border-radius:15px}.welcome h2{color:#fff1c8}.welcome p,.welcome-rules{color:#e3f2fc}.welcome>small{color:#b9d1de}.veil{background:#0c204c91;backdrop-filter:blur(6px)}.banner{background:linear-gradient(90deg,transparent,#203e60d9,transparent);color:#ffefbe;text-shadow:0 2px 9px #284367}.toast{background:#2f5075f5;border-color:#bdddeb;color:#fff2d2;border-radius:10px}.boss-hud i{background:linear-gradient(90deg,#c06491,#ffb194)}.boss-hud strong{color:#ffefcf;text-shadow:0 2px 6px #273352}.boss-hud span{color:#ffb6c6;text-shadow:0 1px 5px #273352}.portal-button{background:#355875ed;border-color:#ffe1a0;color:#fff2c9;border-radius:10px}.combo-hud{position:absolute;left:50%;top:29%;transform:translateX(-50%) rotate(-6deg);color:#fff1b8;pointer-events:none;filter:drop-shadow(2px 3px 0 #325480);font-style:italic}.combo-hud b{font-size:42px;line-height:1;font-weight:900}.combo-hud span{font-size:12px;letter-spacing:2px;margin-left:5px}.combo-hud.pulse{animation:combo-pop .18s ease-out}@keyframes combo-pop{from{transform:translateX(-50%) rotate(-6deg) scale(1.2)}to{transform:translateX(-50%) rotate(-6deg) scale(1)}}.interact-button{position:absolute;left:50%;bottom:24%;transform:translateX(-50%);padding:12px 18px;background:#294b72ee;border:1px solid #a9eaf0;color:#edfcff;box-shadow:0 0 25px #7bd8ec40;z-index:2;white-space:nowrap;font-size:14px}.interact-button kbd{font:11px system-ui;border:1px solid #a4c9dd77;border-radius:4px;padding:0 4px;margin-left:8px}.interact-button:active{transform:translateX(-50%) scale(.97)}
.inventory-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px}.bag-equipment{display:flex;gap:8px;margin-bottom:16px}.bag-equipped-slot{flex:1;min-width:0;padding:9px;border:1px solid #c0daf23b;background:#4b779823;border-radius:8px;display:flex;align-items:center;gap:8px;text-align:left}.bag-equipped-slot>span{font-size:24px;color:#ffdaa2}.bag-equipped-slot b{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.bag-equipped-slot small{font-size:11px;color:#b8ccdf}.bag-tabs{display:flex;gap:6px;margin-bottom:12px}.bag-tabs button{flex:1;font-size:13px;padding:7px 9px;white-space:nowrap}.bag-tabs button.active{background:#527da0;color:#fff2cf;border-color:#f0d9a8}.bag-tools{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-bottom:12px}.bag-tools>span{font-size:12px;color:#b9d1e6}.bag-tools select{font-size:12px;background:#263f65;color:#ecf8ff;border:1px solid #9ab9d255;border-radius:5px;padding:6px}.inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:365px;overflow:auto;align-content:start;padding:2px 3px 5px 2px}.inv-cell{position:relative;min-width:0}.inv-tile{width:100%;height:103px;position:relative;padding:8px 5px;border:1px solid #98bedb56;border-radius:9px;background:linear-gradient(140deg,#587ea048,#243b63);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;overflow:hidden}.inv-tile.selected{border-color:#ffe5a9;box-shadow:inset 0 0 0 1px #ffe5a9,0 0 15px #e2c38e1b}.inv-tile>span{font-size:30px;line-height:1.1;color:#dbeaff}.inv-tile>strong{font-weight:500;font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inv-tile>small{font-size:10px;color:#c4d4e6}.inv-tile .tile-quantity{position:absolute;bottom:4px;right:6px;font:600 11px system-ui;color:#ffe7b7}.inv-tile .tile-lock{position:absolute;right:5px;top:3px;font-size:10px;color:#f7e6b3}.inv-tile .tile-plus{position:absolute;left:6px;top:4px;font:600 11px system-ui;color:#fff4c9}.inv-tile.crafted{border-color:#7ce0c798}.inv-tile.set{border-color:#acbaff}.inv-tile.boss{border-color:#ffd596}.inv-tile.unique{border-color:#f9bbf8}.inv-tile.material>span{color:#bedfff}.inv-tile.gem>span{color:#ffa9c1}.inv-tile.emerald>span{color:#87f3c6}.inv-tile.sapphire>span{color:#a7cfff}.tile-check{position:absolute;top:4px;left:4px;border:1px solid #b1d6e8;background:#1b3156;width:24px;height:24px;font-size:14px;display:grid;place-items:center;padding:0;z-index:1;border-radius:5px}.tile-check[aria-pressed=true]{background:#ffe0a7;color:#263856;border-color:#fff5c7}.batch-bar{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}.batch-bar button{font-size:12px;padding:8px 10px;flex:1}.batch-bar .selected-count{color:#ffefbf}.inventory-detail .detail{margin-top:0}.inventory-detail .detail dl{font-size:13px}.inventory-detail .detail>strong{font-size:19px}.inventory-detail .detail .actions{gap:6px}.inventory-detail .detail .actions button{font-size:12px;padding:8px 10px}.material-detail-icon{font-size:55px;text-align:center;margin:2px 0 13px;color:#c2efff}.material-detail-qty{text-align:center;font-size:14px;color:#ffedb4;margin-bottom:15px}.bag-empty{grid-column:1/-1}.forge-stock{font-size:12px;color:#b9d2e5;line-height:1.6}.forge-stock .missing{color:#ffb5b4}.recipe-summary{font-size:13px;color:#aecddd;margin-bottom:15px}.recipe-summary button{font-size:12px;padding:3px 9px;margin-left:7px}.gem-slots{display:flex;flex-direction:column;gap:8px;margin-top:15px}.gem-slots .forge-option{margin:0!important}.gem-row button{min-height:42px}.option-switch{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.option-switch button{padding:5px 14px;color:#d9efff}.option-switch button[aria-pressed=true]{color:#fff1b9;border-color:#d4c39b}.discovery-list{margin-top:20px}.discovery-list .journal-row{font-size:13px}.discovery-row{display:flex;gap:10px;padding:12px;background:#7cafdc0e;border:1px solid #a2c3e42d;margin-bottom:8px;border-radius:7px;align-items:center}.discovery-row>span{font-size:25px;color:#ffe3ac}.discovery-row strong{font-size:14px}.discovery-row p{font-size:12px;margin:3px 0 0}.room-step{display:inline-block;border:1px solid #bad6e65e;border-radius:4px;padding:1px 5px;margin-right:4px;color:#d7f5fc}
.action-dialog{position:absolute;z-index:35;inset:0;background:#071936a8;backdrop-filter:blur(3px);display:grid;place-items:center;padding:22px}.action-card{width:min(430px,100%);padding:25px;background:linear-gradient(135deg,#34527a,#1d3053);border:1px solid #b8d9ee;border-radius:14px;box-shadow:0 20px 70px #091c3c99;animation:panel-rise .2s ease-out}.action-card h2{font-size:23px}.action-card p{color:#c4d8e9;font-size:14px;line-height:1.8}.action-card .actions{margin-top:22px}.action-card #actionDetail{background:#7eb7d512;border-radius:7px;padding:11px;font-size:14px;color:#ffdfa0}.action-card #actionDetail:empty{display:none}.upgrade-fx{position:absolute;inset:0;z-index:40;display:grid;place-items:center;pointer-events:auto;background:#081b384d;backdrop-filter:blur(3px)}.fx-card{position:relative;width:290px;padding:44px 20px 26px;border-radius:20px;background:radial-gradient(ellipse at 50% 30%,#456ba8ee,#1b2d53f5 72%);border:1px solid #a9dffc88;box-shadow:0 0 70px #5fc7fb44;text-align:center;overflow:hidden;animation:panel-rise .18s ease-out}.fx-glyph{font-size:60px;color:#e9f4ff;position:relative;z-index:1;line-height:1.3;filter:drop-shadow(0 0 15px #9eeaff);animation:forge-charge .42s ease-in-out infinite alternate}.fx-orbit{position:absolute;left:50%;top:82px;width:116px;height:116px;margin:-58px;border:1px solid #9addeb90;border-radius:50%;animation:orbit .65s linear infinite;box-shadow:0 -4px 8px #d6f7ff33}.fx-orbit.second{width:94px;height:94px;margin:-47px;border-style:dashed;animation-direction:reverse}.fx-rays{position:absolute;inset:-30%;opacity:0;background:repeating-conic-gradient(from 0deg at 50% 40%,#d7f6ff22 0deg,transparent 8deg,transparent 30deg);pointer-events:none}.fx-card .eyebrow{margin-top:24px;color:#abdfff;position:relative;z-index:1}.fx-card h3{font:700 22px/1.5 'Noto Serif TC',serif;position:relative;z-index:1;color:#fff0c0;margin:8px 0}.fx-card p{font-size:13px;color:#c5e6f2;margin:0;position:relative;z-index:1}.upgrade-fx.revealed .fx-glyph{animation:forge-reveal .45s ease-out;filter:drop-shadow(0 0 28px #fff4b5);color:#ffe8b7}.upgrade-fx.revealed .fx-rays{opacity:1;animation:orbit 4s linear infinite}.upgrade-fx.revealed .fx-orbit{animation:orbit-burst .6s ease-out forwards}.upgrade-fx.failed .fx-glyph{color:#e4b4c1;animation:forge-fail .35s ease-out}.upgrade-fx.failed .fx-card{box-shadow:0 0 40px #dc99af22}.upgrade-fx.failed .fx-rays{display:none}.upgrade-fx.kind-skill .fx-card{background:radial-gradient(ellipse at 50% 30%,#49779dee,#26335df5 72%)}.upgrade-fx.kind-gem .fx-card{background:radial-gradient(ellipse at 50% 30%,#418c94ee,#23365af5 72%)}@keyframes panel-rise{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes forge-charge{from{transform:scale(.93);opacity:.65}to{transform:scale(1.06);opacity:1}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes forge-reveal{0%{transform:scale(.85)}40%{transform:scale(1.25)}100%{transform:scale(1)}}@keyframes orbit-burst{to{transform:scale(1.75);opacity:0}}@keyframes forge-fail{20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@media(max-width:640px){.navigation{background:#172c52f2;border-top-color:#b6d9eb5e}.navigation button{background:transparent;border:0}.quest{width:199px;top:calc(147px + env(safe-area-inset-top));padding:6px 9px 7px 10px}.quest strong{font-size:13px}.quest p{font-size:11px}.boss-hud{top:calc(247px + env(safe-area-inset-top))}.combo-hud{top:31%;left:auto;right:22px;transform:rotate(-6deg)}.combo-hud b{font-size:34px}.combo-hud span{font-size:10px}.combo-hud.pulse{animation:none}.inventory-layout{grid-template-columns:1fr;gap:14px}.bag-equipment{gap:5px;margin-bottom:12px}.bag-equipped-slot{padding:7px 5px;gap:5px}.bag-equipped-slot>span{font-size:21px}.bag-equipped-slot b{max-width:65px;font-size:11px}.bag-equipped-slot small{font-size:10px}.bag-tabs{gap:4px}.bag-tabs button{padding:7px 5px;font-size:12px}.inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-height:244px}.inv-tile{height:101px;padding:8px 4px}.inv-tile>span{font-size:28px}.inv-tile>strong{font-size:12px}.inventory-detail .detail>strong{font-size:19px}.inventory-detail .detail dl{grid-template-columns:1fr 1fr;font-size:13px}.inventory-detail .detail{padding:14px}.inventory-detail .detail .actions button{font-size:13px;min-height:39px}.batch-bar{gap:5px}.batch-bar button{font-size:11px;min-height:39px;padding:7px 6px}.bag-tools{gap:6px}.bag-tools select{max-width:115px;font-size:11px}.bag-tools>span{font-size:11px}.bag-empty{font-size:13px}.interact-button{bottom:40%;font-size:13px;padding:10px 15px}.interact-button kbd{display:none}.panel{border-radius:13px}.panel-content{padding:15px}.fx-card{width:270px}.gem-slots .forge-option{flex-wrap:wrap}.gem-slots .actions{margin-top:0;flex:1}.gem-slots .actions button{font-size:12px;padding:8px}.forge-option{align-items:flex-start}.forge-option>button{align-self:center}.forge-stock{font-size:11px}.action-card{padding:20px}.action-card h2{font-size:21px}.action-card .actions button{min-height:44px}.welcome{padding:28px 22px}.welcome h2{font-size:36px}.option-switch{font-size:13px}}
.gem-upgrade{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gem-upgrade>div{grid-column:1/-1}.gem-upgrade>button{font-size:12px;padding:9px 8px;white-space:normal}.tip{color:#afc8df!important}.gem-upgrade p{margin-bottom:2px}.forge-option>div{min-width:0}.fx-card p{min-height:22px}
@media(prefers-reduced-motion:reduce){.fx-orbit,.fx-rays{display:none!important}.upgrade-fx,.action-card{backdrop-filter:none}.combo-hud{display:none!important}}
