@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-ext-400-normal-XQK_CSAr.woff2) format("woff2"),url(/assets/cinzel-latin-ext-400-normal-DJ0Lq8y-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-400-normal-DnUIPmzd.woff2) format("woff2"),url(/assets/cinzel-latin-400-normal-C8jUSQqm.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-ext-600-normal-BEFdM_VE.woff2) format("woff2"),url(/assets/cinzel-latin-ext-600-normal-BY9Mq9iK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2) format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-ext-700-normal-C24KFjuG.woff2) format("woff2"),url(/assets/cinzel-latin-ext-700-normal-CORa-yIv.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-vietnamese-400-normal-C3m3Wqkz.woff2) format("woff2"),url(/assets/crimson-pro-vietnamese-400-normal-CEHt5KbE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-latin-ext-400-normal-B3ID4PT2.woff2) format("woff2"),url(/assets/crimson-pro-latin-ext-400-normal-BWiDT69a.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-latin-400-normal-B4SlG4wx.woff2) format("woff2"),url(/assets/crimson-pro-latin-400-normal-BzhyrSeK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-vietnamese-400-italic-NXtqStND.woff2) format("woff2"),url(/assets/crimson-pro-vietnamese-400-italic-XRYdg6KH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-latin-ext-400-italic-C6Jf9c7d.woff2) format("woff2"),url(/assets/crimson-pro-latin-ext-400-italic-DuC2towc.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/crimson-pro-latin-400-italic-BJbyz_Tg.woff2) format("woff2"),url(/assets/crimson-pro-latin-400-italic-iL-nM4zC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/crimson-pro-vietnamese-600-normal-BD5z241x.woff2) format("woff2"),url(/assets/crimson-pro-vietnamese-600-normal-WXpto_XS.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/crimson-pro-latin-ext-600-normal-DTIcmTiA.woff2) format("woff2"),url(/assets/crimson-pro-latin-ext-600-normal-ChXPf8Fx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Crimson Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/crimson-pro-latin-600-normal-vJ8oEdKU.woff2) format("woff2"),url(/assets/crimson-pro-latin-600-normal-Ca4fy0Cf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #06080f;--bg: #0a0d19;--panel: rgba(14, 18, 34, .94);--panel-2: #151a2e;--gold: #c9a961;--gold-bright: #f3dfa2;--gold-dim: rgba(201, 169, 97, .38);--line: rgba(201, 169, 97, .22);--text: #ece3cc;--muted: #9a937f;--accent: var(--gold);--accent-2: var(--gold-bright);--danger: #e56b55;--hp: #6fd27a;--mp: #5b9cf5;--gauge: #ea8a46;--magic: #7fb4ff;--rare: #f5d65a;--unique: #e08a3c;--font-display: "Cinzel", "Trajan Pro", Georgia, serif;--font-body: "Crimson Pro", Georgia, "Times New Roman", serif;--corners: linear-gradient(var(--gold-bright), var(--gold-bright)) top left / 14px 2px, linear-gradient( var(--gold-bright), var(--gold-bright) ) top left / 2px 14px, linear-gradient(var(--gold-bright), var(--gold-bright)) top right / 14px 2px, linear-gradient(var(--gold-bright), var(--gold-bright)) top right / 2px 14px, linear-gradient( var(--gold-bright), var(--gold-bright) ) bottom left / 14px 2px, linear-gradient(var(--gold-bright), var(--gold-bright)) bottom left / 2px 14px, linear-gradient(var(--gold-bright), var(--gold-bright)) bottom right / 14px 2px, linear-gradient( var(--gold-bright), var(--gold-bright) ) bottom right / 2px 14px;color-scheme:dark;font-family:var(--font-body);font-size:17px;line-height:1.4}*{box-sizing:border-box}html{background:var(--ink);scrollbar-gutter:stable}*{scrollbar-width:thin;scrollbar-color:rgba(201,169,97,.45) transparent}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(233,180,98,.16),transparent 70%),radial-gradient(ellipse 60% 60% at 100% 100%,rgba(70,90,170,.14),transparent 70%),linear-gradient(180deg,#0d1122 0%,var(--bg) 40%,var(--ink) 100%);background-attachment:fixed}::selection{background:#f3dfa259}button{font-family:var(--font-display);font-size:.82rem;letter-spacing:.06em;color:var(--text);background:linear-gradient(180deg,#1b2138,#0f1326);border:1px solid var(--gold-dim);border-radius:2px;padding:.45rem .95rem;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,color .15s}button:hover:not(:disabled),button:focus-visible{outline:none;color:var(--gold-bright);border-color:var(--gold);background:linear-gradient(90deg,#f3dfa24d,#f3dfa20a 75%),#141a30;box-shadow:0 0 14px #f3dfa224}button:disabled{opacity:.4;cursor:not-allowed}button.on{color:var(--gold-bright);border-color:var(--gold);background:linear-gradient(90deg,#f3dfa252,#f3dfa20f 80%),#141a30;box-shadow:inset 3px 0 0 var(--gold-bright)}button.primary{color:#24180a;font-weight:700;text-shadow:0 1px 0 rgba(255,245,210,.5);border-color:#f7e7b4;background:linear-gradient(180deg,#f6e2a6,#d5ae5c,#a97f35);box-shadow:inset 0 1px #ffffff8c,0 0 18px #e9c46a38}button.primary:hover:not(:disabled),button.primary:focus-visible{color:#24180a;background:linear-gradient(180deg,#fff1c4,#e6c475,#b98c3d);box-shadow:inset 0 1px #fff9,0 0 24px #f3d27866}button.link{background:none;border:none;box-shadow:none;color:var(--gold);padding:0}button.link:hover:not(:disabled),button.link:focus-visible{background:none;box-shadow:none;color:var(--gold-bright);text-decoration:underline;text-underline-offset:4px}input,select{font:inherit;color:var(--text);background:#04060eb3;border:1px solid var(--gold-dim);border-radius:2px;padding:.35rem .55rem}input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 10px #f3dfa233}select option{background:var(--panel-2)}input[type=checkbox]{accent-color:var(--gold)}h1,h2,h3,h4{margin:0 0 .5rem;font-family:var(--font-display);font-weight:600;letter-spacing:.06em}h2{font-size:1.3rem;color:var(--gold-bright);padding-bottom:.45rem;margin-bottom:.7rem;background:linear-gradient(90deg,var(--gold),rgba(201,169,97,.15) 70%,transparent) bottom left / 100% 1px no-repeat;text-shadow:0 0 12px rgba(243,223,162,.25)}h3{font-size:1rem;margin-top:1rem;color:var(--gold)}h3:before{content:"◆ ";font-size:.6em;vertical-align:.2em;color:var(--gold-dim)}h4{font-size:.8rem;color:var(--muted);margin-top:.6rem;text-transform:uppercase;letter-spacing:.12em}p{margin:.4rem 0}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.gate{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:1.2rem;padding:2rem 1rem}.gate-panel{width:min(360px,100%);display:grid;gap:.8rem;text-align:center}.gate-panel h1{font-size:2.6rem;letter-spacing:.3em;margin:0 0 .2rem;text-shadow:0 0 18px rgba(243,210,120,.4)}.gate-panel p{margin:0}.gate-panel input{text-align:center;font-size:1.1rem;letter-spacing:.08em}.privacy{max-width:720px;margin:0 auto;line-height:1.5}.privacy h3{margin-top:1rem}.privacy ul{padding-left:1.2rem;display:grid;gap:.4rem}.privacy a{color:var(--gold-bright)}.app-footer{display:flex;justify-content:center;padding:1.5rem 0 1rem;font-size:.8rem;opacity:.75}.center{display:grid;place-items:center;min-height:40vh;gap:1rem;font-family:var(--font-display);letter-spacing:.12em;color:var(--gold);animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{opacity:.55}}.row{display:flex;gap:1rem;flex-wrap:wrap}.app header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.2rem;padding:.6rem 1.2rem;flex-wrap:wrap;background:linear-gradient(180deg,#080a14f7,#0c1020eb);border-bottom:1px solid var(--gold-dim);box-shadow:0 1px #000c,0 6px 24px #00000073;backdrop-filter:blur(6px)}.app header h1{font-size:1.6rem;font-weight:700;margin:0;letter-spacing:.25em;background:linear-gradient(180deg,#fff3c9,#d9b061 55%,#9b7230);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 8px rgba(243,210,120,.3))}.app header nav{display:flex;gap:.4rem;flex:1;flex-wrap:wrap}.app header nav .muted{font-family:var(--font-body);letter-spacing:0}.app main{padding:1.4rem 1rem 3rem;max-width:1280px;margin:0 auto}.app main.full{max-width:none;padding-bottom:1.4rem}.panel,.hero-panel,.commands{position:relative;background:linear-gradient(180deg,#161c32f2,#090c18f5);border:1px solid var(--gold-dim);border-radius:2px;box-shadow:inset 0 0 0 3px #080a16e6,inset 0 0 0 4px #c9a96129,0 10px 30px #00000080;padding:1.2rem 1.3rem}.panel:before,.hero-panel:before,.commands:before,.stage:before,.map-frame:before{content:"";position:absolute;inset:-1px;pointer-events:none;background:var(--corners);background-repeat:no-repeat;z-index:1}.create{max-width:760px;margin:0 auto;display:grid;gap:.8rem}.create label{display:grid;gap:.3rem;font-family:var(--font-display);font-size:.85rem;letter-spacing:.08em;color:var(--gold)}.create label input{font-family:var(--font-body);font-size:1.1rem;letter-spacing:0}.jobs{border:1px solid var(--line);border-radius:2px;display:flex;gap:.4rem;flex-wrap:wrap;padding:.6rem .8rem .8rem}.jobs legend{font-family:var(--font-display);font-size:.8rem;letter-spacing:.1em;color:var(--gold);padding:0 .4rem}.character{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:1.2rem;align-items:start}.character .skills-panel{grid-column:1 / -1}@media(max-width:860px){.character{grid-template-columns:minmax(0,1fr)}}.stats{width:100%;border-collapse:collapse;margin-top:.6rem}.stats td{padding:.2rem 0;border-bottom:1px dotted var(--line)}.stats td:first-child{font-family:var(--font-display);font-size:.8rem;letter-spacing:.06em;color:var(--muted)}.stats td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums;font-size:1.05rem}.stats td.after{width:4.5rem;padding-left:.6rem;font-variant-numeric:tabular-nums}.stats td.after.up{color:var(--hp)}.stats td.after.down{color:var(--danger)}.job-stats td.per-level{width:4.5rem;padding-left:.6rem;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.job-stats td.share{width:45%;padding-left:.6rem}.job-stats td.share span{display:block;height:6px;background:linear-gradient(90deg,var(--gold-dim),var(--gold));transition:width .2s ease}.doll{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"weapon portrait armor" ". accessory .";align-items:center;justify-items:center;gap:.4rem;margin:.8rem 0 .4rem;padding:.6rem .2rem;background:radial-gradient(ellipse 60% 55% at 50% 40%,rgba(243,223,162,.1),transparent 70%)}.doll-portrait{grid-area:portrait;width:128px;height:128px;image-rendering:pixelated;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}.gear-slot.weapon{grid-area:weapon}.gear-slot.armor{grid-area:armor}.gear-slot.accessory{grid-area:accessory}button.gear-slot,button.gear-slot:hover:not(:disabled),button.gear-slot:focus-visible{display:grid;justify-items:center;gap:.2rem;width:100%;max-width:120px;padding:.25rem;background:none;border:none;box-shadow:none}.slot-name{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.66rem}.gear-name{font-family:var(--font-body);font-size:.85rem;letter-spacing:0;line-height:1.15;text-align:center;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.frame{display:block;width:60px;height:60px;border:2px solid #6d6a62;background:#0b0e1a}.frame.empty{border-style:dashed;border-color:var(--gold-dim)}.gear-slot:hover .frame,.gear-slot:focus-visible .frame,.gear-slot.on .frame{box-shadow:0 0 0 2px var(--gold-bright),0 0 14px #f3dfa24d}.item-icon{display:block;width:100%;height:100%}.frame.rarity-magic{border-color:var(--magic)}.frame.rarity-rare{border-color:var(--rare)}.frame.rarity-unique{border-color:var(--unique)}.item-title{font-family:var(--font-display);font-weight:600;letter-spacing:.04em;color:var(--text)}.item-title.rarity-magic,.gear-name.rarity-magic{color:var(--magic)}.item-title.rarity-rare,.gear-name.rarity-rare{color:var(--rare)}.item-title.rarity-unique,.gear-name.rarity-unique{color:var(--unique)}.bag-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.bag-count{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--muted)}.bag-count.full{color:var(--danger)}.bag-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0 .7rem}.bag-tools .tabs{margin-right:auto}.bag-tools .tabs button{padding:.3rem .7rem}.bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px;max-height:360px;overflow-y:auto;padding:3px;align-content:start}.bag-grid>p{grid-column:1 / -1}.bag-tile{--rarity: #6d6a62}button.bag-tile,button.bag-tile:hover:not(:disabled),button.bag-tile:focus-visible{position:relative;aspect-ratio:1;padding:0;border:2px solid var(--rarity);border-radius:0;background:#0b0e1a;box-shadow:none}.bag-tile.rarity-magic{--rarity: var(--magic)}.bag-tile.rarity-rare{--rarity: var(--rare)}.bag-tile.rarity-unique{--rarity: var(--unique)}button.bag-tile:hover:not(:disabled),button.bag-tile:focus-visible{box-shadow:0 0 0 1px var(--gold-bright),0 0 10px #f3dfa240}button.bag-tile.on{box-shadow:0 0 0 2px var(--gold-bright),0 0 14px #f3dfa266}.bag-tile .ilvl,.bag-tile .worn-mark{position:absolute;font-family:var(--font-display);font-size:.68rem;font-weight:700;line-height:1;text-shadow:0 1px 2px #000,0 0 3px #000}.bag-tile .ilvl{right:3px;bottom:2px;color:var(--text)}.bag-tile .worn-mark{left:2px;top:2px;padding:1px 3px;background:#0009;color:var(--muted)}.bag-tile .worn-mark.here{color:#24180a;background:var(--gold-bright);text-shadow:none}.bag-tile .fav-mark{position:absolute;right:3px;top:1px;font-size:.75rem;line-height:1;color:var(--gold-bright);text-shadow:0 1px 2px #000,0 0 3px #000}.fav-toggle{margin-left:auto;align-self:flex-start;padding:.1rem .45rem;font-size:1.1rem;line-height:1.2;color:var(--muted)}.fav-toggle.on{color:var(--gold-bright)}.sell-all{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.6rem;margin-top:.7rem}.sell-all span{margin-right:auto}.bag-hint{margin:.8rem 0 0}.item-card{margin-top:.9rem;padding:.7rem .8rem;border:1px solid var(--line);border-left:3px solid #6d6a62;background:linear-gradient(90deg,rgba(255,255,255,.04),transparent)}.item-card.rarity-magic{border-left-color:var(--magic)}.item-card.rarity-rare{border-left-color:var(--rare)}.item-card.rarity-unique{border-left-color:var(--unique)}.item-card-head{display:flex;gap:.7rem;align-items:center}.item-card-head .frame{width:44px;height:44px;flex:none}.item-card-head .muted{text-transform:capitalize}.item-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.5rem}.stat-changes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-variant-numeric:tabular-nums}.stat-changes .up{color:var(--hp)}.stat-changes .down{color:var(--danger)}.item-tooltip{position:fixed;z-index:50;width:300px;pointer-events:none;padding:.6rem .75rem;background:#0a0d19f7;border:1px solid var(--gold-dim);box-shadow:0 10px 28px #000000a6}.item-lines{margin:.2rem 0 0;padding-left:1rem;font-size:.88rem;color:var(--muted)}.item-lines li::marker{content:"◇ ";color:var(--gold-dim)}.item-meta{font-size:.78rem;color:var(--muted);opacity:.85}.item-req{margin-left:.3rem}.item-req.unmet{color:#e0605a;font-weight:600}.item-lines.implicit{color:#c9d3e6;padding-bottom:.2rem;border-bottom:1px dashed var(--line)}.item-lines.affixes{list-style:none;padding-left:0}.item-lines.affixes li{display:flex;align-items:baseline;gap:.4rem;color:#8fb0ff}.tier-badge{flex:none;min-width:1.7rem;padding:0 .25rem;border-radius:3px;font-size:.7rem;font-weight:700;text-align:center;border:1px solid currentColor;color:var(--muted)}.tier-badge.t1{color:#ffcf5a;background:#ffcf5a1f;box-shadow:0 0 6px #ffcf5a59}.tier-badge.t2{color:#f0a64a}.tier-badge.t3{color:#b9c48a}.tier-range{color:var(--muted);font-size:.76rem;opacity:.75}.dungeon{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.dungeon p{margin:.2rem 0 0}.rarity-magic>strong{color:var(--magic)}.rarity-rare>strong{color:var(--rare)}.rarity-unique>strong,.unique-name{color:var(--unique)}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.45rem}.skill{display:grid;gap:.15rem;text-align:left;align-content:start}.skill strong{font-weight:600}.skill small,.skill em{font-family:var(--font-body);letter-spacing:0;color:var(--muted)}.skill small{font-size:.85rem}.skill em{font-style:normal;font-size:.82rem;line-height:1.3}.run-bar{display:flex;gap:1rem;align-items:baseline;margin-bottom:.7rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.run-bar strong{font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:.08em;color:var(--gold-bright)}.run-bar .link{margin-left:auto}.result{max-width:580px;margin:2.5rem auto;display:grid;gap:.8rem;text-align:center;padding:2rem 1.8rem}.result h2{font-size:2.4rem;font-weight:700;letter-spacing:.22em;background:none;padding:0;margin:0;text-shadow:0 0 18px rgba(243,210,120,.55),0 0 2px rgba(0,0,0,.8);animation:rise .6s ease-out both}.result h2:after{content:"";display:block;height:1px;margin:.6rem auto 0;width:70%;background:linear-gradient(90deg,transparent,var(--gold),transparent)}@keyframes rise{0%{opacity:0;transform:translateY(8px);letter-spacing:.5em}}.result .drop,.drop{text-align:left;background:linear-gradient(90deg,#ffffff0d,#ffffff03);border:1px solid var(--line);border-left:3px solid var(--muted);padding:.6rem .8rem;margin-top:.4rem}.drop.rarity-magic{border-left-color:var(--magic)}.drop.rarity-rare{border-left-color:var(--rare);box-shadow:0 0 16px #f5d65a1f}.drop.rarity-unique{border-left-color:var(--unique);background:linear-gradient(90deg,rgba(224,138,60,.1),transparent 70%);box-shadow:0 0 20px #e08a3c2e}.result .row{justify-content:center}.battle{display:grid;grid-template-columns:minmax(230px,310px) minmax(0,1fr);gap:.8rem;align-items:start}.turn-order{position:relative;align-self:stretch}.turn-order ol{position:absolute;inset:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem}.turn{flex:1 1 0;min-height:0;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;column-gap:.6rem;align-items:center;padding:.2rem .8rem .25rem .4rem;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);background:linear-gradient(180deg,#272e48,#161a2c);opacity:.8}.turn.ally{background:linear-gradient(90deg,#2c4f7a,#172a45 70%)}.turn.foe{background:linear-gradient(90deg,#6a2a2a,#3a1518 70%)}.turn.now{flex-grow:1.5;opacity:1;box-shadow:inset 0 0 0 1px var(--gold-bright);background:linear-gradient(90deg,#fbe7ad,#c99a48 75%);color:#24180a}.turn img{grid-row:1 / 3;height:100%;max-height:44px;aspect-ratio:1;image-rendering:pixelated;object-fit:contain}.turn.foe img{transform:scaleX(-1)}.turn .name{font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.turn.now .name{font-weight:700}.turn .track{height:4px;margin-bottom:.15rem;background:#0000008c}.turn .fill{height:100%;background:var(--hp)}.turn.foe .fill{background:var(--danger)}@media(max-width:720px){.battle{grid-template-columns:1fr}.turn-order ol{position:static;flex-direction:row;overflow-x:auto}.turn{flex:none;min-width:8rem}}.stage{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#06080f;border:1px solid var(--gold-dim);box-shadow:inset 0 0 0 3px #06080fcc,0 12px 40px #0009}.hud{display:contents}.hero-panel{padding:.8rem 1rem;display:grid;gap:.45rem;align-content:start}.hero-name{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:.08em;color:var(--gold-bright)}.bar{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.6rem;align-items:center}.bar>span:first-child{font-family:var(--font-display);font-size:.75rem;letter-spacing:.08em;color:var(--gold)}.bar .track{height:7px;background:#000000a6;border:1px solid rgba(201,169,97,.3);overflow:hidden}.bar .fill{position:relative;height:100%;transition:width .4s ease-out}.bar .fill:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.45),transparent 55%,rgba(0,0,0,.25))}.bar .num{font-variant-numeric:tabular-nums;font-size:1.05rem;min-width:4.5ch;text-align:right}.bp .orbs{display:flex;gap:.35rem;align-items:center}.bp i{width:14px;height:14px;border-radius:50%;border:1px solid rgba(201,169,97,.6);background:radial-gradient(circle at 35% 30%,#2a2f45,#0b0d18)}.bp i.full{border-color:#fff0bf;background:radial-gradient(circle at 35% 30%,#fffbe6,#f6c64e 40%,#b0680f 85%);box-shadow:0 0 6px #f6c64e,0 0 14px #f6c64e8c;animation:orb 1.8s ease-in-out infinite}@keyframes orb{50%{box-shadow:0 0 4px #f6c64e,0 0 8px #f6c64e4d}}.statuses{display:flex;gap:.3rem;flex-wrap:wrap;font-size:.85rem;color:#d9a6ff}.statuses span{padding:0 .45rem;border:1px solid rgba(217,166,255,.35);background:#783caa26}.statuses span.good{color:#ffe39a;border-color:#ffd98a66;background:#aa822826}.stats summary{cursor:pointer;font-family:var(--font-display);font-size:.75rem;letter-spacing:.08em;color:var(--gold)}.stats dl{margin:.4rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:.15rem 1rem}.stats dl div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.stats dt{color:var(--muted)}.stats dd{margin:0;font-variant-numeric:tabular-nums}.commands{display:grid;gap:.6rem;padding:.8rem 1rem}.boost{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}.boost>span{font-family:var(--font-display);font-size:.75rem;letter-spacing:.1em;color:var(--gold);margin-right:.3rem}.boost .toggle{margin-left:auto;display:flex;gap:.35rem;align-items:center;font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em}.commands .skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.35rem}.commands .skill{position:relative;padding-left:.95rem;background:linear-gradient(90deg,color-mix(in srgb,var(--el, #b9bfcc) 14%,transparent),transparent 70%),transparent;border-color:var(--line);box-shadow:inset 3px 0 0 var(--el, #b9bfcc)}.commands .skill:disabled{box-shadow:inset 3px 0 color-mix(in srgb,var(--el, #b9bfcc) 35%,transparent)}.commands .skill:not(:disabled):hover{border-color:color-mix(in srgb,var(--el, #b9bfcc) 60%,var(--line))}.commands .skill kbd{position:absolute;top:.3rem;right:.4rem;min-width:1.15rem;padding:0 .25rem;font-family:var(--font-display);font-size:.68rem;line-height:1.1rem;text-align:center;color:var(--muted);border:1px solid var(--line);background:#00000059}.hint .describe{font-style:normal;color:var(--text)}.hint .describe strong{font-family:var(--font-display);font-weight:600;color:var(--gold-bright)}.skill.picked{color:var(--gold-bright);border-color:var(--gold-bright);box-shadow:inset 3px 0 0 var(--gold-bright),0 0 16px #f3dfa240}.hint{margin:0;color:var(--gold);font-style:italic;min-height:1.3em}.app header nav.views{flex:none}.world{--map-h: calc(100dvh - 9.5rem) ;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:1.2rem;align-items:stretch;max-width:calc(var(--map-h) * 15 / 7 + 360px + 1.2rem);margin:0 auto}.world>.node-info{align-content:start;max-height:calc(var(--map-h) + 14px);overflow-y:auto}@media(max-width:860px){.world{grid-template-columns:1fr}.world>.node-info{max-height:none;overflow:visible}}.map-frame{position:relative;overflow:hidden;border:1px solid var(--gold-dim);padding:6px;background:linear-gradient(180deg,#2a1f12,#17110a);box-shadow:inset 0 0 0 1px #0009,0 12px 40px #0009}.map{width:100%;display:block}.map text{font-family:var(--font-display)}.map .path{stroke-width:4;stroke-linecap:round}.map .path.open{stroke:#5b3a1a;stroke-dasharray:.1 11;stroke-width:6;opacity:.85}.map .path.closed{stroke:#8a7652;stroke-dasharray:.1 14;stroke-width:4;opacity:.45}.map .node{cursor:pointer;outline:none}.map .node .shape{stroke-width:3;filter:drop-shadow(0 2px 2px rgba(50,30,10,.55));transition:transform .15s}.map .node:hover .shape{transform:scale(1.08)}.map .node.area .shape{fill:#8c2f22;stroke:#3d150c}.map .node.town .shape{fill:#d0a552;stroke:#5c3d12}.map .node.dungeon .shape{fill:#3e3550;stroke:#191424}.map .node.locked .shape{fill:#a8987a;stroke:#6e6047}.map .node .ring{fill:none;stroke:#8c2f22;stroke-width:2.5;stroke-dasharray:6 5;animation:spin 12s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map .node:focus-visible .ring,.map .node:focus-visible .shape{stroke:#2b1a08}.map .node .icon{font-size:22px;fill:#fbf0d4;pointer-events:none}.map .node.town .icon{fill:#3a260b}.map .node .label{font-size:16px;font-weight:700;letter-spacing:.06em;fill:#2c1b0b;paint-order:stroke;stroke:#f0e0b8;stroke-width:4px}.map .node .sub{font-size:12px;fill:#6b4a24;paint-order:stroke;stroke:#f0e0b8;stroke-width:3px}.map .node.locked .label{fill:#7a6a50}.map .terrain{fill:none;stroke:#6e5130;stroke-width:2;opacity:.45}.map .compass{fill:#6e5130;opacity:.55}.map-stack{position:relative;overflow:hidden}.map-stack .map.overview{transform-origin:0 0;transition:transform .7s cubic-bezier(.65,0,.35,1);will-change:transform}.map-stack .map.chart{position:absolute;inset:0;height:100%;min-width:0;animation:chart-in .4s cubic-bezier(.2,0,.2,1) .32s both}.map-stack .map.chart.leaving{animation:chart-out .28s ease-in both;pointer-events:none}@keyframes chart-in{0%{opacity:0;transform:scale(.94)}}@keyframes chart-out{to{opacity:0;transform:scale(.94)}}.paper-grain{position:absolute;inset:0;pointer-events:none;opacity:.6}.map-crumbs{position:absolute;z-index:1;top:12px;left:12px;display:flex;gap:.5rem;align-items:center;padding:.3rem .8rem .3rem .4rem;background:#f0e0b8eb;border:1px solid #6e5130;box-shadow:0 2px 6px #321e0a66;font-family:var(--font-display);letter-spacing:.06em;color:#2c1b0b;animation:chart-in .4s ease-out .32s both}.map-crumbs button{padding:.15rem .6rem;background:transparent;border:1px solid rgba(110,81,48,.5);color:#5b3a1a}.map-crumbs button:hover{background:#6e513026;color:#2c1b0b}.map .sea{fill:#8fa6a0;opacity:.5}.map .territory{cursor:pointer;outline:none}.map .territory .land{opacity:.32;transition:opacity .2s}.map .territory:hover .land,.map .territory:focus-visible .land{opacity:.6}.map .territory .border{fill:none;stroke:#5b3a1a;stroke-width:2;stroke-linejoin:round;opacity:.7;transition:stroke-width .2s,opacity .2s}.map .territory:hover .border,.map .territory:focus-visible .border{stroke-width:3.5;opacity:1}.map .territory .hints{pointer-events:none;opacity:.75}.map .territory.locked .land{fill:#a8987a}.map .route{stroke:#5b3a1a;stroke-width:3;stroke-linecap:round;stroke-dasharray:.1 8;opacity:.6;pointer-events:none}.map .mark{pointer-events:none;stroke-width:1.5}.map .mark.area{fill:#8c2f22;stroke:#3d150c}.map .mark.town{fill:#d0a552;stroke:#5c3d12}.map .mark.dungeon{fill:#3e3550;stroke:#191424}.map .territory-name{pointer-events:none}.map .territory-name .name{font-size:24px;font-weight:700;letter-spacing:.14em;fill:#3a230d;paint-order:stroke;stroke:#f0e0b8d9;stroke-width:5px}.map .territory-name .levels{font-size:13px;letter-spacing:.08em;fill:#6b4a24;paint-order:stroke;stroke:#f0e0b8d9;stroke-width:3px}.map .territory-name.locked .name{fill:#6b5a40}.map .wash{opacity:.28;mix-blend-mode:multiply}.map .detail{pointer-events:none}.map .ink{fill:none;stroke:#6e5130;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.map .ink.thick{stroke-width:2.6}.map .ink.water,.map .ink.reed{stroke:#4f6e64}.map .ink.ash{stroke:#5a4a40}.map .field{fill:#d9c27a;stroke:#8a6a2a;stroke-width:1;opacity:.8}.map .bush{fill:#7d8a45;stroke:#3f4620;stroke-width:1}.map .pine{fill:#4f6b38;stroke:#24331a;stroke-width:.8;stroke-linejoin:round}.map .pine.frost{fill:#6f8a80}.map .mound{fill:#9a9384;stroke:#4a4436;stroke-width:1.2;opacity:.7}.map .stone{fill:#b3ab99;stroke:#4a4436;stroke-width:1.2}.map .pool{fill:#7fa398;stroke:#3f5e55;stroke-width:1.2;opacity:.75}.map .peak{fill:#a39b8c;stroke:#4a4134;stroke-width:1.2;stroke-linejoin:round}.map .snow{fill:#f6f3ea}.map .crack{fill:none;stroke:#c4542a;stroke-width:2.2;stroke-linecap:round;opacity:.8}.map .ember{fill:#d8642e;opacity:.8}.map .river{fill:none;stroke:#8fb0aa;stroke-width:26;stroke-linecap:round;opacity:.8}.map .river-bank{fill:none;stroke:#4f6e64;stroke-width:1.5;stroke-dasharray:14 10;opacity:.6}.map .mist{fill:#f4efe4;opacity:.45}.map .bog{fill:#6f9483;opacity:.4}.map .snowfield{fill:#eef0ec;opacity:.55}.map .lava{fill:none;stroke:#d0562a;stroke-width:14;stroke-linecap:round;opacity:.6}.map .signpost{cursor:pointer;outline:none}.map .signpost polygon{fill:#5b3a1a}.map .signpost rect{fill:#f0e0b8;stroke:#6e5130;stroke-width:1.5;filter:drop-shadow(0 2px 3px rgba(50,30,10,.45));transition:fill .15s}.map .signpost text{font-size:15px;font-weight:700;letter-spacing:.06em;fill:#2c1b0b}.map .signpost:hover rect,.map .signpost:focus-visible rect{fill:#fff3d2;stroke:#2c1b0b}.map .life{pointer-events:none}.map .flow{fill:none;stroke:#eef6f0;stroke-width:4;stroke-linecap:round;stroke-dasharray:16 60;opacity:.55;animation:flow 7s linear infinite}@keyframes flow{to{stroke-dashoffset:-152}}.map .lava-glow{fill:none;stroke:#ffc46a;stroke-width:5;stroke-linecap:round;stroke-dasharray:30 44;animation:lava-flow 4s linear infinite,lava-glow 2.4s ease-in-out infinite alternate}@keyframes lava-flow{to{stroke-dashoffset:-148}}@keyframes lava-glow{0%{opacity:.85}to{opacity:.35}}.map .cloud-shadow{animation:cloud var(--dur) linear var(--delay) infinite}@keyframes cloud{0%{transform:translate(-400px)}to{transform:translate(1900px)}}.map .flock{animation:fly var(--dur) linear var(--delay) infinite}@keyframes fly{0%{transform:translate(-80px)}55%,to{transform:translate(1600px,-50px)}}.map .wing{transform-box:fill-box;transform-origin:center;animation:flap var(--flap) ease-in-out infinite alternate}@keyframes flap{to{transform:scaleY(.35)}}.map .circling{animation:circling var(--dur) linear var(--delay) infinite}@keyframes circling{0%,to{transform:translate(var(--r))}12.5%{transform:translate(calc(var(--r) * .707),calc(var(--r) * .25))}25%{transform:translateY(calc(var(--r) * .35))}37.5%{transform:translate(calc(var(--r) * -.707),calc(var(--r) * .25))}50%{transform:translate(calc(var(--r) * -1))}62.5%{transform:translate(calc(var(--r) * -.707),calc(var(--r) * -.25))}75%{transform:translateY(calc(var(--r) * -.35))}87.5%{transform:translate(calc(var(--r) * .707),calc(var(--r) * -.25))}}.map .smoke-puff{fill:#8a7a66;transform-box:fill-box;transform-origin:center;animation:smoke 4.4s ease-out var(--delay) infinite}.map .smoke-puff.dark{fill:#4a3a30}@keyframes smoke{0%{transform:translate(0) scale(.4);opacity:.55}to{transform:translate(10px,-46px) scale(1.7);opacity:0}}.map .wisp .halo{fill:#b8ffe8;opacity:.35}.map .wisp .core{fill:#eafff6}.map .firefly .halo{fill:#e8ff8a;opacity:.4}.map .firefly .core{fill:#fbffd0}.map .wisp,.map .firefly{animation:hover var(--dur) ease-in-out var(--delay) infinite}@keyframes hover{0%,to{transform:translate(0);opacity:0}25%{opacity:.95}50%{transform:translate(14px,-10px);opacity:.7}75%{opacity:.9}}.map .ripple{fill:none;stroke:#e6f0ea;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ripple 4s ease-out var(--delay) infinite}@keyframes ripple{0%{transform:scale(.15);opacity:.85}to{transform:scale(1);opacity:0}}.map .mist-drift{fill:#fbf7ee;animation:mist 16s ease-in-out var(--delay) infinite alternate}@keyframes mist{0%{transform:translate(-40px);opacity:.15}to{transform:translate(40px);opacity:.45}}.map .flake{fill:#fff;stroke:#9aa8b4;stroke-width:.6;animation:fall var(--dur) linear var(--delay) infinite}@keyframes fall{0%{transform:translateY(-20px);opacity:0}10%{opacity:1}to{transform:translate(var(--wind),330px);opacity:.2}}.map .ember-rise{fill:#ff8a3a;animation:ember-rise var(--dur) ease-out var(--delay) infinite}@keyframes ember-rise{0%{transform:translate(0);opacity:0}15%{opacity:1}to{transform:translate(12px,-70px);opacity:0}}.map .wave{fill:none;stroke:#4f6e64;stroke-width:2;stroke-linecap:round;animation:wave 5s ease-in-out var(--delay) infinite alternate}@keyframes wave{0%{transform:translate(-12px);opacity:.2}to{transform:translate(12px);opacity:.6}}.map .ship-sail{animation:sail 120s linear -40s infinite}@keyframes sail{0%{transform:translate(-60px)}to{transform:translate(1560px)}}.map .ship-bob{animation:bob 3.2s ease-in-out infinite alternate}@keyframes bob{0%{transform:translateY(-2px) rotate(-2deg)}to{transform:translateY(2px) rotate(2deg)}}.map .ship-hull{fill:#6e5130;stroke:#3a2410;stroke-width:1.2}.map .ship-mast{stroke:#3a2410;stroke-width:2}.map .ship-sail-cloth{fill:#f3e6c4;stroke:#6e5130;stroke-width:1}.map .sway{transform-box:fill-box;transform-origin:50% 100%;animation:sway 4.6s ease-in-out infinite alternate}@keyframes sway{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}.map.overview.covered .life,.map.overview.covered .life *{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.map .life,.map .life *,.map .sway{animation:none}.map .flock,.map .cloud-shadow,.map .flake,.map .ember-rise,.map .smoke-puff,.map .ripple{display:none}}.region-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.region-list button{width:100%;display:grid;text-align:left;gap:.1rem}.region-list button.locked{opacity:.6}.region-head{display:grid;gap:.3rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}.region-head h3{margin:0;font-family:var(--font-display);color:var(--gold-bright)}.region-head p{margin:0}.map .title{font-size:28px;font-weight:700;letter-spacing:.3em;fill:#5b3a1a;opacity:.55}.node-info{display:grid;gap:.6rem}.node-info p{margin:0}.conditions{list-style:none;padding:0;margin:0;display:grid;gap:.25rem;color:var(--muted)}.conditions .met{color:var(--hp)}.bar.xp .fill{background:linear-gradient(90deg,#a97f35,var(--gold-bright))}.rewards{display:grid;gap:.5rem;text-align:left}.rewards p{margin:0}.rewards>p:first-child{font-family:var(--font-display);letter-spacing:.05em;text-align:center}.level-up{color:var(--gold-bright);margin-left:.4em;text-shadow:0 0 10px rgba(243,210,120,.6)}.unlock strong{color:var(--gold-bright)}.town{display:grid;gap:.9rem}.tabs{display:flex;gap:.4rem;flex-wrap:wrap}.guild{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}.quest .badge{font-family:var(--font-display);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;padding:.1rem .5rem;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);vertical-align:middle}.quest.active .badge.status{background:linear-gradient(180deg,#f6e2a6,#c99a48);border-color:#f6e2a6;color:#24180a}.quest.completed .badge.status{background:#24502f;border-color:#4f8f5c;color:#d8f5dd}.quest.locked{opacity:.7}.quest .intro{font-style:italic;margin:.3rem 0;padding-left:.7rem;border-left:2px solid var(--gold-dim)}.steps{margin:.4rem 0;padding-left:1.3rem;display:grid;gap:.3rem}.steps .done{color:var(--hp)}.steps .current{color:var(--gold-bright);font-weight:600}.steps li:not(.done):not(.current){color:var(--muted)}button.inline{margin-left:.5rem;padding:.15rem .6rem}.quest-update strong{color:var(--gold-bright)}.quest-head{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.quest-head h3{margin:0;flex:1 1 auto}.quest .badge.kind{color:var(--gold);border-color:var(--gold-dim)}.quest.kind-bounty .badge.kind{color:#c9d3e6}.quest .badge.status.ready{background:linear-gradient(180deg,#b6f0a0,#4f9a4a);border-color:#c9f7b8;color:#0e2a10}.quest.ready{border-color:#96dc8299;box-shadow:0 0 22px #78c86e26}.quest .outro{border-left-color:#96dc8299}.steps{list-style:none;padding-left:0}.steps li{display:flex;align-items:baseline;gap:.45rem}.step-mark{flex:none;width:1rem;text-align:center}.step-text{flex:1 1 auto}.step-count{margin-left:.45rem;padding:0 .35rem;border:1px solid var(--gold-dim);border-radius:2px;font-size:.85em}.quest-reward{display:grid;gap:.3rem;margin:.4rem 0 .6rem}.unique-reward summary{cursor:pointer;color:var(--muted);font-size:.88rem}.unique-reward .drop{margin-top:.4rem}.unique-effect{margin:.35rem 0 0;color:#ffd08a;font-size:.9rem}.unique-effect:before{content:"✦ ";color:var(--unique)}.unique-flavour{margin:.3rem 0 0;font-style:italic;color:#b9814f;font-size:.85rem}.item-lines.affixes li.unique{color:#f0b27a}.handed-in{grid-column:1 / -1;border-color:#96dc8299;box-shadow:0 0 26px #78c86e2e}.handed-in h3{margin:0}.handed-in .outro{font-style:italic;margin:.3rem 0}.later-quests{grid-column:1 / -1}.later-quests>summary{cursor:pointer;font-family:var(--font-display);color:var(--muted);margin-bottom:.6rem}.later-quests>.guild{margin-top:.6rem}.quest-log{display:grid;gap:1rem;max-width:820px;margin:0 auto}.quest-log .done-quests summary{cursor:pointer;font-family:var(--font-display);color:var(--gold)}.quest-log .done-quests>section{margin-top:.8rem}.bounty-board>p{grid-column:1 / -1;margin:0}.towns-nav{position:relative}.towns-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:100%;margin:0;padding:.3rem;list-style:none;display:grid;gap:.25rem;background:var(--panel);border:1px solid var(--gold-dim);box-shadow:0 8px 24px #0000008c}.towns-menu button{width:100%;text-align:left;white-space:nowrap}.town-services{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.town-services button{flex:1 1 auto}nav.views button.has-ready{box-shadow:0 0 12px #96dc8259}.map .quest-marker circle{fill:#2a1d0b;stroke:#f3dc9a;stroke-width:2}.map .quest-marker text{font-family:var(--font-display);font-weight:700;font-size:15px;fill:#ffd34d}.map .quest-marker.ready circle{fill:#183015;stroke:#b6f0a0}.map .quest-marker.ready text{fill:#c9f7b8}.map .quest-marker.objective text{font-size:12px;fill:#f3dc9a}.map .quest-marker.available,.map .quest-marker.ready{animation:quest-bob 1.8s ease-in-out infinite}@keyframes quest-bob{50%{transform:translate(22px,-34px)}}@media(prefers-reduced-motion:reduce){.map .quest-marker.available,.map .quest-marker.ready{animation:none}}.quest-mark{margin-left:.45rem;padding:0 .35rem;border-radius:2px;font-size:.8rem;color:#ffd34d;border:1px solid rgba(255,211,77,.5)}.quest-mark.ready{color:#c9f7b8;border-color:#b6f0a099}.node-quests{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.node-quests li{display:flex;gap:.45rem;align-items:baseline}.node-quests .quest-mark{margin-left:0}.quest-mark.objective{color:var(--gold);border-color:var(--gold-dim)}.gold{color:#f5cf5a;font-weight:600;white-space:nowrap}.gold:before{content:"";display:inline-block;width:.7em;height:.7em;margin-right:.35em;border-radius:50%;vertical-align:-.02em;background:radial-gradient(circle at 35% 30%,#fff6cf,#f2c443 45%,#9a6510 90%);box-shadow:0 0 6px #f2c44380}h2 .gold{float:right;font-family:var(--font-body);font-size:1rem;letter-spacing:0}.app header .account{display:flex;gap:.9rem;align-items:center}.merchant,.blacksmith{display:grid;gap:1rem;grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start}@media(max-width:860px){.merchant,.blacksmith{grid-template-columns:minmax(0,1fr)}}.stock{list-style:none;padding:0;margin:0;display:grid;gap:.35rem}.stock>li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;border-bottom:1px dotted var(--line);padding-bottom:.35rem}.stock .stock-icon{width:36px;height:36px;flex:none}.stock .stock-name{flex:1;min-width:0}.stock .stock-name .muted{display:block}.stock button{white-space:nowrap}.rewards .gold{margin-left:.4em}.smith-actions{justify-content:flex-end}.smith-services{margin:.4rem 0 .8rem;display:grid;gap:.5rem}.smith-services dt{font-family:var(--font-display);letter-spacing:.06em;color:var(--gold-bright)}.smith-services dd{margin:.1rem 0 0}.smith-before{margin-top:.7rem;padding-top:.5rem;border-top:1px dashed var(--line);opacity:.75}.arena{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:1.2rem;align-items:start}.arena-side{display:grid;gap:1.2rem}@media(max-width:860px){.arena{grid-template-columns:minmax(0,1fr)}}.arena-standing .rating{display:flex;align-items:baseline;gap:.6rem}.arena-standing .rating strong{font-family:var(--font-display);font-size:2.6rem;font-weight:700;line-height:1;color:var(--gold-bright);text-shadow:0 0 14px rgba(243,210,120,.35)}.arena-standing .record{margin:.3rem 0 .6rem;font-variant-numeric:tabular-nums}.arena-head{display:flex;justify-content:space-between;align-items:baseline}.opponents{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.45rem}.opponents li{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.35rem .5rem;border:1px solid var(--line);background:linear-gradient(90deg,rgba(255,255,255,.04),transparent)}.opponents img,.leaderboard img{width:40px;height:40px;image-rendering:pixelated}.opponents li>span:nth-child(2),.leaderboard td:nth-child(2) span{display:grid}.opponent-rating{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--gold-bright)}.leaderboard{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.leaderboard-scroll{max-height:70vh;overflow-y:auto}.leaderboard th{position:sticky;top:0;z-index:1;background:var(--panel-2);font-family:var(--font-display);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.3rem .4rem;border-bottom:1px solid var(--line)}.leaderboard td{padding:.25rem .4rem;border-bottom:1px dotted var(--line)}.leaderboard td:nth-child(2){display:flex;align-items:center;gap:.5rem}.leaderboard img{width:32px;height:32px}.leaderboard tr.mine td{background:#f3dfa214}.leaderboard tr.mine td:first-child{box-shadow:inset 3px 0 0 var(--gold-bright)}.arena-skip{text-align:right;margin:.4rem 0 0}.arena-result.loss h2{color:#d8d0e8;text-shadow:0 0 14px rgba(160,140,220,.4),0 0 2px rgba(0,0,0,.8)}.arena-result .rating-change{font-family:var(--font-display);font-size:1.3rem;letter-spacing:.08em;margin:0}.arena-result .rating-change.up{color:var(--hp)}.arena-result .rating-change.down{color:var(--danger)}.gallery{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.sprite-card{display:grid;gap:.5rem}.sprite-row{display:flex;gap:.8rem;align-items:flex-start;overflow-x:auto}canvas.pixel{image-rendering:pixelated;background:#2a3044;border-radius:2px}canvas.preview{background:#3d4f35;flex:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.talents{display:grid;gap:1rem}.talent-trees{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.talent-tree{position:relative;padding:.9rem 1.2rem 1.4rem;border:1px solid var(--gold-dim);box-shadow:inset 0 0 0 3px #06080fd9,0 10px 30px #00000080;background:radial-gradient(ellipse at 50% 30%,var(--tree-glow, rgba(201, 169, 97, .12)),transparent 70%),linear-gradient(180deg,#14182a,#090b14);overflow-x:auto;max-width:100%}.talent-tree.job-warrior{--tree-glow: rgba(170, 70, 50, .22)}.talent-tree.job-mage{--tree-glow: rgba(70, 100, 200, .24)}.talent-tree.job-thief{--tree-glow: rgba(70, 140, 80, .2)}.talent-tree.job-cleric{--tree-glow: rgba(220, 180, 90, .2)}.talent-tree header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.9rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.talent-tree h2{margin:0;font-size:1.15rem;letter-spacing:.12em}.tree-count{font-family:var(--font-display);font-size:1.2rem;color:var(--gold-bright)}.talent-grid{position:relative;margin:0 auto}.talent-arrows{position:absolute;inset:0;pointer-events:none}.talent-arrows path{fill:none;stroke:#6b5a36;stroke-width:4}.talent-arrows path.met{stroke:var(--gold)}.talent{position:absolute;padding:0;border:2px solid #3b3a40;background:#000;border-radius:4px;box-shadow:0 2px 6px #000000b3;cursor:pointer}.talent .talent-icon{display:block;width:100%;height:100%;border-radius:2px}.talent.locked .talent-icon{filter:grayscale(1) brightness(.45)}.talent.locked{cursor:default}.talent.available{border-color:#3fd25a;box-shadow:0 0 0 1px #3fd25a59,0 2px 6px #000000b3}.talent.partial{border-color:#3fd25a}.talent.maxed{border-color:#f1c34a;box-shadow:0 0 10px #f1c34a59,0 2px 6px #000000b3}.talent.keystone,.talent.keystone .talent-icon{border-radius:50%}.talent.pending{animation:talent-pending 1.4s ease-in-out infinite}@keyframes talent-pending{50%{box-shadow:0 0 14px #9cff8ab3,0 2px 6px #000000b3}}.talent:not(.locked):hover{filter:brightness(1.2)}.talent-rank{position:absolute;right:-8px;bottom:-8px;min-width:26px;padding:0 4px;font-family:var(--font-display);font-size:.7rem;line-height:16px;text-align:center;background:#05060b;border:1px solid #3b3a40;border-radius:3px;color:var(--muted)}.talent.available .talent-rank,.talent.partial .talent-rank{color:#6dff86;border-color:#2f8f40}.talent.maxed .talent-rank{color:#ffd75e;border-color:#a07a22}.talent-tooltip{position:fixed;z-index:50;width:280px;display:grid;gap:.25rem;padding:.6rem .75rem;background:#080a16f7;border:1px solid #5a5a68;border-radius:4px;box-shadow:0 8px 24px #0009;pointer-events:none;font-size:.92rem}.talent-tooltip .name{font-family:var(--font-display);color:#fff;letter-spacing:.03em}.talent-tooltip p{margin:0;color:#ffd75e}.talent-tooltip .next{color:#fff;margin-top:.2rem}.talent-tooltip .needs{color:#ff5a4a}.talent-tooltip .learn{color:#6dff86}.talent-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem}.talent-points strong{font-family:var(--font-display);font-size:1.2rem;color:var(--gold-bright)}.tree-actions{margin-left:auto;display:flex;gap:.5rem}.respec .row{display:flex;gap:.5rem;flex-wrap:wrap}button.danger{border-color:var(--danger);color:#ffd2c8}button.map-action{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;margin-top:.3rem;padding:.6rem .9rem .6rem .6rem;text-align:left;color:#24180a;border:1px solid #f7e7b4;border-radius:3px;background:linear-gradient(180deg,#f8e6ad,#e0bd6c 42%,#c39947 62%,#9a7230);box-shadow:inset 0 1px #fff9,inset 0 -2px #462d0a59,0 0 0 1px #0a0804cc,0 6px 18px #00000073,0 0 22px #e9c46a2e;transition:box-shadow .2s,filter .2s,transform .08s}button.map-action:after{content:"";position:absolute;inset:3px;border:1px solid rgba(90,60,15,.35);border-radius:2px;pointer-events:none}button.map-action:before{content:"";position:absolute;inset:0 auto 0 -60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,252,235,.55),transparent);transform:skew(-18deg);pointer-events:none;opacity:0}button.map-action:hover:not(:disabled),button.map-action:focus-visible{color:#24180a;border-color:#fff4cf;background:linear-gradient(180deg,#fff1c6,#ebca7b 42%,#cca350 62%,#a57a33);box-shadow:inset 0 1px #ffffffb3,inset 0 -2px #462d0a59,0 0 0 1px #0a0804cc,0 8px 22px #00000080,0 0 32px #f3d2786b}button.map-action:hover:not(:disabled):before,button.map-action:focus-visible:before{animation:map-action-sweep .75s ease-out}button.map-action:active:not(:disabled){transform:translateY(1px)}button.map-action:disabled{cursor:wait;filter:saturate(.45) brightness(.8)}@keyframes map-action-sweep{0%{left:-60%;opacity:1}to{left:120%;opacity:1}}.map-action-medal{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:50%;color:#f6e3a8;border:2px solid #f3dc9a;box-shadow:0 0 0 1px #3c280ab3,inset 0 0 10px #000000b3,0 2px 4px #00000059;transition:transform .2s}.map-action-medal svg{width:1.55rem;height:1.55rem;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}.map-action.area .map-action-medal{background:radial-gradient(circle at 35% 30%,#a5361f,#3a0c06 75%)}.map-action.dungeon .map-action-medal{background:radial-gradient(circle at 35% 30%,#5a3a7e,#160b24 75%)}.map-action.town .map-action-medal{background:radial-gradient(circle at 35% 30%,#2f5a86,#0a1726 75%)}button.map-action:hover:not(:disabled) .map-action-medal{transform:scale(1.07) rotate(-4deg)}.map-action-text{display:grid;gap:.1rem}.map-action-title{font-family:var(--font-display);font-weight:700;font-size:1.02rem;letter-spacing:.08em;text-shadow:0 1px 0 rgba(255,245,210,.55)}.map-action-sub{font-family:var(--font-body);font-style:italic;font-size:.9rem;letter-spacing:0;color:#4b3512;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-action-arrow{font-family:var(--font-display);font-size:1.7rem;line-height:1;color:#5b3d12;transition:transform .2s}button.map-action:hover:not(:disabled) .map-action-arrow{transform:translate(3px)}@media(prefers-reduced-motion:reduce){button.map-action:hover:not(:disabled):before{animation:none}button.map-action:hover:not(:disabled) .map-action-medal,button.map-action:hover:not(:disabled) .map-action-arrow{transform:none}}.party .run-bar{flex-wrap:wrap;align-items:center}.party-chips{display:flex;gap:.35rem;flex-wrap:wrap}.party-chip{font-family:var(--font-display);font-size:.72rem;letter-spacing:.06em;padding:.12rem .5rem .12rem 1.1rem;border:1px solid var(--line);position:relative;color:var(--text)}.party-chip:before{content:"";position:absolute;left:.42rem;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--muted)}.party-chip.online:before{background:var(--hp);box-shadow:0 0 6px var(--hp)}.party-chip.away{color:var(--muted)}.party-chip.left{color:var(--muted);text-decoration:line-through}.party-chip.me{border-color:var(--gold)}.party-offline{color:var(--danger);font-size:.9rem}.party .run-bar .confirm{margin-left:auto;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}.party .run-bar .confirm .link{margin-left:0}button.link.danger{color:var(--danger)}.party-lobby{max-width:580px;margin:2rem auto;display:grid;gap:.8rem;padding:1.6rem 1.8rem}.party-lobby h2{margin:0}.party-lobby>p{margin:0}.party-members{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.party-members li{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;padding:.5rem .7rem;border:1px solid var(--line);background:linear-gradient(90deg,rgba(255,255,255,.04),transparent)}.party-members li.empty{color:var(--muted);font-style:italic;border-style:dashed;background:none}.party-members .presence{align-self:center;width:8px;height:8px;border-radius:50%;background:var(--muted)}.party-members li.online .presence{background:var(--hp);box-shadow:0 0 6px var(--hp)}.party-members .tag{font-family:var(--font-display);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.05rem .4rem;border:1px solid var(--gold-dim);color:var(--gold-bright)}.invite{display:flex;gap:.5rem;flex-wrap:wrap}.invite input{flex:1 1 14rem;min-width:0;font-size:.85rem}.ready-list{list-style:none;margin:0;padding:0;display:flex;gap:.5rem 1rem;justify-content:center;flex-wrap:wrap;color:var(--muted)}.ready-list li.ready{color:var(--hp)}.result .row{align-items:center}.turn-timer{margin-left:auto;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:.9rem;padding:.05rem .5rem;border:1px solid var(--line);color:var(--muted)}.turn-timer.mine{color:var(--gold-bright);border-color:var(--gold)}.turn-timer.mine.low{color:var(--danger);border-color:var(--danger);animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.turn-timer.mine.low{animation:none}}.dungeon-parties{display:grid;gap:.4rem;margin-bottom:.4rem}.board-title{margin:.5rem 0 0;font-size:.82rem;letter-spacing:.1em;color:var(--gold)}.party-board{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.party-board li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.6rem;align-items:center;padding:.4rem .5rem;border:1px solid var(--line)}.party-board-who{display:grid;min-width:0}.party-board-who .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-nav{position:relative;border-color:var(--gold)}.party-nav.running:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--hp);box-shadow:0 0 6px var(--hp);animation:timer-pulse 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.party-nav.running:after{animation:none}}
