html{scrollbar-gutter:stable}#hub[hidden]{display:none!important}#player-flow{display:grid;grid-template-columns:180px minmax(0,1fr);gap:36px;font-family:'Sora',sans-serif}.pf-nav{padding-top:8px}.pf-kicker{display:block;font-size:9px;letter-spacing:1.8px;font-weight:600;color:#c9b581;margin-bottom:18px}.pf-nav>button,.pf-nav>a{display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px 14px;margin:5px 0;border:0;border-radius:4px;background:transparent;text-align:left;color:#adbbc4;font:12px 'Sora';text-decoration:none;cursor:pointer}.pf-nav>button.active{background:#dec895;color:#17242c}.pf-nav>button:not(.active):hover{background:#253540}.pf-nav-note{border-top:1px solid #35444d;margin-top:30px;padding:24px 14px;font:23px/1.3 'Chakra Petch';color:#e8e6df}.pf-nav-note small{display:block;font:10px/1.8 'Sora';color:#8fa3b0;margin-top:20px}.pf-content{min-width:0}.pf-content h1{font:600 38px/1.1 'Chakra Petch';letter-spacing:-1px;color:#f3f0e5}.pf-content h2{font:600 22px/1.3 'Chakra Petch';margin:0 0 15px}.pf-content p{color:#a5b7c2;font-size:12px;line-height:1.9;margin:14px 0}.pf-hero{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;align-items:center;background:#24343c;border:1px solid #41505a;border-radius:7px;padding:38px;margin-bottom:22px;min-height:300px}.pf-hero-art{display:flex;align-items:center;flex-direction:column;text-align:center}.pf-hero-art img{width:160px;height:150px;object-fit:contain;filter:drop-shadow(0 16px 12px #0006)}.pf-hero-art>span{font-size:8px;color:#c9b581;letter-spacing:2px;margin:15px 0 8px}.pf-hero-art strong{font:600 22px 'Chakra Petch'}.pf-primary,.pf-secondary,.pf-link{font:500 12px 'Sora';cursor:pointer;border-radius:4px;padding:14px 18px}.pf-primary{border:1px solid #dec895;background:#dec895;color:#142128}.pf-primary span{margin-left:20px}.pf-primary:disabled{background:#28353d;border-color:#46535a;color:#95a3ad;cursor:default}.pf-secondary{background:transparent;border:1px solid #4e606b;color:#e4e5df}.pf-link{background:none;border:0;padding:14px 0;color:#e4cb92;text-align:left}.pf-homegrid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.pf-box{background:#1b272f;border:1px solid #364650;border-radius:6px;padding:25px;min-width:0}.pf-effect{font-size:14px;line-height:1.8;color:#dce3e3}.pf-section-title{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px}.pf-section-title h2{margin:0}.pf-section-title span{font-size:10px;color:#98aab5}.pf-supplies{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #35444d;border-radius:5px;padding:17px 0}.pf-supplies>div{text-align:center;border-right:1px solid #35444d}.pf-supplies>div:last-child{border:0}.pf-supplies img{display:block;width:40px;height:40px;object-fit:contain;margin:0 auto 8px}.pf-supplies span{display:block;font-size:9px;color:#a2b4bf}.pf-supplies b{display:block;font-size:16px;margin-top:7px}.pf-details{margin:24px 0}.pf-details summary{cursor:pointer;padding:18px 0;font-size:12px;color:#b5c2c8;border-bottom:1px solid #35444d;margin-bottom:20px}.pf-title{padding:8px 0 18px}.pf-filters{display:flex;align-items:center;gap:8px;border-bottom:1px solid #35444d;padding-bottom:16px;margin-bottom:23px}.pf-filters button{background:transparent;border:1px solid #3b4c55;border-radius:4px;color:#adbec8;font:11px 'Sora';padding:12px 15px;cursor:pointer}.pf-filters button[aria-pressed=true]{background:#d7c18f;border-color:#d7c18f;color:#17242c}.pf-filters>span{margin-left:auto;font-size:10px;color:#9aadb8}.pf-inventory{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:24px;align-items:start}.pf-itemgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pf-item{background:#1d2b34;border:1px solid #354953;border-radius:5px;color:#e2e6e6;padding:17px 10px;text-align:center;cursor:pointer;min-height:170px}.pf-item.selected{border-color:#d9c08a;background:#303b3e}.pf-item img{width:82px;height:83px;object-fit:contain;margin-bottom:12px}.pf-item strong{display:block;font:500 12px/1.5 'Sora'}.pf-item span{display:block;font-size:9px;color:#adbdc2;margin-top:8px}.pf-compare-current{padding:15px;background:#131f26;border-radius:4px}.pf-compare-current>span{display:block;font-size:9px;color:#9cafb9;margin-bottom:9px}.pf-compare-current strong{font:500 15px 'Sora'}.pf-compare-current>div{font-size:11px;line-height:1.7;color:#b5c5ca;margin-top:10px}.pf-selected-art{text-align:center;padding:22px}.pf-selected-art img{width:110px;height:110px;object-fit:contain}.pf-comparison .pf-primary,.pf-comparison .pf-secondary{width:100%;margin-top:10px}.pf-workbench{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}.pf-forge-list>button{display:flex;align-items:center;width:100%;gap:12px;padding:14px 12px;background:#1b2932;border:1px solid #374751;border-radius:4px;margin-bottom:9px;color:#dce3e3;text-align:left;cursor:pointer;font:12px/1.5 'Sora'}.pf-forge-list>button.selected{border-color:#d7c18f;background:#303b3e}.pf-forge-list img{width:47px;height:47px;object-fit:contain}.pf-forge-list b{margin-left:auto;color:#d7c18f}.pf-forge-label{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #3a4b55;margin-bottom:22px}.pf-forge-label .pf-kicker{margin:0}.pf-forge-detail .ucard,.pf-forge-detail .fcard{display:flex;flex-direction:column;align-items:stretch;background:transparent;border:0;box-shadow:none;padding:0;opacity:1;filter:none;text-align:left}.pf-forge-detail .uart,.pf-forge-detail .fcard-art img{width:150px;height:135px;object-fit:contain;align-self:center;margin:0 auto 18px}.pf-forge-detail .fcard-art{text-align:center}.pf-forge-detail .uname,.pf-forge-detail .fcard-name{font:600 26px 'Chakra Petch';margin-bottom:12px}.pf-forge-detail .usig,.pf-forge-detail .unext,.pf-forge-detail .fcard-sig{font-size:14px;line-height:1.8}.pf-forge-detail .usig:before{content:'CURRENT EFFECT';display:block;font-size:9px;color:#9cafb9;letter-spacing:1px;margin:15px 0 8px}.pf-forge-detail .unext:before{content:'AFTER UPGRADE';display:block;font-size:9px;color:#b7d8b6;letter-spacing:1px;margin-bottom:8px}.pf-forge-detail .unext{padding:17px;background:#253c35;border:1px solid #486354;border-radius:4px;margin-bottom:20px}.pf-forge-detail .ucost{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:16px;padding:19px 0;border-top:1px solid #3a4b55;width:100%}.pf-forge-detail .fneeds{justify-content:flex-start;padding:20px 0}.pf-forge-actions{border-top:1px solid #3a4b55;padding-top:20px}.pf-forge-actions p{font-size:10px}.pf-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#d9c897;color:#17242c;padding:16px 24px;border-radius:5px;z-index:10000;font-size:12px;box-shadow:0 5px 30px #0005}.pf-dialog{margin:auto;background:#1b2932;color:#e2e6e3;border:1px solid #8b815f;border-radius:6px;padding:32px;max-width:460px}.pf-dialog h2{font:26px 'Chakra Petch'}.pf-dialog p{font:13px/1.8 'Sora';margin:20px 0}.pf-dialog::backdrop{background:#08121bcc}#player-flow button:focus-visible,#player-flow a:focus-visible{outline:3px solid #b3d7e8;outline-offset:3px}
@media(max-width:1100px){#player-flow{grid-template-columns:145px minmax(0,1fr);gap:22px}.pf-itemgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-hero{padding:25px}.pf-workbench{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:760px){#player-flow{display:block}.pf-nav{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:23px}.pf-nav>.pf-kicker,.pf-nav-note{display:none}.pf-nav>button,.pf-nav>a{width:auto;padding:12px;font-size:11px;min-height:44px}.pf-nav>button span{display:none}.pf-content h1{font-size:29px}.pf-hero{grid-template-columns:1fr;padding:24px}.pf-hero-art{grid-row:1}.pf-hero-art img{height:95px}.pf-hero-art>span{margin-top:8px}.pf-homegrid,.pf-inventory,.pf-workbench{grid-template-columns:1fr}.pf-itemgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-filters{flex-wrap:wrap}.pf-filters>span{width:100%;margin:4px 0}.pf-forge-list{display:flex;overflow-x:auto;gap:10px}.pf-forge-list>button{min-width:180px;max-width:200px}.pf-supplies{grid-template-columns:repeat(3,1fr);gap:20px 0}.pf-primary,.pf-secondary{min-height:46px}.pf-box{padding:20px}.pf-toast{width:90%;text-align:center}.pf-dialog{max-width:90%}}
#player-flow .topstats .gearbox{background:#131f26;border:1px solid #35444d;border-radius:4px;box-shadow:none}
#player-flow .topstats .gearbox .val{color:#f1efe6;text-shadow:none;font:600 30px 'Chakra Petch',sans-serif}
.pf-quick{display:block;padding:26px;margin-bottom:20px;background:#17252e;border:1px solid #42535c;border-radius:7px}.pf-control-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid #354851}.pf-control-heading .pf-kicker{margin:0 0 7px}.pf-control-heading h1{font-size:30px;margin:0}.pf-control-heading>small{max-width:245px;text-align:right;font:12px/1.6 'Sora';color:#91a6b1}.pf-control-group{margin-top:20px}.pf-control-label{display:block;margin-bottom:10px;font:600 10px 'Sora';letter-spacing:1.5px;color:#c9b581}.pf-jobbuttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pf-jobbuttons button{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;height:64px;padding:10px 13px;background:#22333c;color:#dbe3e4;border:1px solid #42535c;border-radius:5px;cursor:pointer;font:600 13px 'Sora';text-align:left}.pf-jobbuttons button[aria-pressed=true]{border-color:#d7c18f;background:#343e3f;box-shadow:inset 0 0 0 1px #d7c18f44}.pf-jobbuttons img{width:34px;height:34px;object-fit:contain}.pf-jobbuttons b{font-size:9px;color:#e4ca91;justify-self:end}.pf-quick-equipment{display:grid;grid-template-columns:minmax(260px,1.35fr) repeat(2,minmax(190px,1fr));gap:12px}.pf-quick-slot{display:block;min-width:0}.pf-quick-slot>span{display:block;margin:0 0 7px;font:12px 'Sora';color:#b6c4ca}.pf-quick-slot select{width:100%;height:52px;background:#22333c;color:#eee9dc;border:1px solid #52636b;border-radius:5px;padding:0 13px;font:13px 'Sora'}.pf-quick-slot select:focus{border-color:#d7c18f;outline:2px solid #d7c18f33}.pf-quick-slot select:disabled{opacity:.55;cursor:not-allowed}.pf-quick-slot small{display:block;margin-top:7px;font:11px 'Sora';color:#9fb2bc}.pf-quick-slot small strong{color:#e4ca91;font-weight:500}
.pf-current-path{display:block;margin-top:9px;font:11px 'Sora',sans-serif;color:#acbec7}.pf-current-path strong{color:#e4ca91;font-weight:500}
.pf-jobbuttons button.pf-job-uncreated{border-style:dashed;color:#aab9c0}.pf-jobbuttons button.pf-job-uncreated b{color:#9eb6c2}
.pf-shop-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0}.pf-shop-heading h2{margin:0}.pf-shop-heading>span{font-size:10px;color:#a6bbc4}.pf-shop-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:24px;align-items:start}.pf-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pf-shop-grid .shoptile{width:100%;min-width:0;max-width:none;margin:0;border-radius:5px;background:#1c2b34;border:1px solid #42535c;box-shadow:none;padding:23px 18px;cursor:pointer}.pf-shop-grid .shoptile:hover{border-color:#dec895;transform:translateY(-2px)}.pf-shop-grid .shoptile .nm{font:600 17px 'Chakra Petch';color:#e9e8df}.pf-shop-grid .shoptile .ds{font:11px/1.8 'Sora';color:#afc0ca}.pf-shop-currency{display:block;font:10px 'Sora';color:#dfc995;margin-top:12px}.pf-shop-note{font:11px/1.8 'Sora';color:#9bb1bf;margin:20px 0}.pf-item-detail-card{text-align:center}.pf-item-detail-card img{max-width:120px;max-height:120px;object-fit:contain}.pf-item-detail-card .nm{font:600 24px 'Chakra Petch';margin:18px 0}.pf-item-detail-card .cat{font-size:10px;color:#d9c48e}.pf-item-detail-card .ds{font:13px/1.8 'Sora';margin:16px 0}.pf-item-detail-card .pr{font:600 18px 'Sora';color:#e5cf98}.pf-item-detail-card .pr img{width:24px;height:24px}.pf-cosmetic-shop{width:100%;height:1000px;border:1px solid #42535c;border-radius:6px;background:#101e25}.pf-shop-detail .pf-primary{width:100%}@media(max-width:760px){.pf-shop-layout{grid-template-columns:1fr}.pf-shop-heading{display:block}.pf-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-shop-grid .shoptile{padding:17px 10px}.pf-shop-heading>span{display:block;margin-top:10px}}
.pf-shop-grid .shoptile .pr{background:#d9c591;color:#18252c;box-shadow:none;border-radius:3px}.pf-shop-grid .shoptile img{image-rendering:auto}.pf-shop-grid .shoptile .cat{font:10px 'Sora';letter-spacing:1px}
.pf-cosmetic-shell{position:relative;min-height:300px}.pf-cosmetic-loading{position:absolute;z-index:2;inset:0 0 auto;box-sizing:border-box;width:calc(100% - 2px);height:300px;margin:1px;transition:opacity .18s ease}.pf-cosmetic-shell .pf-cosmetic-shop{display:block;transition:opacity .18s ease}.pf-cosmetic-shell.is-loading .pf-cosmetic-shop{opacity:0;pointer-events:none}.pf-cosmetic-shell:not(.is-loading) .pf-cosmetic-loading{opacity:0;visibility:hidden;pointer-events:none}
.pf-keeper-scene{display:flex;align-items:center;gap:32px;position:relative;padding:10px 35px 20px;margin:0 0 25px;border-bottom:6px solid #796045;background:#233733;border-radius:8px;min-height:200px}.pf-keeper{background:none;border:0;color:#ddc894;cursor:pointer;flex:0 0 165px;align-self:end;position:relative}.pf-keeper img{width:165px;height:170px;object-fit:contain;filter:drop-shadow(0 9px 5px #0004);transition:transform .2s}.pf-keeper:hover img{transform:translateY(-6px) rotate(-3deg)}.pf-keeper span{display:block;font:10px 'Sora';margin-top:2px}.pf-keeper-bubble{position:relative;background:#e8ddbf;color:#28362f;border-radius:12px;padding:23px 27px;max-width:650px;box-shadow:0 4px 0 #14272155}.pf-keeper-bubble:before{content:'';position:absolute;left:-15px;top:50%;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:17px solid #e8ddbf}.pf-keeper-bubble .pf-kicker{color:#716043;margin-bottom:10px}.pf-keeper-bubble p{font:500 16px/1.7 'Sora';color:#293a32;margin:0}.pf-speaking{animation:keeper-speak .25s ease-out}@keyframes keeper-speak{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}@media(max-width:760px){.pf-keeper-scene{gap:15px;padding:15px}.pf-keeper{flex-basis:90px}.pf-keeper img{width:90px;height:120px}.pf-keeper-bubble{padding:17px}.pf-keeper-bubble p{font-size:12px}}@media(prefers-reduced-motion:reduce){.pf-speaking{animation:none}.pf-keeper img{transition:none}}
.pf-title>p:empty,.pf-shop-note:empty,.pf-shop-detail p:empty{display:none}.pf-title{padding-bottom:12px}.pf-nav-note{padding:14px}.pf-nav-note small{margin:0}.pf-shop-heading>span:empty{display:none}.pf-cosmetic-shop{height:850px}
.pf-gear-heading{margin-top:26px}.pf-relic-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.pf-relic-actions button{width:100%}.pf-secondary:disabled{opacity:.5;cursor:not-allowed}.pf-home-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px 0}.pf-home-links button{text-align:left;background:#17262f;color:#e8e8df;border:1px solid #3d505b;border-radius:5px;padding:20px;cursor:pointer;min-height:135px}.pf-home-links button:hover{border-color:#d1bb83;transform:translateY(-2px)}.pf-home-links strong,.pf-home-links small{display:block}.pf-home-links strong{font:600 19px 'Chakra Petch',sans-serif;margin:12px 0 8px}.pf-home-links small{font:12px/1.6 'Sora',sans-serif;color:#a9bac3}.pf-empty-supplies{grid-column:1/-1;text-align:center;margin:0!important}
.pf-nav-heading{display:block;margin:22px 14px 8px}.pf-nav-heading:first-child{margin-top:5px}.pf-modifier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pf-modifier{min-height:220px;position:relative;overflow:hidden}.pf-modifier:after{content:'';position:absolute;inset:0 0 auto;height:4px;background:#8ea87d}.pf-modifier.bad:after{background:#bd6d66}.pf-modifier h2{font:600 28px 'Chakra Petch',sans-serif;margin:13px 0}.pf-modifier p{font-size:15px;line-height:1.8;max-width:54ch}.pf-day-note{color:#9fb1ba;font-size:12px;margin-top:18px}.pf-legacy>.panel{background:#1b2932;border:1px solid #3b4c56;border-radius:6px;box-shadow:none}.pf-legacy .panel>h3,.pf-legacy .bl-head h3{font-family:'Chakra Petch',sans-serif;font-size:22px}.pf-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pf-guide-grid .pf-box{min-height:235px}.pf-step{font:600 30px 'Chakra Petch',sans-serif;color:#d4bd83}.pf-guide-grid h2{font:600 22px 'Chakra Petch',sans-serif;margin:18px 0 12px}.pf-guide-grid p,.pf-guide-money p{font-size:14px;line-height:1.8}.pf-guide-money{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;margin-top:18px}.pf-guide-money>div+div{border-left:1px solid #3a4b55;padding-left:35px}
@media(max-width:1050px){.pf-jobbuttons{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-quick-equipment{grid-template-columns:1fr 1fr}.pf-quick-slot:first-child{grid-column:1/-1}}
@media(max-width:760px){.pf-control-heading{display:block}.pf-control-heading>small{display:block;text-align:left;margin-top:10px}.pf-jobbuttons,.pf-quick-equipment,.pf-home-links,.pf-modifier-grid,.pf-guide-grid,.pf-guide-money{grid-template-columns:1fr}.pf-quick-slot:first-child{grid-column:auto}.pf-guide-money>div+div{border-left:0;border-top:1px solid #3a4b55;padding:25px 0 0}.pf-nav-heading{display:none}}

/* Approved Nova Fish Fight stall: smooth transparent CG art. */
.pf-keeper .nova-fight-stall-art{width:290px;height:280px;padding:18px 10px 8px;box-sizing:border-box}.pf-keeper .nova-fight-stall-art img{width:100%!important;height:100%!important;object-fit:contain;image-rendering:auto!important;filter:none!important;clip-path:none!important}.pf-keeper:has(.nova-fight-stall-art){background:transparent}.pf-keeper-scene:has(.nova-fight-stall-art){align-items:center}@media(max-width:650px){.pf-keeper .nova-fight-stall-art{width:220px;height:220px}}

/* Player command center: progress, readable combat facts, and a compact daily briefing. */
.pf-player-progress{width:min(285px,34vw);text-align:left}.pf-player-progress strong,.pf-player-progress span{display:block}.pf-player-progress strong{font:600 20px 'Chakra Petch',sans-serif;color:#f0eadc}.pf-player-progress span{margin-top:3px;font:10px 'Sora',sans-serif;color:#9fb2bc}.pf-player-progress>div{height:6px;margin-top:10px;overflow:hidden;background:#0f1b22;border:1px solid #354851}.pf-player-progress i{display:block;height:100%;background:#d8c18c}
.pf-combat-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:18px;border:1px solid #354851;background:#111e25}.pf-combat-summary>div{min-width:0;padding:13px 15px;border-right:1px solid #354851}.pf-combat-summary>div:last-child{border-right:0}.pf-combat-summary span,.pf-combat-summary strong{display:block}.pf-combat-summary span{font:9px 'Sora',sans-serif;letter-spacing:1px;text-transform:uppercase;color:#8fa4af}.pf-combat-summary strong{margin-top:5px;font:600 17px 'Chakra Petch',sans-serif;color:#e9e7de;white-space:nowrap}
.pf-today-strip{display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;align-items:stretch;margin:0 0 22px;padding:16px 18px;background:#121f26;border:1px solid #354851;border-left:4px solid #bca875}.pf-today-strip>.pf-kicker{align-self:center;margin:0}.pf-today-strip>p{margin:0;align-self:center}.pf-today-strip>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.pf-today-strip article{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:11px;row-gap:3px;padding:4px 18px;border-left:1px solid #354851}.pf-today-strip article b{grid-row:1/3;align-self:center;width:8px;overflow:hidden;color:transparent}.pf-today-strip article b:before{content:'';display:block;width:3px;height:34px;background:#839c77}.pf-today-strip article.bad b:before{background:#b66e67}.pf-today-strip article strong{font:600 14px 'Chakra Petch',sans-serif;color:#e8e7de}.pf-today-strip article span{font:11px/1.5 'Sora',sans-serif;color:#9eb0ba}.pf-home-links{grid-template-columns:repeat(2,minmax(0,1fr))}
.pf-armory+.pf-today-strip{margin-top:26px}

/* Bestiary: collection-first layout with calm filters and stronger fish cards. */
.pf-legacy-bestiary>.panel{padding:0;background:transparent;border:0;border-radius:0}.pf-legacy-bestiary .bl-head{justify-content:flex-end;margin:0 0 14px}.pf-legacy-bestiary .bl-head h3{display:none}.pf-legacy-bestiary .collcount{margin:0 0 18px;padding:17px 19px;background:#17262f;border:1px solid #3b4d56;border-left:4px solid #d1bb83;color:#9fb1ba}.pf-legacy-bestiary .collcount b{font:600 23px 'Chakra Petch',sans-serif;color:#f0eadc}.pf-legacy-bestiary .bl-filters{gap:0;margin:0 0 22px;border-bottom:1px solid #3b4d56}.pf-legacy-bestiary .bl-fbtn{margin:0;padding:12px 15px;background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;box-shadow:none;color:#91a5b0;font:600 10px 'Sora',sans-serif;letter-spacing:.07em}.pf-legacy-bestiary .bl-fbtn:hover{background:#17262f;color:#e5e6df}.pf-legacy-bestiary .bl-fbtn.on{background:transparent;border-color:#d1bb83;color:#e8d19a;box-shadow:none}.pf-legacy-bestiary .be-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;grid-auto-rows:1fr}.pf-legacy-bestiary .be-card{padding:18px;background:linear-gradient(150deg,#1d2d35,#18262e);border:1px solid #3c4d56;border-left:1px solid #3c4d56;border-radius:7px;box-shadow:none}.pf-legacy-bestiary .be-card.found{border-top:3px solid #8ba486}.pf-legacy-bestiary .be-card:hover{border-color:#63747b;box-shadow:0 12px 25px -18px #000;transform:translateY(-2px)}.pf-legacy-bestiary .be-top{gap:17px}.pf-legacy-bestiary .be-sprite{width:88px;height:88px;background:#111e25;border:1px solid #30424b;border-radius:5px}.pf-legacy-bestiary .be-sprite img{width:78px;height:78px}.pf-legacy-bestiary .be-name{font:600 20px/1.2 'Chakra Petch',sans-serif;color:#eeeae0}.pf-legacy-bestiary .be-nums{font:11px 'Sora',sans-serif}.pf-legacy-bestiary .be-nums b{font-size:14px}.pf-legacy-bestiary .ab{margin-top:16px;padding-top:14px}.pf-legacy-bestiary .abmain b{font-size:13px}.pf-legacy-bestiary .abdesc{font-size:11px;line-height:1.55}.pf-legacy-bestiary .mast{padding-top:15px}.pf-legacy-bestiary .mtrack{height:8px;border-radius:1px}.pf-legacy-bestiary .mtrack>i{box-shadow:none}.pf-legacy-bestiary .be-card.unseen{opacity:.62;background:#152229}

@media(max-width:900px){.pf-combat-summary{grid-template-columns:repeat(3,1fr)}.pf-combat-summary>div:nth-child(3){border-right:0}.pf-combat-summary>div:nth-child(n+4){border-top:1px solid #354851}.pf-today-strip{grid-template-columns:1fr}.pf-today-strip>.pf-kicker{margin-bottom:2px}}
@media(max-width:760px){.pf-player-progress{width:100%;margin-top:16px}.pf-combat-summary{grid-template-columns:repeat(2,1fr)}.pf-combat-summary>div:nth-child(3){border-right:1px solid #354851}.pf-combat-summary>div:nth-child(even){border-right:0}.pf-combat-summary>div:nth-child(n+3){border-top:1px solid #354851}.pf-today-strip>div{grid-template-columns:1fr}.pf-today-strip article{border-left:0;border-top:1px solid #354851;padding:12px 0}.pf-home-links{grid-template-columns:1fr}.pf-legacy-bestiary .be-grid{grid-template-columns:1fr}}

/* RPG loadout composition — one fighter banner, a roster rail, then three deliberate gear slots. */
.pf-quick{padding:0 0 30px;margin:0 0 24px;background:transparent;border:0;border-radius:0;border-bottom:1px solid #344851}.pf-fighter-banner{position:relative;display:grid;grid-template-columns:92px minmax(170px,.9fr) 220px minmax(260px,1.2fr);align-items:center;gap:20px;min-height:134px;padding:22px 30px 22px 22px;background:linear-gradient(105deg,#263c43 0,#192c34 48%,#111f27 100%);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));box-shadow:inset 0 1px #62736d,inset 0 -1px #0a151b}.pf-fighter-banner:after{content:'';position:absolute;left:0;top:20px;bottom:20px;width:4px;background:#d4bd83;box-shadow:0 0 18px #d4bd8377}.pf-fighter-mark{position:relative;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle,#344b51 0,#16262d 67%,transparent 69%);box-shadow:0 0 0 1px #71807855,0 0 28px #d3bc8226}.pf-fighter-mark:before,.pf-fighter-mark:after{content:'';position:absolute;border:1px solid #d4bd8366;border-radius:50%}.pf-fighter-mark:before{inset:7px;border-style:dashed}.pf-fighter-mark:after{inset:-5px;border-color:#4f6264}.pf-fighter-mark img{position:relative;z-index:1;width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 7px 6px #0008)}.pf-fighter-name>span{font:600 10px 'Sora',sans-serif;letter-spacing:1.8px;color:#cdb980}.pf-fighter-name h1{margin:4px 0 2px;font:600 30px/1 'Chakra Petch',sans-serif;color:#f2ede0}.pf-fighter-name small{font:13px 'Sora',sans-serif;color:#9fb2ba}.pf-player-progress{width:100%;padding:0 22px;border-left:1px solid #40545a;border-right:1px solid #40545a}.pf-player-progress strong{font:600 25px/1 'Chakra Petch',sans-serif;color:#e8cf91}.pf-player-progress span{margin-top:7px;font:12px 'Sora',sans-serif;color:#a7b9c0}.pf-player-progress>div{height:5px;margin-top:11px;background:#0a171d;border:0}.pf-player-progress i{background:linear-gradient(90deg,#a9915f,#f0d99d);box-shadow:0 0 9px #d8c18c77}.pf-battle-facts{display:flex;align-items:center;justify-content:space-around;gap:18px}.pf-battle-facts>div{min-width:70px}.pf-battle-facts span,.pf-battle-facts strong{display:block}.pf-battle-facts span{font:600 10px 'Sora',sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:#8199a3}.pf-battle-facts strong{margin-top:5px;font:600 22px 'Chakra Petch',sans-serif;color:#eef0e8;white-space:nowrap}
.pf-roster{display:grid;grid-template-columns:135px minmax(0,1fr);align-items:end;gap:18px;margin-top:25px}.pf-roster>.pf-control-label{margin:0 0 17px}.pf-jobbuttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-bottom:1px solid #3a4e57}.pf-jobbuttons button{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:11px;align-items:center;width:100%;height:76px;padding:8px 14px;background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;color:#a9bac1;font:600 14px 'Sora',sans-serif;text-align:left}.pf-jobbuttons button:hover{background:linear-gradient(180deg,transparent,#25394077);color:#f1eee5}.pf-jobbuttons button[aria-pressed=true]{background:linear-gradient(180deg,transparent,#d4bd8314);border-color:#d4bd83;box-shadow:none;color:#f3ead7}.pf-jobbuttons button.pf-job-uncreated{border:0;border-bottom:3px solid transparent;border-style:none;opacity:.58}.pf-jobbuttons button.pf-job-uncreated:hover{opacity:.9}.pf-job-orb{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#111f26;box-shadow:inset 0 0 0 1px #40535c}.pf-jobbuttons button[aria-pressed=true] .pf-job-orb{background:#263b40;box-shadow:inset 0 0 0 2px #d4bd83,0 0 18px #d4bd8333}.pf-jobbuttons .pf-job-orb img{width:34px;height:34px}.pf-jobbuttons button>b{grid-column:2;justify-self:start;align-self:start;font:600 9px 'Sora',sans-serif;letter-spacing:1px;color:#d8c48f}.pf-jobbuttons button:not(:has(b))>span:not(.pf-job-orb){grid-row:1/3;align-self:center}
.pf-path-picker{margin-top:22px;padding-inline:18px;box-sizing:border-box}.pf-path-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pf-path-heading .pf-control-label{margin:0}.pf-path-heading small{font:11px 'Sora',sans-serif;color:#8297a1}.pf-path-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;min-height:92px}.pf-path-buttons button{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:11px;width:100%;height:92px;padding:13px 12px;background:linear-gradient(120deg,#1e3038,#14252c);border:1px solid #3b4f58;border-radius:3px;color:#aebdc3;text-align:left;cursor:pointer}.pf-path-buttons button:hover:not(:disabled){border-color:#718486;background:linear-gradient(120deg,#263b42,#172a31)}.pf-path-buttons button[aria-pressed=true]{border-color:#d4bd83;background:linear-gradient(120deg,#2b3d40,#1b2e33);box-shadow:inset 0 -3px #d4bd83}.pf-path-buttons button:disabled{opacity:.42;cursor:not-allowed}.pf-path-art{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#0e1c23;box-shadow:inset 0 0 0 1px #40535c;color:#748991}.pf-path-art img{width:39px;height:39px;object-fit:contain}.pf-path-copy{min-width:0}.pf-path-copy strong,.pf-path-copy small{display:block;overflow:hidden;text-overflow:ellipsis}.pf-path-copy strong{white-space:nowrap;font:600 14px 'Chakra Petch',sans-serif;color:#ece9df}.pf-path-copy small{display:-webkit-box;margin-top:5px;min-height:30px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font:11px/1.35 'Sora',sans-serif;color:#91a6af}.pf-path-buttons button>b{position:absolute;right:9px;top:7px;font:600 8px 'Sora',sans-serif;letter-spacing:1px;color:#d9c58f}
.pf-armory{margin-top:26px}.pf-armory-heading{margin:0 0 13px}.pf-armory-heading>div>span,.pf-relic-heading>div>span{margin:0 0 4px}.pf-armory-heading h2,.pf-relic-heading h2{margin:0}.pf-armory-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:stretch}.pf-weapon-rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pf-weapon-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;height:208px;padding:16px 10px 18px;overflow:hidden;background:linear-gradient(160deg,#20333b,#17272f 68%,#122129);border:1px solid #3a4e58;border-radius:4px;color:#e6e8e3;text-align:center;cursor:pointer}.pf-weapon-card:before{content:'';position:absolute;inset:0 auto auto 0;width:34px;height:3px;background:#657981}.pf-weapon-card:hover:not(:disabled){border-color:#75878a;transform:translateY(-2px)}.pf-weapon-card[aria-pressed=true],.pf-weapon-card.equipped{border-color:#d5bf88;background:linear-gradient(160deg,#2d3e40,#1b2e33 68%,#14252c)}.pf-weapon-card.equipped:before{width:100%;background:#d5bf88}.pf-weapon-card>img,.pf-weapon-silhouette{width:102px;height:105px;margin:auto 0 13px}.pf-weapon-card>img{object-fit:contain;filter:drop-shadow(0 10px 8px #0008)}.pf-weapon-card strong,.pf-weapon-card span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-weapon-card strong{font:600 15px 'Chakra Petch',sans-serif}.pf-weapon-card>span:last-of-type{margin-top:6px;font:12px 'Sora',sans-serif;color:#99acb4}.pf-weapon-locked{cursor:not-allowed;background:linear-gradient(160deg,#17272e,#111f26);border-color:#2d414a}.pf-weapon-locked:after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 45%,#e0cc9210 50%,transparent 55%);pointer-events:none}.pf-weapon-silhouette{display:grid!important;place-items:center;opacity:.56}.pf-weapon-silhouette img{width:96px;height:96px;object-fit:contain;filter:brightness(0) drop-shadow(0 0 1px #76909b) drop-shadow(0 10px 9px #000)}.pf-weapon-locked strong{color:#788b93}.pf-weapon-locked>b{position:absolute;top:12px;right:12px;color:#667982;font-size:10px}.pf-armory-detail{height:100%;box-sizing:border-box}.pf-armory-detail .pf-selected-art{padding:10px 18px}.pf-armory-detail .pf-selected-art img{width:92px;height:92px}.pf-relic-heading{display:flex;align-items:end;justify-content:space-between;margin:26px 0 12px;padding-top:18px;border-top:1px solid #354851}.pf-relic-heading>span{font:12px 'Sora',sans-serif;color:#91a5af}.pf-relic-rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pf-relic-rack .pf-item{min-height:145px}.pf-relic-empty{display:grid;place-items:center;min-height:76px;border:1px dashed #3a4e58;color:#8297a1;font:13px 'Sora',sans-serif}
.pf-loadout{margin-top:25px}.pf-loadout-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.pf-loadout-heading .pf-control-label{margin:0}.pf-loadout-heading small{font:12px 'Sora',sans-serif;color:#859aa4}.pf-quick-equipment{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px}.pf-loadout-slot{position:relative;display:grid;grid-template-columns:68px minmax(0,1fr) 18px;align-items:center;gap:13px;min-width:0;height:92px;padding:15px 16px;background:linear-gradient(120deg,#22353d,#17272f);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));box-shadow:inset 0 1px #52636a,inset 0 -1px #0a141a;cursor:pointer}.pf-loadout-slot:hover{background:linear-gradient(120deg,#294048,#1b2d35)}.pf-loadout-slot:has(select:focus-visible){outline:3px solid #b3d7e8;outline-offset:3px}.pf-slot-label{position:absolute;left:15px;top:9px;z-index:2;font:600 9px 'Sora',sans-serif;letter-spacing:1.3px;text-transform:uppercase;color:#cdb980}.pf-slot-art{display:grid;place-items:center;width:58px;height:58px;margin-top:10px;border-radius:50%;background:#0f1d24;color:#637982;font:23px 'Chakra Petch',sans-serif;box-shadow:inset 0 0 0 1px #3b4e57}.pf-slot-art img{width:50px;height:50px;object-fit:contain}.pf-slot-copy{display:block;min-width:0;margin-top:10px}.pf-slot-copy strong,.pf-slot-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-slot-copy strong{font:600 14px 'Sora',sans-serif;color:#eee9dc}.pf-slot-copy small{margin-top:6px;font:12px 'Sora',sans-serif;color:#9eb1b9}.pf-loadout-slot select{position:absolute;inset:0;width:100%;height:100%;opacity:.001;cursor:pointer}.pf-loadout-slot select:disabled{cursor:not-allowed}.pf-slot-arrow{margin-top:10px;color:#d4bd83}.pf-loadout-slot.locked{opacity:.48}.pf-loadout-slot.locked .pf-slot-art{filter:grayscale(1)}
.pf-copy-picker{margin:0 0 15px;padding:11px 0;border-top:1px solid #354851;border-bottom:1px solid #354851}.pf-copy-picker>span{display:block;margin-bottom:8px;font:600 10px 'Sora',sans-serif;letter-spacing:1px;color:#91a5af}.pf-copy-picker>div{display:flex;gap:7px}.pf-copy-picker button{flex:1;min-width:0;padding:9px 7px;background:#17272f;border:1px solid #3b4f58;border-radius:3px;color:#b6c3c7;font:12px 'Sora',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.pf-copy-picker button[aria-pressed=true]{border-color:#d4bd83;color:#f0dfb4}
@media(max-width:1150px){.pf-fighter-banner{grid-template-columns:82px minmax(160px,1fr) 190px}.pf-battle-facts{grid-column:2/4;justify-content:flex-start;padding-top:15px;border-top:1px solid #40545a}.pf-player-progress{border-right:0}.pf-roster{grid-template-columns:1fr}.pf-roster>.pf-control-label{margin:0}.pf-path-buttons{grid-template-columns:repeat(2,minmax(0,1fr));min-height:193px}.pf-armory-layout{grid-template-columns:1fr}.pf-armory-detail{min-height:360px}.pf-quick-equipment{grid-template-columns:1fr 1fr}.pf-loadout-slot:first-child{grid-column:1/-1}}
@media(max-width:760px){.pf-fighter-banner{grid-template-columns:72px 1fr;padding:18px}.pf-fighter-mark{width:70px;height:70px}.pf-fighter-mark img{width:46px;height:46px}.pf-player-progress{grid-column:1/-1;margin:7px 0 0;padding:15px 0 0;border:0;border-top:1px solid #40545a}.pf-battle-facts{grid-column:1/-1;padding-top:14px}.pf-fighter-name h1{font-size:24px}.pf-jobbuttons{grid-template-columns:repeat(2,1fr)}.pf-path-picker{padding-inline:12px}.pf-path-heading small{display:none}.pf-path-buttons{grid-template-columns:1fr;min-height:0}.pf-weapon-rack,.pf-relic-rack{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-weapon-card{height:185px}.pf-armory-heading>span{display:none}.pf-quick-equipment{grid-template-columns:1fr}.pf-loadout-slot:first-child{grid-column:auto}.pf-loadout-heading small{display:none}}

/* Shop and Forge share one game-native Nova service-station composition. */
.pf-keeper-scene{display:grid;grid-template-columns:minmax(250px,320px) minmax(300px,1fr);align-items:center;gap:34px;padding:26px 38px 22px;min-height:310px}.pf-keeper{width:100%;flex:none;align-self:center}.pf-keeper .nova-stall-art,.pf-keeper .nova-fight-stall-art,.pf-keeper .nova-forge-art{display:grid;place-items:center;width:100%;height:250px;padding:0;box-sizing:border-box}.pf-keeper .nova-stall-art img,.pf-keeper .nova-fight-stall-art img,.pf-keeper .nova-forge-art img{width:100%!important;height:100%!important;object-fit:contain;image-rendering:auto!important;filter:none!important;clip-path:none!important}.pf-forge-scene{margin-bottom:25px}.pf-forge-keeper{background:transparent}.pf-forge-keeper:hover img{transform:translateY(-6px) rotate(-2deg)}
.pf-roster,.pf-loadout{padding-inline:18px}.pf-roster{box-sizing:border-box}.pf-loadout{box-sizing:border-box}
@media(max-width:760px){.pf-keeper-scene{grid-template-columns:1fr;gap:10px;padding:20px;min-height:0}.pf-keeper{max-width:240px;margin:0 auto}.pf-keeper .nova-stall-art,.pf-keeper .nova-fight-stall-art,.pf-keeper .nova-forge-art{height:200px}.pf-keeper-bubble{max-width:none}.pf-keeper-bubble:before{left:50%;top:-14px;transform:translateX(-50%);border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:16px solid #e8ddbf;border-top:0}.pf-roster,.pf-loadout{padding-inline:12px}}

/* Job changes must never reflow the command center. Shared heading rules load later, so this stays deliberately specific. */
body[data-nr-section] #player-flow .pf-fighter-name h1{min-height:30px;margin:4px 0 2px;font:600 30px/1 'Chakra Petch',sans-serif;letter-spacing:-1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f2ede0}body[data-nr-section] #player-flow .pf-jobbuttons button>span:not(.pf-job-orb){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body[data-nr-section] #player-flow .pf-battle-facts{min-height:47px}

/* Service pages keep the fighter context without repeating the full Gear screen. */
.pf-fighter-bar{display:grid;grid-template-columns:54px minmax(0,1fr) 120px auto;align-items:center;gap:16px;margin:0 0 22px;padding:13px 18px;background:linear-gradient(105deg,#20343b,#13242c);border-left:4px solid #d4bd83;border-bottom:1px solid #3f5158;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.pf-fighter-bar-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#101e25;box-shadow:inset 0 0 0 1px #455960}.pf-fighter-bar-icon img{width:34px;height:34px;object-fit:contain}.pf-fighter-bar .pf-control-label{margin:0 0 3px}.pf-fighter-bar>div:nth-child(2)>strong,.pf-fighter-bar>div:nth-child(2)>small{display:block}.pf-fighter-bar>div:nth-child(2)>strong{font:600 19px 'Chakra Petch',sans-serif;color:#f0ece1}.pf-fighter-bar>div:nth-child(2)>small{margin-top:2px;font:11px 'Sora',sans-serif;color:#9fb1ba}.pf-fighter-wallet{text-align:right}.pf-fighter-wallet span,.pf-fighter-wallet strong{display:block}.pf-fighter-wallet span{font:600 8px 'Sora',sans-serif;letter-spacing:1px;color:#8fa4ad}.pf-fighter-wallet strong{font:600 20px 'Chakra Petch',sans-serif;color:#e8cf91}.pf-fighter-bar>button{padding:11px 14px;background:transparent;border:1px solid #66767a;border-radius:3px;color:#e2e5df;font:600 11px 'Sora',sans-serif;cursor:pointer}.pf-fighter-bar>button:hover{border-color:#d4bd83;color:#f0d99d}
.pf-shop-scene,.pf-forge-scene{grid-template-columns:minmax(170px,220px) minmax(300px,1fr);gap:26px;min-height:190px;padding:16px 28px 14px;margin-bottom:18px}.pf-shop-scene .nova-stall-art,.pf-shop-scene .nova-fight-stall-art,.pf-forge-scene .nova-forge-art{height:175px}.pf-shop-scene .pf-keeper-bubble,.pf-forge-scene .pf-keeper-bubble{padding:18px 22px}.pf-shop-scene .pf-keeper-bubble p,.pf-forge-scene .pf-keeper-bubble p{font-size:14px;line-height:1.55}.pf-shop-scene .pf-keeper>span,.pf-forge-scene .pf-keeper>span{margin-top:-3px}.pf-legacy-feats .bl-head h3,.pf-legacy-leaderboard .bl-head h3{display:none}.pf-legacy-records>.panel{padding:0;background:transparent;border:0}.pf-legacy-records .empty-note{min-height:180px;display:grid;place-items:center;padding:30px;border:1px solid #3b4c56;background:#18262e}
@media(max-width:760px){.pf-fighter-bar{grid-template-columns:48px 1fr auto}.pf-fighter-wallet{display:none}.pf-fighter-bar>button{grid-column:2/4;justify-self:start}.pf-shop-scene,.pf-forge-scene{grid-template-columns:1fr;padding:18px}.pf-shop-scene .nova-stall-art,.pf-shop-scene .nova-fight-stall-art,.pf-forge-scene .nova-forge-art{height:185px}}

body[data-nr-section=shop] .pf-shop-scene{grid-template-columns:170px minmax(300px,1fr);min-height:158px;padding:10px 24px 12px;gap:24px}
body[data-nr-section=shop] .pf-shop-scene .pf-keeper{max-width:170px;margin:0 auto}
body[data-nr-section=shop] .pf-shop-scene .pf-keeper .nova-stall-art{width:170px;height:138px}
body[data-nr-section=shop] .pf-shop-scene .pf-keeper>span{font-size:11px;margin-top:0}
body[data-nr-section=shop] .pf-shop-scene .pf-keeper-bubble{max-width:560px;padding:16px 22px}
body[data-nr-section=shop] .pf-cosmetic-shop{height:1120px}
body[data-nr-section=shop] #shopNote{display:none}
.pf-shop-aisles{margin:22px 0 20px}
.pf-shop-aisles>.pf-kicker{margin:0 0 9px}
.pf-shop-aisles .pf-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:6px;border:1px solid #485a52;background:#101f22}
.pf-shop-aisles .pf-filters button{min-height:56px;border:1px solid transparent;border-radius:0;font-size:15px;font-weight:700}
.pf-shop-aisles .pf-filters button[aria-pressed=true]{border-color:#d7c18f;background:#344a3e;box-shadow:inset 0 -4px #d7c18f;color:#f1d797}
.pf-shop-grid .shoptile{display:grid;grid-template-rows:22px 78px 28px minmax(54px,auto) 38px 28px;align-items:center;justify-items:center;min-height:320px;padding:20px 22px;text-align:center}
.pf-shop-grid .shoptile .cat{align-self:start;font:600 13px/1.4 Arial,sans-serif;letter-spacing:0;color:#bdcac3}
.pf-shop-grid .shoptile>.art{display:block;width:78px;height:72px;margin:0 auto;object-fit:contain;object-position:center}
.pf-shop-grid .shoptile .nm{align-self:center;margin:0;font:700 17px/1.35 Arial,sans-serif!important;color:#eee7d8;text-align:center}
.pf-shop-grid .shoptile .ds{align-self:start;min-height:48px;margin:0;font:15px/1.55 Arial,sans-serif;color:#bdc9c3;text-align:center}
.pf-shop-grid .shoptile .pr,.pf-item-detail-card .pr{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;width:106px!important;min-width:106px!important;height:38px!important;margin:0 auto!important;padding:6px 12px!important;border-radius:4px!important;box-sizing:border-box!important;font:700 17px/1 Arial,sans-serif!important;font-variant-numeric:tabular-nums}
.pf-shop-grid .shoptile .pr img,.pf-item-detail-card .pr img{display:block!important;flex:0 0 24px!important;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;margin:0!important;object-fit:contain!important;transform:none!important}
.pf-shop-grid .shoptile .pf-stock-status{align-self:end;min-height:22px;margin:0!important;font:14px/1.4 Arial,sans-serif!important;color:#c8d2cc!important;text-align:center}
.pf-bait-owned{color:#e5cf95!important;font:600 16px/1.4 'Sora',sans-serif!important;text-align:center}
#player-flow .pf-shelf-item:focus-visible{outline:2px solid #dec895;outline-offset:3px}
@media(max-width:760px){body[data-nr-section=shop] .pf-shop-scene{grid-template-columns:1fr;gap:8px}body[data-nr-section=shop] .pf-shop-scene .pf-keeper .nova-stall-art{width:180px;height:150px}.pf-shop-aisles .pf-filters button{min-height:52px}}

/* Approved faceted tackle art uses smooth scaling across shop and inventory. */
img[src*="icons/tackle/"]{image-rendering:auto!important;object-fit:contain}

/* Approved faceted relic art. */
img[src*="icons/items/gas_mask.png"],img[src*="icons/items/earplugs.png"],img[src*="icons/items/band_aid_box.png"],img[src*="icons/items/weighted_blanket.png"],img[src*="icons/items/rabbits_foot.png"],img[src*="icons/items/get_well_card.png"],img[src*="icons/items/oven_mitt.png"],img[src*="icons/items/leather_gloves.png"],img[src*="icons/items/rubber_gloves.png"],img[src*="icons/items/lizard_tail.png"],img[src*="icons/items/lurker_ring.png"]{image-rendering:auto!important;object-fit:contain}

img[src*="jobicons/"]{image-rendering:auto!important;object-fit:contain}

img[src*="icons/items/wooden_branch.png"],img[src*="icons/items/toy_lightsaber.png"],img[src*="icons/items/foam_sword.png"],img[src*="icons/items/yardstick.png"],img[src*="icons/items/meat_cleaver.png"],img[src*="icons/items/hatchet.png"],img[src*="icons/items/pizza_cutter.png"],img[src*="icons/items/ice_scraper.png"],img[src*="icons/items/baseball_bat.png"],img[src*="icons/items/cricket_bat.png"],img[src*="icons/items/canoe_paddle.png"],img[src*="icons/items/plank.png"],img[src*="icons/items/garden_rake.png"],img[src*="icons/items/snow_shovel.png"],img[src*="icons/items/pitchfork.png"],img[src*="icons/items/hoe.png"]{image-rendering:auto!important;object-fit:contain}

img[src*="icons/items/butter_knife.png"],img[src*="icons/items/steak_knife.png"],img[src*="icons/items/box_cutter.png"],img[src*="icons/items/scissors.png"],img[src*="icons/items/lawn_darts.png"],img[src*="icons/items/syringe.png"],img[src*="icons/items/skewer.png"],img[src*="icons/items/fork.png"],img[src*="icons/items/garden_claw.png"],img[src*="icons/items/backscratcher.png"],img[src*="icons/items/cat_gloves.png"],img[src*="icons/items/chicken_foot.png"]{image-rendering:auto!important;object-fit:contain}

img[src*="icons/items/baguette.png"],img[src*="icons/items/broom.png"],img[src*="icons/items/closed_umbrella.png"],img[src*="icons/items/hobby_horse.png"],img[src*="icons/items/pikopiko_hammer.png"],img[src*="icons/items/giant_lollipop.png"],img[src*="icons/items/rolling_pin.png"],img[src*="icons/items/frying_pan.png"],img[src*="icons/items/rubber_chicken.png"],img[src*="icons/items/wii_remote.png"],img[src*="icons/items/glow_stick.png"],img[src*="icons/items/feather_duster.png"],img[src*="icons/items/sparkler.png"],img[src*="icons/items/lighter.png"],img[src*="icons/items/birthday_candle.png"],img[src*="icons/items/road_flare.png"],img[src*="icons/items/icicle.png"],img[src*="icons/items/snowman_on_a_stick.png"],img[src*="icons/items/frozen_fish.png"],img[src*="icons/items/ice_cream_bar.png"],img[src*="icons/items/bug_zapper.png"],img[src*="icons/items/electric_eel.png"],img[src*="icons/items/electric_toothbrush.png"],img[src*="icons/items/stun_baton.png"]{image-rendering:auto!important;object-fit:contain}

/* One visual axis for fighter, path, weapons and relics. */
.pf-roster{display:block;margin-top:22px;padding-inline:18px}.pf-roster>.pf-control-label{display:block;margin:0 0 10px}.pf-path-picker{margin-top:18px}.pf-path-heading{justify-content:flex-start}.pf-path-heading small{display:none}.pf-armory{padding-inline:18px;box-sizing:border-box}.pf-armory-left{min-width:0}.pf-relic-heading{margin-top:20px}.pf-armory-detail{align-self:start}
@media(max-width:760px){.pf-roster{padding-inline:12px}.pf-path-picker{padding-inline:12px}.pf-armory{padding-inline:12px}}

/* Approved faceted materials */
img[src*="icons/hide.png"],img[src*="icons/scrap.png"],img[src*="icons/bone.png"],img[src*="icons/spark.png"],img[src*="icons/goo.png"],img[src*="icons/magicite.png"]{image-rendering:auto!important;object-fit:contain}

/* the viewer's fishing level in the At the Pond heading (2026-09-26): plain gold text, not a pill */
/* 🎣 a locked item (fishing level too low): the art dims and a red band crosses it, the way games mark a locked item; no badge */
.shoptile{position:relative;overflow:hidden}
.shoptile.is-locked .art{filter:grayscale(.55) brightness(.55)}
.pf-level-need{color:#ff7a70;font-weight:700}
.pf-level-ok{color:#a6bbc4}
/* 🎣 the lock band sits FLUSH ALONG THE TILE'S TOP EDGE, over the category row it replaces, so the tile keeps its size */
.shoptile .pf-lock-band{position:absolute;left:0;right:0;top:0;height:38px;display:flex;align-items:center;justify-content:center;background:#b3261e;color:#fff;font:700 14px/1 'Chakra Petch',sans-serif;letter-spacing:.06em;white-space:nowrap}
.shoptile.is-locked .cat{visibility:hidden}
/* 🎣 the Fisher bar: the fighter bar's component; the level is the headline, the XP line is readable, never small print */
.pf-fisher-bar .pf-fish-xp{height:8px;margin:8px 0 7px;max-width:280px;border-radius:4px;background:#2c3f46;box-shadow:inset 0 0 0 1px #58707a;overflow:hidden}
.pf-fisher-bar .pf-fish-xp i{display:block;height:100%;width:0;background:#f4c94a;border-radius:4px;transition:width .6s ease}
.pf-fisher-bar>div:nth-child(2)>small{font:14px 'Sora',sans-serif;color:#d6e0dc}
.pf-fisher-bar>div:nth-child(2)>strong{font-size:22px}
/* no small print in the Fisher bar (Drew: never SMALL fonts): its labels and the balance are sized to read at a glance */
.pf-fisher-bar .pf-control-label,.pf-fisher-bar .pf-fighter-wallet>span{font-size:12px;letter-spacing:.08em}
.pf-fisher-bar .pf-fighter-wallet>strong{font-size:26px}
/* the shop's purse stays visible on phones: in a shop, what you can afford is the point (the fighter bar hides its wallet there) */
@media(max-width:760px){.pf-fisher-bar .pf-fighter-wallet{display:block}}
/* 💰 the price plate is DARK with a bright gold number (Drew 2026-09-26: the gold coin "blends with the button behind it" on the old
   gold plate). Same size as before, so no tile moves; tiles and the item detail share it. */
.pf-shop-grid .shoptile .pr,.pf-item-detail-card .pr{background:#0d181d!important;color:#ffe08a!important;box-shadow:inset 0 0 0 1px #3a4d55!important;font-size:19px!important}
/* the level line in the item detail: red and readable when locked (a site rule for detail paragraphs was overriding it) */
#pf-shop-selected p.pf-level-need{text-align:center!important;color:#ff6f64!important;font:700 15px/1.4 'Sora',sans-serif!important}
#pf-shop-selected p.pf-level-ok{text-align:center!important;color:#b9c9cf!important;font:600 15px/1.4 'Sora',sans-serif!important}
.pf-fisher-bar{grid-template-columns:54px minmax(0,1fr) auto auto}
@media(max-width:760px){.pf-fisher-bar{grid-template-columns:48px minmax(0,1fr) auto}.pf-fisher-bar .pf-fish-slots{grid-column:1/-1;grid-row:2;justify-content:flex-start}}

/* 2026-09-26: level + XP left the Gear banner (the player strip above shows them), so the banner is three columns. */
.pf-fighter-banner{grid-template-columns:92px minmax(170px,.9fr) minmax(260px,1.4fr)}
@media(max-width:1150px) and (min-width:761px){.pf-fighter-banner{grid-template-columns:82px minmax(160px,1fr) minmax(220px,1.2fr)}.pf-battle-facts{grid-column:auto;padding-top:0;border-top:0}}
@media(max-width:760px){.pf-fighter-banner{grid-template-columns:72px 1fr}}

/* ⚔️ TODAY'S FIGHT MODIFIERS, under the fighter banner (2026-09-26). No coloured stripe down the side; each modifier carries a small
   gem, green when it helps and red when it hurts; the word stays available as the hidden <b>. Descriptions at a readable size. */
.pf-quick .pf-today-strip{margin:22px 0 24px;padding:18px 22px;border:1px solid #3b4f57;border-left-width:1px;border-radius:8px;background:linear-gradient(100deg,#1a2a31,#141f25)}
.pf-today-strip>.pf-kicker{font-size:14px;letter-spacing:.14em;color:#e8cf91}
.pf-today-strip>p{font-size:16px;color:#c9d4d0}
.pf-today-strip article{border-left:1px solid #33464d}
.pf-today-strip article b{width:14px;color:transparent}
.pf-today-strip article b:before{width:11px;height:11px;margin-top:6px;transform:rotate(45deg);background:#7fd3a0;box-shadow:0 0 10px #7fd3a088}
.pf-today-strip article.bad b:before{background:#ff7a6b;box-shadow:0 0 10px #ff7a6b88}
.pf-today-strip article strong{font-size:17px}
.pf-today-strip article span{font-size:15px;line-height:1.5;color:#b8c7cd}

/* ===== 🗂️ FOUR TABS + FIGHTER TAB (2026-09-26, Drew: "i prefer B four tabs") ===== */
#player-flow{display:block!important}
/* folder tabs on a gold line, NOT boxes: boxed tabs under the boxed player strip read as a second banner
   (Drew 09-26: "the menu looks too much like the banner on top and might confuse people") */
.pf-tabs{display:flex;gap:6px;align-items:flex-end;margin:26px 0 0;padding:0 6px;border-bottom:2px solid #8a7438}
.pf-tabs>button{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:-2px;padding:10px 20px 12px;border:2px solid transparent;border-bottom:0;border-radius:14px 14px 0 0;background:none;color:#b5c0b9;cursor:pointer;transition:color .18s,background .18s}
.pf-tabs>button:hover{color:#f0e8d6;background:#ffffff0a}
.pf-tabs>button:hover img{transform:translateY(-3px) rotate(-4deg)}
.pf-tabs>button[aria-selected=true]{color:#f0e8d6;border-color:#8a7438;background:linear-gradient(180deg,#26301f,#0f1a18);box-shadow:inset 0 3px 0 #d9bf83}
.pf-tabs img{width:40px;height:40px;object-fit:contain;flex:none;image-rendering:auto;transition:transform .2s}
.pf-tabs b{display:block;font:700 19px/1.25 'Cinzel',Georgia,serif;white-space:nowrap}.pf-tabs small{display:none}
.pf-tabfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 22px;min-height:44px}
.pf-subtabs{display:flex;gap:8px;flex-wrap:wrap}
.pf-subtabs button,.pf-howto{padding:9px 18px;border-radius:999px;border:1px solid #42534c;background:#12201d;color:#d8e4db;font:600 15px/1.3 'Segoe UI',Arial,sans-serif;cursor:pointer}
.pf-subtabs button[aria-pressed=true]{background:#d9bf83;border-color:#d9bf83;color:#1a1405}
.pf-howto{background:none;color:#d9bf83;border-color:#6b5a2e}.pf-howto[aria-pressed=true]{background:#2b2412}
/* Fighter hero: the job card on the left, how the job plays on the right */
.pf-hero{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start;margin-bottom:26px}
.pf-cardcol{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.pf-jobcard{position:relative;width:260px;aspect-ratio:451/788;border-radius:16px;transition:transform .25s ease-out;box-shadow:0 18px 40px -14px #000,0 0 36px -10px var(--job,#d9bf83)}
.pf-jobcard img{width:100%;height:100%;display:block;border-radius:16px;image-rendering:auto}
.pf-jobcard i{position:absolute;inset:0;border-radius:16px;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#ffffff38 48%,transparent 62%);background-size:250% 100%;background-position:var(--sx,120%) 0;mix-blend-mode:screen}
.pf-cardcol h1{margin:6px 0 0;font:700 30px/1.2 'Cinzel',Georgia,serif;color:var(--job,#f0e8d6)}
.pf-hero-path{margin:0;color:#b5c0b9;font-size:16px}
.pf-level{width:250px}.pf-level-bar{height:10px;border-radius:5px;background:#0c1614;border:1px solid #42534c;overflow:hidden}.pf-level-bar i{display:block;height:100%;background:linear-gradient(90deg,#6b5418,var(--job,#d9bf83))}
.pf-level-row{display:flex;justify-content:space-between;font-size:14px;color:#b5c0b9;margin-top:4px}
.pf-joblist{display:grid;grid-template-columns:repeat(4,64px);gap:8px;margin-top:6px}
.pf-joblist button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border-radius:12px;border:2px solid #42534c;background:#12201d;color:#d8e4db;cursor:pointer;transition:transform .18s}
.pf-joblist button:hover{transform:translateY(-3px)}
.pf-joblist img{width:44px;height:44px;object-fit:contain;image-rendering:auto}
.pf-joblist span{font-size:13px;line-height:1.2}
.pf-joblist button[aria-pressed=true]{border-color:var(--job,#d9bf83);box-shadow:0 0 16px -4px var(--job,#d9bf83)}
.pf-joblist .pf-addjob{border-style:dashed;opacity:.8}.pf-joblist .pf-addjob img{filter:grayscale(1) brightness(.8)}
.pf-herocol{display:flex;flex-direction:column;gap:16px;min-width:0}
.pf-herocol .pf-battle-facts{display:flex;gap:12px;flex-wrap:wrap}
.pf-herocol .pf-battle-facts>div{flex:1 1 140px;padding:12px 16px;border-radius:12px;background:#172725;border:1px solid #42534c}
.pf-herocol .pf-battle-facts strong{display:block;font-size:24px;line-height:1.3}
.pf-chatline{padding:14px 18px;border-radius:12px;background:#132e28;border:1px solid #3f6b5a;color:#b5c0b9;font-size:16px}
.pf-chatline code{font:700 17px Consolas,monospace;color:#8fe3a8;background:#0a1512;padding:3px 9px;border-radius:6px}
/* paths: the name sits at the top of every button, whatever the text length (Drew 09-26: "maelstrom name not alligned") */
.pf-path-buttons button{display:flex!important;flex-direction:row;align-items:flex-start!important;justify-content:flex-start}
.pf-path-copy{align-self:flex-start}
/* modifiers with their icons */
.pf-today-strip article{display:flex!important;gap:12px;align-items:flex-start}
.pf-modicon{width:40px;height:40px;object-fit:contain;flex:none;image-rendering:auto}
span.pf-modicon.none{display:grid;place-items:center;border-radius:10px;background:#0e1815;border:1px solid #42534c;font:700 20px/1 'Segoe UI',Arial,sans-serif;color:#b5c0b9}
/* what each weapon does, on the card */
.pf-wfx{margin-top:6px;font-size:13px;line-height:1.4;color:#c9d5cb;text-align:center}
/* picking a job: the deck */
.pf-welcome{margin-bottom:26px}
.pf-welcome-head{text-align:center;margin:4px 0 22px}.pf-welcome-head h1{margin:0;font:700 34px/1.2 'Cinzel',Georgia,serif}.pf-welcome-head p{margin:8px auto 0;max-width:640px;color:#b5c0b9;font-size:17px}
.pf-or{display:inline-flex;align-items:center;gap:10px;margin-top:14px;padding:8px 16px;border-radius:999px;background:#132e28;border:1px solid #3f6b5a;font-size:15px}.pf-or code{font:700 16px Consolas,monospace;color:#8fe3a8}
.pf-deck{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}
.pf-deckcard{position:relative;width:170px;padding:0;border:0;background:none;color:#f0e8d6;cursor:pointer;transition:transform .3s cubic-bezier(.3,1.4,.5,1),filter .3s}
.pf-deckcard img{width:100%;border-radius:12px;display:block;box-shadow:0 12px 26px -10px #000;image-rendering:auto}
.pf-deckcard b{display:block;margin-top:8px;font:700 18px/1.3 'Cinzel',Georgia,serif}.pf-deckcard small{display:block;color:#b5c0b9;font-size:14px;line-height:1.4}
.pf-deckcard:hover{transform:translateY(-10px) rotate(-2deg)}
.pf-deck.chosen .pf-deckcard:not([aria-pressed=true]){filter:grayscale(.7) brightness(.55);transform:scale(.92)}
.pf-deckcard[aria-pressed=true]{transform:translateY(-14px) scale(1.05)}
.pf-deckcard.locked{cursor:not-allowed}.pf-deckcard.locked img{filter:grayscale(1) brightness(.45)}
.pf-deckdetail{margin-top:26px}.pf-deckdetail h2{margin:0 0 14px;font:700 24px/1.3 'Cinzel',Georgia,serif}
.pf-deckpaths{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:12px}
.pf-deckpaths>button{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px;border-radius:14px;border:2px solid #42534c;background:#1d302c;color:#f0e8d6;cursor:pointer;transition:transform .18s,border-color .18s}
.pf-deckpaths>button:hover{transform:translateY(-3px);border-color:#6f8378}.pf-deckpaths>button[aria-pressed=true]{border-color:#d9bf83;background:linear-gradient(160deg,#2f2c17,#1d302c 70%)}
.pf-deckpaths b{font:700 19px/1.3 'Cinzel',Georgia,serif}.pf-deckpaths>button>span{font-size:15px;line-height:1.5;color:#d8e4db}
.pf-deckwpn{display:flex;gap:10px;align-items:flex-start;margin-top:auto;padding-top:10px;border-top:1px solid #2f433c}
.pf-deckwpn img{width:40px;height:40px;object-fit:contain;flex:none}.pf-deckwpn strong{display:block;font-size:14px}.pf-deckwpn small{display:block;font-size:14px;line-height:1.4;color:#b5c0b9}
.pf-deckgo{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:18px}
@media(max-width:900px){.pf-tabs{overflow-x:auto;scrollbar-width:none}.pf-tabs>button{padding:8px 14px 10px}.pf-hero{grid-template-columns:1fr}.pf-jobcard{width:200px}.pf-deckpaths{grid-template-columns:1fr}.pf-deckcard{width:130px}}
@media(max-width:480px){.pf-tabs{gap:0;padding:0}.pf-tabs>button{flex-direction:column;gap:4px;padding:8px 6px 10px;flex:1 1 0}.pf-tabs b{font-size:13px}.pf-tabs img{width:32px;height:32px}.pf-tabfoot{flex-wrap:wrap}}

/* ===== YOUR GEAR in the Fighter tab (mockup style, Drew 09-26) ===== */
.pf-gear{padding:18px 20px;border-radius:14px;background:#172725;border:1px solid #42534c}
.pf-gear-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.pf-gear-head h2{margin:0;font:700 20px/1.3 'Cinzel',Georgia,serif}.pf-gear-head span{color:#b5c0b9;font-size:14px}
.pf-gslots{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:12px}
.pf-gslot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:180px;padding:10px;border-radius:14px;border:2px dashed #52665d;background:#10201c;color:#f0e8d6;cursor:pointer;transition:transform .18s,border-color .18s}
.pf-gslot:not(.locked):hover{transform:translateY(-3px) rotate(-1deg);border-color:#8aa093}
.pf-gslot.filled{border-style:solid;border-color:var(--job,#d9bf83);background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--job,#d9bf83) 24%,#10201c),#10201c 70%)}
.pf-gslot img{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 6px 8px #0009);transition:transform .25s}
.pf-gslot.big img{width:100px;height:100px}.pf-gslot:not(.locked):hover img{transform:scale(1.08) rotate(6deg)}
.pf-gslot b{font-size:16px;text-align:center;line-height:1.25}.pf-gslot small{font-size:13px;letter-spacing:.08em;color:#b5c0b9}.pf-gslot em{font-style:normal;font-size:13px;color:#d9a36a}
.pf-gplus{font-size:34px;line-height:1;color:#6d8177}
.pf-gslot.locked{cursor:not-allowed;opacity:.7}.pf-gslot.locked .pf-gplus{font-size:26px}
.pf-gslot[aria-expanded=true]{box-shadow:0 0 0 3px #d9bf8355}
.pf-gfx{display:flex;align-items:center;gap:14px;margin-top:12px;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--job,#d9bf83) 12%,#0d1a17);border:1px solid color-mix(in srgb,var(--job,#d9bf83) 45%,#2c3d37)}
.pf-gfx img{width:44px;height:44px;object-fit:contain;flex:none}.pf-gfx small{display:block;color:#b5c0b9;font-size:13px;letter-spacing:.08em}.pf-gfx b{font-size:16px;line-height:1.45;font-weight:600}
.pf-gtray{margin-top:12px;padding:14px;border-radius:12px;background:#0d1a17;border:1px solid #42534c;animation:pfTray .25s}
@keyframes pfTray{from{opacity:0;transform:translateY(-8px)}}
.pf-gtray>p{margin:0 0 10px;color:#b5c0b9;font-size:15px}
.pf-gitems{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:12px}
.pf-gitems>button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;border-radius:12px;border:2px solid #42534c;background:#1d302c;color:#f0e8d6;text-align:center;cursor:pointer;transition:transform .18s,border-color .18s}
.pf-gitems>button:hover{transform:translateY(-2px);border-color:#8aa093}.pf-gitems>button[aria-pressed=true]{border-color:var(--job,#d9bf83)}
.pf-gitems img{width:56px;height:56px;object-fit:contain}.pf-gitems b{font-size:15px}.pf-gitems span{font-size:13px;color:#b5c0b9}.pf-gitems div{font-size:13px;line-height:1.4;color:#c9d5cb}
.pf-gtray-actions{display:flex;gap:10px;flex-wrap:wrap}
/* paths as big buttons, full description, name at the top (mockup) */
.pf-path-buttons{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pf-path-buttons>button{min-height:92px;padding:12px 14px!important}
.pf-path-copy strong{font:700 17px/1.3 'Cinzel',Georgia,serif!important}
.pf-path-copy small{display:block!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;max-height:none!important}
@media(max-width:700px){.pf-gslots{grid-template-columns:1fr 1fr}.pf-gslot.big{grid-column:1/-1}}

/* ===== ROUND 2 FIXES (Drew 09-26: "words over another word, words clipping") ===== */
.pf-cardcol h1{margin:6px 0 0!important;line-height:1.15!important}
.pf-hero-path{margin:0 0 6px!important}
.pf-joblist{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:270px}
.pf-joblist button{flex-direction:row!important;justify-content:flex-start;gap:8px!important;padding:6px 10px!important;text-align:left;min-width:0}
.pf-joblist img{width:34px!important;height:34px!important;flex:none}
.pf-joblist span{font-size:14px!important;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
/* the gold border says which path is active; the ACTIVE word sat on top of long names */
.pf-path-buttons>button[aria-pressed=true]>b{display:none!important}
.pf-path-buttons>button>b{position:static!important;display:block;margin-top:6px;font-size:13px}
.pf-path-buttons>button[aria-pressed=true]{border-color:var(--job,#d9bf83)!important;box-shadow:inset 0 0 0 1px var(--job,#d9bf83)}
.pf-today-strip>.pf-kicker{white-space:nowrap}
.pf-gfx strong{display:block;font:700 15px/1.3 'Cinzel',Georgia,serif;color:var(--job,#d9bf83)}
/* the Workshop */
.pf-workshop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.pf-wpanel{padding:18px 20px;border-radius:14px;background:#172725;border:1px solid #42534c;min-width:0}
.pf-whead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.pf-whead h2{margin:0;font:700 22px/1.3 'Cinzel',Georgia,serif}.pf-whead span{color:#b5c0b9;font-size:14px}
.pf-wkeeper{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.pf-wkeeper img{width:110px;height:110px;object-fit:contain;flex:none;border-radius:12px}
.pf-wbubble{position:relative;margin:0;padding:12px 16px;border-radius:14px;background:#efe3c2;color:#2a2210;font-size:15px;line-height:1.45}
.pf-wbubble:before{content:"";position:absolute;left:-8px;top:50%;margin-top:-8px;border:8px solid transparent;border-right-color:#efe3c2;border-left:0}
.pf-wtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.pf-wtiles>button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;border:2px solid #42534c;background:#1d302c;color:#f0e8d6;cursor:pointer;transition:transform .18s,border-color .18s;min-width:0}
.pf-wtiles>button:hover{transform:translateY(-3px);border-color:#8aa093}.pf-wtiles>button[aria-pressed=true]{border-color:var(--job,#d9bf83);box-shadow:0 0 14px -4px var(--job,#d9bf83)}
.pf-wtiles img{width:56px;height:56px;object-fit:contain}.pf-wtiles b{font-size:14px;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.pf-wsdetail{margin-top:14px;padding:14px;border-radius:12px;background:#0d1a17;border:1px solid #42534c;display:flex;flex-direction:column;gap:10px}
.pf-wsdetail h3{margin:0;font:700 18px/1.3 'Cinzel',Georgia,serif}
.pf-wsrow{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:start;font-size:15px;line-height:1.45}
.pf-wsrow>span{font-weight:700;font-size:13px;letter-spacing:.06em;color:#b5c0b9;padding-top:2px}.pf-wsrow.next>span{color:#8fe3a8}
.pf-wscost{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}.pf-wscost img{width:22px;height:22px;object-fit:contain}.pf-wscost span{display:inline-flex;align-items:center;gap:4px;color:#d8e4db}.pf-wscost em{margin-left:auto;font-style:normal;color:#b5c0b9;font-size:14px}
.pf-wsmax{margin:0;color:#8fe3a8}
.pf-wlink{margin-top:12px;background:none;border:0;padding:0;color:#d9bf83;font-size:15px;cursor:pointer}
.pf-wshelf{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:10px!important}
.pf-wshelf .shoptile{display:flex!important;flex-direction:column;align-items:center;gap:6px;height:auto!important;min-height:0!important;padding:12px 10px!important;position:relative}
.pf-wshelf .shoptile>*{position:static!important;margin:0!important;transform:none!important}
.pf-wshelf .shoptile .art{width:64px!important;height:64px!important;object-fit:contain}
.pf-wshelf .shoptile .nm{font-size:15px!important;font-weight:700;text-align:center}.pf-wshelf .shoptile .ds{font-size:14px!important;line-height:1.4;text-align:center}
.pf-wshelf .shoptile .pr{margin-top:auto!important}
.pf-wshopdetail:empty{display:none}.pf-wshopdetail{margin-top:14px;padding:14px;border-radius:12px;background:#0d1a17;border:1px solid #42534c}
@media(max-width:1000px){.pf-workshop{grid-template-columns:1fr}}
@media(max-width:480px){.pf-wkeeper img{width:80px;height:80px}.pf-joblist{width:100%}}

/* modifier heading above its text again (nowrap beside the text overlapped it); path names wrap rather than being cut */
.pf-today-strip{display:flex!important;flex-direction:column;align-items:flex-start;gap:6px}
.pf-today-strip>.pf-kicker{white-space:normal}
.pf-path-copy strong,.pf-path-copy{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;min-width:0}
.pf-path-copy strong{overflow-wrap:anywhere}
/* review fixes 09-26: Nova's words readable on her bubble; an empty shelf slot is hidden rather than "Nothing stocked / SOLD OUT /
   Shop opening soon" at once; the shelf's internal note (restock id, purse) is not for players; less gap above the paths */
.pf-wbubble,#pf-keeper-line.pf-wbubble,#pf-forge-line.pf-wbubble{color:#2a2210!important;opacity:1!important}
.pf-wshelf .shoptile:disabled{display:none!important}
.pf-wpanel .pf-shop-note{display:none}
.pf-wshelf .shoptile .art{width:72px!important;height:72px!important}
.pf-herocol .pf-path-picker{margin-top:0!important}.pf-herocol{gap:14px!important}
/* the Bestiary said its count twice ("5 / 100 found" beside "5 of 100 species recorded") */
.pf-legacy-bestiary .bl-head .bl-count{display:none}
/* Drew's tab icons (09-26): a little bigger on desktop; on phone the Cinzel labels touched, so the plain face at the same 13px */
.pf-tabs img{width:48px!important;height:48px!important}
@media(max-width:480px){.pf-tabs img{width:36px!important;height:36px!important}.pf-tabs b{font:700 13px/1.2 'Segoe UI',Arial,sans-serif!important;letter-spacing:0!important}.pf-tabs>button{padding:8px 2px 10px!important}}

/* 🧭 HOW YOUR JOB PLAYS: core + passive, each with its icon (Drew 09-26) */
.pf-jobplays{padding:14px 16px;border-radius:14px;background:#172725;border:1px solid #42534c}
.pf-jobplays h3{margin:0 0 10px;font:700 18px/1.3 'Cinzel',Georgia,serif}
.pf-jp-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pf-jp-item{display:flex;gap:12px;align-items:flex-start;min-width:0}
.pf-jp-icon{flex:none;width:52px;height:52px;border-radius:10px;background:#0d1a17;border:1px solid #42534c;display:grid;place-items:center}
.pf-jp-icon img{width:44px;height:44px;object-fit:contain;image-rendering:auto}
.pf-jp-icon.none,.pf-jp-icon:empty{background:repeating-linear-gradient(45deg,#12201d 0 6px,#172725 6px 12px)}
.pf-jp-item small{display:block;font-size:13px;letter-spacing:.08em;color:#b5c0b9}
.pf-jp-item b{display:block;font-size:16px;line-height:1.3}
.pf-jp-item span{display:block;font-size:14px;line-height:1.45;color:#d8e4db}
.pf-guide-jobs{margin-top:22px}.pf-guide-jobs h2{margin:0 0 12px;font:700 22px/1.3 'Cinzel',Georgia,serif}
.pf-guide-job{margin-bottom:12px}.pf-guide-jobhead{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pf-guide-jobhead img{width:40px;height:40px;object-fit:contain}.pf-guide-jobhead b{font:700 18px 'Cinzel',Georgia,serif}
@media(max-width:700px){.pf-jp-row{grid-template-columns:1fr}}

/* ⬡ MODIFIER HEX (Drew 09-26: hex, dark neutral fill, OUTLINE ONLY: green = helpful day, red = dangerous day) */
.pf-modhex{--rim:#57d977;position:relative;flex:none;width:54px;height:54px;display:grid;place-items:center;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:var(--rim)}
.pf-modhex.bad{--rim:#ff5a48}
.pf-modhex:before{content:"";position:absolute;inset:3px;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);background:conic-gradient(from 30deg,#71878f,#33454b,#131d21,#33454b,#71878f,#33454b,#131d21,#33454b,#71878f)}
.pf-modhex .pf-modicon{position:relative;z-index:1;width:38px!important;height:38px!important}
.pf-modhex span.pf-modicon.none{background:none;border:0}
/* modifier text beside the hex: name on its own line, the description under it; the helpful/dangerous word is gone because the
   hex outline already says it (green or red), say it once */
.pf-today-strip article>div{display:flex!important;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;text-align:left}
.pf-today-strip article>div>b{display:none!important}
.pf-today-strip article>div>strong{display:block;font-size:16px;line-height:1.3}
.pf-today-strip article>div>span{display:block;font-size:14px;line-height:1.45;color:#c9d5cb}
.pf-today-strip article{align-items:center!important}
/* the icon box is a span too, and '.pf-jp-item span{display:block}' (the description) knocked it off-centre (Drew 09-26) */
.pf-jp-item span.pf-jp-icon{display:grid;place-items:center}

/* ===== 🗂️ FOLDER TABS, one style for every set of tabs on the site (Drew 09-26: "i love the tab ... we need the same style for other
   parts of the website that have tabs like the novarealm shop"). Same look as the Fish Fight tabs: tabs sit on a gold line, the
   chosen one is lifted with a gold top edge. .nr-ftabs-sm is the smaller version used inside a panel. ===== */
.nr-ftabs{display:flex;gap:6px;align-items:flex-end;margin:0 0 16px;padding:0 6px;border-bottom:2px solid #8a7438;overflow-x:auto;scrollbar-width:none}
.nr-ftabs>button{flex:0 1 auto;margin-bottom:-2px;padding:11px 22px 12px;border:2px solid transparent;border-bottom:0;border-radius:14px 14px 0 0;background:none;color:#b5c0b9;font:700 18px/1.25 'Cinzel',Georgia,serif;white-space:nowrap;cursor:pointer;transition:color .18s,background .18s}
.nr-ftabs>button:hover{color:#f0e8d6;background:#ffffff0a}
.nr-ftabs>button[aria-selected=true]{color:#f0e8d6;border-color:#8a7438;background:linear-gradient(180deg,#26301f,#0f1a18);box-shadow:inset 0 3px 0 #d9bf83}
.nr-ftabs-sm>button{padding:8px 16px 9px;font:700 15px/1.25 'Sora','Segoe UI',sans-serif}
/* the dressing room's old boxed tab bar gives way to the folder tabs */
.dr-tabs.nr-ftabs{display:flex!important;grid-template-columns:none!important;border:0!important;border-bottom:2px solid #8a7438!important;border-radius:0!important;overflow:visible!important}
.dr-tabs.nr-ftabs>button.on{background:linear-gradient(180deg,#26301f,#0f1a18)!important;color:#f0e8d6!important}

/* bigger Nova (Drew 09-26: "the icons for the forge and shop are small") */
.pf-wkeeper img{width:170px!important;height:170px!important}
.pf-wkeeper{gap:18px}
@media(max-width:480px){.pf-wkeeper img{width:110px!important;height:110px!important}}
.pf-wpanel .nr-ftabs{margin-top:4px}
.pf-wcraftdetail{margin-top:14px;padding:14px;border-radius:12px;background:#0d1a17;border:1px solid #42534c;display:flex;flex-direction:column;gap:10px}
.pf-wcraftdetail .fcard{background:none!important;border:0!important;box-shadow:none!important;padding:0!important}
/* ===== 🧭 PATHS, reworked ===== */
.nr-paths-row{display:flex;gap:8px;flex-wrap:wrap}
.nr-paths-row>button{display:flex;align-items:center;gap:9px;min-width:0;padding:8px 16px 8px 8px;border-radius:999px;border:2px solid #42534c;background:#12201d;color:#d8e4db;cursor:pointer;transition:border-color .18s,transform .18s}
.nr-paths-row>button:not(:disabled):hover{transform:translateY(-2px);border-color:#8aa093}
.nr-paths-row>button[aria-selected=true]{border-color:var(--job,#d9bf83);background:color-mix(in srgb,var(--job,#d9bf83) 16%,#12201d);color:#f0e8d6}
.nr-paths-row>button:disabled{opacity:.55;cursor:not-allowed}
.nr-paths-row b{font:700 15px/1.2 'Sora','Segoe UI',sans-serif;white-space:nowrap}
.nr-path-art{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#0b1512;flex:none}
.nr-path-art img{width:28px;height:28px;object-fit:contain}
.nr-lock{font-size:15px;line-height:1}
.nr-path-line{margin:10px 0 0;font-size:15px;line-height:1.45;color:#c9d5cb}.nr-path-line b{color:#f0e8d6}
.nr-paths-head{margin-bottom:8px}
.pf-wpanel .nr-ftabs{margin-top:10px}
/* craft card alignment (Drew 09-26: "alignment bad"): everything centred on one axis, the weapon picture sized to its own box
   (it was 135px tall in an 80px box and poked into the tiles above), the materials row centred and without the old page's padding */
.pf-wcraftdetail .fcard{align-items:center!important;text-align:center!important;gap:10px!important;min-height:0!important;height:auto!important}
.pf-wcraftdetail .fcard-art{height:auto!important;min-height:0!important}
.pf-wcraftdetail .fcard-art img{width:110px!important;height:110px!important;object-fit:contain}
.pf-wcraftdetail .fcard-path{text-align:center!important;margin:0!important}
.pf-wcraftdetail .fcard-sig{margin:0!important}
.pf-wcraftdetail .fneeds{justify-content:center!important;flex-wrap:wrap;gap:8px 18px!important;padding:0!important;margin:4px 0 0!important;height:auto!important;min-height:0!important;border:0!important}

/* ===== 🃏 ADD A JOB / FIRST JOB, reworked (Drew 09-26) ===== */
.nr-welcome .pf-welcome-head{margin:4px 0 18px}
.nr-welcome .pf-welcome-head p{font-size:17px;color:#d8e4db}
.nr-how{list-style:none;margin:0 auto 26px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:980px}
.nr-how li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:#172725;border:1px solid #42534c}
.nr-how-n,.nr-step-n{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#d9bf83;color:#1a1405;font:700 16px/1 'Segoe UI',Arial,sans-serif}
.nr-how b{display:block;font-size:16px;line-height:1.3;color:#f0e8d6}.nr-how span{display:block;font-size:15px;line-height:1.4;color:#c9d5cb}
.nr-how code{font:700 15px Consolas,monospace;color:#8fe3a8}
.nr-step{margin:0 0 26px}
.nr-step h2{display:flex;align-items:center;gap:12px;margin:0 0 16px;font:700 22px/1.3 'Cinzel',Georgia,serif;color:#f0e8d6}
.nr-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,210px));justify-content:center;gap:18px;padding-top:10px}
.nr-jobcard{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 0 14px;border:0;border-radius:16px;background:none;color:#f0e8d6;cursor:pointer;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.nr-jobcard img{width:100%;aspect-ratio:451/788;object-fit:cover;border-radius:14px;box-shadow:0 12px 26px -10px #000;transition:box-shadow .2s,filter .2s}
.nr-jobcard:hover{transform:translateY(-6px)}
.nr-jobcard.on{transform:translateY(-8px)}
.nr-jobcard.on img{box-shadow:0 0 0 3px #d9bf83,0 0 30px -4px #d9bf83}
.nr-deck:has(.on) .nr-jobcard:not(.on) img{filter:saturate(.55) brightness(.75)}
.nr-jobcard b{font:700 20px/1.25 'Cinzel',Georgia,serif;margin-top:6px}
.nr-jobcard em{font-style:normal;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#d9bf83}
.nr-jobcard span{font-size:15px;line-height:1.45;color:#d8e4db;text-align:center;max-width:200px}
.nr-jobcard.locked{cursor:not-allowed}.nr-jobcard.locked img{filter:grayscale(1) brightness(.5)}
.nr-pathcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.nr-pathcards>button{display:flex;flex-direction:column;gap:12px;text-align:left;padding:16px;border-radius:14px;border:2px solid #42534c;background:#172725;color:#f0e8d6;cursor:pointer;transition:border-color .18s,transform .18s;min-width:0}
.nr-pathcards>button:hover{transform:translateY(-3px);border-color:#8aa093}
.nr-pathcards>button[aria-pressed=true]{border-color:#d9bf83;background:linear-gradient(160deg,#2f2c17,#172725 70%)}
.nr-pc-top{display:flex;gap:12px;align-items:center}
.nr-pc-top img{width:56px;height:56px;object-fit:contain;flex:none}
.nr-pc-top b{display:block;font:700 20px/1.25 'Cinzel',Georgia,serif}.nr-pc-top span{display:block;font-size:15px;line-height:1.4;color:#d8e4db}
.nr-pc-wpn{padding-top:12px;border-top:1px solid #2f433c}
.nr-pc-wpn small{display:block;font-size:13px;letter-spacing:.08em;color:#b5c0b9}
.nr-pc-wpn strong{display:block;font-size:16px;margin:2px 0 4px}
.nr-pc-wpn p{margin:0;font-size:15px;line-height:1.45;color:#d8e4db}
.nr-pc-wpn p b{font:inherit;font-weight:700}
@media(max-width:760px){.nr-how{grid-template-columns:1fr}.nr-deck{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* the step number is a span too; the step text's span rule turned it pale on gold and made it a block (review 09-26) */
.nr-how li>span.nr-how-n{display:grid;color:#1a1405;font:700 16px/1 'Segoe UI',Arial,sans-serif}
.nr-jobcard b{font-size:22px}
/* one set of numbers on the page: the how-it-works strip keeps 1-2-3, the section headings do not repeat them (review 09-26) */
.nr-step h2 .nr-step-n{display:none}

/* ===== 🗂️ Folder tab icons (Drew 09-27): rendered from the high-detail 3D models, sit left of the words ===== */
.nr-ftabs>button{display:inline-flex;align-items:center;gap:10px}
.nr-ftabs>button>img{width:auto;height:36px;max-width:64px;object-fit:contain;flex:none;image-rendering:auto;margin:-4px 0}
.nr-ftabs-sm>button>img{height:36px}
.nr-ftabs>button:not([aria-selected=true]):not(.on)>img{opacity:.85}
@media(max-width:520px){.nr-ftabs>button{padding-left:12px;padding-right:12px;gap:6px}.nr-ftabs>button>img{height:28px;max-width:50px}}
@media(max-width:520px){.nr-ftabs{gap:4px;padding:0 2px}.nr-ftabs>button{flex:1 1 0;min-width:0;justify-content:center;white-space:normal;text-align:left;line-height:1.15;font-size:15px}}
@media(max-width:520px){.nr-ftabs{align-items:stretch}.nr-ftabs>button>img{max-width:40px}}

/* 📖 the first-time guide, stat and sub-tab icons (2026-09-28) */
.nr-guide{max-width:1080px;margin:0 auto 30px}
.nr-guide-title{font:700 24px 'Cinzel',Georgia,serif;color:#f0e8d6;margin:0 0 14px;text-align:center}
.nr-how.nr-how4{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;margin-bottom:14px}
.nr-how4 li{flex-direction:column;align-items:center;text-align:center;gap:10px;padding:18px 16px}
.nr-how-ic{width:64px;height:64px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 6px 10px #0008)}
.nr-money{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nr-money>div{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:#122120;border:1px solid #42534c;font-size:15px;line-height:1.45;color:#c9d5cb}
.nr-money img{width:40px;height:40px;object-fit:contain;image-rendering:auto;flex:none}
.nr-money b{color:#f0e8d6}
.nr-money code,.nr-how4 code{font:700 15px Consolas,monospace;color:#8fe3a8}
.nr-step .pf-jobplays{margin:0 0 16px}
.pf-fact-ic{width:20px;height:20px;vertical-align:-4px;margin-right:6px;image-rendering:auto}
.pf-sub-ic{width:20px;height:20px;vertical-align:-4px;margin-right:6px;image-rendering:auto}
@media(max-width:900px){.nr-how.nr-how4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.nr-how.nr-how4,.nr-money{grid-template-columns:1fr}.nr-how4 li{flex-direction:row;text-align:left}.nr-how-ic{width:48px;height:48px}}

/* 🎴 the Fighter screen: job tabs on top, level badge on the card (2026-09-28) */
.pf-hero>.pf-jobtabs{grid-column:1/-1}
.pf-jobtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}
.pf-jobtabs button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#12201e;border:1px solid #42534c;color:#f0e8d6;cursor:pointer;text-align:left;font:inherit;transition:translate .2s,border-color .2s}
.pf-jobtabs button:hover{translate:0 -2px;border-color:var(--jc,#d9bf83)}
.pf-jobtabs button[aria-pressed=true]{border-color:var(--jc,#d9bf83);background:linear-gradient(120deg,color-mix(in srgb,var(--jc,#d9bf83) 22%,#12201e),#12201e);box-shadow:inset 0 0 0 1px var(--jc,#d9bf83)}
.pf-jobtabs img{width:38px;height:38px;object-fit:contain;image-rendering:auto;flex:none}
.pf-jobtabs span{display:flex;flex-direction:column;min-width:0}
.pf-jobtabs b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-jobtabs small{font-size:13px;color:#b5c0b9}
.pf-jobtabs .pf-addjob{border-style:dashed;opacity:.8}
.pf-jobtabs .pf-addjob img{filter:grayscale(.8);opacity:.7}
.pf-jobtabs .pf-addjob small{color:#d9bf83;font-weight:700}
.pf-jobcard{position:relative}
.pf-lvl-badge{--p:0%;position:absolute;left:50%;bottom:-28px;translate:-50% 0;width:68px;height:68px;border-radius:50%;padding:4px;background:conic-gradient(var(--job,#d9bf83) var(--p),#0c1614 0);box-shadow:0 6px 16px #000a;z-index:2}
.pf-lvl-badge>span{width:100%;height:100%;border-radius:50%;background:#0f1a1d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.05}
.pf-lvl-badge small{font-size:9px;letter-spacing:.12em;color:#b5c0b9;font-weight:700}
.pf-lvl-badge b{font-size:22px;line-height:1.05;color:#fff3cf}
#player-flow .pf-hero .pf-jobcard{margin-bottom:30px}   /* room for the level badge that hangs off the card (the title's margin is pinned by an !important rule) */
.pf-level-bar{height:12px}
.pf-level-row{font-size:15px}
@media(max-width:760px){.pf-jobtabs{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-jobtabs img{width:32px;height:32px}.pf-jobtabs b{white-space:normal;font-size:14px;line-height:1.15}}

/* 🎴 Fighter layout, round 2 (Drew 2026-09-28: the stat boxes took "so much space"): the stats are one slim row under the XP
   bar, and today's modifiers shrink to a single line while none are picked yet */
#player-flow .pf-cardcol .pf-battle-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;width:100%;max-width:300px;margin:12px auto 0;padding:10px 12px;border-radius:12px;background:#0f1a1d;border:1px solid #42534c}
#player-flow .pf-cardcol .pf-battle-facts>div{display:flex;align-items:baseline;gap:8px;padding:0;margin:0;border:0;background:none;min-height:0;box-shadow:none}
#player-flow .pf-cardcol .pf-battle-facts span{display:inline-flex;align-items:center;font-size:13px;color:#b5c0b9;text-transform:none;letter-spacing:0}
#player-flow .pf-cardcol .pf-battle-facts strong{font-size:20px;line-height:1;color:#fff3cf}
#player-flow .pf-cardcol .pf-battle-facts .pf-fact-ic{width:18px;height:18px}
#player-flow .pf-herocol>.pf-today-strip{margin:18px 0 0}
#player-flow .pf-herocol>.pf-today-strip:has(>p){display:flex!important;flex-direction:row;align-items:center;gap:14px;padding:10px 14px;grid-template-columns:none;text-align:left}
#player-flow .pf-herocol>.pf-today-strip:has(>p) p{font-size:14px}
#player-flow .pf-herocol{align-self:start}

/* 🎴 Fighter, round 3: the Ready now card, section icons, and a little life on the job card */
.pf-ready{margin:16px 0 0;padding:14px 16px;border-radius:14px;background:linear-gradient(120deg,#2a2412,#15201e 70%);border:1px solid #d9bf83aa;box-shadow:0 0 30px -16px #d9bf83}
.pf-ready[hidden]{display:none}
.pf-ready h2{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:700 18px 'Cinzel',Georgia,serif;color:#f0e8d6}
.pf-ready h2 img{width:24px;height:24px}
.pf-ready article{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #42534c}
.pf-ready article:first-of-type{border-top:0}
.pf-ready article>img{width:40px;height:40px;object-fit:contain;image-rendering:auto;flex:none}
.pf-ready article>div{flex:1;min-width:0;display:flex;flex-direction:column}
.pf-ready b{font-size:15px;color:#f0e8d6}
.pf-ready span{font-size:13px;color:#b5c0b9}
.pf-ready .pf-primary{flex:none;min-height:40px;padding:8px 16px}
#player-flow .pf-gear-head h2::before,#player-flow .nr-paths-head .pf-control-label::before,#player-flow .pf-today-strip>.pf-kicker::before{content:"";display:inline-block;width:24px;height:24px;margin-right:8px;vertical-align:-6px;background:center/contain no-repeat}
#player-flow .pf-gear-head h2::before{background-image:url(/ff3/icons/site/forge.png)}
#player-flow .nr-paths-head .pf-control-label::before{background-image:url(/ff3/icons/site/compass.png)}
#player-flow .pf-today-strip>.pf-kicker::before{background-image:url(/ff3/icons/site/fish-fights-back.png)}
#player-flow .pf-hero .pf-jobcard{animation:pfFloat 6s ease-in-out infinite}
#player-flow .pf-hero .pf-jobcard::after{content:"";position:absolute;inset:-16% -22%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--job,#d9bf83) 45%,transparent),transparent);filter:blur(6px);animation:pfAura 5s ease-in-out infinite alternate;pointer-events:none}
@keyframes pfFloat{50%{translate:0 -8px}}
@keyframes pfAura{from{opacity:.55;scale:.95}to{opacity:1;scale:1.05}}
@media(prefers-reduced-motion:reduce){#player-flow .pf-hero .pf-jobcard,#player-flow .pf-hero .pf-jobcard::after{animation:none}}
@media(max-width:560px){#player-flow .pf-gear-head>:not(h2){display:none}}   /* the dashed slots already say "click to change" */
/* 🧭 the current path as a subclass title under the job name: "White Mage" / ─ CLERIC ─ (Drew 2026-09-28: the PATH / Cleric /
   Heals badge was "terrible"; the picker on the right already says what each path does) */
#player-flow .pf-subclass{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;max-width:300px;margin:-2px auto 12px}
#player-flow .pf-subclass::before,#player-flow .pf-subclass::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--job,#d9bf83) 80%,transparent))}
#player-flow .pf-subclass::after{background:linear-gradient(90deg,color-mix(in srgb,var(--job,#d9bf83) 80%,transparent),transparent)}
#player-flow .pf-subclass span{font:700 17px/1.2 'Cinzel',Georgia,serif;letter-spacing:.22em;text-transform:uppercase;color:var(--job,#d9bf83);text-shadow:0 0 14px color-mix(in srgb,var(--job,#d9bf83) 45%,transparent);white-space:nowrap}
/* 🗡️ the weapon tray: every weapon, by path, unowned ones as silhouettes */
#player-flow .pf-gw-path{margin:0 0 14px}
#player-flow .pf-gw-path h3{display:flex;align-items:center;gap:10px;margin:0 0 8px;font:700 16px 'Cinzel',Georgia,serif;color:#f0e8d6;letter-spacing:.06em}
#player-flow .pf-gw-path h3 em{font:700 11px 'Sora',sans-serif;font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#1a1405;background:var(--job,#d9bf83);border-radius:99px;padding:2px 8px}
#player-flow .pf-gw-path h3 span{margin-left:auto;font:600 13px 'Sora',sans-serif;color:#b5c0b9}
#player-flow .pf-gw-path.cur{padding:10px;border-radius:14px;background:color-mix(in srgb,var(--job,#d9bf83) 8%,transparent);border:1px solid color-mix(in srgb,var(--job,#d9bf83) 45%,transparent)}
#player-flow .pf-gitems>button.pf-gw-unk{cursor:default;background:linear-gradient(160deg,#17272e,#111f26);border-color:#2d414a;border-style:dashed}
#player-flow .pf-gitems>button.pf-gw-unk:hover{transform:none;border-color:#2d414a}
#player-flow .pf-gw-unk .pf-weapon-silhouette{width:auto;height:auto;margin:0}
#player-flow .pf-gw-unk .pf-weapon-silhouette img{width:64px;height:64px}
#player-flow .pf-gw-unk b{color:#788b93;letter-spacing:.2em}
#player-flow .pf-gw-unk div{font-size:12px;color:#8a9aa2}
#player-flow .pf-gw-on{font:700 11px 'Sora',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--job,#d9bf83)}
/* 🗡️ the armory row: full width under the fighter, one fixed place per weapon */
#player-flow .pf-hero>.pf-armory{grid-column:1/-1;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid #42534c}
.pf-arm-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.pf-arm-head h2{margin:0;font:700 20px 'Cinzel',Georgia,serif;color:#f0e8d6}
.pf-arm-head h2::before{content:"";display:inline-block;width:24px;height:24px;margin-right:8px;vertical-align:-5px;background:url(/ff3/icons/site/dmg-dealt.png) center/contain no-repeat}
.pf-arm-head span{margin-left:auto;font-size:14px;color:#b5c0b9}
.pf-arm-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pf-arm-path{padding:8px 10px 10px;border-radius:14px;border:1px solid #2d414a;background:#0f1a1d}
.pf-arm-path.cur{border-color:color-mix(in srgb,var(--job,#d9bf83) 60%,transparent);background:color-mix(in srgb,var(--job,#d9bf83) 7%,#0f1a1d)}
.pf-arm-path>small{display:block;margin:0 0 6px 2px;font:700 12px 'Cinzel',Georgia,serif;letter-spacing:.16em;text-transform:uppercase;color:#b5c0b9}
.pf-arm-path.cur>small{color:var(--job,#d9bf83)}
.pf-arm-set{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.pf-arm-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:10px;border:1px solid #2d414a;background:#15232a;color:#f0e8d6;font:inherit;min-width:0}
button.pf-arm-tile{cursor:pointer;transition:translate .2s,border-color .2s}
button.pf-arm-tile:hover{translate:0 -3px;border-color:#8aa093}
.pf-arm-tile.own{background:#1d302c;border-color:#42534c}
.pf-arm-tile.on{border-color:var(--job,#d9bf83);box-shadow:0 0 0 1px var(--job,#d9bf83),0 0 18px -6px var(--job,#d9bf83)}
.pf-arm-art{width:52px;height:52px;display:grid;place-items:center}
.pf-arm-art img{width:48px;height:48px;object-fit:contain;image-rendering:auto}
.pf-arm-art.sil img{filter:brightness(0) drop-shadow(0 0 1px #76909b);opacity:.55}
.pf-arm-tile b{max-width:100%;font-size:12px;line-height:1.2;min-height:2.4em;display:flex;align-items:flex-start;justify-content:center;text-align:center;white-space:normal;overflow-wrap:normal;word-break:normal}   /* two lines, never cut: every tile keeps the same height */
.pf-arm-tile.sil b{color:#6f828a;letter-spacing:.2em}
.pf-arm-tile.bp{border-style:dashed;border-color:#d9bf83aa;background:linear-gradient(160deg,#2a2412,#15232a)}
.pf-arm-tile.bp b{color:#d9bf83}
.pf-arm-scroll{position:absolute;top:3px;right:3px;width:20px;height:20px}
.pf-arm-step{position:absolute;top:3px;right:4px;font:800 11px 'Sora',sans-serif;font-style:normal;color:#1a1405;background:var(--job,#d9bf83);border-radius:6px;padding:1px 5px}
@media(max-width:1180px){.pf-arm-row{grid-template-columns:1fr}}   /* side by side only when each group has room for proper-size pictures */
@media(max-width:420px){.pf-arm-art{width:44px;height:44px}.pf-arm-art img{width:40px;height:40px}.pf-arm-head h2{font-size:17px;white-space:nowrap}.pf-arm-head span{font-size:13px}}
/* 🗡️ the row is THE weapon picker now: bigger tiles, full names ("Baguette +1"), what each path does, the equipped effect */
.pf-arm-row{gap:14px}
.pf-arm-path{padding:10px 12px 12px}
.pf-arm-ph{display:flex;flex-direction:column;gap:2px;margin:0 0 10px 2px;min-height:2.9em}
.pf-arm-ph b{font:700 14px 'Cinzel',Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:#d8e0da}
.pf-arm-path.cur .pf-arm-ph b{color:var(--job,#d9bf83)}
.pf-arm-ph span{font-size:13px;line-height:1.35;color:#b5c0b9}
.pf-arm-set{gap:8px}
.pf-arm-tile{padding:10px 4px 8px;gap:6px}
.pf-arm-art{width:72px;height:72px}
.pf-arm-art img{width:64px;height:64px}
.pf-arm-tile b{font-size:13px}
.pf-arm-on{font:700 10px 'Sora',sans-serif;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--job,#d9bf83);margin-top:-2px}
.pf-arm-scroll{width:24px;height:24px}
.pf-arm-fx{display:flex;align-items:center;gap:14px;margin-top:14px;padding:12px 16px;border-radius:14px;background:color-mix(in srgb,var(--job,#d9bf83) 10%,#0f1a1d);border:1px solid color-mix(in srgb,var(--job,#d9bf83) 55%,transparent)}
.pf-arm-fx>img{width:48px;height:48px;object-fit:contain;image-rendering:auto;flex:none}
.pf-arm-fx small{display:block;font:700 10px 'Sora',sans-serif;letter-spacing:.14em;color:#b5c0b9}
.pf-arm-fx strong{display:block;font:700 18px 'Cinzel',Georgia,serif;color:#fff3cf}
.pf-arm-fx b{font-weight:500;font-size:15px;color:#e6ece8}
.pf-gslots.pf-relics-only{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px) and (min-width:901px){.pf-arm-art{width:60px;height:60px}.pf-arm-art img{width:54px;height:54px}}
@media(max-width:420px){.pf-arm-art{width:56px;height:56px}.pf-arm-art img{width:50px;height:50px}.pf-arm-tile b{font-size:12px}}
/* the picture scales with its tile (up to full size), so four always fit a phone row */
#player-flow .pf-arm-tile{min-width:0}
#player-flow .pf-arm-art{width:100%;max-width:72px;height:auto;aspect-ratio:1}
#player-flow .pf-arm-art img{width:90%;height:90%}
@media(max-width:420px){#player-flow .pf-arm-path{padding:8px 8px 10px}#player-flow .pf-arm-set{gap:6px}#player-flow .pf-arm-tile{padding:8px 3px 6px}}
#player-flow .pf-hero>.pf-armory,#player-flow .pf-arm-row,#player-flow .pf-arm-path,#player-flow .pf-arm-set{min-width:0;max-width:100%}   /* the art's big natural size must not prop the row open */
/* 💍 relics in one compact line (Drew 2026-09-28: "relics take way too much space"): title left, two small square slots right,
   the picker still opens underneath */
#player-flow .pf-gear{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:14px;padding:12px 16px}
#player-flow .pf-gear>.pf-gear-head{margin:0;flex-direction:column;align-items:flex-start;gap:2px}
#player-flow .pf-gear>.pf-gear-head span{font-size:13px}
#player-flow .pf-gear>.pf-gtray{grid-column:1/-1;margin-top:12px}
#player-flow .pf-gslots.pf-relics-only{grid-template-columns:repeat(2,84px);gap:10px}
#player-flow .pf-relics-only .pf-gslot{height:84px;padding:6px;gap:2px;border-radius:12px}
#player-flow .pf-relics-only .pf-gslot img{width:46px;height:46px}
#player-flow .pf-relics-only .pf-gslot .pf-lock-ico{width:26px!important;height:26px!important}
#player-flow .pf-relics-only .pf-gslot b{display:none}
#player-flow .pf-relics-only .pf-gslot small{font-size:10px}
#player-flow .pf-relics-only .pf-gslot em{font-size:11px}
#player-flow .pf-relics-only .pf-gplus{font-size:22px;line-height:1}
@media(max-width:560px){#player-flow .pf-herocol>.pf-today-strip:has(>p){flex-direction:column;align-items:flex-start;gap:4px}}   /* phones: heading above the line */
/* ⭐ weapons: the showcase + one row per path (these rules come last and win over the earlier row layout) */
#player-flow .pf-arm-body{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:18px;align-items:stretch}
#player-flow .pf-arm-show{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:18px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--job,#d9bf83) 55%,transparent);background:radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--job,#d9bf83) 26%,#10201c),#0f1a1d 70%);overflow:hidden;isolation:isolate}
#player-flow .pf-arm-ped{position:relative;display:grid;place-items:center;width:190px;height:190px;margin-bottom:6px;animation:pfFloat 5s ease-in-out infinite}
#player-flow .pf-arm-ped::after{content:"";position:absolute;left:18%;right:18%;bottom:4px;height:14px;border-radius:50%;background:#0008;filter:blur(6px);z-index:-1}
#player-flow .pf-arm-ped img{width:170px;height:170px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 12px 16px #000a)}
#player-flow .pf-arm-show small{font:700 11px 'Sora',sans-serif;letter-spacing:.16em;color:#b5c0b9}
#player-flow .pf-arm-show strong{font:700 26px/1.1 'Cinzel',Georgia,serif;color:#fff3cf}
#player-flow .pf-arm-show em{font-style:normal;font:700 13px 'Cinzel',Georgia,serif;letter-spacing:.14em;text-transform:uppercase;color:var(--job,#d9bf83)}
#player-flow .pf-arm-show p{margin:6px 0 0;font-size:15px;line-height:1.45;color:#e6ece8}
#player-flow .pf-arm-rows{display:grid;gap:10px;align-content:start;min-width:0}
#player-flow .pf-arm-rows .pf-arm-path{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px}
#player-flow .pf-arm-rows .pf-arm-ph{margin:0;min-height:0}
#player-flow .pf-arm-rows .pf-arm-art{max-width:84px}
#player-flow .pf-arm-rows .pf-arm-tile b{font-size:13px}
@media(max-width:900px){
 #player-flow .pf-arm-body{grid-template-columns:1fr}
 #player-flow .pf-arm-ped{width:160px;height:160px}#player-flow .pf-arm-ped img{width:140px;height:140px}
 #player-flow .pf-arm-rows .pf-arm-path{grid-template-columns:1fr;gap:8px}
}
@media(prefers-reduced-motion:reduce){#player-flow .pf-arm-ped{animation:none}}
@media(max-width:560px){#player-flow .pf-arm-head{flex-wrap:wrap}#player-flow .pf-arm-head span{margin-left:0;width:100%}#player-flow .pf-arm-rows .pf-arm-on{display:none}}   /* phones: the gold outline marks the equipped weapon */
/* 🛒 shop tiles: a proper ribbon for the kind, and a blueprint shows its weapon ON the blueprint scroll (Drew 2026-09-28: "just
   'blueprint' in small boring letter is boring. feather duster it should be the icon with the blueprint behind") */
#player-flow [data-shop-item] .cat{display:inline-block;align-self:flex-start;margin:0 0 6px -12px;padding:4px 12px 4px 12px;border-radius:0 9px 9px 0;font:800 11px 'Sora',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#10201c;background:linear-gradient(90deg,#7fd0b8,#4fa792);box-shadow:0 3px 8px #0008}
#player-flow [data-shop-item] .cat.k-blueprint{background:linear-gradient(90deg,#f0d898,#c89a4c);color:#2a1a05}
/* 📜 A BLUEPRINT IS THE WEAPON ON THE BLUE SCROLL, everywhere (Drew 2026-09-29: "use the new blueprint but when you put the
   weapon over it, give it a bit of a shadow (again, like the fished up edit)"). The scroll is Blueprint B, the one the chest
   reveal uses (art/candidates/blueprint-scroll-b-v01/blank-scroll.png, web copy /ff3/icons/site/blueprint-scroll.png at 512).
   Placement and shadow copy tests/saved-pose-cinematic-v01/reward-surface.mjs: the weapon is fitted into the middle 400 of 512
   (78%), with a dark blue shadow 2 right, 3 down, blur 3. ⛔ /ff3/blueprint.png is the OLD paper, never use it here. */
#player-flow .pf-bp-paper{position:relative;display:block;aspect-ratio:1/1;background:url(/ff3/icons/site/blueprint-scroll.png) center/contain no-repeat}
#player-flow .pf-bp-paper>img{position:absolute!important;left:50%;top:50%;width:78%!important;height:78%!important;max-height:none;object-fit:contain;translate:-50% -50%;filter:drop-shadow(2px 3px 3px rgba(0,20,33,.65))!important;opacity:1!important}
#player-flow .pf-art-wrap.pf-bp-paper{width:104px;margin:-8px auto -4px}
#player-flow .pf-arm-tile .pf-arm-art.pf-bp-paper{width:100%;max-width:92px;height:auto}
/* 🎴 THE FIGHTER HERO IN THREE COLUMNS (Drew 2026-09-28: "dont you think its bad to have to scroll down to see your actual job, and
   the accessory is lower?"): job card | weapon + relics | ready + modifiers, and every weapon by path underneath. These rules come
   last and win over the older two-column hero and the showcase-inside-the-armory layout. */
#player-flow .pf-hero.pf-hero3{grid-template-columns:minmax(0,250px) minmax(0,1fr) minmax(0,290px);grid-template-areas:"tabs tabs tabs" "card load side" "rows rows rows";gap:22px 24px;align-items:start}
#player-flow .pf-hero.pf-hero3>.pf-jobtabs{grid-area:tabs}
#player-flow .pf-hero.pf-hero3>.pf-cardcol{grid-area:card;min-width:0}
#player-flow .pf-hero.pf-hero3>.pf-loadcol{grid-area:load;display:flex;flex-direction:column;gap:14px;min-width:0}
#player-flow .pf-hero.pf-hero3>.pf-herocol{grid-area:side;min-width:0}
#player-flow .pf-hero.pf-hero3>.pf-armory{grid-area:rows;margin:8px 0 0;padding:18px 0 0;border-bottom:0;border-top:1px solid #42534c}
#player-flow .pf-hero3 .pf-jobcard{width:230px}
#player-flow .pf-hero3 .pf-cardcol .pf-battle-facts{max-width:250px}
#player-flow .pf-hero3 .pf-herocol>.pf-ready{margin:0}
#player-flow .pf-hero3 .pf-herocol>.pf-today-strip{margin:14px 0 0}
#player-flow .pf-loadcol .pf-arm-show{padding:16px 18px 18px}
#player-flow .pf-loadcol .pf-arm-show.empty{min-height:260px}
#player-flow .pf-arm-jump{margin-top:10px;padding:8px 18px;min-height:40px;border-radius:999px;border:1px solid color-mix(in srgb,var(--job,#d9bf83) 70%,transparent);background:#0f1a1d;color:#f0e8d6;font:700 13px 'Sora',sans-serif;letter-spacing:.06em;cursor:pointer;transition:background .2s,border-color .2s}
#player-flow .pf-arm-jump:hover{background:color-mix(in srgb,var(--job,#d9bf83) 18%,#0f1a1d);border-color:var(--job,#d9bf83)}
#player-flow .pf-arm-jump:focus-visible{outline:2px solid var(--job,#d9bf83);outline-offset:2px}
#player-flow .pf-loadcol .pf-gear{margin:0}
/* the list underneath has the full width: bigger tiles, the path name and what it does on the left */
#player-flow .pf-hero3 .pf-arm-rows{display:grid;gap:10px;min-width:0}
#player-flow .pf-hero3 .pf-arm-rows .pf-arm-path{grid-template-columns:minmax(0,220px) minmax(0,1fr)}
#player-flow .pf-hero3 .pf-arm-set{grid-template-columns:repeat(4,minmax(0,130px))}
#player-flow .pf-hero3 .pf-arm-rows .pf-arm-art{max-width:none;width:84px;height:84px}
#player-flow .pf-hero3 .pf-arm-rows .pf-arm-art img{width:76px;height:76px}
#player-flow .pf-hero3 .pf-arm-rows .pf-arm-art.pf-bp-paper{width:96px;max-width:100%;height:auto}
@media(max-width:1180px){
 #player-flow .pf-hero.pf-hero3{grid-template-columns:minmax(0,230px) minmax(0,1fr);grid-template-areas:"tabs tabs" "card load" "card side" "rows rows"}
 #player-flow .pf-hero3 .pf-jobcard{width:210px}
}
@media(max-width:900px){
 #player-flow .pf-hero.pf-hero3{grid-template-columns:minmax(0,1fr);grid-template-areas:"tabs" "card" "load" "side" "rows"}
 #player-flow .pf-hero3 .pf-jobcard{width:200px}
 #player-flow .pf-hero3 .pf-cardcol .pf-battle-facts{max-width:320px}
 #player-flow .pf-hero3 .pf-arm-rows .pf-arm-path{grid-template-columns:minmax(0,1fr)}
 #player-flow .pf-hero3 .pf-arm-set{grid-template-columns:repeat(4,minmax(0,1fr))}
 #player-flow .pf-hero3 .pf-arm-rows .pf-arm-art{width:64px;height:64px}
 #player-flow .pf-hero3 .pf-arm-rows .pf-arm-art img{width:58px;height:58px}
}
@media(max-width:420px){
 #player-flow .pf-hero3 .pf-arm-rows .pf-arm-art{width:52px;height:52px}
 #player-flow .pf-hero3 .pf-arm-rows .pf-arm-art img{width:48px;height:48px}
}
/* shop tiles: the description fills the tile width so one line centres like two do (Drew 2026-09-28: "description has bad
   alignment"); a hyphenated word ("Armor-down") never splits at its hyphen */
#player-flow [data-shop-item] .ds{align-self:stretch;width:100%;text-align:center;text-wrap:balance}
#player-flow [data-shop-item] .pf-nobr{white-space:nowrap}
/* the first screen: the strip under the big tabs only holds sub-tabs, so on tabs without them it takes no room; the hero
   starts closer to the tabs and the showcase is a little shorter, so the relics sit on the first screen at 1280x950 */
#player-flow .pf-tabfoot:not(:has(.pf-subtabs)){min-height:0;margin:0 0 14px}
#player-flow .pf-hero.pf-hero3{padding-top:24px}
#player-flow .pf-hero3 .pf-cardcol h1{font-size:26px;white-space:nowrap}
#player-flow .pf-hero3 .pf-herocol>.pf-today-strip:has(>p){flex-direction:column;align-items:flex-start;gap:4px}
#player-flow .pf-loadcol .pf-arm-show{padding:12px 18px 16px}
#player-flow .pf-loadcol .pf-arm-ped{width:170px;height:170px;margin-bottom:2px}
#player-flow .pf-loadcol .pf-arm-ped img{width:150px;height:150px}
#player-flow .pf-loadcol .pf-arm-jump{margin-top:8px}
/* the showcase lies sideways in the middle column (picture left, words right) so the relics make the first screen too */
#player-flow .pf-loadcol .pf-arm-show:not(.empty){flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;text-align:left;padding:16px 20px}
#player-flow .pf-loadcol .pf-arm-show:not(.empty) .pf-arm-ped{flex:none;width:160px;height:160px;margin:0}
#player-flow .pf-loadcol .pf-arm-show:not(.empty) .pf-arm-ped img{width:140px;height:140px}
#player-flow .pf-arm-txt{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
#player-flow .pf-arm-txt strong{overflow-wrap:anywhere}
@media(max-width:520px){
 #player-flow .pf-loadcol .pf-arm-show:not(.empty){flex-direction:column;text-align:center}
 #player-flow .pf-arm-txt{align-items:center}
}
/* desktop: the weapon list starts beside the lower half of the job card instead of under it, so no empty gap opens under the
   relics and the list comes up the page. Phones: the relics heading sits above its two slots. */
@media(min-width:1181px){#player-flow .pf-hero.pf-hero3{grid-template-areas:"tabs tabs tabs" "card load side" "card rows rows"}
 #player-flow .pf-hero.pf-hero3>.pf-armory{margin-top:0}}
@media(max-width:520px){#player-flow .pf-loadcol .pf-gear{grid-template-columns:1fr;row-gap:10px}
 #player-flow .pf-loadcol .pf-gslots.pf-relics-only{justify-content:start}}
/* the Workshop shelf pins every tile child to position:static !important; the scroll must stay the weapon's frame */
#player-flow .pf-wshelf .shoptile>.pf-bp-paper{position:relative!important;margin:0 auto!important}
/* 📜 blueprint tiles: who it is for, then what it does */
/* ⛔ EVERY SHOP TILE IS ONE SIZE (Drew 2026-09-29: 'we can't size these buttons differently. they have to be consistent'): the
   job and path sit on ONE line (never wraps, cut with an ellipsis), inside the same 4-line description every tile has */
#player-flow [data-shop-item] .ds .pf-bp-who{display:block;margin:0;font:700 12px/1.4 'Sora',sans-serif;color:#d9bf83;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#player-flow [data-shop-item] .ds .pf-bp-what{display:block}
/* ⛔ ONE TILE SIZE, WHATEVER THE TEXT (Drew 2026-09-29: "we can't size these buttons differently. they have to be consistent!").
   A 3-line description used to stretch its whole row (276px vs 310px). The name is one line and the description is a fixed
   4-line box, so every shop tile is the same height. */
#player-flow [data-shop-item] .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#player-flow [data-shop-item] .ds{line-height:1.4!important;height:calc(1.4em * 4);min-height:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
/* the picture box is the same on every tile too: a blueprint scroll fits inside it rather than making its tile taller */
#player-flow [data-shop-item] .pf-art-wrap{height:92px;display:grid;place-items:center;margin:0 auto!important}
#player-flow [data-shop-item] .pf-art-wrap.pf-bp-paper{width:92px}

/* ⬆️ THE UPGRADE SCREEN (2026-10-01, Drew's approved mockup mockups/upgrade-mockup.html): NOW card -> AFTER card, then the cost
   as a checklist. Painted art scales smooth (never pixelated). Sizes stay at 13px or more. The cards stack when the Forge panel
   is narrow (phone, or the two-column Workshop under ~470px of panel), measured on the panel itself. */
#player-flow .up-detail{container-type:inline-size;gap:14px;padding:16px}
#player-flow .up-compare{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);align-items:stretch;gap:8px}
#player-flow .up-compare.up-solo{grid-template-columns:minmax(0,1fr);max-width:340px;width:100%;margin:0 auto}
#player-flow .up-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 12px 16px;border-radius:14px;border:1px solid #42534c;background:#14231f;min-width:0}
#player-flow .up-card.next{border-color:#8a7438;background:linear-gradient(180deg,#1f2a1d,#13201c);box-shadow:0 0 22px -10px #d9bf83}
#player-flow .up-step{align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
#player-flow .up-step span{font:700 13px/1.2 'Sora',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#b5c0b9}
#player-flow .up-step h4{margin:0;font:700 19px/1.25 'Cinzel',Georgia,serif;color:#f0e8d6;overflow-wrap:anywhere}
#player-flow .up-card.next .up-step span,#player-flow .up-card.next .up-step h4{color:#f3d27a}
#player-flow .up-art{width:132px;height:132px;display:grid;place-items:center;border-radius:14px;background:radial-gradient(circle at 50% 55%,#24352f 0,#14231f 70%);flex:none}
#player-flow .up-art.s1{background:radial-gradient(circle at 50% 55%,#3a3a22 0,#1a2620 72%)}
#player-flow .up-art.s2{background:radial-gradient(circle at 50% 55%,#5a4a20 0,#20291c 74%);box-shadow:inset 0 0 0 1px #8a7438}
#player-flow .up-art img{width:112px;height:112px;object-fit:contain;image-rendering:auto}
#player-flow .up-text{margin:0;align-self:stretch;font-size:15px;line-height:1.5;text-align:center;color:#f0e8d6;overflow-wrap:anywhere}
#player-flow .up-delta{align-self:stretch;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;padding:9px 10px;border-radius:10px;background:#0c1714;border:1px solid #3b4a33;font:700 18px/1.2 'Sora',sans-serif}
#player-flow .up-delta .from{color:#b5c0b9;text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgba(181,192,185,.6)}
#player-flow .up-delta .to{color:#ffe07a}
#player-flow .up-delta .plus{color:#8fe3a8;font-size:16px}
#player-flow .up-delta svg,#player-flow .up-power svg{width:20px;height:13px;flex:none}
#player-flow .up-power{align-self:stretch;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;font-size:14px;color:#d8e4db;text-align:center}
#player-flow .up-power b{display:inline-flex;align-items:center;gap:6px;font-size:16px;color:#8fe3a8}
#player-flow .up-power s{color:#b5c0b9;font-weight:600;text-decoration-thickness:2px}
#player-flow .up-new{align-self:stretch;padding:10px 12px 12px;border-radius:10px;background:linear-gradient(180deg,#3a2f12,#221d10);border:1px solid #b8963f;text-align:left}
#player-flow .up-new .k{display:flex;align-items:center;gap:8px;font:700 15px/1.2 'Cinzel',Georgia,serif;color:#f3d27a;margin-bottom:5px}
#player-flow .up-new .k i{display:block;width:14px;height:14px;flex:none;background:linear-gradient(160deg,#fff3c4,#e2b24c);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
#player-flow .up-new p{margin:0;font-size:15px;line-height:1.45;color:#fff4d6}
#player-flow .up-arrow{display:grid;place-items:center}
#player-flow .up-arrow svg{width:36px;height:36px}
#player-flow .up-cost{display:flex;flex-direction:column;border-radius:10px;background:#101e1a;border:1px solid #42534c;overflow:hidden}
#player-flow .up-req{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px 14px;font-size:15px;color:#f0e8d6}
#player-flow .up-req+.up-req{border-top:1px solid #2c3b35}
#player-flow .up-req .st svg{width:26px;height:26px;display:block}
#player-flow .up-req .what{display:flex;align-items:center;gap:10px;font-weight:700;min-width:0}
#player-flow .up-req .what img{width:26px;height:26px;object-fit:contain;image-rendering:auto;flex:none}
#player-flow .up-req .count{text-align:right;font-weight:700;font-size:16px;white-space:nowrap}
#player-flow .up-req.met .count{color:#8fe3a8}
#player-flow .up-req.unmet .count{color:#ff9a8a}
#player-flow .up-chips{grid-column:2/4;display:flex;flex-wrap:wrap;gap:8px}
#player-flow .up-chip{display:flex;align-items:center;gap:7px;padding:6px 10px 6px 7px;border-radius:9px;border:1px solid #3a4a43;background:#16261f;font-size:14px;color:#b5c0b9}
#player-flow .up-chip img{width:24px;height:24px;object-fit:contain;image-rendering:auto}
#player-flow .up-chip b{color:#f0e8d6}
#player-flow .up-chip.zero{opacity:.6}
#player-flow .up-chip.use{border-color:#8fe3a8;background:#173025;color:#f0e8d6;box-shadow:inset 0 0 0 1px #8fe3a8}
#player-flow .up-chip.use svg{width:16px;height:16px}
#player-flow .up-req .up-note{grid-column:2/4;margin:0;text-align:left;font-size:14px;color:#8fe3a8}
#player-flow .up-req.unmet .up-note{color:#ff9a8a}
#player-flow .up-btn{width:100%;min-height:50px;font-size:15px!important;line-height:1.25!important}
#player-flow .up-max{margin:0;text-align:center;font-size:15px;color:#8fe3a8}
/* 💤 a dormant upgrade (bought before its level gate, Drew 2026-10-02): a band flush on the Now card's top edge, art dimmed */
.up-dorm{align-self:stretch;margin:-14px -12px 2px;padding:10px 12px;border-radius:13px 13px 0 0;background:#1b2b38;border-bottom:1px solid #4d6a85;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.up-dorm b{font:700 15px/1.3 'Sora',sans-serif;color:#d6e8ff}
.up-dorm span{font-size:14px;line-height:1.4;color:#b9c8d6}
.up-card.dorm .up-art img{filter:saturate(.45) brightness(.8)}
#player-flow .pf-wtiles img{image-rendering:auto}
@container (max-width:470px){
 #player-flow .up-compare{grid-template-columns:minmax(0,1fr);gap:6px}
 #player-flow .up-arrow{height:36px}
 #player-flow .up-arrow svg{transform:rotate(90deg)}
 #player-flow .up-req{padding:12px}
}
#player-flow .up-btn:disabled{background:#22332e;background-image:none;color:#ffb4a6;border:1px solid #5a4440;box-shadow:none;cursor:not-allowed;opacity:1;transform:none}

/* 🎲 TODAY'S FIGHT MODIFIERS, ONE PER ROW (Drew 2026-10-01, the live sidebar at ~290px put the two side by side and wrapped the
   text one word a line). Each modifier is a full-width row: the hex icon at the left, top-aligned, name and description beside
   it, a thin line between rows. Same at every width; the strip's height follows its content. */
#player-flow .pf-today-strip>div{display:flex!important;flex-direction:column;align-self:stretch;width:100%;gap:0;grid-template-columns:none}
#player-flow .pf-today-strip article{display:flex!important;align-items:flex-start!important;gap:12px;width:100%;padding:12px 0!important;border-left:0!important;border-top:1px solid #33464d}
#player-flow .pf-today-strip article:first-child{border-top:0;padding-top:6px!important}
#player-flow .pf-today-strip article:last-child{padding-bottom:0!important}
#player-flow .pf-today-strip .pf-modhex{width:46px;height:46px}
#player-flow .pf-today-strip .pf-modhex .pf-modicon{width:32px!important;height:32px!important}
#player-flow .pf-today-strip article>div{flex:1 1 auto;min-width:0}
#player-flow .pf-today-strip article>div>strong{font-size:16px;line-height:1.3}
#player-flow .pf-today-strip article>div>span{font-size:14px;line-height:1.45;overflow-wrap:break-word}

/* 👀 WHAT A NORMAL VIEWER SEES (2026-10-01) */
/* a long relic name ("Second Wind Amulet") was cut to "Second Wind A...": the name gets a fixed TWO-line box, so it wraps and every
   tile stays the same height (Drew 2026-09-29: one tile size whatever the text) */
#player-flow [data-shop-item] .nm{white-space:normal;text-overflow:clip;overflow:hidden;display:flex;align-items:center;justify-content:center;line-height:1.3!important;height:2.6em;overflow-wrap:break-word}
/* the Forge for a viewer with no fighter yet: one plain sentence and a button to the job picker, across the whole panel */
#player-flow .pf-wempty{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:6px;padding:16px 18px;border:1px solid #33474f;border-radius:10px;background:#122126}
#player-flow .pf-wempty p{margin:0;font:15px/1.5 'Sora',sans-serif;color:#d6e0dc}
#player-flow .pf-wempty b{color:#ffe08a}

/* Patch notes link on the tab bar (2026-10-02). Desktop: right end of the tabs; phone: its own line under them. */
.pf-tabs>.pf-notes{margin-left:auto;align-self:center;padding:0 8px 6px;font:700 19px/1.25 'Cinzel',Georgia,serif;color:#d9bf83;text-decoration:none;white-space:nowrap}.pf-notes:hover{color:#f1dda9;text-decoration:underline;text-underline-offset:3px}.pf-notes-m{display:none}
@media(max-width:900px){.pf-tabs>.pf-notes{display:none}.pf-notes-m{display:block;width:max-content;margin:10px 4px 0 auto;font:600 15px/1.3 'Segoe UI',Arial,sans-serif;color:#d9bf83;text-decoration:none}}

.pf-wtiles>button>span{font-size:12px;line-height:1.4;text-align:center;overflow-wrap:anywhere;color:#c7d3cc}
/* ⭐ recommended + path warning (Drew 2026-10-03) */
.nr-jobcard,[data-deckpath]{position:relative}
.nr-reco{position:absolute;top:8px;right:8px;z-index:2;padding:4px 9px;border-radius:999px;background:#f3c86b;color:#1d1d1d;font:700 .72rem system-ui;font-style:normal;letter-spacing:.02em;box-shadow:0 3px 8px rgba(0,0,0,.45);pointer-events:none}   /* Drew 2026-10-03: top right corner */
.nr-pathwarn{margin:14px 0 6px;padding:10px 14px;border-radius:10px;background:rgba(243,200,107,.12);border:1px solid rgba(243,200,107,.45);color:#f0e8d6;font-size:.95rem;line-height:1.4}
#player-flow [data-shop-item] .cat.k-starter{background:linear-gradient(90deg,#c9a7ff,#8f6bd8);color:#1c0f33}   /* 🗡️ New path (2026-10-04): purple, so it never reads as a relic (teal) or a blueprint (gold) */
