:root{color-scheme:dark;--bg:#0d0e16;--side:#10111a;--panel:#181923;--panel2:#1e202c;--line:#2b2b3b;--text:#eae7ee;--muted:#9693a6;--gold:#e0d0a9;--lav:#b9a1f1;--lav2:#8675b8;--green:#a6cfbe;--red:#ed9ca4;--radius:16px;--shadow:0 18px 55px rgba(0,0,0,.22);font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--lav)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,.serif{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.025em}h1{font-size:clamp(2.15rem,4vw,3.3rem);line-height:1.14;margin-bottom:14px}h2{font-size:1.65rem}h3{font-size:1.15rem}p{line-height:1.65}.app-shell{display:flex;min-height:100vh}.sidebar{width:259px;position:fixed;left:0;top:0;bottom:0;z-index:10;background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 14px 20px;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--gold);padding:0 12px 38px}.brand-sigil{display:grid;place-items:center;font-size:25px;width:46px;height:46px;background:#282439;border:1px solid #4a3f60;border-radius:13px;filter:grayscale(.2)}.brand-copy{display:flex;flex-direction:column;gap:5px}.brand-copy b{font-size:1.17rem;letter-spacing:.23em}.brand-copy small{font-size:.52rem;letter-spacing:.16em;color:var(--muted)}.side-label{color:#777485;font-size:.69rem;font-weight:700;letter-spacing:.20em;margin:7px 14px 13px}.side-tools{margin-top:32px}.sidebar nav{display:grid;gap:5px}.nav-item{appearance:none;text-align:left;border:1px solid transparent;border-radius:10px;background:transparent;color:#aaa7b7;width:100%;padding:11px 12px;font-size:.91rem;display:flex;align-items:center;gap:12px;transition:background .15s,color .15s}.nav-item span{width:25px;text-align:center;font-size:1.30rem;color:#817b97}.nav-item small{margin-left:auto;color:#a9a1cb;font-size:.7rem}.nav-item:hover{background:#1d1e2b;color:#fff}.nav-item.active{background:#2b253b;color:#e1d3ff;border-color:#493c62}.nav-item.active span{color:var(--lav)}.side-bottom{margin-top:auto;padding:32px 12px 3px;font-size:.72rem;color:#747187;line-height:1.6}.side-bottom p{font-size:.74rem;line-height:1.6;margin-top:8px;margin-bottom:14px}.side-bottom a{color:#aba2c9;font-size:.76rem;text-decoration:none}.side-bottom a:hover{text-decoration:underline}.private-indicator{color:#afceb9;font-size:.75rem}.private-dot{display:inline-block;width:7px;height:7px;background:#92c8b1;border-radius:100%;margin-right:5px;box-shadow:0 0 8px #92c8b155}.workspace{margin-left:259px;width:calc(100% - 259px);min-height:100vh;display:flex;flex-direction:column}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 clamp(22px,4.5vw,70px);gap:14px}.breadcrumbs{display:flex;align-items:center;gap:14px;letter-spacing:.15em;font-size:.67rem;color:#898597}.breadcrumbs strong{color:#dcd5e6;font-weight:600}.crumb-divider{color:#555068}.top-actions{display:flex;align-items:center;gap:18px}.saved-marker{font-size:.75rem;color:#aaa5b6}.top-backup,.icon-button{border:1px solid #454050;border-radius:9px;padding:9px 14px;background:#201e2d;color:#d7cce8;font-size:.77rem}.top-backup:hover,.icon-button:hover{border-color:var(--lav)}.mobile-menu{display:none}.main-content{width:min(1340px,100%);margin:0 auto;padding:35px clamp(18px,4vw,68px) 80px;flex:1}.footer{padding:21px clamp(22px,4.5vw,70px);border-top:1px solid var(--line);font-size:.60rem;letter-spacing:.10em;color:#676474;display:flex;justify-content:space-between;gap:20px}.eyebrow{color:var(--lav);font-size:.70rem;font-weight:700;letter-spacing:.23em;text-transform:uppercase;margin-bottom:16px}.hero{background:radial-gradient(circle at 83% 20%,#403050a6,transparent 36%),linear-gradient(117deg,#211d31 5%,#181824 72%);border:1px solid #4a3f59;border-radius:19px;padding:clamp(28px,4.2vw,55px);display:flex;align-items:center;min-height:280px;position:relative;overflow:hidden;isolation:isolate;margin-bottom:27px}.hero:before{content:"";position:absolute;right:-45px;top:-170px;width:500px;height:500px;border:1px solid #bca1e02b;border-radius:50%;box-shadow:0 0 0 48px #bca1e009,0 0 0 94px #bca1e007}.hero-text{max-width:620px;z-index:1}.hero p{font-size:.93rem;color:#a8a2b7;margin-bottom:21px;max-width:530px}.hero-art{font-size:clamp(110px,18vw,210px);position:absolute;right:8%;top:47%;transform:translateY(-50%);line-height:1;opacity:.20;color:var(--gold);font-family:Georgia,serif;pointer-events:none}.btn{border:1px solid transparent;background:var(--lav);color:#1b142b;padding:11px 18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:.84rem;transition:transform .15s,border .15s,background .15s;white-space:nowrap}.btn:hover{transform:translateY(-1px);background:#cbb7fb}.btn.secondary{background:#282638;color:#dfd2f5;border-color:#534866}.btn.secondary:hover{background:#353047}.btn.ghost{background:transparent;color:var(--lav);border-color:#443b5a}.btn.danger{background:#38232a;color:#f1b5bb;border-color:#643843}.btn.small{font-size:.77rem;padding:8px 11px}.btn.icononly{padding:8px 11px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.section-heading h2{margin:0}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:.87rem}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:34px}.metric{border:1px solid var(--line);background:#181923;border-radius:13px;padding:20px;position:relative;overflow:hidden}.metric-label{font-size:.70rem;letter-spacing:.08em;color:#a49db5}.metric-num{font-family:Georgia,serif;color:#e9e0f6;font-size:2.2rem;margin:12px 0 4px}.metric-foot{font-size:.70rem;color:#7d788f}.metric-icon{position:absolute;right:19px;top:18px;font-size:1.5rem;color:#75638e}.dashboard-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.panel{border:1px solid var(--line);background:var(--panel);padding:23px;border-radius:var(--radius);min-width:0}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.panel-top h3{margin:0;font-size:1.14rem}.plainlink{font-size:.79rem;color:var(--lav);border:0;background:none;padding:4px}.plainlink:hover{text-decoration:underline}.minor{color:var(--muted);font-size:.80rem}.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #2c2b38;min-width:0}.list-row:first-child{border-top:0}.list-row .row-main{flex:1;min-width:0}.list-row b{display:block;font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row small{display:block;color:var(--muted);font-size:.74rem;margin-top:4px}.monogram{flex:0 0 auto;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.08rem;font-family:Georgia,serif;color:#ded0fa;background:linear-gradient(145deg,#463b69,#25263e);border:1px solid #6b5683}.monogram.small{width:38px;height:38px;border-radius:10px;font-size:.95rem}.monogram.star{background:linear-gradient(145deg,#6a5147,#343049);color:#f3d7c0}.monogram.beast{background:linear-gradient(145deg,#68404d,#322631)}.monogram.plant{background:linear-gradient(145deg,#3b695f,#1c3434)}.monogram.mineral{background:linear-gradient(145deg,#716149,#39332d)}.monogram.spirit{background:linear-gradient(145deg,#5b4678,#2b273f)}.page-head{margin-bottom:25px}.page-head h1{margin-bottom:10px}.page-head p{color:var(--muted);font-size:.90rem;max-width:780px}.page-tools{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:22px 0}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0}.field,.select,.textarea{width:100%;border:1px solid #423f53;background:#151620;color:#eae7ee;border-radius:9px;padding:11px 13px;min-width:0;outline:none}.field:focus,.select:focus,.textarea:focus{border-color:var(--lav);box-shadow:0 0 0 3px #b8a4e420}.field::placeholder,.textarea::placeholder{color:#777485}.toolbar .field{flex:1;min-width:180px}.toolbar .select{width:auto;max-width:100%;font-size:.8rem}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 24px}.chipbtn{border:1px solid #393649;color:#aaa2b9;background:#1b1c29;border-radius:100px;padding:8px 14px;font-size:.78rem}.chipbtn.active{border-color:#8d73ba;background:#302741;color:#e7d8fc}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:15px}.char-card{border:1px solid #373243;background:linear-gradient(155deg,#222030,#191a26 75%);border-radius:15px;padding:18px;text-align:left;color:inherit;min-width:0;transition:border .15s,transform .15s;display:block;width:100%}.char-card:hover{transform:translateY(-3px);border-color:#8c71b5}.char-top{display:flex;align-items:center;gap:12px;margin-bottom:17px}.char-name{font-family:Georgia,serif;font-size:1.25rem;color:#f0e8f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char-sub{font-size:.70rem;color:#a9a0b9;margin-top:5px}.char-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;font-size:.68rem;line-height:1.1;padding:6px 8px;border:1px solid #454055;background:#2a2738;border-radius:6px;color:#bfb0dc;max-width:100%}.tag.success{color:#acddc4;background:#1e3632;border-color:#305648}.tag.warn{color:#e9cfaa;background:#3a302b;border-color:#55483b}.tag.neutral{color:#bbb5c5;background:#262633}.char-bottom{display:flex;justify-content:space-between;border-top:1px solid #3c3444;padding-top:12px;margin-top:15px;font-size:.73rem;color:#a9a0b9}.char-bottom strong{color:#e4d5ef;font-weight:600}.empty{border:1px dashed #4b425d;background:#1b1c28;border-radius:14px;padding:38px 26px;text-align:center;grid-column:1/-1;color:#aaa4b9}.empty .symbol{font-size:2.25rem;color:var(--lav);margin-bottom:12px}.empty h3{color:#ece2f1;margin-bottom:8px}.empty p{margin:0 auto 18px;max-width:470px;font-size:.87rem}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:15px}.team-card{border:1px solid #403747;border-radius:15px;background:var(--panel);padding:21px;min-width:0}.team-card-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:18px}.team-card-title h3{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-members{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:15px}.team-slot{background:#242231;border:1px dashed #544a66;border-radius:9px;min-height:95px;padding:10px 5px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px}.team-slot .monogram{width:36px;height:36px;border-radius:10px;font-size:.85rem}.team-slot span:last-child{font-size:.65rem;word-break:break-word;line-height:1.3;color:#c3bed1}.team-card p{font-size:.80rem;color:var(--muted);margin:12px 0}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-transform:uppercase;letter-spacing:.09em;color:#908b9d;text-align:left;font-size:.64rem;padding:13px 11px;border-bottom:1px solid #403d4c}.data-table td{padding:14px 11px;border-bottom:1px solid #2f2c3b;vertical-align:middle}.data-table tr:last-child td{border:0}.data-table tbody tr:hover{background:#252330}.data-table .row-action{white-space:nowrap;text-align:right}.table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel);border-radius:14px}.table-wrap .data-table{min-width:640px}.table-item{color:#eadff8;font-weight:650}.task-layout{display:grid;grid-template-columns:1fr 300px;gap:20px}.task-item{display:flex;align-items:flex-start;gap:13px;border-bottom:1px solid #32303d;padding:15px 0}.task-item:last-child{border:0}.task-item input[type=checkbox]{accent-color:#aa93df;width:19px;height:19px;cursor:pointer;margin-top:3px}.task-item b{font-size:.90rem}.task-item .done{text-decoration:line-through;color:#827e8c}.task-item p{color:var(--muted);font-size:.76rem;margin:5px 0}.task-item .task-content{flex:1;min-width:0}.task-item .task-actions{margin-left:auto}.progressbar{height:8px;background:#30303f;border-radius:30px;overflow:hidden;margin:14px 0}.progressbar i{display:block;background:linear-gradient(90deg,#9674ca,#bb9bf1);height:100%;border-radius:30px}.note-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.note-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:22px;display:flex;flex-direction:column;min-height:210px;align-items:stretch}.note-card h3{margin:8px 0 7px}.note-card p{color:#b1aabd;font-size:.85rem;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;flex:1;overflow-wrap:anywhere}.note-card .note-foot{border-top:1px solid #35313e;padding-top:12px;display:flex;justify-content:space-between;align-items:center;margin-top:15px}.note-card .note-foot span{font-size:.72rem;color:var(--muted)}.data-card{padding:25px;border:1px solid var(--line);border-radius:15px;background:var(--panel);margin-bottom:18px}.data-card h3{margin-bottom:9px}.data-card p{color:#aca5b8;font-size:.84rem;max-width:780px}.data-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.data-card .toolbar{margin-bottom:0}.notice{border-left:3px solid var(--lav);background:#211e2d;padding:15px 18px;margin:20px 0;color:#c5b9d7;font-size:.83rem;line-height:1.6}.notice.warn{border-color:#d0a87c;background:#302a28}.codeword{font-family:monospace;font-size:.78rem;border-radius:4px;background:#2e2b3c;padding:2px 5px}.field-label{display:grid;gap:7px;font-size:.79rem;color:#bdb6cf}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .wide{grid-column:1/-1}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:22px}.dialog-head .eyebrow{margin-bottom:6px}.dialog-head h2{margin:0}.dialog-close{background:transparent;color:#e3ddef;border:0;font-size:1.5rem;padding:0 4px}.dialog-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:24px;flex-wrap:wrap}dialog{background:#1c1a27;border:1px solid #5b4d70;color:var(--text);padding:28px;max-width:min(560px,calc(100% - 24px));width:100%;max-height:90vh;overflow:auto;border-radius:17px;box-shadow:0 40px 90px #0009}dialog::backdrop{background:#070711b8;backdrop-filter:blur(4px)}.textarea{resize:vertical;min-height:115px}.muted-foot{font-size:.72rem;color:#9e97aa;line-height:1.5;margin-top:10px}.small-check{display:flex;align-items:center;gap:8px;color:#c5bed0;font-size:.82rem}.small-check input{accent-color:#af95df}#toast{position:fixed;bottom:24px;right:25px;z-index:30;background:#30283d;color:#f5e8fd;border:1px solid #73618b;border-radius:11px;padding:12px 16px;max-width:min(400px,calc(100vw - 32px));box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s,transform .2s;font-size:.83rem}#toast.show{opacity:1;transform:translateY(0)}.quicklinks{display:flex;flex-wrap:wrap;gap:9px}.quicklink{padding:11px 13px;background:#282536;border:1px solid #4a405a;border-radius:8px;color:#ddcfee;text-decoration:none;font-size:.80rem}.quicklink:hover{border-color:var(--lav)}.field-error{font-size:.78rem;color:var(--red)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid #d0b7ff;outline-offset:3px}body.no-scroll{overflow:hidden}
@media(max-width:1120px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-cols{grid-template-columns:1fr}.task-layout{grid-template-columns:1fr}.task-aside{order:-1}}
@media(max-width:860px){.sidebar{transform:translateX(-102%);transition:transform .2s;box-shadow:30px 0 70px #0008}.sidebar.open{transform:translateX(0)}.sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#05040ab9;z-index:9}.workspace{margin-left:0;width:100%}.mobile-menu{display:inline-flex}.topbar{padding:0 18px}.saved-marker{display:none}.main-content{padding:26px 18px 65px}.footer{padding:17px 18px}}
@media(max-width:530px){.hero{min-height:300px;padding:27px}.hero-art{right:-9%;top:76%;font-size:160px;opacity:.1}.metrics{gap:10px}.metric{padding:15px}.metric-num{font-size:1.9rem}.section-heading{align-items:start;flex-direction:column}.toolbar .field,.toolbar .select{width:100%;flex:auto}.character-grid,.team-grid,.note-grid{grid-template-columns:1fr}.data-columns{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:1}.footer{display:block;text-align:center}.footer span{display:block;margin-bottom:6px}.breadcrumbs{gap:8px}.breadcrumbs span:first-child{font-size:.55rem}.top-actions{gap:6px}.top-backup{font-size:.70rem;padding:8px 10px}.team-members{gap:3px}.team-slot{padding:9px 2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Teamplanner v2 */
.planner-panel{background:linear-gradient(145deg,#242037,#181c2a);border:1px solid #66547e;border-radius:19px;padding:27px;margin:17px 0 25px;box-shadow:0 16px 45px #0002}.planner-panel h2{margin:0 0 7px}.planner-controls{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:12px;margin:18px 0}.planner-controls .small-check{grid-column:1/-1}.planner-formation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:22px 0}.planner-unit{border:1px solid #524662;background:#201e30;border-radius:12px;padding:15px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px}.planner-unit b{font-size:.85rem;overflow-wrap:anywhere}.planner-unit small{font-size:.68rem;color:#a9a1bb}.planner-reasons{border-top:1px solid #50445d;padding-top:15px;margin-bottom:13px;font-size:.84rem;color:#d1c9d8}.planner-reasons p{font-size:.82rem;color:#bdb4c9;margin:9px 0}.planner-reasons ul{padding-left:20px}.planner-reasons li{margin:5px 0}.planner-result{margin-top:25px;border-top:1px solid #544765;padding-top:14px}.planner-result h3{margin:0}.planner-panel button:disabled{opacity:.46}@media(max-width:680px){.planner-controls{grid-template-columns:1fr}.planner-formation{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-panel{padding:19px}}

/* Personal team templates. Keeps original alternative slots discoverable on mobile. */
.template-match{padding:16px 0;border-bottom:1px solid var(--line,rgba(255,255,255,.08))}
.template-match:last-child{border-bottom:none;padding-bottom:0}
.template-match h4{font-size:1rem;margin:0 0 5px}
.template-match .team-card-title{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.template-slots{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0}
.template-match .minor{overflow-wrap:anywhere}

/* Reverie 2.5 · cinematic collectible cards and consistent portrait components */
:root{--lav:#bea8f3;--panel:#22222f;--line:#393747;--muted:#aaa4b7}
body{background:radial-gradient(ellipse at 73% -10%,#342340 0%,transparent 48%),radial-gradient(ellipse at 0 65%,#1b3035 0%,transparent 50%),#10121a}
.main-content{max-width:1640px;margin:0 auto}
.hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #5f5570;background:radial-gradient(ellipse at 89% 5%,#725b925c,transparent 48%),radial-gradient(circle at 67% 111%,#35635c55,transparent 40%),linear-gradient(112deg,#2a253b,#1a1e2d 75%);box-shadow:0 20px 90px #08090d5c}
.hero:before{content:"";position:absolute;right:6%;top:4%;width:240px;height:240px;border:1px solid #b5a8cd30;border-radius:50%;box-shadow:0 0 0 44px #a08ac30a,0 0 0 90px #a08ac308;pointer-events:none;z-index:-1}
.hero h1{letter-spacing:-.04em;line-height:1.08}
.metric,.panel,.data-card,.team-card{backdrop-filter:blur(12px);border-color:#514a5e75}
.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(222px,1fr));gap:17px}
.char-card{--card-accent:#8d73ba;overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:340px;padding:0;border-radius:17px;border:1px solid color-mix(in srgb,var(--card-accent) 44%, #493f57);background:radial-gradient(circle at top right,color-mix(in srgb,var(--card-accent) 18%, transparent),transparent 34%),linear-gradient(168deg,color-mix(in srgb,var(--card-accent) 12%, #302d3c),#1e212c 72%);text-align:left;box-shadow:0 9px 30px #08091130;transition:transform .18s,border-color .18s,box-shadow .18s;cursor:pointer;position:relative}
.char-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--card-accent) 72%, #fff);box-shadow:0 16px 44px #0005}
.char-card:focus-visible{outline:2px solid #d6c2ff;outline-offset:3px}
.char-card-portrait{position:relative;display:block;width:100%;height:196px;overflow:hidden;background:#262535}
.char-card-portrait:after{content:"";position:absolute;inset:auto 0 0;height:70px;background:linear-gradient(transparent,#20212cf5);pointer-events:none}
.char-card-portrait>.portrait{display:flex;width:100%;height:100%;border:0;border-radius:0}
.portrait{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 45% 30%,#72619482 1%,transparent 50%),linear-gradient(145deg,#393348,#1d2730);border:1px solid #665971;border-radius:13px}
.portrait:before{content:"✦";position:absolute;font-family:Georgia,serif;font-size:7.8rem;opacity:.08;transform:translate(-18%,-10%) rotate(-9deg);color:#e0cdfd}
.portrait .monogram{background:transparent!important;border:none!important;color:#ddd0f6;font-family:Georgia,serif;font-size:3rem;font-weight:500;width:auto;height:auto;box-shadow:none}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 27%;z-index:1;display:block}
.portrait--fallback{background:radial-gradient(circle at 45% 28%,#5f537985 0,transparent 48%),linear-gradient(145deg,#342f44,#1c2430)}
.portrait--fallback .monogram{opacity:.96}
.portrait--with-image .monogram{opacity:1}
.afflatus-plant{background:radial-gradient(circle at 35% 25%,#59927688,transparent 63%),linear-gradient(145deg,#263d39,#1b242f)}
.afflatus-star{background:radial-gradient(circle at 35% 25%,#6a85b899,transparent 63%),linear-gradient(145deg,#2f3e5d,#222139)}
.afflatus-mineral{background:radial-gradient(circle at 35% 25%,#ac997a72,transparent 63%),linear-gradient(145deg,#44413b,#222531)}
.afflatus-beast{background:radial-gradient(circle at 35% 25%,#bc7d8a77,transparent 63%),linear-gradient(145deg,#593343,#222331)}
.afflatus-spirit,.afflatus-intelligence{background:radial-gradient(circle at 35% 25%,#ba8dc680,transparent 63%),linear-gradient(145deg,#4c335c,#25243c)}
.char-element{position:absolute;z-index:2;left:12px;top:13px;font-size:.61rem;letter-spacing:.1em;text-transform:uppercase;padding:7px 9px;border-radius:30px;background:#13131fcf;border:1px solid #e7d8ff34;color:#f8f2ff}
.char-favorite{position:absolute;z-index:2;right:11px;top:10px;display:grid;place-items:center;border-radius:50%;width:32px;height:32px;background:#17151dba;color:#f1d397;font-size:1.03rem}
.char-card-info{display:flex;flex:1;flex-direction:column;padding:16px 16px 15px;min-width:0}
.char-card-heading{display:flex;gap:5px;align-items:start;justify-content:space-between}.char-card-heading .char-name{font-size:1.3rem;line-height:1.25;white-space:normal}.char-score{flex:none;border:1px solid #6e5d78;background:#4c3d59;color:#e8d7f7;font-size:.83rem;padding:3px 7px;border-radius:7px}.char-score small{font-size:.60rem;color:#bfb1cf}
.char-card .char-sub{margin-top:7px;font-size:.74rem;color:#aeb0c1}
.char-card .char-stats{margin-top:14px;gap:5px}
.char-card .tag{font-size:.62rem;padding:5px 7px}
.char-card .char-bottom{margin-top:auto;padding-top:14px;display:flex;align-items:end;justify-content:space-between;gap:6px}
.char-card .char-bottom>span{font-size:.60rem;display:flex;flex-direction:column;gap:3px}.char-card .char-bottom strong{font-size:.89rem}
.char-card .char-bottom .char-view{display:block;color:#cdb7f5;font-size:.75rem;font-weight:650}
.portrait--avatar{width:47px;height:47px;border-radius:14px}.portrait--avatar .monogram{font-size:1.25rem}
.portrait--team{width:100%;height:106px;border-radius:11px}.portrait--team .monogram{font-size:2rem}
.planner-unit{overflow:hidden;padding:9px}.planner-unit .portrait--team{max-width:100%;height:125px}.planner-unit b{min-height:2em}
.portrait--slot{width:100%;height:79px;border-radius:9px}.portrait--slot .monogram{font-size:1.7rem}
.team-card{background:linear-gradient(145deg,#292532,#1e212c);padding:18px}
.team-slot{overflow:hidden;padding:4px 4px 7px;background:#232431;border:1px solid #474153;justify-content:start;gap:8px;min-width:0;min-height:133px}
.team-slot span:last-child{color:#e7e0f0;font-size:.7rem;overflow-wrap:anywhere}
.template-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.template-portrait-slot{min-width:0;border:1px solid #51495c;padding:5px;border-radius:11px;display:flex;flex-direction:column;gap:7px;background:#242431}
.template-portrait-slot.highlight{border-color:#b59ee6;background:#312941}.template-portrait-slot span:last-child{display:flex;flex-direction:column;gap:3px;padding:0 3px 5px;min-width:0}.template-portrait-slot b{font-size:.72rem;overflow-wrap:anywhere}.template-portrait-slot small{font-size:.61rem;color:#aaa4b7}
.portrait--detail{width:165px;height:178px;border-radius:15px;box-shadow:0 18px 30px #0004}.portrait--detail .monogram{font-size:3.9rem}
dialog.character-dialog{width:min(750px,calc(100% - 24px));max-width:min(750px,calc(100% - 24px));padding:0;overflow:auto}
.character-dialog-art{position:relative;display:flex;align-items:end;gap:19px;padding:23px;min-height:218px;border-bottom:1px solid #6c5a78}
.character-dialog-art .portrait--detail{z-index:1}
.character-dialog-art>div{flex:1;padding-bottom:10px;min-width:0;z-index:1}.character-dialog-art h2{margin:5px 0 8px;font-size:2rem}.character-dialog-art p{color:#e3d9ed;margin:0}
.character-dialog .dialog-head,.character-dialog #editor-form{margin:20px 24px}
.character-dialog .dialog-head h2{font-size:1.03rem}
.first-run{padding:32px;background:radial-gradient(circle at 90% 15%,#654f8650,transparent 48%),linear-gradient(140deg,#242238,#1c202b);border:1px solid #63557c;border-radius:20px;margin-bottom:25px}
.first-run h2{font-size:clamp(1.65rem,4vw,2.45rem);margin:10px 0 12px}.first-run p{max-width:680px;color:#bbb7ce}
@media(max-width:1100px){.character-grid{grid-template-columns:repeat(auto-fill,minmax(194px,1fr))}}
@media(max-width:700px){.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.char-card-portrait{height:160px}.char-card-info{padding:12px}.char-card-heading .char-name{font-size:1.05rem}.char-card .char-stats .tag:nth-child(n+3){display:none}.char-card .char-bottom{gap:6px}.template-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-unit .portrait--team{height:125px}.character-dialog-art{align-items:center}.portrait--detail{width:108px;height:145px}.character-dialog-art h2{font-size:1.55rem}}
@media(max-width:370px){.character-grid{grid-template-columns:1fr}.char-card-portrait{height:205px}}

/* 2.6 · quiet-first favorites, recognizable afflatus, media catalog */
.roster-segment{display:flex;align-items:stretch;gap:5px;background:#181822;border:1px solid #393448;border-radius:15px;padding:5px;margin:0 0 20px;max-width:740px;flex-wrap:wrap}
.roster-view{background:transparent;color:#c1b8ca;border:1px solid transparent;border-radius:11px;padding:13px 17px;min-height:44px;font-size:.83rem;font-weight:650;flex:1;white-space:nowrap}
.roster-view:hover{background:#342d45;color:#f2eaff}.roster-view.active{background:linear-gradient(120deg,#4d3e67,#38314c);border-color:#8773a2;color:#fff;box-shadow:0 4px 15px #0003}
.element-pill{--element-accent:#c4bbdd;display:inline-flex;align-items:center;gap:6px;line-height:1;vertical-align:middle;white-space:nowrap;padding:6px 9px;border-radius:999px;border:1px solid #443f52;background:linear-gradient(180deg,#212230,#181923)}
.afflatus-icon{width:19px;height:19px;flex:none;color:#c4bbdd;filter:drop-shadow(0 1px 2px #0004)}
.afflatus-icon--img{object-fit:contain;background:none;filter:drop-shadow(0 1px 2px #0004)}
.afflatus-icon--star{color:#f2d597}.afflatus-icon--plant{color:#9ad5ad}.afflatus-icon--beast{color:#edaca2}.afflatus-icon--mineral{color:#d4bd91}.afflatus-icon--spirit{color:#c9aff8}.afflatus-icon--intelligence{color:#a7c9fb}
.element-pill .afflatus-icon+span{color:#ece4fa}
.char-element{padding:7px 10px;box-shadow:0 4px 12px #0004}.char-element .afflatus-icon{width:20px;height:20px}
.filter-row .chipbtn .element-pill{gap:5px;padding:0;border:0;background:transparent}.filter-row .chipbtn{min-height:38px}
.slot-element-icon{display:grid;place-items:center;color:#e8dff1;margin:-2px auto 0}.slot-element-icon .afflatus-icon{width:19px;height:19px}
.team-slot{position:relative}.team-slot>.slot-element-icon{position:absolute;top:12px;right:7px;margin:0;background:#12131ccc;border:1px solid #6c6179;border-radius:50%;padding:3px}
.template-portrait-slot{position:relative}.template-portrait-slot>.slot-element-icon{position:absolute;right:10px;top:10px;border-radius:50%;padding:4px;background:#14141cdd;border:1px solid #514960}
.char-card-portrait{height:194px}.char-card .portrait--card{height:100%;}
.char-card-portrait .portrait img{object-fit:contain;object-position:center center;padding:4px;filter:drop-shadow(0 8px 19px #04040ba0)}
.portrait--team img,.portrait--slot img{object-fit:contain!important;object-position:center center!important}
.portrait--detail img{object-fit:contain!important;object-position:center center!important}
.character-grid{gap:16px}.char-card{border-radius:17px}.char-card-info{padding-top:13px}.char-card .char-bottom{border-color:#55435d75}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.catalog-card{background:linear-gradient(150deg,#252132,#1a1b25);border:1px solid #51445b;border-radius:17px;overflow:hidden;min-width:0;display:flex;flex-direction:column;transition:transform .15s,border-color .15s}
.catalog-card:hover{border-color:#ae95db;transform:translateY(-2px)}
.catalog-art{height:178px;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 45% 35%,#58527455,transparent 65%),linear-gradient(155deg,#30283e,#1c2230);overflow:hidden}
.catalog-art:after{content:'';position:absolute;inset:auto 0 0;height:45px;background:linear-gradient(0deg,#1b1b29,transparent);pointer-events:none}
.catalog-art--garments{background:radial-gradient(circle at 60% 18%,#71566f66,transparent 58%),linear-gradient(135deg,#342739,#1e2630)}
.catalog-art img{width:100%;height:100%;object-fit:contain;display:block;z-index:1}
.catalog-placeholder{font-family:Georgia,serif;font-size:5rem;color:#8374963b;text-shadow:0 0 30px #d7c9ff29}
.catalog-copy{padding:17px;display:flex;flex-direction:column;gap:7px;flex:1}
.catalog-eyebrow{font-size:.64rem;letter-spacing:.18em;color:#ad96d1;font-weight:700}
.catalog-copy h3{font-size:1.19rem;line-height:1.2;margin:0;overflow-wrap:anywhere}
.catalog-copy p{font-size:.79rem;color:#b5abbf;margin:1px 0 6px;line-height:1.4;min-height:1.4em}
.catalog-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}
.catalog-copy .btn{margin-top:auto;align-self:flex-start}
@media(max-width:760px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.catalog-art{height:156px}.catalog-copy{padding:12px}.catalog-copy h3{font-size:1rem}.roster-view{white-space:normal;padding:11px 9px;font-size:.75rem}.char-card-portrait{height:164px}}
@media(max-width:450px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-art{height:126px}.catalog-copy h3{font-size:.92rem}.catalog-copy .btn{font-size:.70rem;padding:8px}}

.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:156px;border:1.5px dashed #655a76;border-radius:16px;background:linear-gradient(180deg,#201f2b,#181922);color:#d8d2e6;padding:20px;text-align:center;transition:border-color .15s,background .15s,transform .15s}
.dropzone strong{font-size:1rem}.dropzone span{color:#b4adbf;font-size:.85rem;max-width:700px}.dropzone-symbol{font-size:2rem;line-height:1}.dropzone.is-dragover,.dropzone:focus-visible{border-color:#c3a5ff;background:linear-gradient(180deg,#2a2636,#1b1d28);transform:translateY(-1px)}

/* Lucide Icons · ISC licensed source files shipped locally for offline use. */
.nav-item>.nav-icon{width:25px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ui-icon,.nav-icon img{width:21px;height:21px;display:inline-block;vertical-align:middle;object-fit:contain}
.metric-icon .ui-icon{width:26px;height:26px}
.mobile-menu .ui-icon{height:21px;width:21px}
/* Reverie 3.1 — top navigation, optimized for split-screen desktop windows. */
.app-shell{display:block;min-height:100vh}
.sidebar{position:sticky;top:0;left:auto;bottom:auto;z-index:40;width:100%;height:auto;max-height:none;transform:none;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:0;padding:8px clamp(12px,2.2vw,35px) 0;overflow:visible;background:#15141fec;border-right:0;border-bottom:1px solid #40384e;backdrop-filter:blur(16px);box-shadow:0 5px 28px #0a0a1645}
.sidebar .brand{grid-column:1;grid-row:1;display:inline-flex;align-items:center;justify-self:start;gap:10px;padding:3px 0 8px;color:#f0e2ff;min-width:0}
.sidebar .brand-sigil{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#342c44;border-color:#695684}
.sidebar .brand-sigil img{width:22px;height:22px;filter:invert(85%) sepia(18%) saturate(701%) hue-rotate(209deg);display:block}
.sidebar .brand-copy b{font-size:.92rem;letter-spacing:.19em}
.sidebar .brand-copy small{font-size:.54rem;letter-spacing:.08em}
.sidebar .side-label{grid-column:2;grid-row:1;margin:0 0 8px;color:#a99ec2;white-space:nowrap;letter-spacing:.08em;font-size:.63rem}
.sidebar .side-tools,.sidebar .side-bottom{display:none}
.sidebar #nav{grid-column:1 / -1;grid-row:2;display:flex;align-items:stretch;gap:3px;overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:thin;scrollbar-color:#554c66 transparent;scroll-padding-inline:8px;overscroll-behavior-x:contain;padding:2px 1px 6px}
.sidebar #nav .nav-item{width:auto;min-width:max-content;flex:0 0 auto;display:inline-flex;gap:6px;align-items:center;justify-content:center;font-size:.76rem;padding:8px 10px;line-height:1.15;border-radius:9px;white-space:nowrap}
.sidebar #nav .nav-item .nav-icon{width:18px}
.sidebar #nav .nav-item .nav-icon img{width:17px;height:17px}
.sidebar #nav .nav-item small{margin-left:2px;font-size:.63rem}
.sidebar #nav .nav-item.active{background:#352942;box-shadow:inset 0 -2px 0 #c4a9e4;border-color:#63537b}
.workspace{margin-left:0;width:100%;min-width:0;min-height:calc(100vh - 103px)}
.topbar{min-height:42px;height:auto;padding:7px clamp(14px,2.7vw,50px);gap:8px}
.topbar .breadcrumbs{font-size:.68rem;letter-spacing:.09em;gap:7px}
.topbar .mobile-menu{display:none!important}
.main-content{width:min(1300px,100%);padding:25px clamp(12px,2.5vw,56px) 70px}
.sidebar-backdrop{display:none!important}
.catalog-grid--garments{grid-template-columns:repeat(auto-fill,minmax(min(100%,275px),1fr));gap:18px}
.catalog-grid--garments .catalog-card{min-height:490px}
.catalog-art--garments{height:clamp(360px,42vw,530px);min-height:360px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 24%,#72557655,transparent 66%),linear-gradient(140deg,#302637,#1d2630)}
.catalog-art--garments img{width:100%;height:100%;max-height:none;max-width:100%;object-fit:contain;object-position:center center;padding:9px 8px 4px;image-rendering:auto}
.catalog-art--garments:after{height:20px;opacity:.25}
.catalog-grid--psychubes .catalog-art{aspect-ratio:1 / 1;height:auto;min-height:170px}
@media(max-width:860px){.sidebar{transform:none!important;position:sticky;overflow:visible;box-shadow:0 5px 28px #0a0a1645}.sidebar.open{transform:none!important}.workspace{margin-left:0;width:100%}.topbar .mobile-menu{display:none!important}}
@media(max-width:640px){.sidebar{padding:7px 11px 0}.sidebar .brand-sigil{width:31px;height:31px}.sidebar .side-label{display:none}.sidebar #nav .nav-item{padding:9px 10px;font-size:.75rem}.topbar .saved-marker{font-size:.68rem}.main-content{padding:19px 12px 55px}.catalog-grid--garments{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}.catalog-art--garments{height:440px;min-height:400px}}
@media(max-width:400px){.sidebar .brand-copy small{display:none}.topbar .breadcrumbs>span:not(.crumb-divider){display:none}.topbar .crumb-divider{display:none}.catalog-grid--garments{grid-template-columns:1fr}.catalog-art--garments{height:460px}}

/* Lucide SVGs are external files; neutralize their default black currentColor in img elements. */
.sidebar #nav .nav-icon img{filter:invert(76%) sepia(10%) saturate(489%) hue-rotate(218deg) brightness(94%)}
.sidebar #nav .nav-item.active .nav-icon img{filter:invert(91%) sepia(14%) saturate(591%) hue-rotate(212deg) brightness(108%)}

/* 3.2: Display the complete Reverie gamepad mark in the dashboard hero, not a text glyph. */
.hero-art img{display:block;width:clamp(110px,18vw,210px);height:auto;max-width:none;filter:invert(87%) sepia(12%) saturate(650%) hue-rotate(211deg);object-fit:contain}
@media(max-width:640px){.hero-art img{width:155px}}

/* A visible fallback symbol must share the artwork cell, never create a second grid row. */
.catalog-art>.catalog-placeholder,.catalog-art>img{grid-area:1 / 1;align-self:center;justify-self:center}
.catalog-art>img{min-width:0;min-height:0}


/* Garment catalogue: compact controls with consistent artwork across half-width windows. */
.garment-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:11px;align-items:end;margin:13px 0 9px}
.garment-filter-label{display:flex;flex-direction:column;gap:5px;color:#c7bad5;font-size:.74rem;min-width:0}
.garment-filter-label .select,.garment-filter-label .field{width:100%;min-width:0}
.garment-filter-search{grid-column:span 2}
.garment-reset{align-self:end;min-height:41px}
.garment-badge{display:inline-flex;align-items:center;max-width:100%;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:.7rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.garment-badge--violet{color:#e3d0ff;background:#74519840;border-color:#a47ccc6b}
.garment-badge--pink{color:#f5cbeb;background:#963f7445;border-color:#ce7da66b}
.garment-badge--green{color:#b5efd0;background:#386a5448;border-color:#69a98a75}
.garment-badge--blue{color:#badcf9;background:#365c874a;border-color:#739cc175}
.garment-badge--yellow{color:#f4dcac;background:#8b71384c;border-color:#c9a76070}
.garment-badge--neutral{color:#d5ccdb;background:#6764773d;border-color:#85809669}
.garment-details{display:grid;gap:5px;padding:10px 0 12px;border-top:1px solid #66557263;font-size:.78rem}
.garment-details>div{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr);column-gap:10px;align-items:baseline}
.garment-details>div>span{color:#a99ab8}
.garment-details strong,.garment-details a{font-size:.8rem;line-height:1.4;overflow-wrap:anywhere;font-weight:600}
.garment-details a{color:#d7b8ff;text-decoration:underline;text-underline-offset:3px}
.garment-details a:hover{color:#f0deff}
.garment-empty{padding:25px;text-align:center;color:#d0bedb}
.catalog-grid--garments .catalog-copy{min-width:0}
.catalog-art--garments>.catalog-placeholder,.catalog-art--garments>img{grid-area:1 / 1;align-self:center;justify-self:center}
.catalog-art--garments img{box-sizing:border-box}
@media(max-width:760px){.garment-filter-search{grid-column:1 / -1}.garment-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.garment-controls{grid-template-columns:1fr}.garment-filter-search{grid-column:auto}}


/* Catalog square thumbnails are previews, never misrepresented as full-length skin art. */
.catalog-art--garments.catalog-art--icon{background:radial-gradient(circle at 50% 45%,#6a577b88,transparent 62%),linear-gradient(145deg,#312c43,#202532)}
.catalog-art--garments.catalog-art--icon img{padding:26px 18px 30px}
.catalog-icon-label{position:absolute;z-index:3;left:12px;bottom:10px;border:1px solid #c3a7d877;border-radius:999px;background:#191b27dd;color:#e8d5f4;padding:5px 9px;font-size:.71rem;font-weight:600}
.catalog-icon-label[hidden]{display:none!important}

/* Icons use original game assets when installed; text abbreviation is a deliberate fallback. */
.afflatus-icon--fallback{display:inline-flex;justify-content:center;align-items:center;flex:none;border-radius:50%;background:#201e2d;border:1px solid currentColor;font-family:Inter,"Segoe UI",sans-serif;font-size:10px;font-weight:800;line-height:1;letter-spacing:-.03em;filter:none}
.afflatus-icon--fallback.afflatus-icon--spirit{font-size:8px}
.afflatus-icon--img{object-fit:contain;image-rendering:auto}

/* On-device original artwork audit: selectable names and paths, never transmitted. */
.media-audit-results{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;background:#191821;border:1px solid #5c506f;border-radius:10px;color:#ded9e9;padding:14px;font-family:Consolas,"Liberation Mono",monospace;font-size:.75rem;line-height:1.6}
.media-audit-results[hidden]{display:none!important}

/* The 264×452 portraits are narrower than 452×660 originals. Matching the
   visible HEIGHT to middle-format art avoids a misleading zoomed-in appearance
   without upscaling, cropping, or substituting unrelated artwork. */
.catalog-art--garments{container-type:inline-size}
.catalog-art--garments.catalog-art--limited img{
 height:100%;
 max-height:min(452px,calc(146cqw - 10px));
 object-fit:contain
}
.catalog-quality-label{position:absolute;z-index:3;left:12px;bottom:10px;border:1px solid #bda8cf66;border-radius:999px;background:#191b27e8;color:#d5c8e5;padding:5px 9px;font-size:.68rem;font-weight:600}
.catalog-quality-label[hidden]{display:none!important}

/* Full Garment URLs stay readable rather than hiding behind a generic action label. */
.garment-url{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word;vertical-align:bottom}
.garment-relation{color:#dec5ff;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.garment-relation:hover{color:#f0e1ff}


/* 3.4.11: icon-only Afflatus marker on a character card. */
.char-card .char-element{display:inline-flex;align-items:center;justify-content:center;padding:7px;border-radius:999px}
.char-card .char-element .afflatus-icon{width:22px;height:22px}

/* Manually approved original splash art: display its complete background without a crop. */
.char-card-portrait .portrait--splash img,.portrait--splash img,.catalog-art--garments.catalog-art--splash img{object-fit:contain;object-position:center center;padding:0;filter:none}
.catalog-art--garments.catalog-art--splash{background:#171923}

/* Garment splash-art review: understated, no claim that an unreviewed thumbnail has a real background. */
.garment-art-review{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;margin:0 0 12px;font-size:.72rem;line-height:1.4}
.garment-art-state{color:#b9afc6}
.garment-art-gallery{color:#cbb4f7;text-underline-offset:3px;overflow-wrap:anywhere}
.garment-art-gallery:hover{color:#edddff}


/* Reverse: 1999 public event feed, separate from personal task records. */
.event-panel{margin-bottom:22px}
.event-panel .panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.event-panel .panel-top h3{margin:0}
.event-panel .event-filters{margin:10px 0 12px;flex-wrap:wrap}
.event-panel .event-list{max-height:660px;overflow:auto;overscroll-behavior:contain}
.event-panel .event-item{padding:13px 3px}
.event-panel .event-item p{line-height:1.55;overflow-wrap:anywhere}
.event-panel .event-warning{color:#dfbd9b}
.event-panel a{color:#cebaf6;text-decoration:underline;text-underline-offset:3px}
.task-section-title{font-size:1.1rem;margin:0 0 16px}


/* Reverie 3.4.20 — Timekeeper planner. Scoped to the new event/task layout. */
.rev-events,.rev-personal-section{margin:0 0 27px;min-width:0}
.rev-events-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1px solid #6c567c99;border-radius:18px 18px 0 0;padding:27px 29px;background:radial-gradient(ellipse at 91% 9%,#60538b5b,transparent 56%),linear-gradient(127deg,#292638,#211e30 69%,#25273d)}
.rev-events-hero:before{content:"";position:absolute;z-index:-1;right:-45px;top:-90px;width:270px;height:270px;border:1px solid #c3a9f520;border-radius:50%;box-shadow:0 0 0 48px #c3a9f509,0 0 0 96px #c3a9f506;pointer-events:none}
.rev-eyebrow{display:block;margin:0 0 9px;color:#c7a5f4;font-weight:750;font-size:.69rem;letter-spacing:.15em}
.rev-events-hero h2,.rev-personal-head h2{font-size:clamp(1.45rem,2.8vw,2.15rem);letter-spacing:-.04em;line-height:1.15;margin:0 0 8px;color:#f2eaf9}
.rev-events-hero p,.rev-personal-head p{color:#b8aec8;font-size:.88rem;margin:0}
.rev-event-hero-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.rev-source-button,.rev-refresh,.rev-add-task{border:1px solid #796590;border-radius:10px;min-height:39px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:650;line-height:1.2;text-decoration:none;color:#efddff;background:#302a45;cursor:pointer;transition:background .16s ease,border-color .16s ease}
.rev-source-button:hover,.rev-refresh:hover,.rev-add-task:hover{background:#4a395f;border-color:#b094ce;color:#fff}
.rev-refresh:disabled{opacity:.45;cursor:wait}
.rev-event-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid #50485d;border-top:0;border-radius:0 0 16px 16px;overflow:hidden;background:#22212e}
.rev-event-stats>div{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;padding:20px 23px;border-right:1px solid #454054}
.rev-event-stats>div:last-child{border-right:0}
.rev-event-stats strong{font-size:clamp(1.15rem,2.2vw,1.65rem);font-weight:800;letter-spacing:-.04em;color:#f7f0fb;font-variant-numeric:tabular-nums}
.rev-event-stats small{font-size:.72rem;color:#aea6bb;letter-spacing:.01em}
.rev-stat-mark{font-size:.93rem;color:#c8b0e5}
.rev-stat-donut{align-items:center!important;text-align:center}
.rev-donut{--value:0;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#ad92e5 calc(var(--value)*1%),#413b51 0);position:relative}
.rev-donut:before{content:"";position:absolute;inset:5px;background:#22212e;border-radius:50%}
.rev-donut b{position:relative;font-size:.79rem;font-weight:800;color:#f0eafa;font-variant-numeric:tabular-nums}
.rev-events-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:22px 0 14px}
.rev-tabstrip{display:flex;flex-wrap:wrap;gap:5px;padding:4px;border-radius:11px;background:#1e1d2a;border:1px solid #42394e}
.rev-tab{border:0;border-radius:8px;padding:9px 16px;min-height:35px;background:transparent;color:#bdb1cb;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}
.rev-tab:hover{background:#373044;color:#eee1ff}
.rev-tab.active{background:#54416b;color:#f8edff;box-shadow:inset 0 0 0 1px #9576bb60}
.rev-tab:focus-visible,.rev-refresh:focus-visible,.rev-add-task:focus-visible,.rev-source-button:focus-visible,.rev-event-footer a:focus-visible{outline:2px solid #cbaaff;outline-offset:3px}
.rev-tabstrip--small .rev-tab{padding:8px 13px}
.rev-event-feed-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;color:#a79bb9;font-size:.72rem;margin:0 0 17px;line-height:1.5}
.rev-event-feed-meta>span:last-child{margin-left:auto}
.rev-online-dot{height:7px;width:7px;border-radius:50%;background:#9f8bc3;box-shadow:0 0 0 3px #9f8bc31b}
.rev-event-note{font-size:.76rem;color:#d3b8aa;margin:0 0 12px}
.rev-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rev-event-card{--accent:#a692d1;background:linear-gradient(145deg,#282635,#222330);border:1px solid #4b455a;border-radius:14px;overflow:hidden;position:relative;padding:18px 20px;min-width:0;display:flex;flex-direction:column;gap:17px;box-shadow:0 4px 20px #08070d17;transition:border-color .16s,transform .16s,box-shadow .16s}
.rev-event-card:hover{border-color:#88709e;box-shadow:0 6px 24px #08070d35;transform:translateY(-1px)}
.rev-event-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.rev-event-card--version{--accent:#83c4a4}
.rev-event-card--character{--accent:#dab1d5}
.rev-event-card--web{--accent:#84b9d9}
.rev-event-card.is-archived{opacity:.73}
.rev-event-card.is-done{border-color:#4b6a5a}
.rev-event-top{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap}
.rev-event-type,.rev-event-state{display:inline-flex;align-items:center;gap:5px;font-size:.69rem;font-weight:700;border-radius:99px;padding:5px 9px}
.rev-event-type{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.rev-event-state{color:#e1d2ef;background:#4b405a7a}
.rev-event-state--done{color:#b5dfc8;background:#32514478}
.rev-event-main{display:flex;gap:13px;align-items:flex-start;min-width:0}
.rev-event-main input,.rev-personal-card>input{width:21px;height:21px;min-width:21px;margin:3px 0 0;accent-color:#a991df;cursor:pointer}
.rev-event-main>div{min-width:0}
.rev-event-main h3{margin:0 0 7px;line-height:1.35;font-size:1.03rem;font-weight:720;color:#f1e7f6;overflow-wrap:anywhere}
.rev-event-main p{font-size:.72rem;line-height:1.4;color:#aa9fb7;margin:0}
.rev-event-card.is-done h3{text-decoration:line-through;color:#a6afac}
.rev-event-dates{display:flex;align-items:center;gap:13px;padding:12px;background:#1b1d297a;border-radius:9px}
.rev-event-dates>span:not(.rev-event-date-line){display:flex;flex-direction:column;gap:5px;min-width:0}
.rev-event-dates small{color:#978fa6;font-size:.61rem;letter-spacing:.11em;font-weight:730}
.rev-event-dates time{color:#e2dbe8;font-size:.78rem;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}
.rev-event-date-line{height:1px;background:#655870;flex:1;min-width:8px}
.rev-event-progress{height:5px;border-radius:8px;overflow:hidden;background:#3a3649}
.rev-event-progress>span{display:block;height:100%;border-radius:inherit;background:var(--accent);min-width:0}
.rev-event-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.74rem;color:#bcb2c7}
.rev-event-footer>a{color:#d6b5fa;text-decoration:none;font-weight:670;white-space:nowrap}
.rev-event-footer>a:hover{text-decoration:underline;color:#f2ddff}
.rev-events-disclaimer{margin:13px 2px 0;font-size:.72rem;color:#9c93ad;line-height:1.6}
.rev-empty-events{grid-column:1 / -1;background:#22202c;border:1px dashed #645773;border-radius:14px;padding:27px;text-align:center}
.rev-empty-events strong{color:#e7dcef}
.rev-empty-events p{font-size:.81rem;color:#aa9db9;margin:7px auto 0;max-width:470px;line-height:1.5}
.rev-personal-section{margin-top:34px}
.rev-personal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-bottom:15px;border-bottom:1px solid #53495d}
.rev-personal-fraction{display:flex;align-items:flex-end;flex-direction:column;gap:2px}
.rev-personal-fraction strong{font-variant-numeric:tabular-nums;font-size:1.4rem;color:#e7d6f6}
.rev-personal-fraction span{font-size:.72rem;color:#aa9db9}
.rev-personal-controls{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:17px 0}
.rev-add-task{background:#423354;border-color:#8870a5}
.rev-personal-list{display:grid;gap:9px}
.rev-personal-card{display:flex;align-items:flex-start;gap:14px;background:#24232f;border:1px solid #494351;border-radius:12px;padding:17px;min-width:0}
.rev-personal-card:hover{border-color:#79668c}
.rev-personal-card.is-done{opacity:.75}
.rev-personal-content{flex:1;min-width:0}
.rev-personal-content h3{font-size:.94rem;font-weight:690;margin:0 0 9px;color:#eee3f6;overflow-wrap:anywhere}
.rev-personal-tags{display:flex;gap:8px;flex-wrap:wrap;font-size:.72rem;color:#a99db8}
.rev-personal-tags>span{background:#363141;padding:4px 8px;border-radius:6px}
.rev-personal-tags .rev-task-overdue{color:#f1c3b8}
.rev-personal-tags .rev-personal-priority{color:#dec6f6}
.rev-personal-content>p{font-size:.78rem;color:#aaa0b9;margin:10px 0 0;line-height:1.5;overflow-wrap:anywhere}
.rev-edit-task{border:0;background:none;color:#cdb3ed;padding:4px 0;font-size:.75rem;cursor:pointer;white-space:nowrap}
.rev-edit-task:hover{text-decoration:underline;color:#f1d9ff}
@media(max-width:920px){.rev-events-hero{padding:22px}.rev-event-stats>div{padding:17px 14px}.rev-event-grid{grid-template-columns:1fr 1fr}.rev-event-card{padding:15px}}
@media(max-width:680px){.rev-events-hero{border-radius:14px 14px 0 0}.rev-event-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rev-event-stats>div:nth-child(2){border-right:0}.rev-event-stats>div:nth-child(-n+2){border-bottom:1px solid #454054}.rev-event-grid{grid-template-columns:1fr}.rev-events-toolbar{align-items:stretch}.rev-event-feed-meta>span:last-child{margin-left:0}.rev-tabstrip{max-width:100%}.rev-personal-card{flex-wrap:wrap}.rev-edit-task{margin-left:35px}}
@media(max-width:395px){.rev-tab{padding:8px 10px}.rev-event-dates{gap:7px}.rev-event-dates time{font-size:.71rem}.rev-events-hero{padding:17px}.rev-personal-head h2{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){.rev-event-card,.rev-tab,.rev-source-button,.rev-refresh,.rev-add-task{transition:none}.rev-event-card:hover{transform:none}}


/* Event art is displayed only for validated original Steam CDN images. */
.rev-event-art{height:155px;min-height:155px;margin:-18px -20px 0;overflow:hidden;position:relative;background:linear-gradient(145deg,#302d40,#282738)}
.rev-event-art:after{content:"";position:absolute;inset:auto 0 0;height:45px;background:linear-gradient(transparent,#282635);pointer-events:none}
.rev-event-art img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
.rev-event-card--login{--accent:#83bbd9}
.rev-event-card--challenge{--accent:#d4a5c7}
.rev-event-card--pass{--accent:#c7b28c}
.rev-event-card--shop{--accent:#8abead}
.rev-personal-import-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rev-import-tasks{background:transparent;border:1px solid #665578;color:#d5c3ed;border-radius:10px;padding:10px 13px;min-height:39px;font-size:.77rem;font-weight:600;cursor:pointer}
.rev-import-tasks:hover{background:#353047;color:#f4e7ff;border-color:#ab8cce}
.rev-import-tasks:focus-visible{outline:2px solid #cbaaff;outline-offset:3px}
.rev-personal-source{display:inline-block;margin-top:10px;font-size:.73rem;color:#cbb1ed;text-decoration:underline;text-underline-offset:3px}
.rev-personal-source:hover{color:#f3dcff}
@media(max-width:920px){.rev-event-art{margin:-15px -15px 0}}
@media(max-width:680px){.rev-event-art{height:180px;min-height:180px}}


/* Reverie 3.4.22 — unified event + personal checklist. */
.rev-unified{--user:#5ce1b4;--accent:#b987ff;min-width:0;padding-bottom:22px}
.rev-unified .rev-events-hero{background:radial-gradient(ellipse at 89% 16%,#8454d158,transparent 57%),linear-gradient(120deg,#29213d,#1a2637 92%);border-color:#76638e}
.rev-unified .rev-event-stats{border-color:#655477;background:#252337}
.rev-unified .rev-event-stats>div:nth-child(1) .rev-stat-mark{color:#d5a1ff}
.rev-unified .rev-event-stats>div:nth-child(2) .rev-stat-mark{color:#ffc881}
.rev-unified .rev-event-stats>div:nth-child(3) .rev-stat-mark{color:#6fe0b5}
.rev-unified-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:23px 0 15px}
.rev-unified .rev-tabstrip{background:#211c31;border-color:#716081;padding:5px}
.rev-unified .rev-tab{font-weight:700;letter-spacing:.015em}
.rev-unified .rev-tab.active{background:#705098;color:white;box-shadow:inset 0 0 0 1px #b995ec66}
.rev-unified .rev-event-feed-meta{margin:0 0 16px}
.rev-unified-list{display:flex;flex-direction:column;gap:12px}
.rev-unified-list>.rev-event-card,.rev-unified-list>.rev-personal-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 48%,#272938);border-left:5px solid var(--accent);border-radius:14px;box-shadow:0 8px 26px #05060c32;margin:0;transition:transform .16s,border-color .16s,background .16s}
.rev-unified-list>.rev-event-card{display:grid;grid-template-columns:minmax(195px,27%) minmax(0,1fr) auto;grid-template-rows:auto auto auto auto;grid-template-areas:"art top top" "art main main" "art dates dates" "art progress footer";column-gap:20px;row-gap:10px;align-items:center;min-height:186px;padding:16px 20px 15px 0;background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 16%,#242334),#242330 55%,#1c2330 100%)}
.rev-unified-list>.rev-event-card:before{display:none}
.rev-unified-list>.rev-event-card:hover{border-color:color-mix(in srgb,var(--accent) 80%,#30303c);transform:translateY(-1px)}
.rev-unified-list .rev-event-card--banner{--accent:#d09aff}
.rev-unified-list .rev-event-card--version{--accent:#55dfac}
.rev-unified-list .rev-event-card--character{--accent:#ffb578}
.rev-unified-list .rev-event-card--challenge{--accent:#ff8fae}
.rev-unified-list .rev-event-card--login{--accent:#6bcffa}
.rev-unified-list .rev-event-card--ingame{--accent:#a7a0ff}
.rev-unified-list .rev-event-card--shop{--accent:#9ce178}
.rev-unified-list .rev-event-card--web{--accent:#f3c77d}
.rev-unified-list .rev-event-card--pass{--accent:#f6cf8a}
.rev-unified-list .rev-event-art{grid-area:art;align-self:stretch;position:relative;display:flex;justify-content:center;align-items:center;width:100%;height:auto;min-height:150px;margin:-16px 0 -15px 0;border-radius:0;background:radial-gradient(ellipse at 25% 30%,color-mix(in srgb,var(--accent) 38%,transparent),transparent 60%),#262138;isolation:isolate}
.rev-unified-list .rev-event-art:after{content:"";position:absolute;inset:0 0 0 auto;height:auto;width:36px;background:linear-gradient(90deg,transparent,#262435);pointer-events:none;z-index:3}
.rev-unified-list .rev-event-art img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center;z-index:2}
.rev-event-art-fallback{font-size:4.1rem;font-weight:400;color:color-mix(in srgb,var(--accent) 78%,#fff);opacity:.85;position:relative;z-index:1;filter:drop-shadow(0 4px 20px #0007)}
.rev-unified-list .rev-event-top{grid-area:top;justify-content:flex-start;gap:12px}
.rev-unified-list .rev-event-type{border:1px solid color-mix(in srgb,var(--accent) 65%,#25222d);background:color-mix(in srgb,var(--accent) 20%,#25222d);color:color-mix(in srgb,var(--accent) 72%,white);font-weight:800;letter-spacing:.025em}
.rev-unified-list .rev-event-state{border:1px solid #8b7298;background:#40334c;color:#ebddf3}
.rev-unified-list .rev-event-main{grid-area:main;align-items:center;gap:13px}
.rev-unified-list .rev-event-main h3{font-size:clamp(1rem,1.6vw,1.19rem);font-weight:800;margin:0 0 4px}
.rev-unified-list .rev-event-main p{font-size:.73rem;line-height:1.45}
.rev-official-mark{color:#d4a8f7;font-size:.67rem;font-weight:800;letter-spacing:.05em}
.rev-unified-list .rev-event-dates{grid-area:dates;max-width:460px;width:100%;background:#13192589;padding:9px 13px;border:1px solid #5550649a;gap:15px}
.rev-unified-list .rev-event-dates time{font-weight:770}
.rev-unified-list .rev-event-progress{grid-area:progress;max-width:430px;width:100%;height:6px;background:#42364e;margin:4px 0}
.rev-unified-list .rev-event-progress>span{background:var(--accent)}
.rev-unified-list .rev-event-footer{grid-area:footer;justify-content:flex-end;gap:16px;white-space:nowrap;color:#ddd2e8;font-weight:650}
.rev-unified-list .rev-event-footer a{color:color-mix(in srgb,var(--accent) 60%,white)}
.rev-unified-list .rev-personal-card{--accent:#59d5ab;display:flex;align-items:center;gap:16px;padding:17px 20px;background:linear-gradient(100deg,#1b413d80,#252c38 30%,#202632 100%);min-height:112px}
.rev-unified-list .rev-personal-card:hover{border-color:#68ddbd;background:linear-gradient(100deg,#23594d88,#28353c 40%,#1e2d36)}
.rev-unified-list .rev-personal-symbol{display:grid;place-items:center;width:49px;height:49px;border-radius:12px;font-size:1.4rem;color:#a5ffe0;border:1px solid #65d7ab69;background:#35745c40;flex-shrink:0}
.rev-unified-list .rev-personal-card>input,.rev-unified-list .rev-event-main input{width:22px;height:22px;min-width:22px;accent-color:var(--accent);cursor:pointer}
.rev-unified-list .rev-personal-kind{color:#9ff7d5;border-color:#4bb99188;background:#29634955}
.rev-unified-list .rev-personal-title{display:flex;gap:11px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.rev-unified-list .rev-personal-card .rev-personal-content h3{font-size:1.04rem;font-weight:780;margin-bottom:9px}
.rev-unified-list .rev-personal-card .rev-personal-tags>span{border:1px solid #416a6077;background:#2e4d485c;color:#b7e8d8}
.rev-unified-list .rev-personal-card .rev-edit-task{color:#93edc9;font-weight:750}
.rev-unified-list .rev-personal-source{color:#99dbd1}
.rev-unified .rev-personal-import-actions{gap:9px}
.rev-unified .rev-add-task{background:#285a4c;border-color:#56a98d;color:#d8ffee}
.rev-unified .rev-add-task:hover{background:#337b62;border-color:#83edc1}
.rev-unified .rev-empty-events{border-color:#65557d}
.rev-unified .rev-event-feed-meta #event-feed-status{overflow-wrap:anywhere}
@media(max-width:880px){
 .rev-unified-list>.rev-event-card{grid-template-columns:190px minmax(0,1fr);grid-template-areas:"art top" "art main" "art dates" "art footer" "art progress";gap:8px 14px}
 .rev-unified-list .rev-event-footer{justify-content:space-between}
 .rev-unified-list .rev-event-art{min-height:175px}
}
@media(max-width:580px){
 .rev-unified-list>.rev-event-card{grid-template-columns:minmax(0,1fr);grid-template-areas:"art" "top" "main" "dates" "progress" "footer";padding:0 15px 15px;gap:12px}
 .rev-unified-list .rev-event-art{margin:0 -15px;width:calc(100% + 30px);height:142px;min-height:142px}
 .rev-unified-list .rev-event-art:after{inset:auto 0 0;height:26px;width:auto;background:linear-gradient(transparent,#252536)}
 .rev-unified-list .rev-event-top{padding-top:2px}
 .rev-unified-list .rev-event-footer{justify-content:space-between;white-space:normal}
 .rev-unified-list .rev-personal-card{gap:10px;flex-wrap:wrap;padding:14px}
 .rev-unified-list .rev-personal-symbol{width:36px;height:36px;font-size:1rem}
 .rev-unified-list .rev-personal-content{flex-basis:calc(100% - 100px)}
 .rev-unified-list .rev-personal-card .rev-edit-task{margin-left:68px}
 .rev-unified-toolbar{align-items:stretch}
}
@media(prefers-reduced-motion:reduce){.rev-unified-list>.rev-event-card,.rev-unified-list>.rev-personal-card{transition:none}}

/* Recurring personal goals stay in the shared green-tinted checklist. */
.rev-unified-list .rev-task-repeat{margin:9px 0 0;color:#8ce6c2;font-size:.77rem;font-weight:650;line-height:1.45}
.rev-unified-list .rev-personal-card.is-done .rev-task-repeat{opacity:.8}


/* Character ability finder: verified effect and usage, not generic keyword guesses. */
.ability-finder{border:1px solid #635479;border-radius:17px;background:radial-gradient(ellipse at 100% 0,#563d774b,transparent 63%),linear-gradient(135deg,#252032,#191f31);padding:19px 21px;margin:18px 0 21px;display:grid;gap:12px}
.ability-finder-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.ability-finder-head h3{font-size:1.24rem;color:#f2e6ff;margin:0 0 6px}
.ability-finder-head p{margin:0;color:#c1b4ce;line-height:1.45;font-size:.81rem;max-width:620px}
.ability-finder-controls{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:13px}
.ability-finder-controls label{display:grid;gap:5px;color:#d9c9e7;font-weight:700;font-size:.76rem}
.ability-finder .muted-foot{margin:0;color:#bdb1ce}
.char-ability-tags{display:flex;flex-wrap:wrap;gap:5px;min-height:30px;margin:10px 0}
.ability-chip{display:inline-flex;align-items:center;border-radius:8px;padding:5px 8px;font-size:.65rem;font-weight:730;line-height:1.25;background:#383049;color:#d9bfff;border:1px solid #8062a0}
.ability-chip--apply{background:#23423c;color:#99f5ce;border-color:#42896c}
.ability-chip--enable{background:#3b305a;color:#dbc5ff;border-color:#806abc}
.ability-chip--benefit{background:#433521;color:#ffd7a0;border-color:#97714a}
.ability-unknown{font-size:.72rem;color:#a8a2b6}
.ability-team-result{border:1px solid #6b568c;background:#1b1929;border-radius:13px;padding:15px 18px;display:grid;gap:9px}
.ability-team-result h4{font-size:1rem;margin:0;color:#ead5ff}
.ability-team-member{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 6px;border-bottom:1px solid #494057}
.ability-team-member b{min-width:120px;color:#d5c4f3}
.ability-team-member span{color:#aaa0bd;font-size:.79rem;flex:1}
.ability-team-warning{color:#eabcb6;font-size:.8rem;margin:4px 0}
.ability-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:15px 0}
.ability-detail-stats>div{background:#222333;border:1px solid #5f526e;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:7px}
.ability-detail-stats small{font-size:.69rem;color:#a99dbb;text-transform:uppercase}
.ability-detail-stats strong{font-size:1.33rem;color:#edd9fc;font-variant-numeric:tabular-nums}
.ability-detail-section{margin:20px 0;display:grid;gap:9px}
.ability-detail-section h3{font-size:1.1rem;color:#e6d6f5;margin:0}
.ability-detail-row{border:1px solid #4e465d;border-left:3px solid #a38bdb;border-radius:10px;padding:13px 15px;background:#242335}
.ability-detail-row>div{color:#dbbff7;font-size:.89rem}
.ability-detail-row p{color:#d1c8df;font-size:.83rem;line-height:1.55;margin:9px 0}
.ability-detail-row small{color:#a89bb8}
@media(max-width:650px){.ability-finder{padding:15px}.ability-finder-controls{grid-template-columns:minmax(0,1fr)}.ability-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ability-finder *{scroll-behavior:auto}}


/* Reverie full-kit character dossier */
.ability-kit-group{border:1px solid #5c5172;border-radius:12px;background:#1d1c2b;overflow:hidden}
.ability-kit-group>summary{cursor:pointer;padding:14px 16px;color:#dfc9fa;font-weight:700;list-style-position:inside}
.ability-kit-group>summary:focus-visible{outline:2px solid #d6b0ff;outline-offset:-3px}
.ability-kit-items{display:grid;gap:10px;padding:4px 13px 14px}
.ability-kit-items h4{color:#d9c0f4;font-size:.92rem;margin:13px 2px 0}
.ability-kit-items>.minor{margin:0 3px}
.ability-kit-items .ability-detail-row{background:#29253a;border-left-color:#9a89c9}
.ability-kit-items .ability-detail-row .minor{display:block;color:#bcb3ca;line-height:1.5}
.ability-detail-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:650px){.ability-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* One Psychube catalogue card can summarize several upgraded physical copies. */
.psychube-copies{display:block;line-height:1.65;overflow-wrap:anywhere}
.psychube-copy-row{display:grid;grid-template-columns:minmax(80px,.7fr) 1fr 1fr;align-items:end;gap:10px;background:#282333;border:1px solid #544862;border-radius:12px;margin:9px 0;padding:12px}
.psychube-copy-row>strong{font-size:.78rem;color:#d8caef;align-self:center}
.psychube-copy-row .field-label{min-width:0;margin:0}
.psychube-copy-row .field{width:100%;min-width:0}
@media(max-width:530px){.psychube-copy-row{grid-template-columns:1fr 1fr}.psychube-copy-row>strong{grid-column:1/-1}}

/* Assigned copy shown on the character card, readable in narrow windows. */
.char-psychube{display:block;font-size:.71rem;line-height:1.45;color:#cdbbdd;overflow-wrap:anywhere;padding:5px 0;border-top:1px solid #5d4d693b}

/* Semantic sibling actions: opening a character is separate from changing progress. */
.char-card-shell{position:relative;min-width:0;height:100%}
.char-card-shell>.char-card{height:100%}
.char-card-shell .char-bottom{flex-wrap:wrap;gap:7px 11px}
.char-card-quick{position:absolute;top:10px;right:10px;z-index:4;padding:8px 11px;border:1px solid #b299d6;border-radius:10px;background:#21192de8;color:#f8eaff;font-size:.72rem;font-weight:700;line-height:1.2;cursor:pointer;box-shadow:0 3px 14px #080612a8}
.char-card-quick:hover{background:#4a315f;border-color:#eddbff}
.char-card-quick:focus-visible{outline:3px solid #e8d0ff;outline-offset:3px}
@media(max-width:530px){.char-card-quick{top:7px;right:7px;padding:7px;font-size:.67rem}}


/* Variant-aware personal Euphoria progress, kept separate from fixed skill data. */
.euphoria-variant{min-width:0;margin:12px 0;padding:14px;border:1px solid #65547c;border-radius:13px;background:#242032}
.euphoria-variant legend{font-size:.84rem;font-weight:700;color:#e1d2f6;padding:0 8px;max-width:100%;overflow-wrap:anywhere}
.euphoria-variant .minor{margin:2px 0 10px}
.euphoria-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.euphoria-fields .field-label{min-width:0}
.euphoria-fields .select{max-width:100%;width:100%;min-width:0}
@media(max-width:520px){.euphoria-fields{grid-template-columns:1fr}.euphoria-variant{padding:11px}}

/* Long Euphoria-path labels must not overflow detail stat tiles. */
.ability-detail-stats strong{overflow-wrap:anywhere;min-width:0}


/* Source-reviewed reference facts; personal copy levels remain independent. */
.psychube-reference{border-top:1px solid #65557766;margin-top:12px;padding:12px 0 3px;display:grid;gap:7px;font-size:.76rem}
.psychube-reference>b{color:#ead9fb}
.psychube-reference p{line-height:1.5;color:#cfc7d9;margin:0;overflow-wrap:anywhere}
.psychube-reference a{color:#d2bcff;text-decoration:underline;text-underline-offset:3px}
.ability-team-gear{display:block;color:#b7a6d1;font-size:.73rem;line-height:1.5;overflow-wrap:anywhere}


/* 5★/6★ Psychube catalogue: one type per artwork, per-copy equipment below. */
.psychube-view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 15px}
.psychube-view-tab{appearance:none;border:1px solid #685d7b;border-radius:10px;padding:10px 15px;min-height:42px;background:#272236;color:#eadcf7;cursor:pointer;font:inherit;font-size:.87rem;font-weight:650}
.psychube-view-tab.active{background:#5a416f;border-color:#be9de2;color:#fff}
.psychube-view-tab:focus-visible{outline:3px solid #ddc8ff;outline-offset:3px}
#psychube-catalog-panel[hidden],#psychube-analyzer-panel[hidden]{display:none!important}
#psychube-analyzer-panel .gluttony-panel{margin-top:0}
@media(max-width:480px){.psychube-view-tab{flex:1 1 auto;padding:10px 9px}}
.psychube-toolbar{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.psychube-toolbar .table-search{flex:1 1 250px;min-width:0}
.psychube-toolbar .select{flex:0 1 220px;min-width:160px}
.psychube-gallery-card{min-width:0}
.psychube-gallery-card .catalog-copy{min-width:0;display:flex;flex-direction:column;align-items:stretch}
.psychube-gallery-card .catalog-copy h3{overflow-wrap:anywhere}
.psychube-copy-stack{display:grid;gap:8px;margin:12px 0}
.psychube-copy-summary{display:flex;align-items:center;gap:10px;border:1px solid #64587770;background:#211e30a1;border-radius:10px;padding:9px}
.psychube-copy-summary>div{display:grid;gap:3px;min-width:0;flex:1}
.psychube-copy-summary b{color:#ece1ff;font-size:.77rem}
.psychube-copy-summary span:not(.psychube-amp-ring):not(.psychube-done){color:#cbbfd7;font-size:.74rem;overflow-wrap:anywhere}
.psychube-done{flex:none;font-weight:800;color:#b1a3bf;font-size:1.2rem}
.psychube-done.is-done{color:#a7f3d5}
.psychube-card-footer{margin-top:auto;padding-top:11px}
.psychube-amp-ring{--amp-pct:0%;width:44px;height:44px;flex:none;display:inline-grid;place-items:center;border-radius:50%;background:conic-gradient(#bda3ef var(--amp-pct),#4c405b var(--amp-pct) 100%);position:relative;color:#f4eaff;font-size:.68rem;font-weight:800;font-variant-numeric:tabular-nums}
.psychube-amp-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#232035}
.psychube-amp-ring>span{z-index:1;position:relative}
.psychube-copy-row{grid-template-columns:minmax(90px,.65fr) minmax(85px,1fr) minmax(125px,1fr) minmax(110px,1fr) 48px minmax(155px,1.3fr) 110px;align-items:center;gap:9px}
.psychube-copy-row .field-label{font-size:.73rem;min-width:0;overflow-wrap:anywhere}
.psychube-copy-row .select{width:100%;min-width:0}
.psychube-copy-row .psychube-complete{white-space:nowrap;align-self:center}
@media(max-width:1080px){.psychube-copy-row{grid-template-columns:repeat(3,minmax(0,1fr))}.psychube-copy-row>strong{grid-column:1/-1}.psychube-copy-row .psychube-amp-ring{align-self:center}}
@media(max-width:580px){.psychube-copy-row{grid-template-columns:repeat(2,minmax(0,1fr))}.psychube-copy-row .psychube-complete{grid-column:2}.psychube-toolbar .select{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.psychube-amp-ring{transition:none}}

/* The editor dialog stays compact even on very wide desktop viewports. */
.psychube-copy-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
.psychube-copy-row>strong{grid-column:1/-1}
.psychube-copy-row .psychube-amp-ring{align-self:center}
@media(max-width:580px){.psychube-copy-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Copy completion is a real keyboard-accessible toggle, never merely an icon. */
button.psychube-done{appearance:none;background:#322b42;border:1px solid #655478;border-radius:9px;
 padding:3px 9px;min-width:38px;min-height:38px;cursor:pointer;line-height:1}
button.psychube-done:hover{border-color:#c5aafa;background:#453558}
button.psychube-done.is-done{background:#20493e;border-color:#62bd9c;color:#b8ffdf}
button.psychube-done:focus-visible{outline:3px solid #ddc8ff;outline-offset:3px}
.psychube-card-footer{display:flex;flex-wrap:wrap;gap:8px}

/* Psychube collection: completion is a user's manual checkbox, not inferred from stats. */
.psychube-progress{margin:4px 0 13px;padding:7px 12px;width:fit-content;background:#292439;border:1px solid #66557d;border-radius:8px;color:#d9c8ed;font-weight:650}

/* Psychube card: meaningful main stat, compact add, explicit assignment and safe per-copy removal. */
.psychube-main-stat{font-size:.88rem!important;color:#f4e9ff!important;font-weight:700}
.psychube-main-stat strong{color:#c9b4ff}
.psychube-inventory-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 5px}
.psychube-inventory-header>span{font-size:.78rem;font-weight:750;color:#e8daf5}
.psychube-inventory-header .btn{min-height:38px}
.psychube-copy-summary .psychube-assignment{color:#dcd0f4;font-weight:650}
button.psychube-copy-remove{appearance:none;background:#302532;border:1px solid #86546c;color:#f6cedf;
 border-radius:8px;min-height:38px;min-width:38px;flex:none;cursor:pointer;font-size:1.25rem;line-height:1}
button.psychube-copy-remove:hover:not(:disabled){background:#583047;border-color:#e49ebe}
button.psychube-copy-remove:focus-visible{outline:3px solid #e9b8d0;outline-offset:3px}
button.psychube-copy-remove:disabled{opacity:.45;cursor:not-allowed}

/* Gluttony investment comparison: text-first, legible and keyboard accessible. */
.gluttony-panel{margin:16px 0 22px;display:grid;gap:12px}
.gluttony-panel h3{margin:0;color:#eee0ff;font-size:1.08rem}
.gluttony-panel p{line-height:1.55;overflow-wrap:anywhere}
.gluttony-panel .gluttony-lead{margin:0;font-size:.9rem;color:#f4e7fa}
.gluttony-tabs{display:flex;flex-wrap:wrap;gap:6px}
.gluttony-tab{appearance:none;border:1px solid #685d7b;border-radius:999px;padding:8px 12px;min-height:38px;background:#272236;color:#f2dfff;cursor:pointer;font:inherit;font-size:.79rem}
.gluttony-tab.active{background:#5a416f;border-color:#be9de2;color:white}
.gluttony-tab:focus-visible,.gluttony-option-more summary:focus-visible,.gluttony-help summary:focus-visible{outline:3px solid #ddc8ff;outline-offset:3px}
.gluttony-chips{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0}
.gluttony-level.is-equipped{border-color:#69a89d;color:#bbede2}
.gluttony-level.is-shop{border-color:#b39a5a;color:#f8e2a9}
.gluttony-option-more{border-top:1px solid #685d7b;padding-top:7px}
.gluttony-option-more summary,.gluttony-help summary{color:#e8cfff;cursor:pointer;font-weight:650}
.gluttony-option-more[open]{display:grid;gap:6px}
.gluttony-help{font-size:.82rem}
.gluttony-help p{margin:9px 0 0}
.gluttony-options{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.gluttony-option{border:1px solid #685d7b;background:#252032b3;border-radius:11px;padding:12px;display:grid;gap:5px;font-size:.83rem}
.gluttony-option strong{font-size:.93rem;color:#f4eaff}
.gluttony-option p{margin:0;color:#d7cee0}
.gluttony-option .gluttony-brief{color:#e7d2f1;line-height:1.4}
.gluttony-allocation{border:1px solid #685d7b;border-radius:11px;background:#252032b3;padding:11px 13px;font-size:.82rem}
.gluttony-allocation summary{color:#e8cfff;cursor:pointer;font-weight:650}
.gluttony-allocation summary:focus-visible,.gluttony-plan-toggle:focus-visible{outline:3px solid #ddc8ff;outline-offset:3px}
.gluttony-allocation ol{padding-left:22px;margin:8px 0;display:grid;gap:5px}
.gluttony-plan-row{display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap}
.gluttony-plan-row-text{min-width:0;flex:1;overflow-wrap:anywhere}
.gluttony-plan-controls{display:inline-flex;gap:5px;align-items:center;flex:none}
.gluttony-plan-controls .btn{min-width:35px;min-height:35px;padding:4px 8px}
.gluttony-plan-controls .btn:disabled{opacity:.38;cursor:default}
.gluttony-plan-controls .btn:focus-visible{outline:3px solid #ddc8ff;outline-offset:2px}
.gluttony-allocation p{margin:9px 0}
.gluttony-plan-toggle{width:fit-content;justify-self:start;margin:3px 0}
.gluttony-shop-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.gluttony-shop-head>span{font-size:.77rem;color:#ccbddf}
.gluttony-option .gluttony-changes{font-weight:650;color:#e5d1ff}
.gluttony-level{display:inline-block;width:fit-content;padding:2px 8px;border:1px solid #826d99;border-radius:999px;font-size:.72rem;color:#e9d9f8}
.gluttony-option a{color:#d2bcff;text-underline-offset:3px}
.gluttony-option a:focus-visible{outline:3px solid #ddc8ff;outline-offset:3px}


/* Character gallery – equipment/build audit, not a hand-maintained Notion status. */
.char-build-state{margin:11px 0 7px;display:block;padding:8px 10px;border-radius:9px;font-size:.75rem;font-weight:800;border:1px solid #805b60;color:#f3c0bc;background:#472d364a}
.char-build-state.is-finished{background:#1d403b90;color:#a9f0d3;border-color:#388e73}
.char-build-missing,.char-archetypes{display:flex;gap:5px;flex-wrap:wrap;margin:3px 0 9px}
.char-build-missing>span,.char-archetypes>span{font-size:.63rem;line-height:1.35;border-radius:6px;padding:4px 6px;background:#382b34;border:1px solid #694852;color:#e7b9b4}
.char-archetypes>span{background:#302c4b;border-color:#625b94;color:#d9cafa}
.char-pattern{display:block;font-size:.72rem;color:#dbcdec;padding:7px 0}
.char-progress-grid{display:flex;justify-content:space-between;gap:6px;margin-top:auto;padding:10px 0 0;border-top:1px solid #61557161}
.char-progress{display:inline-flex;align-items:center;flex-direction:column;gap:5px;flex-shrink:0;min-width:43px;color:#cabfdb;font-size:.61rem;text-align:center}
.char-progress-circle{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#b996f2 var(--progress),#49425c var(--progress));position:relative;isolation:isolate}
.char-progress-circle:before{content:"";position:absolute;inset:5px;border-radius:50%;background:#201f2d;z-index:-1}
.char-progress-circle strong{font-size:.79rem;color:#f2e7ff;font-variant-numeric:tabular-nums}
.char-equipment{min-width:0;display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid #5d4d693b;color:#e5d5f1}
.char-equipment--missing{font-size:.72rem;color:#e6bdc1}
.char-equipments{display:block}
.char-equipment-art{width:48px;height:56px;flex:none;display:grid;place-items:center;background:#24223a;border:1px solid #51486b;border-radius:8px;overflow:hidden}
.char-equipment-art img{width:100%;height:100%;object-fit:contain}
.char-equipment-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px;line-height:1.28;overflow-wrap:anywhere}
.char-equipment-copy strong{font-size:.74rem}
.char-equipment-copy>span{font-size:.66rem}
.char-equipment-effect{color:#b8a8ca;max-height:4.15em;overflow:hidden}
.char-equipment .char-progress-circle{width:34px;height:34px}
.char-equipment .char-progress-circle:before{inset:4px}
.char-equipment .char-progress{min-width:32px;font-size:.56rem}
.char-euphoria{display:grid;gap:5px;margin:6px 0 0;padding:7px 0;border-top:1px solid #5d4d693b;font-size:.70rem}
.char-euphoria>strong{color:#dbbfee}
.char-euphoria-path{color:#bdb1ca;overflow-wrap:anywhere}
.char-euphoria-path.is-equipped{color:#a9e4ce;font-weight:700}
@media(max-width:540px){.char-card-info{padding:12px 10px}.char-equipment{flex-wrap:wrap}.char-equipment-copy{flex-basis:calc(100% - 56px)}.char-progress-grid{flex-wrap:wrap;justify-content:space-evenly}}
@media(prefers-reduced-motion:reduce){.char-card{transition:none}}

/* Resonance 10 meets the build target; ranks 11–13 are optional overcap. */
.char-progress-circle.is-overgoal{background:conic-gradient(#a3e4d6 var(--progress),#49425c var(--progress))}



/* Character gallery – width-aware equipment layout (2026-10-23).
 * Base card width, not just viewport width, drives the responsive composition. */
.character-grid{
 grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));
 align-items:stretch;
 gap:clamp(12px,1.6vw,20px)
}
.char-card-shell{container-type:inline-size;isolation:isolate}
.char-card-shell>.char-card{
 width:100%;
 background:
  radial-gradient(circle at 85% 8%,color-mix(in srgb,var(--card-accent) 24%,transparent),transparent 48%),
  linear-gradient(158deg,#292538 0%,#1d1e2b 62%,#191b26 100%);
 border-color:color-mix(in srgb,var(--card-accent) 52%,#4f455e);
 box-shadow:0 12px 26px #0808104b,inset 0 1px #ffffff0c
}
.char-card-shell>.char-card:hover{
 transform:translateY(-3px);
 border-color:color-mix(in srgb,var(--card-accent) 85%,#d9c2ff);
 box-shadow:0 20px 36px #08081062,inset 0 1px #ffffff1b
}
.char-card-shell>.char-card:focus-visible{outline:3px solid #dec8ff;outline-offset:3px}
.char-card .char-card-portrait{height:clamp(185px,20vw,224px)}
.char-card .char-card-info{padding:17px 17px 18px;gap:0;min-width:0}
.char-card .char-card-heading .char-name{
 font-size:clamp(1.14rem,1.6vw,1.34rem);
 line-height:1.25;
 font-weight:770;
 letter-spacing:-.012em;
 overflow-wrap:anywhere
}
.char-card .char-sub{font-size:.76rem;line-height:1.5;color:#c1b6d1}
.char-card .char-build-state{
 margin:13px 0 8px;
 padding:9px 11px;
 border-radius:11px;
 border-color:#936c78;
 background:linear-gradient(110deg,#4d303cbb,#35253594);
 font-size:.76rem;
 letter-spacing:.005em
}
.char-card .char-build-state.is-finished{
 border-color:#4d9e82;
 background:linear-gradient(110deg,#234b43c7,#203830b0);
 color:#b7f9dc
}
.char-card .char-build-missing{gap:6px;margin:0 0 11px}
.char-card .char-build-missing>span{
 padding:5px 8px;
 border:1px solid #6b5369;
 border-radius:8px;
 background:#302735a6;
 color:#dac9d9;
 font-size:.68rem
}
.char-card .char-archetypes{margin:5px 0 9px}
.char-card .char-archetypes>span{
 background:#393350a8;
 color:#e0d3fa;
 border:1px solid #685688;
 border-radius:999px;
 padding:5px 9px;
 font-weight:680;
 font-size:.67rem
}
.char-card .char-ability-tags{
 min-height:0;
 display:flex;
 flex-wrap:wrap;
 gap:6px;
 margin:6px 0 13px
}
.char-card .char-ability-tags .ability-chip{
 font-size:.66rem;
 line-height:1.4;
 font-weight:620;
 padding:5px 8px;
 border-radius:9px;
 overflow-wrap:anywhere;
 max-width:100%
}
.char-card .char-equipments{display:grid;gap:10px;margin-top:3px}
.char-card .char-equipment{
 display:grid;
 grid-template-columns:minmax(0,1fr);
 align-content:start;
 gap:9px;
 padding:13px;
 margin:0;
 background:linear-gradient(155deg,#29263b,#211f30);
 border:1px solid #615377;
 border-radius:13px;
 color:#e9ddf7;
 min-width:0
}
.char-card .char-equipment--missing{
 display:block;
 margin-top:3px;
 background:#2e2735b3;
 border-color:#6a5365;
 color:#dfbfce;
 line-height:1.55
}
.char-card .char-equipment-top{
 display:grid;
 grid-template-columns:56px minmax(0,1fr);
 align-items:center;
 gap:11px;
 min-width:0
}
.char-card .char-equipment-art{
 width:56px;
 height:70px;
 border-radius:10px;
 background:radial-gradient(circle at 50% 30%,#55496f,#292439 80%);
 border-color:#78618a;
 box-shadow:0 4px 10px #0c0a189c
}
.char-card .char-equipment-art img{object-fit:contain;max-width:100%;max-height:100%}
.char-card .char-equipment-copy{min-width:0;display:grid;gap:5px;line-height:1.4}
.char-card .char-equipment-copy strong{
 display:block;
 font-size:.88rem;
 line-height:1.3;
 font-weight:760;
 color:#f2e5ff;
 overflow-wrap:anywhere
}
.char-card .char-equipment-main-stat{
 display:block;
 font-size:.73rem!important;
 line-height:1.45;
 font-weight:600;
 color:#d0bce3;
 overflow-wrap:anywhere
}
.char-card .char-equipment-effect{
 display:grid;
 gap:5px;
 white-space:normal;
 max-height:none;
 overflow:visible;
 overflow-wrap:anywhere;
 padding:10px 11px;
 border-radius:9px;
 background:#191928b5;
 border:1px solid #4d435d;
 line-height:1.55;
 font-size:.73rem;
 color:#d1c6dc
}
.char-card .char-equipment-effect-heading{
 display:block;
 color:#bb9be1;
 font-size:.64rem;
 font-weight:800;
 letter-spacing:.085em;
 text-transform:uppercase
}
.char-card .char-equipment-meters{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:8px;
 min-width:0
}
.char-card .char-equipment-meters .char-progress{
 min-width:0;
 width:100%;
 display:flex;
 flex-direction:row;
 align-items:center;
 justify-content:center;
 gap:9px;
 padding:7px 9px;
 background:#342d46a6;
 border:1px solid #5f5073;
 border-radius:10px;
 font-size:.7rem;
 color:#e2d7ef
}
.char-card .char-equipment-meters .char-progress-circle{
 width:38px;
 height:38px;
 flex:none
}
.char-card .char-equipment-meters .char-progress-circle:before{inset:4px}
.char-card .char-equipment-meters .char-progress-circle strong{font-size:.74rem}
.char-card .char-equipment-meters .char-progress-label{font-weight:740}
.char-card .char-euphoria{
 display:grid;
 gap:7px;
 margin:13px 0 0;
 padding:13px 0 0;
 border-color:#68567883;
 font-size:.74rem
}
.char-card .char-euphoria>strong{
 font-size:.69rem;
 font-weight:800;
 text-transform:uppercase;
 letter-spacing:.08em;
 color:#cdb2e8
}
.char-card .char-euphoria-path{
 display:block;
 padding:9px 10px;
 line-height:1.5;
 border:1px solid #574960;
 border-radius:9px;
 background:#272436bd;
 color:#d3c5de;
 overflow-wrap:anywhere
}
.char-card .char-euphoria-path.is-equipped{
 border-color:#578e85;
 background:linear-gradient(110deg,#253f3ebf,#292939);
 color:#b5efdc
}
.char-card .char-pattern{
 margin-top:12px;
 border-top:1px solid #62516f69;
 padding:12px 0;
 line-height:1.55;
 font-size:.75rem;
 overflow-wrap:anywhere
}
.char-card .char-progress-grid{
 margin-top:auto;
 padding:13px 0 0;
 gap:9px;
 justify-content:space-around;
 border-color:#6d5a7d82
}
.char-card .char-progress-grid .char-progress{min-width:0;flex:1;font-size:.68rem;gap:7px}
.char-card .char-progress-grid .char-progress-circle{width:48px;height:48px;flex:none}
.char-card .char-progress-grid .char-progress-circle strong{font-size:.85rem}
.char-card-quick{
 background:#272039ed;
 border-color:#9f83c8;
 border-radius:10px;
 box-shadow:0 3px 12px #090813a0
}
@media(max-width:700px){
 .character-grid{grid-template-columns:minmax(0,1fr);gap:14px}
 .char-card .char-card-info{padding:15px}
}
@container(max-width:340px){
 .char-card .char-card-portrait{height:185px}
 .char-card .char-card-info{padding:13px}
 .char-card .char-equipment{padding:10px}
 .char-card .char-equipment-top{grid-template-columns:50px minmax(0,1fr);gap:8px}
 .char-card .char-equipment-art{width:50px;height:64px}
 .char-card .char-equipment-meters{gap:6px}
 .char-card .char-equipment-meters .char-progress{padding:6px;gap:6px}
 .char-card .char-equipment-meters .char-progress-circle{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){
 .char-card-shell>.char-card,.char-card-shell>.char-card:hover{transition:none;transform:none}
}


/* Character gallery filter polish at split-window sizes. */
.roster-segment{max-width:none;gap:6px;background:#1d1b2b;border-color:#655374}
.roster-segment .roster-view{min-width:0;flex:1 1 150px;line-height:1.4}
.ability-finder{background:radial-gradient(ellipse at 100% 0,#59457865,transparent 64%),linear-gradient(145deg,#292338,#1a202e);border-color:#716086}
.ability-finder-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr))}
.ability-finder-controls>label{min-width:0}
.ability-finder-controls .select{width:100%;min-width:0;max-width:100%;text-overflow:ellipsis}
#char-search{min-width:min(100%,220px);flex:2 1 260px}
#char-result-count{color:#cdbde0;font-size:.77rem;font-weight:650}
.filter-row .chipbtn{min-height:40px;border-color:#5c4e70;background:#242031;color:#d6c6e7;font-weight:620}
.filter-row .chipbtn:hover{background:#352944;border-color:#927ab3;color:#f7e9ff}
.filter-row .chipbtn.active{background:#49365e;border-color:#b49bd9;color:#f4e6ff;box-shadow:inset 0 1px #ffffff1c}
.filter-row .chipbtn:focus-visible,.roster-view:focus-visible{outline:3px solid #ddc8ff;outline-offset:2px}
@media(max-width:700px){.ability-finder{padding:15px}.roster-segment .roster-view{flex:1 1 125px;font-size:.75rem}}


/* Character roster summary – scales with the usable content width. */
.char-build-overview{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 align-items:center;
 gap:clamp(16px,2.4vw,30px);
 padding:clamp(17px,2.5vw,25px);
 margin:0 0 18px;
 border:1px solid #685679;
 border-radius:17px;
 background:radial-gradient(ellipse at 90% 4%,#6e52804a,transparent 64%),linear-gradient(125deg,#282338,#1d2232);
 box-shadow:0 12px 27px #0506132b,inset 0 1px #ffffff13;
 color:#ebe0f4;
}
.char-build-overview-intro{display:grid;gap:9px;min-width:0}
.char-build-overview-eyebrow{font-size:.65rem;letter-spacing:.12em;font-weight:820;color:#bea3e4}
.char-build-overview h2{font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.25;color:#f4eaff;margin:0;font-weight:760}
.char-build-overview p{font-size:.75rem;line-height:1.6;color:#bfb3cd;margin:0;max-width:64ch}
.char-build-overview-meter{
 position:relative;
 overflow:hidden;
 width:100%;
 height:9px;
 border-radius:99px;
 border:1px solid #625375;
 background:#191a2b;
 margin-top:4px
}
.char-build-overview-meter-fill{position:absolute;inset:0 auto 0 0;display:block;background:linear-gradient(90deg,#7bbcac,#b8ecd4);border-radius:inherit;transition:width .2s ease}
.char-build-overview-percent{color:#bdb0ca;font-size:.69rem;font-weight:690}
.char-build-overview-counts{display:flex;align-items:stretch;flex-wrap:wrap;gap:10px}
.char-build-overview-count{
 min-width:105px;
 display:flex;
 flex-direction:column;
 gap:6px;
 padding:13px 15px;
 background:#211e30c9;
 border:1px solid #635575;
 border-radius:12px;
 color:#cdbfdc;
 line-height:1.25;
 font-size:.7rem
}
.char-build-overview-count strong{font-size:clamp(1.55rem,2.2vw,1.9rem);font-variant-numeric:tabular-nums;line-height:1.1}
.char-build-overview-count.is-complete strong{color:#a8efd2}
.char-build-overview-count.is-pending strong{color:#e6c7ef}
@media(max-width:980px){.char-build-overview{grid-template-columns:minmax(0,1fr)}.char-build-overview-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.char-build-overview-count{min-width:0}}
@media(max-width:520px){.char-build-overview{padding:15px}.char-build-overview-count{padding:11px 12px}.char-build-overview h2{font-size:1.07rem}}
@media(prefers-reduced-motion:reduce){.char-build-overview-meter-fill{transition:none}}

/* Character gallery: source-verified debuff variety, compact in split windows. */
.char-card .char-debuff-count{
 display:inline-flex;align-self:flex-start;align-items:center;flex-wrap:wrap;gap:4px;
 margin:0 0 12px;padding:7px 10px;border-radius:999px;
 border:1px solid #648c82;background:#223d3bc9;
 color:#c2f2e3;font-size:.70rem;font-weight:740;line-height:1.45;
 max-width:100%;overflow-wrap:anywhere
}
.char-debuff-note{
 line-height:1.55;color:#b9afc8;margin:5px 0 15px;
 padding:8px 11px;border-left:2px solid #8972a8;
 background:#29243b80;border-radius:0 8px 8px 0
}
@container(max-width:340px){
 .char-card .char-debuff-count{font-size:.67rem;padding:6px 9px}
}

/* Prydwen Overall is a neutral sourced label, not a personal score. */
.char-card .char-tier{display:inline-flex;align-self:flex-start;max-width:100%;margin:5px 0 9px;
 padding:5px 9px;border-radius:7px;border:1px solid #756987;background:#2c2938;
 color:#e3dceb;font-size:.71rem;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
#char-tier-filter{min-width:120px}

/* A genuine external source is a sibling of the card-opening button, never nested inside it. */
.char-card-shell>.char-tier-source{position:absolute;top:49px;right:10px;z-index:4;
 display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border:1px solid #7e7591;
 border-radius:9px;background:#252136e8;color:#e0d0f6;font-size:.69rem;font-weight:700;
 line-height:1.3;text-decoration:none;box-shadow:0 3px 12px #080614a8}
.char-card-shell>.char-tier-source:hover{background:#403357;border-color:#c7ace8;color:#fff}
.char-card-shell>.char-tier-source:focus-visible{outline:3px solid #dec8ff;outline-offset:3px}
@container(max-width:340px){.char-card-shell>.char-tier-source{top:45px;right:7px;padding:6px 8px;font-size:.65rem}}

/* Direct Euphoria per generated team member: keyboard-friendly on split screens. */
.planner-unit .planner-euphoria-choice{display:grid;gap:5px;width:100%;min-width:0;max-width:100%;text-align:left;font-size:.69rem;line-height:1.4;color:#d9cde9}
.planner-unit .planner-euphoria-choice .select{width:100%;min-width:0;max-width:100%;padding:8px 7px;font-size:.73rem;line-height:1.35}
.planner-unit .planner-euphoria-choice .select:focus-visible{outline:3px solid #dfc8ff;outline-offset:2px}
.planner-unit .team-euphoria-status{display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.45}

/* Four-member ability suggestions: readable Euphoria choices in narrow panes. */
.ability-team-member .mode-euphoria-choice{display:grid;gap:5px;min-width:0;max-width:100%;margin:7px 0;font-size:.78rem;text-align:left}
.ability-team-member .mode-euphoria-choice .select{width:100%;min-width:0;max-width:100%;padding:8px;font-size:.8rem}
.ability-team-member .mode-euphoria-choice .select:focus-visible{outline:3px solid #dfc8ff;outline-offset:2px}
.ability-team-member .team-euphoria-status{display:block;max-width:100%;overflow-wrap:anywhere}


/* Character build cards v3.4.149: readable top summary and live controls. The
   complete card can still open the character; selectors are sibling controls. */
.char-card-shell{display:flex;flex-direction:column;min-width:0}
.char-card-shell>.char-card{
 height:auto;
 flex:1 0 auto;
 min-height:0;
 border-radius:17px 17px 0 0;
 border-bottom:0;
 box-shadow:none
}
.char-card-shell>.char-card:hover{transform:none;box-shadow:none}
.char-card-shell>.char-card .char-card-info{gap:0}
.char-card-stats{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:6px;
 margin:12px 0 13px;
 min-width:0
}
.char-card-stat{
 display:flex;
 flex-direction:column;
 align-items:flex-start;
 justify-content:center;
 gap:5px;
 min-width:0;
 padding:9px 8px;
 border:1px solid #795b69;
 border-radius:10px;
 background:#352b38;
 color:#ffe2e2;
 line-height:1.2
}
.char-card-stat.is-ready{border-color:#4d887c;background:#24453f;color:#c4f6e3}
.char-card-stat.is-neutral{border-color:#656078;background:#333044;color:#e3daf3}
.char-card-stat-label{font-size:.64rem;color:inherit;opacity:.85;overflow-wrap:anywhere}
.char-card-stat b{font-size:.79rem;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.015em}
.char-build-complete{display:block;margin:0 0 10px;color:#b7f5d9;font-size:.73rem;font-weight:750}
.char-card-section-title{
 display:block;margin:10px 0 8px;padding-top:12px;
 border-top:1px solid #63567772;
 color:#cfb4e8;font-weight:800;font-size:.73rem;letter-spacing:.04em
}
.char-card .char-equipment-top{grid-template-columns:56px minmax(0,1fr)}
.char-card .char-equipment-copy strong{font-size:.81rem;line-height:1.48}
.char-card .char-equipment-main-stat{font-weight:450;font-size:.7rem!important}
.char-card .char-equipment-copy-level{
 font-size:.7rem;line-height:1.4;font-weight:720;color:#d6c7e5;
 padding-top:8px;border-top:1px solid #564b67
}
.char-card-controls{
 display:grid;
 gap:15px;
 min-width:0;
 padding:0 16px 18px;
 border:1px solid #6e587b;
 border-top:0;
 border-radius:0 0 17px 17px;
 background:linear-gradient(160deg,#242334,#1d1f2b);
 box-shadow:0 12px 26px #0808104b
}
.char-card-controls .char-euphoria{
 display:grid;
 gap:10px;
 margin:0;
 padding:15px 0 0;
 border-top:1px solid #66557491
}
.char-card-controls .char-euphoria>strong,
.char-pattern-controls>strong{
 font-size:.73rem;letter-spacing:.055em;text-transform:uppercase;color:#e0c7f1
}
.char-card-control-label{
 display:grid;gap:7px;min-width:0;font-size:.72rem;color:#d0c5df
}
.char-card-select{width:100%;min-width:0;max-width:100%;text-overflow:ellipsis;font-size:.78rem}
.char-euphoria-paths{display:grid;gap:7px;min-width:0}
.char-card-controls .char-euphoria-path{
 display:grid;gap:5px;padding:10px 11px;border-radius:10px;
 border:1px solid #544c66;background:#272638;
 color:#d6cadf;line-height:1.42;font-size:.72rem;
 overflow-wrap:anywhere;min-width:0
}
.char-card-controls .char-euphoria-path.is-equipped{border-color:#6cbb9f;background:#263e3a}
.char-euphoria-path-name{font-weight:680}
.char-euphoria-path-status{color:#c0b4d0}
.char-euphoria-path.is-complete .char-euphoria-path-status{color:#a9eed4;font-weight:780}
.char-euphoria-hint{font-size:.68rem;line-height:1.5}
.char-pattern-controls{
 display:grid;gap:7px;border-top:1px solid #63567791;padding-top:14px;min-width:0
}
.char-pattern-name{color:#e5d6ec;font-size:.78rem;overflow-wrap:anywhere}
.char-card-pattern-check{
 display:flex;gap:10px;align-items:center;min-height:42px;
 padding:9px 10px;border:1px solid #6b5c7b;border-radius:10px;
 background:#302a3f;color:#f1e6fc;cursor:pointer;font-size:.76rem
}
.char-card-pattern-check input{width:19px;height:19px;flex:none;accent-color:#b5e7cf;cursor:pointer}
.char-card-pattern-check:has(input:checked){background:#27423d;border-color:#6ca18e}
.char-card-pattern-check:has(input:disabled){opacity:.65;cursor:not-allowed}
.char-card-select:focus-visible,.char-card-pattern-check input:focus-visible{
 outline:3px solid #d9bdff;outline-offset:3px
}
.char-build-focus-label{flex:1 1 225px;min-width:min(100%,225px)}
.char-build-focus-label>.select{width:100%;min-width:0}
@container(max-width:270px){
 .char-card-stat{padding:8px 5px}
 .char-card-stat b{font-size:.7rem}
 .char-card-controls{padding:0 11px 14px}
 .char-card .char-equipment-top{grid-template-columns:45px minmax(0,1fr);gap:8px}
 .char-card .char-equipment-art{width:45px;height:56px}
}
@media(prefers-reduced-motion:reduce){
 .char-card-shell>.char-card:hover{transform:none}
}


/* Pattern selector is an independent, keyboard-accessible control on the card. */
.char-pattern-controls .char-card-control-label{margin-top:3px}
.char-pattern-controls .char-card-select{
 width:100%;min-width:0;max-width:100%;line-height:1.45;
 white-space:nowrap;text-overflow:ellipsis
}
.char-pattern-controls .char-card-select:focus-visible{
 outline:3px solid #d9bdff;outline-offset:3px
}
.char-pattern-hint{display:block;font-size:.69rem;line-height:1.5;color:#bdb3cf}

/* Psychube 3.4.153: distinct rarity, compact cards, inline progression. */
.catalog-grid--psychubes{grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:16px}
.psychube-card-badges{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:3px}
.psychube-rarity,.psychube-owned{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;min-height:26px;padding:4px 10px;font-size:.75rem;line-height:1.15;font-weight:800}
.psychube-rarity--6{background:linear-gradient(140deg,#8f450f,#55301f);border:1px solid #eab265;color:#ffdc9b;text-shadow:0 1px 2px #2a160b}
.psychube-rarity--5{background:linear-gradient(140deg,#66560e,#413b1c);border:1px solid #d9cc60;color:#fff29a}
.psychube-owned{background:#302b38;border:1px solid #6a6170;color:#c6bbc9;font-weight:650}
.psychube-owned.is-owned{background:#243d37;border-color:#487964;color:#c0f1d9}
.psychube-gallery-card .catalog-copy .btn{margin-top:0}
.psychube-gallery-card .psychube-reference{margin-top:8px}
.psychube-main-stat{display:flex;gap:7px 12px;flex-wrap:wrap;align-items:baseline;margin:1px 0!important;padding:11px 12px;border:1px solid #806d9a;border-radius:10px;background:linear-gradient(140deg,#3c324c,#27283a);min-height:0!important}
.psychube-main-stat>span{font-size:.69rem;letter-spacing:.08em;text-transform:uppercase;color:#cbb4e7}
.psychube-main-stat>strong{font-size:1rem;color:#fff1c7;letter-spacing:0}
.psychube-copy-stack{margin:5px 0 9px}
.psychube-copy-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:stretch;padding:10px 12px}
.psychube-copy-summary>div.psychube-quick-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.psychube-copy-number{display:block;color:#c1afd8;font-weight:750;font-size:.72rem}
.psychube-quick-field{display:flex;align-items:center;gap:8px;min-width:0;color:#cfc5dd;font-size:.7rem;font-weight:700}
.psychube-quick-field>span:last-child{display:grid;gap:4px;min-width:0;flex:1}
.psychube-inline-level,.psychube-inline-amp{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;height:35px;padding:5px 6px;background:#171925;color:#f5eaff;border:1px solid #75668b;border-radius:8px;font:inherit;font-size:.84rem;font-weight:700;font-variant-numeric:tabular-nums}
.psychube-inline-level:focus-visible,.psychube-inline-amp:focus-visible{outline:3px solid #ddc8ff;outline-offset:2px}
.psychube-level-ring{--level-pct:0%;width:42px;height:42px;flex:none;display:inline-grid;place-items:center;border-radius:50%;background:conic-gradient(#bfa3f4 var(--level-pct),#53445e var(--level-pct) 100%);position:relative;color:#fff;font-size:.76rem;font-weight:850;font-variant-numeric:tabular-nums}
.psychube-level-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#242238}
.psychube-level-ring>span{position:relative;z-index:1;color:#f7e9ff;font-size:.72rem}
.psychube-copy-summary .psychube-amp-ring{width:42px;height:42px}
.psychube-copy-summary>div.psychube-copy-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0}
.psychube-copy-bottom .psychube-assignment{min-width:0;flex:1 1 120px;overflow-wrap:anywhere;line-height:1.35}
.psychube-copy-bottom .psychube-done,.psychube-copy-bottom .psychube-copy-remove{min-width:36px;min-height:36px;flex:none}
.psychube-inventory-header{margin:8px 0 5px}
.psychube-inventory-header .btn{font-size:.89rem;font-weight:850;min-width:50px;text-align:center;justify-content:center}
.psychube-card-footer{padding-top:6px}
.psychube-card-footer .btn{min-height:36px}
@media(max-width:450px){
 .catalog-grid--psychubes{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:350px){
 .psychube-copy-summary>div.psychube-quick-fields{grid-template-columns:minmax(0,1fr)}
}


/* Independently editable Euphoria ranks (one per reviewed variant). */
.char-card-controls .char-euphoria-path{
 display:grid;grid-template-columns:minmax(0,1fr);
 align-content:start;gap:8px;min-width:0
}
.char-card-controls .char-euphoria-stage-label{
 display:grid;gap:5px;min-width:0;font-size:.7rem;color:#ccc0df;
 padding-top:7px;border-top:1px solid #695c7969
}
.char-card-controls .char-euphoria-stage-label .char-card-select{
 width:100%;max-width:100%;min-width:0;
 min-height:39px;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;
 border:1px solid #6b5c81;border-radius:8px;background:#211f30;
 color:#eadcf5;font-size:.75rem;line-height:1.4
}
.char-card-controls .char-euphoria-stage-label .char-card-select:focus-visible{
 outline:3px solid #e0c3ff;outline-offset:2px
}
.char-card-controls .char-euphoria-path.is-complete .char-euphoria-stage-label .char-card-select{
 border-color:#589c85;color:#d7ffea
}


/* An equipped Psychube's A5 indicator is an optional personal upgrade goal. */
.char-card .char-equipment-copy-level .char-equipment-amplify{color:#d4c3e0}
.char-card .char-equipment-copy-level .char-equipment-amplify.is-ready{
 display:inline-block;padding:2px 7px;
 border:1px solid #4f9b81;border-radius:7px;
 background:#254239;color:#b5f6d9;font-weight:790;white-space:nowrap
}


/* Short, copy-specific A1–A5 selectors outside the clickable character card. */
.char-card-controls .char-psychube-controls{
 display:grid;gap:9px;min-width:0;padding-bottom:14px;
 border-bottom:1px solid #63567791
}
.char-psychube-controls>strong{
 font-size:.73rem;letter-spacing:.055em;text-transform:uppercase;color:#e0c7f1
}
.char-card-controls .char-psychube-amp-label{gap:6px;font-size:.73rem;overflow-wrap:anywhere}
.char-card-controls .char-psychube-amp-label>.char-card-select{
 width:100%;min-width:0;max-width:100%;min-height:39px;text-overflow:ellipsis;
 border:1px solid #6b5c81;border-radius:8px;background:#211f30;
 color:#eadcf5;font-size:.77rem
}
.char-card-controls .char-psychube-amp-label>.char-card-select:focus-visible{
 outline:3px solid #e0c3ff;outline-offset:2px
}

/* 3.4.165: compact Psychube gallery; media never expands into giant squares. */
.catalog-grid--psychubes{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.catalog-grid--psychubes .catalog-art{aspect-ratio:auto;height:clamp(126px,16vw,180px);min-height:0}
.psychube-gallery-card .catalog-copy{padding:12px}
.psychube-gallery-card .catalog-copy h3{font-size:1.02rem}
.psychube-gallery-card .psychube-copy-summary>div.psychube-quick-fields{grid-template-columns:minmax(0,1fr);gap:7px}
@media(max-width:660px){.catalog-grid--psychubes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-grid--psychubes .catalog-art{height:130px}}
@media(max-width:450px){.catalog-grid--psychubes{grid-template-columns:minmax(0,1fr)}.catalog-grid--psychubes .catalog-art{height:150px}}

/* Reverie 3.4.166 – compact character roster and directly editable build rings. */
.character-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.char-card .char-card-portrait{height:clamp(140px,15vw,190px)}
.char-card-shell>.char-card .char-card-info{padding:12px}
.char-card-controls{gap:12px;padding:0 12px 14px}
.char-gallery-progress-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.char-gallery-progress-field{display:grid;justify-items:center;align-content:start;gap:6px;
 min-width:0;padding:8px 5px;border:1px solid #5f5576;border-radius:11px;
 background:#252539;cursor:pointer}
.char-gallery-progress-field .char-progress{display:grid;justify-items:center;gap:3px;min-width:0}
.char-gallery-progress-field .char-progress-circle{width:45px;height:45px}
.char-gallery-progress-field .char-progress-circle strong{font-size:.76rem}
.char-gallery-progress-field .char-progress-label{font-size:.7rem}
.char-gallery-progress-select-label{display:grid;gap:5px;width:100%;min-width:0;
 font-size:.69rem;text-align:center;color:#ddd0ee}
.char-gallery-progress-select{width:100%;min-width:0;max-width:100%;
 min-height:36px;padding:6px 4px;font-size:.81rem;text-align:center}
.char-gallery-progress-select:focus-visible,.char-euphoria-done-check input:focus-visible{outline:3px solid #e1bfff;outline-offset:2px}
.char-euphoria-done-check{display:flex;align-items:center;gap:8px;min-height:38px;
 padding:8px;border:1px solid #66547b;border-radius:9px;background:#302b3e;cursor:pointer;font-size:.74rem}
.char-euphoria-done-check input{width:19px;height:19px;flex:none;accent-color:#a4e3c9;cursor:pointer}
.char-euphoria-path.is-complete .char-euphoria-done-check{background:#25453c;border-color:#6aa98f}
@media(max-width:700px){.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
@media(max-width:460px){.character-grid{grid-template-columns:minmax(0,1fr)}}

/* 3.4.167: neutral active Euphoria; ONLY completed path green. */
.char-card-controls .char-euphoria-path.is-equipped,
.char-card-controls .char-euphoria-path.is-equipped:not(.is-complete){
 color:#d6cadf;border-color:#746488;background:#2a283b;
}
.char-card-controls .char-euphoria-path.is-complete,
.char-card-controls .char-euphoria-path.is-equipped.is-complete{
 color:#d1f5e4;border-color:#6cbb9f;background:#263e3a;
}
/* Progress is above the portrait/details button: three independent controls. */
.char-card-shell{position:relative}
.char-gallery-progress-controls{
 order:-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;
 padding:9px 9px 8px;background:#252334;border:1px solid #6e587b;
 border-bottom:0;border-radius:16px 16px 0 0;
}
.char-gallery-progress-field{padding:7px 3px;gap:4px}
.char-gallery-progress-field .char-progress-circle{width:39px;height:39px}
.char-gallery-progress-select{font-size:.78rem;min-height:35px}
.char-card-shell>.char-card{border-radius:0;border-top:0}
.char-card .char-card-portrait{position:relative}
.char-tier-rank{
 position:absolute;right:9px;top:9px;z-index:4;min-width:39px;
 border-radius:9px;padding:6px 9px;text-align:center;font-weight:900;font-size:.82rem;
 color:#f4edff;background:#554261;border:1px solid #aa91ba;box-shadow:0 3px 14px #100a1a9c;
}
.char-tier-rank--splus,.char-tier-rank--ss,.char-tier-rank--sss{color:#fff1be;background:#784b25;border-color:#e6b76a}
.char-tier-rank--s{color:#f8d7f9;background:#623c78;border-color:#c48ad9}
.char-tier-rank--a,.char-tier-rank--aplus{color:#d4f5fb;background:#275b75;border-color:#7dc7e8}
.char-tier-rank--b,.char-tier-rank--bplus{color:#d5f4d9;background:#315d43;border-color:#89c997}
.char-tier-rank--c,.char-tier-rank--d{color:#f2deca;background:#63513b;border-color:#bb9b70}
/* Each genuinely equipped copy shows its own progress rings. */
.char-card .char-equipment-meters{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
}
.char-card .char-equipment-meters .char-progress{
 display:flex;align-items:center;justify-content:center;gap:8px;
}
.char-card .char-equipment-meters .char-progress-circle{width:40px;height:40px;flex:none}
.char-card .char-equipment-meters .char-progress-label{font-size:.76rem}
/* Local character portrait next to an individually equipped Psychube. */
.psychube-copy-bottom .psychube-assignment{display:flex;align-items:center;gap:7px}
.psychube-equipped-icon{
 display:block;flex:none;width:34px;height:38px;border:1px solid #76618d;
 border-radius:9px;overflow:hidden;background:#24263a;
}
.psychube-equipped-icon .portrait{display:flex;width:100%;height:100%;border:0;border-radius:0}
.psychube-equipped-icon img{display:block;width:100%;height:100%;object-fit:contain}
.psychube-equipped-icon .monogram{max-width:100%;max-height:100%;font-size:.7rem}
.psychube-assignment-name{min-width:0;overflow-wrap:anywhere}

/* 3.4.168: keep three edit controls immediately below character name and role.
 * An independent overlay opens details without nesting interactive inputs. */
.char-card-shell>.char-card{border-radius:17px 17px 0 0;border-top:1px solid color-mix(in srgb,var(--card-accent) 52%,#4f455e);cursor:default}
.char-card-open-overlay{position:absolute;inset:0;z-index:1;width:100%;height:100%;padding:0;border:0;background:transparent;border-radius:inherit;cursor:pointer}
.char-card-open-overlay:focus-visible{outline:3px solid #dec8ff;outline-offset:-4px}
.char-card-shell>.char-card>.char-card-portrait,
.char-card-shell>.char-card>.char-card-info{pointer-events:none}
.char-card-shell>.char-card>.char-card-info{position:relative;z-index:2}
.char-card-shell>.char-card .char-gallery-progress-controls,
.char-card-shell>.char-card .char-psychube-inline-amplify{position:relative;z-index:2;pointer-events:auto}
.char-card-shell>.char-card .char-gallery-progress-controls{order:0;grid-template-columns:repeat(3,minmax(0,1fr));margin:13px 0 12px;padding:0;border:0;border-radius:0;background:transparent}
.char-card-shell>.char-card .char-gallery-progress-field{padding:7px 3px;border-radius:10px}
.char-gallery-progress-field[data-progress-kind="level"] .char-progress-circle{background:conic-gradient(#77bffa var(--progress),#49425c var(--progress))}
.char-gallery-progress-field[data-progress-kind="resonance"] .char-progress-circle,
.char-gallery-progress-field[data-progress-kind="resonance"] .char-progress-circle.is-overgoal{background:conic-gradient(#87dbb5 var(--progress),#49425c var(--progress))}
.char-gallery-progress-field[data-progress-kind="portraitRank"] .char-progress-circle{background:conic-gradient(#efc47e var(--progress),#49425c var(--progress))}
.char-gallery-progress-field[data-progress-kind="level"] .char-progress-circle strong{color:#cbeaff}
.char-gallery-progress-field[data-progress-kind="resonance"] .char-progress-circle strong{color:#c9ffe3}
.char-gallery-progress-field[data-progress-kind="portraitRank"] .char-progress-circle strong{color:#ffe6ae}
/* Equipment card owns its own live Amplification selection. */
.char-card .char-psychube-inline-amplify{display:grid;gap:6px;width:100%;min-width:0;font-size:.73rem;font-weight:700;color:#e8c9cf}
.char-card .char-psychube-inline-amplify .char-card-select{width:100%;min-width:0;max-width:100%;min-height:39px;text-overflow:ellipsis;color:#fce8ed;border:1px solid #a46b78;background:#32232b}
.char-card .char-psychube-inline-amplify .char-card-select:focus-visible{outline:3px solid #ffacb9;outline-offset:2px}
/* Consistent ruby/red for both equipment meters and every Psychube list copy. */
.char-card .char-equipment-meters .char-progress-circle,
.char-card .char-equipment-meters .char-progress-circle.is-overgoal{background:conic-gradient(#ed657a var(--progress),#563d4b var(--progress))}
.char-card .char-equipment-meters .char-progress-circle strong{color:#ffe2e7}
.catalog-grid--psychubes .psychube-level-ring{background:conic-gradient(#ed657a var(--level-pct),#563d4b var(--level-pct) 100%)}
.catalog-grid--psychubes .psychube-amp-ring{background:conic-gradient(#ed657a var(--amp-pct),#563d4b var(--amp-pct) 100%)}
.catalog-grid--psychubes .psychube-level-ring>span,
.catalog-grid--psychubes .psychube-amp-ring>span{color:#ffe3e7}

/* Reverie 3.4.169: direct Psychube equip and editorial kit core. */
.char-card-controls .char-psychube-equip{display:grid;gap:8px;min-width:0;padding:10px;margin:0 0 12px;border:1px solid #766184;border-radius:11px;background:#272238}
.char-psychube-equip-field{display:grid;gap:5px;min-width:0;font-size:.74rem;font-weight:740;color:#e4d7ef}
.char-psychube-equip-select{display:block;width:100%;min-width:0;max-width:100%;min-height:41px;font-size:.75rem;color:#f2e8fb;background:#1e1b2c;border:1px solid #846e96;border-radius:8px}
.char-psychube-equip-select:focus-visible{outline:3px solid #dac3fc;outline-offset:2px}
.char-tier-footer{align-self:stretch;display:flex;justify-content:center;align-items:center;min-height:42px;padding:6px 12px;text-decoration:none;font-size:.95rem;font-weight:880;border:1px solid #ab91bd;border-radius:0 0 13px 13px;background:#493852;color:#f9ebff}
.char-tier-footer.char-tier-rank--splus,.char-tier-footer.char-tier-rank--ss,.char-tier-footer.char-tier-rank--sss{color:#fff1be;background:#784b25;border-color:#e6b76a}
.char-tier-footer.char-tier-rank--s{color:#f8d7f9;background:#623c78;border-color:#c48ad9}
.char-tier-footer.char-tier-rank--a,.char-tier-footer.char-tier-rank--aplus{color:#d4f5fb;background:#275b75;border-color:#7dc7e8}
.char-tier-footer.char-tier-rank--b,.char-tier-footer.char-tier-rank--bplus{color:#d5f4d9;background:#315d43;border-color:#89c997}
.char-tier-footer.char-tier-rank--c,.char-tier-footer.char-tier-rank--d{color:#f2deca;background:#63513b;border-color:#bb9b70}
.char-tier-footer:hover{filter:brightness(1.14);text-decoration:none}
.char-tier-footer:focus-visible{outline:3px solid #dbbfff;outline-offset:3px}
.char-core-mechanics{display:grid;gap:6px;margin:11px 0 8px;min-width:0}
.char-core-mechanic{display:grid;gap:4px;padding:8px 9px;min-width:0;border:1px solid #5f5575;border-radius:9px;background:#29263c;font-size:.71rem;line-height:1.48;overflow-wrap:anywhere}
.char-core-mechanic strong{color:#e4cfff;font-weight:810}
.char-core-mechanic span{color:#d1c8dd}

/* 3.4.170: portrait tier in top-right, element icon remains top-left. */
.char-card-portrait .char-tier-rank{position:absolute;top:11px;right:11px;left:auto;z-index:4;pointer-events:none}
.char-card-shell .char-tier-footer{display:none}
/* Source-backed character cheat sheets replace raw effect/action and debuff counters. */
.char-playbook{display:grid;gap:10px;margin:10px 0 15px;min-width:0}
.char-guide-archetypes{display:flex;flex-wrap:wrap;gap:6px}
.char-guide-archetype{display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;
 font-size:.72rem;font-weight:760;letter-spacing:.012em;line-height:1.2;
 border-radius:999px;border:1px solid #8b78a0;color:#e9dbfb;background:#39314e}
.char-guide-archetype--impromptu,.char-guide-archetype--eureka,.char-guide-archetype--rank-up{
 background:#3f3063;border-color:#a98be1;color:#e5d5ff}
.char-guide-archetype--follow-up,.char-guide-archetype--extra-action{
 background:#34435c;border-color:#7ca8e9;color:#d2e5ff}
.char-guide-archetype--genesis,.char-guide-archetype--crit{
 background:#59402f;border-color:#d3a36c;color:#ffe4bb}
.char-guide-archetype--poison,.char-guide-archetype--control{
 background:#29473c;border-color:#75b99e;color:#d4f9e4}
.char-guide-archetype--burn,.char-guide-archetype--bloodtithe{
 background:#52332e;border-color:#d78c78;color:#ffdbcf}
.char-guide-archetype--support,.char-guide-archetype--bond,.char-guide-archetype--channel{
 background:#32404d;border-color:#809cb3;color:#d9edfc}
.char-guide-archetype--dynamo,.char-guide-archetype--conduit{
 background:#304b55;border-color:#83bbc7;color:#ddf9ff}
.char-playbook-heading{font-size:.78rem;font-weight:850;letter-spacing:.045em;text-transform:uppercase;color:#dfcee9}
.char-playbook-items{display:grid;gap:7px;min-width:0}
.char-playbook-item{min-width:0;padding:10px 11px;border:1px solid #5c536f;
 border-left:3px solid #9072b4;border-radius:9px;background:#252436;overflow-wrap:anywhere}
.char-playbook-item--1{border-left-color:#65b9c1}
.char-playbook-item--2{border-left-color:#d3a06d}
.char-playbook-item--3{border-left-color:#79b38c}
.char-playbook-item strong{display:block;font-size:.74rem;font-weight:800;color:#efe4f5}
.char-playbook-item p{margin:5px 0 0;font-size:.73rem;line-height:1.52;color:#d2c9dd}
.char-guide-review-note,.char-guide-unreviewed{display:block;margin:2px 0 0;color:#aaa0ba;font-size:.68rem}
/* Searchable Psychube picker: image-first owned copy chooser, no external account sync. */
.char-card-controls .char-psychube-equip{display:grid;gap:12px}
.char-psychube-equip-field{display:grid;gap:6px;min-width:0}
.char-psychube-equip-caption{font-size:.76rem;font-weight:790;color:#e9dcec}
.char-psychube-picker{display:block;min-width:0;border-radius:10px;border:1px solid #746481;background:#211f32;overflow:hidden}
.char-psychube-picker[open]{border-color:#b398ca;box-shadow:0 9px 24px #0d0b1c99}
.char-psychube-picker-trigger{display:flex;gap:10px;align-items:center;min-height:70px;list-style:none;cursor:pointer;padding:8px 10px;color:#f1e7f9}
.char-psychube-picker-trigger::-webkit-details-marker{display:none}
.char-psychube-picker-trigger>img{display:block;width:46px;height:54px;flex:none;object-fit:contain;background:#181a24;border-radius:7px}
.char-equip-image-placeholder{display:grid;place-items:center;flex:none;width:46px;height:54px;font-size:1.6rem;color:#b9abc9;background:#252439;border-radius:7px}
.char-equip-picked{display:grid;gap:5px;flex:1;min-width:0;font-size:.75rem;overflow-wrap:anywhere}
.char-equip-picked strong{font-size:.77rem;color:#f8edff;font-weight:820}
.char-equip-picked small{font-size:.68rem;color:#bcaecc}
.char-equip-chevron{font-size:1.2rem;color:#c8b7dc}
.char-psychube-picker[open] .char-equip-chevron{transform:rotate(180deg)}
.char-psychube-picker-trigger:focus-visible,.char-psychube-choice:focus-visible{
 outline:3px solid #e1c4ff;outline-offset:-3px}
.char-psychube-picker-panel{display:grid;gap:9px;padding:10px;border-top:1px solid #51475c;background:#1c1b2c}
.char-psychube-search{display:block;width:100%;min-width:0;min-height:39px;background:#292639;font-size:.78rem}
.char-psychube-picker-list{display:grid;gap:6px;max-height:305px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.char-psychube-choice{display:flex;align-items:center;gap:9px;padding:7px 8px;width:100%;min-width:0;
 color:#f1e5f8;background:#27243a;border:1px solid #4f455e;border-radius:9px;
 text-align:left;cursor:pointer}
.char-psychube-choice:hover,.char-psychube-choice.is-selected{border-color:#b096d1;background:#3a304e}
.char-psychube-choice[hidden]{display:none}
.char-psychube-choice-art{display:grid;place-items:center;flex:none;width:43px;height:53px;border-radius:7px;overflow:hidden;background:#191923}
.char-psychube-choice-art img{display:block;width:100%;height:100%;object-fit:contain}
.char-psychube-choice-art .char-equip-image-placeholder{width:100%;height:100%}
.char-psychube-choice-info{display:grid;gap:4px;min-width:0;flex:1;overflow-wrap:anywhere}
.char-psychube-choice-info strong{font-size:.74rem;font-weight:800}
.char-psychube-choice-info small{font-size:.67rem;color:#b7adc7}
.char-equip-check{font-size:1rem;color:#a4ecc9}
.char-psychube-empty-search{margin:5px 2px;color:#bdb1c9;font-size:.74rem}
@media(max-width:700px){
 .char-playbook-item{padding:9px}
 .char-playbook-item p{font-size:.71rem}
 .char-psychube-picker-list{max-height:245px}
}

/* 3.4.171 – each reviewed archetype remains distinct and legible. */
.char-guide-archetype--pinpointed,.char-guide-archetype--debuff{
 background:#364e44;border-color:#77c1a4;color:#d7f5e4
}
.char-guide-archetype--inspiration,.char-guide-archetype--quartet{
 background:#3d3663;border-color:#aa9bea;color:#ebe4ff
}

/* 3.4.172: the next two favorite guide families. */
.char-guide-archetype--lingering-glow,.char-guide-archetype--halo,.char-guide-archetype--vision{
 background:#52442b;border-color:#d0b36f;color:#ffebb9
}
.char-guide-archetype--reality-debuff,.char-guide-archetype--burst{
 background:#413759;border-color:#a899d4;color:#e9dfff
}
.char-guide-archetype--euphoria{
 background:#30474b;border-color:#75aeb4;color:#d8f9fc
}

/* 3.4.178 – one editable notebook and source-backed team analysis */
.notebook-panel{max-width:1050px}.notebook-editor{display:block;width:100%;min-height:60vh;resize:vertical;border:1px solid #6c6377;border-radius:13px;box-sizing:border-box;background:#13141e;color:#f0edf7;padding:20px;font:inherit;font-size:1rem;line-height:1.7}.notebook-editor:focus-visible{outline:2px solid #d4af70;outline-offset:3px}
.research-planner{display:grid;gap:17px}.research-planner .panel{margin:0}.research-planner select{max-width:580px}.research-core-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,385px),1fr));gap:14px}.research-core{background:var(--panel,#23212d);border:1px solid #554b64;border-radius:15px;padding:19px;min-width:0}.research-core h3{margin:0;font-size:1.05rem}.research-core a{font-size:.85rem}.research-status{display:flex;flex-wrap:wrap;gap:7px}.research-status .tag{font-size:.69rem}.research-status--unavailable,.research-status--locked{border-color:#a36b64}.research-steps{padding-left:21px;font-size:.85rem;line-height:1.55}.research-steps li{margin:9px 0}.research-catalog summary{cursor:pointer}.research-tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:12px}.research-tier-group{border:1px solid #51475c;border-radius:10px;padding:13px}.research-tier-group h3{margin:0}.research-tier-group ul{padding-left:18px}.research-tier-group li{margin:8px 0;font-size:.8rem}.char-tier-rank--open{opacity:.7}

/* v3.4.179: Shared physical Psychube copies and accessible multi-assignments */
.psychube-owner-list{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid #5a5064;border-radius:10px;min-width:0;grid-column:1/-1}
.psychube-owner-list legend{padding:0 6px;font-weight:600}
.psychube-owner-choice{display:inline-flex;gap:7px;align-items:center;padding:5px 9px;border-radius:9px;background:#272431;border:1px solid #554d61;margin:0;white-space:normal}
.psychube-owner-choice input{accent-color:#c5a16b}
.psychube-owner-list small{display:block;flex-basis:100%;color:var(--muted);line-height:1.5}

/* 3.4.180 – compact source-attributed Prydwen team database */
.prydwen-compositions{display:grid;gap:16px}.prydwen-compositions>.panel{margin:0}
.prydwen-compositions select{max-width:430px}.db-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,410px),1fr));align-items:start;gap:14px}
.db-team-card{min-width:0;border:1px solid #594c65;border-radius:14px;background:var(--panel,#24212c);overflow:hidden}
.db-team-card summary{cursor:pointer;display:grid;gap:7px;padding:16px 18px;list-style:revert}
.db-team-card summary:hover,.db-team-card[open] summary{background:#393044}
.db-team-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px}.db-team-title b{font-size:1rem}.db-team-title small{font-size:.7rem;color:#cfc6d7}
.db-team-summary{font-size:.72rem;color:#bcb2c9;line-height:1.45}
.db-team-body{padding:6px 18px 19px;font-size:.85rem;line-height:1.55}
.db-team-body h4{font-size:.86rem;margin:15px 0 5px}.db-team-body ol{margin:0}
.db-team-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.db-team-slot{border-radius:9px;border:1px solid #56506b;padding:9px;display:grid;gap:3px;min-width:0;background:#25232e}
.db-team-slot>b{font-size:.78rem;overflow-wrap:anywhere}
.db-team-slot small{font-size:.65rem;color:#c6bcd0}
.db-team-slot--absent{border-color:#ae6961}.db-team-slot--unverified{border-style:dashed}
.db-team-alternatives{padding-left:20px;font-size:.8rem}.db-team-alternatives li{margin:5px 0}
.db-archetypes summary{cursor:pointer}
@media(max-width:580px){.db-team-grid{grid-template-columns:minmax(0,1fr)}.db-team-members{grid-template-columns:minmax(0,1fr)}}

/* v3.4.181 – gallery-first editing, build traits and unobtrusive return navigation */
.gallery-scroll-top{position:fixed;bottom:clamp(14px,3vh,32px);right:clamp(14px,3vw,32px);z-index:55;display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid #847391;border-radius:999px;background:#272432;color:#f5effa;box-shadow:0 4px 22px #0807119c;cursor:pointer;font:inherit;font-weight:600}
.gallery-scroll-top:hover{background:#41364f}
.gallery-scroll-top:focus-visible{outline:3px solid #d2ad74;outline-offset:3px}
#char-build-focus-anchor{scroll-margin-top:24px}
.psychube-equipped-portraits{display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:100%}
.psychube-equipped-portraits .psychube-equipped-icon{width:37px;height:43px}
.char-trait-editor{margin:12px 0;padding:9px 10px;border:1px solid #5c516a;border-radius:12px;position:relative;z-index:2}
.char-trait-editor>summary{cursor:pointer;font-size:.83rem;font-weight:650;line-height:1.4}
.char-trait-editor-panel{display:grid;gap:8px;padding:10px 0}
.char-trait-items{display:flex;flex-wrap:wrap;gap:5px}
.char-trait-edit-row{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;background:#302939;border:1px solid #675571;border-radius:8px;font-size:.73rem;max-width:100%}
.char-trait-remove{border:0;border-radius:6px;background:#4a394b;color:#fff;cursor:pointer;font-size:1.15rem;line-height:1.1;min-width:23px;min-height:23px}
.char-trait-remove:focus-visible{outline:2px solid #d2ad74}
.char-trait-editor-panel .field-label{font-size:.78rem}
.char-trait-editor-panel input,.char-trait-editor-panel select{max-width:100%}
.char-card-utility{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.char-psychube-inline-amplify select{min-width:75px}
@media(max-width:580px){.gallery-scroll-top{bottom:12px;right:12px;padding:12px}.gallery-scroll-top span{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v3.4.182: make hidden trait restoration visible and accessible */
.char-trait-editor-panel>.char-trait-items .btn{white-space:normal;text-align:left;font-size:.76rem}
.char-trait-editor-panel>.char-trait-items .btn:focus-visible{outline:2px solid #d2ad74;outline-offset:2px}

/* v3.4.183 — make verified mechanics discoverable without overflowing portrait cards */
.char-guide-mechanic-tags{display:grid;gap:7px;margin:8px 0}
.char-guide-more-traits{margin:0;padding:0;font-size:.78rem}
.char-guide-more-traits summary{cursor:pointer;color:var(--text-muted,#cfc2d8);margin:5px 0}
.char-guide-more-traits summary:focus-visible{outline:2px solid #d2ad74;outline-offset:3px;border-radius:4px}
.char-guide-more-traits .char-guide-archetypes{margin-top:7px}

/* Reverie 3.4.193 – evidence-first team recommendation workspace */
.team-recommendations{display:grid;gap:16px;margin-bottom:22px}
.team-rec-hero{padding:clamp(20px,4vw,34px);border:1px solid #736287;border-radius:20px;background:linear-gradient(135deg,#292238,#1d202c 72%);min-width:0}
.team-rec-hero h2{font-size:clamp(1.45rem,3vw,2.2rem);line-height:1.2;margin:6px 0 12px;color:#f7efff}
.team-rec-hero>p{max-width:850px;line-height:1.62}
.team-rec-stats{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0 13px}
.team-rec-stats>span{display:flex;gap:8px;align-items:baseline;padding:10px 13px;border:1px solid #756388;background:#272436;border-radius:12px;font-size:.81rem}
.team-rec-stats strong{font-size:1.3rem;color:#e6c48b}
.team-rec-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;align-items:end;margin:0}
.team-rec-filters label{min-width:0;margin:0}
.team-rec-filters select{width:100%;min-width:0;max-width:100%}
.team-rec-filter-note{grid-column:1/-1;margin:0;line-height:1.5}
.team-rec-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.team-rec-heading h3{margin:0}
.team-rec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:14px}
.team-rec-card{min-width:0;border:1px solid #5e526c;border-radius:16px;padding:18px;background:var(--panel,#24212e);display:grid;grid-template-columns:minmax(0,1fr);gap:11px}
.team-rec-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.team-rec-card-head h3{font-size:1.07rem;line-height:1.35;margin:4px 0 0;overflow-wrap:anywhere}
.team-rec-card-head>.tag{flex-shrink:0}
.team-rec-card>.minor{margin:0;line-height:1.45}
.team-rec-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.team-rec-unit{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:9px;border:1px solid #62596b;border-radius:10px;background:#292633;padding:8px;min-width:0}
.team-rec-unit .portrait{width:84px;max-width:100%;height:88px;flex:none}
.team-rec-unit>div{min-width:0;display:grid;gap:3px;overflow-wrap:break-word;word-break:normal}
.team-rec-unit strong{font-size:.82rem;overflow-wrap:break-word;word-break:normal}
.team-rec-unit-status,.team-rec-unit small{font-size:.69rem;color:#d2c9d9;line-height:1.45;overflow-wrap:break-word;word-break:normal}
.team-rec-unit--absent{border-color:#a8736b}
.team-rec-unit--unknown,.team-rec-unit--unrecorded{border-style:dashed}
.team-rec-state{font-size:.81rem;margin:0;color:#f1d6a1;line-height:1.5}
.team-rec-kit-overview{margin:0;padding:8px 10px;border-radius:9px;background:#322a3b;color:#e1c8fa;font-size:.77rem;line-height:1.55;overflow-wrap:break-word}
.team-rec-kit-evidence{min-width:0;border:1px solid #5e526c;border-radius:10px;padding:10px 12px;overflow-wrap:break-word}
.team-rec-kit-evidence summary{cursor:pointer;font-size:.83rem;font-weight:650}
.team-rec-kit-evidence :is(p,li){font-size:.78rem;line-height:1.55}
.team-rec-kit-evidence ul{padding-left:19px}
.team-rec-evidence{border-top:1px solid #554c62;padding-top:10px}
.team-rec-evidence summary{cursor:pointer;font-weight:650;line-height:1.55}
.team-rec-evidence ol{padding-left:23px;line-height:1.65;font-size:.82rem}
.team-rec-evidence li{margin:7px 0}
.team-rec-evidence p{font-size:.78rem;line-height:1.5}
.team-rec-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;justify-content:space-between}
.team-rec-actions .btn{white-space:normal}
.team-rec-source{font-size:.75rem;line-height:1.6}
.team-rec-source a{color:#cdb8ed}
.team-workbench{margin:18px 0;padding:15px 19px}
.team-workbench>summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;list-style:revert}
.team-workbench>summary span{font-size:.75rem;color:var(--muted,#c9bfd2)}
.team-workbench[open]>summary{margin-bottom:18px}
.team-workbench .research-planner,.team-workbench .planner-panel{margin:0}
.team-workbench :is(select,button,a,summary):focus-visible,
.team-rec-filters select:focus-visible,.team-rec-actions button:focus-visible,.team-rec-evidence summary:focus-visible{outline:2px solid #e4bc7c;outline-offset:3px}
@media(max-width:1120px){.team-rec-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.team-rec-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:580px){.team-rec-filters{grid-template-columns:minmax(0,1fr)}.team-rec-members{grid-template-columns:minmax(0,1fr)}.team-rec-card{padding:13px}.team-rec-stats>span{flex:1 1 100%}}


/* Reverie 3.4.196 – Three independent team views, saved plans first */
.teams-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:7px;margin:0 0 18px;border:1px solid #5f526d;border-radius:15px;background:#1e1c2a}
.teams-tab{appearance:none;display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:48px;padding:12px 14px;border:1px solid transparent;border-radius:10px;background:transparent;color:#cfc4de;font:inherit;font-size:.85rem;font-weight:650;line-height:1.35;cursor:pointer;text-align:center}
.teams-tab:hover{background:#343044;color:#f6edff}
.teams-tab.is-active{background:#40324e;color:#fff2d6;border-color:#8c759f;box-shadow:0 2px 12px #0003}
.teams-tab:focus-visible{outline:2px solid #e4bc7c;outline-offset:2px}
.teams-tab-count{display:inline-grid;place-items:center;min-width:25px;height:22px;padding:0 7px;border:1px solid #786789;border-radius:999px;color:inherit;font-size:.72rem;line-height:1}
.teams-tab-panel{min-width:0}
.teams-tab-panel[hidden]{display:none!important}
.kit-team-lab{padding:clamp(17px,3vw,27px);margin:0 0 17px}
.kit-team-lab h2{margin:6px 0 10px}
.kit-team-lab>p{line-height:1.6}
.kit-team-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:18px 0 12px}
.kit-team-controls .field-label{flex:1 1 240px;min-width:0}
.kit-team-controls .select{width:100%;min-width:0}
.kit-team-controls button{min-height:44px}
.kit-team-result{margin-top:18px;padding-top:16px;border-top:1px solid #61546b}
.kit-team-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.kit-team-member{display:flex;align-items:center;gap:11px;min-width:0;min-height:78px;padding:11px;border:1px solid #65586e;border-radius:11px;background:#292633}
.kit-team-member .portrait{flex:0 0 47px}
.kit-team-member>div{min-width:0;display:grid;gap:5px}
.kit-team-member b,.kit-team-member small{display:block;overflow-wrap:break-word;word-break:normal}
.kit-team-member small{color:#d5cadf;font-size:.75rem;line-height:1.5}
.kit-team-result .notice ul{padding-left:20px;margin-bottom:0}
@media(max-width:780px){.teams-tabs{grid-template-columns:1fr}.teams-tab{justify-content:space-between}.kit-team-roster{grid-template-columns:minmax(0,1fr)}}
@media(max-width:500px){.kit-team-controls{display:grid;grid-template-columns:minmax(0,1fr)}.kit-team-controls button{width:100%}}

/* Reverie 3.4.197 — private team groups, legible member metadata and slot alternatives */
.saved-team-library{min-width:0;display:grid;gap:15px}
.saved-team-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.saved-team-heading h2{margin:0}
.saved-team-filters{display:flex;flex-wrap:wrap;gap:8px;padding:6px;border:1px solid #5b4b67;border-radius:12px;background:#211f2c}
.saved-team-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:43px;padding:10px 16px;border:1px solid transparent;border-radius:9px;background:transparent;color:#d7cedf;font:inherit;font-size:.85rem;cursor:pointer}
.saved-team-filter:hover{background:#302b3d;color:#fff}
.saved-team-filter.is-active{background:#47354f;color:#f8eace;border-color:#967da6}
.saved-team-filter:focus-visible,.team-slot-editor button:focus-visible,.team-slot-editor select:focus-visible{outline:2px solid #e4bc7c;outline-offset:3px}
.saved-team-filter-count{min-width:23px;padding:2px 7px;border-radius:999px;background:#31283b;font-size:.72rem;text-align:center}
.saved-team-empty{margin:0}
.saved-team-library .team-slot{min-width:0}
.saved-team-library .team-slot-info{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;width:100%;margin-top:4px;text-align:center}
.saved-team-library .team-slot-name{display:block;width:100%;font-size:.73rem;font-weight:650;color:#f7edff;line-height:1.4;overflow-wrap:anywhere;word-break:normal}
.saved-team-library .team-slot-info small{display:block;width:100%;color:#cfc3d9;font-size:.68rem;line-height:1.45;overflow-wrap:anywhere;word-break:normal}
.saved-team-library .team-slot-alternatives{margin-top:2px;padding-top:5px;border-top:1px solid #51485b}
.team-slot-editor{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;border:1px solid #51485b;border-radius:12px;padding:14px;background:#242131;min-width:0}
.team-slot-editor h3{margin:0;font-size:.92rem}
.team-slot-editor .field-label{min-width:0}
.team-slot-editor select{width:100%;min-width:0}
.team-slot-editor .team-alt-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;min-width:0}
.team-slot-editor .btn{justify-self:start}
.team-slot-editor .muted-foot{margin:0;line-height:1.5}
@media(max-width:540px){.saved-team-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.saved-team-filter{padding:10px 8px;gap:5px}.saved-team-library .team-card{padding:12px}.saved-team-library .team-slot{padding:8px 3px}}

/* Reverie 3.4.198 – owned-first roster and explicit wish-list editing */
.char-release-status{display:inline-flex;align-self:flex-start;max-width:100%;margin-top:7px;padding:4px 8px;border:1px solid #655574;border-radius:8px;background:#302b3d;color:#e1c8f3;font-size:.68rem;font-weight:650;line-height:1.4;overflow-wrap:anywhere}
.char-ownership-field{display:grid;gap:6px;min-width:0;padding:14px 0 0;border-top:1px solid #66557491;color:#ddd1e6;font-size:.75rem;font-weight:650}
.char-ownership-select{width:100%;min-width:0;min-height:40px}
.char-ownership-select:focus-visible,.roster-view:focus-visible{outline:2px solid #e4bc7c;outline-offset:2px}
.roster-segment{max-width:100%}
.roster-view{min-width:112px;white-space:normal;text-wrap:balance}
@media(max-width:540px){.roster-view{min-width:calc(50% - 6px);padding:10px 8px}.char-release-status{font-size:.66rem}}

.st-game-shortcuts{display:grid;gap:8px;margin:0 12px 16px}
.st-game-shortcuts .nav-item{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:42px}
.st-game-shortcuts .nav-item:focus-visible{outline:2px solid #e4bc7c;outline-offset:2px}
