:root{color-scheme:dark;--gold:#eab960;--cream:#f0ddad;--edge:#67502e;--muted:#af9b7d}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -20%,#34271a 0%,#13100d 48%,#0c0b0a 100%);font:16px/1.55 Georgia,serif;color:#e8dac0;min-height:100vh}a{color:#ecc273;text-decoration:none}a:hover{color:#fff0c0}.top{border-bottom:2px solid #6d4f24;background:#0b0b0d;box-shadow:0 2px 25px #000}.top-inner{max-width:1170px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:15px 25px;gap:12px}.logo{font-size:27px;font-weight:bold;letter-spacing:-1px;color:#f5e3b5}.gold{color:#e9a83f}nav{display:flex;gap:25px;font:14px Arial,sans-serif}nav a{color:#d6bd88}.layout{max-width:1170px;padding:40px 24px 65px;margin:auto;min-height:70vh}.stone{background:linear-gradient(150deg,#292725,#151413 65%,#24201a);border:4px ridge #60513d;outline:1px solid #0b0806;box-shadow:0 4px 0 #080707,0 16px 36px #0008,inset 0 0 22px #0008}.hero{text-align:center;padding:75px 25px}.eyebrow{font:11px/1.4 Arial,sans-serif;letter-spacing:3px;color:#db9f48;font-weight:700}h1{font-size:clamp(35px,5vw,62px);line-height:1.14;color:#f7cf79;text-shadow:2px 3px 3px #000;margin:15px 0}h2,h3{color:var(--gold);line-height:1.2}p{color:#c2b3a0}.search{display:flex;gap:8px;max-width:670px;margin:35px auto 12px}input{min-width:0;flex:1;padding:16px;background:#111;border:1px solid #7c5c31;color:#f8eac5;border-radius:3px;font:16px Arial}button,.action{cursor:pointer;border:1px solid #ae7736;background:linear-gradient(#8b5522,#55300f);color:#ffe5a2;padding:12px 20px;font-weight:bold;font-family:Arial,sans-serif;border-radius:3px;text-shadow:1px 1px #000}button:hover{filter:brightness(1.2)}.tiny{font:12px/1.5 Arial,sans-serif;color:#a59b8c}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}.tile{padding:28px;display:block}.tile h2{font-size:27px}.tile .action{display:inline-block;margin-top:4px}.heading{margin:0 0 28px}.heading h1{font-size:44px}.heading p{margin:0}.profile-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px}.character,.details,.panel{padding:17px}.panel-title{text-align:center;color:#e6a84c;border:1px solid #54432f;background:linear-gradient(#38312a,#171513);font-weight:bold;padding:8px;margin-bottom:20px;text-transform:uppercase;letter-spacing:1.4px;font-size:14px}.portrait{height:320px;background:radial-gradient(ellipse,#484039,#151414 65%);border:2px solid #392e24;display:flex;justify-content:center;align-items:center;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:contain}.portrait-placeholder{font-size:72px;color:#675132;display:flex;flex-direction:column;align-items:center}.portrait-placeholder small{font:12px Arial}.character h2{text-align:center;margin:17px 0 0}.sub{text-align:center;color:#b3a896;font-size:14px;margin-bottom:22px}.info{display:flex;justify-content:space-between;border-bottom:1px solid #3a3229;padding:10px 3px;gap:12px;font-size:14px}.info span{color:#aa9a83}.info b{text-align:right;font-weight:normal;color:#ecd39b}.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid #554028;padding-bottom:7px}.tabs button{padding:10px 13px;background:#191716;border-color:#514432;color:#b9ab92}.tabs button.active{background:#6a3b14;color:#ffe29b;border-color:#be8a49}.tab-page{display:none;min-height:470px;padding:12px 3px}.tab-page.active{display:block}.gear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gear{display:flex;flex-direction:column;padding:12px;border:1px solid #66523b;background:linear-gradient(#29231e,#171614);min-height:86px;font:13px Arial;color:#e1ccae}.gear-slot{color:#9b8872;text-transform:uppercase;font-size:10px;letter-spacing:1px}.gear strong{font-size:14px;color:#d9cdb6}.gear span:last-child{font-size:11px;margin-top:4px;color:#aa9784}.gear .quality-epic{color:#b27dff}.gear .quality-rare{color:#4d9bff}.gear .quality-uncommon{color:#4ee06a}.gear .quality-legendary{color:#ffac4b}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat,.profession{background:#1e1c19;padding:12px;border:1px solid #443829;display:flex;justify-content:space-between;gap:12px}.stat span{color:#b3a591}.stat b{color:#ebc877}.profession{display:block;margin-bottom:8px}.muted{color:#aca194}.data{white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;background:#111;padding:12px;color:#b7bfac;font:12px/1.5 monospace}.share{display:flex;align-items:center;gap:22px;margin:22px 0}.message{padding:23px;border-color:#976c37}.message strong{color:#edbe71}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font:14px Arial,sans-serif}th{text-align:left;color:#efb75e;background:#24201c}th,td{padding:13px;border-bottom:1px solid #443b30}footer{padding:30px 20px;text-align:center;border-top:1px solid #33281c;color:#847c6d;font:12px/1.5 Arial,sans-serif}@media(max-width:760px){.layout{padding:20px 13px 45px}.profile-grid,.two-cols{grid-template-columns:1fr}.top-inner{flex-wrap:wrap}.hero{padding:40px 15px}.search{flex-direction:column}.heading h1{font-size:36px}.character{max-width:none}.portrait{height:260px}}

/* V2: Blizzard item icons, richer equipment, talent groups, searchable recipes */
.gear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gear{display:flex;flex-direction:row;align-items:center;gap:11px;min-height:77px;padding:9px;transition:background .15s,transform .15s}
.gear:hover{background:#3a2c21;transform:translateY(-1px)}
.gear-copy{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.item-icon{flex:0 0 52px;height:52px;background:#080707;border:2px solid #635840;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 8px #0008}
.item-icon img{width:100%;height:100%;object-fit:cover}
.item-icon span{font:25px Arial;color:#6f675d}
.quality-border-epic{border-color:#a45af0}.quality-border-rare{border-color:#3179e2}.quality-border-uncommon{border-color:#2aa847}.quality-border-legendary{border-color:#f08c28}
.gear .quality-common{color:#f0dfc9}.gear .quality-poor{color:#aaa}
.small-text{font:13px/1.5 Arial,sans-serif}.talent-group{margin:12px 0 25px}.talent-group h4{color:#eec178;margin:12px 0;font:17px Georgia,serif}
.talent-tree-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:11px}.talent-tree{border:1px solid #574632;background:linear-gradient(#2b251f,#171515);padding:12px;min-height:115px}
.talent-tree-header{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #55402e;padding-bottom:10px;color:#edc576;font:13px Arial,sans-serif}
.talent-tree-header span{color:#c8aa78;white-space:nowrap}.talent-entry{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #3b3025;font:13px Arial,sans-serif}.talent-entry:last-child{border-bottom:0}
.talent-entry b{color:#e0d0b7}.talent-entry p{margin:4px 0 0}.talent-diamond{color:#bd8b48;font-size:19px}.talent-rank{margin-left:auto;flex-shrink:0;color:#ffcc65;background:#19130e;border:1px solid #705332;border-radius:3px;padding:2px 7px}
.profession{padding:0}.profession summary{list-style:none;cursor:pointer;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#f3c476}.profession summary::-webkit-details-marker{display:none}.profession summary::before{content:'▸';margin-right:8px}.profession[open] summary::before{content:'▾'}.profession summary b{margin-right:auto}.toggle-indicator{font:11px Arial;color:#a99a87}.profession-tier{padding:6px 15px 17px;border-top:1px solid #443829}.tier-top{display:flex;justify-content:space-between;gap:10px;font:13px Arial;margin:8px 0;color:#dbceb8}.skill-track{height:9px;background:#0b0b0b;border:1px solid #4a3c29;border-radius:10px;overflow:hidden}.skill-fill{height:100%;background:linear-gradient(#d7aa47,#85621c)}
.recipe-heading{margin-top:14px;font:13px Arial;color:#f2c876}.recipe-search{width:100%;margin:9px 0;padding:10px;font-size:13px}.recipe-list{max-height:270px;overflow:auto;border:1px solid #413627}.recipe-row{padding:7px 10px;border-bottom:1px solid #342b22;font:13px Arial}.recipe-row:nth-child(even){background:#241e19}.recipe-row[hidden]{display:none}
@media(max-width:1050px){.gear-grid{grid-template-columns:1fr}}
@media(max-width:760px){.talent-tree-grid{grid-template-columns:1fr}.gear-grid{grid-template-columns:1fr}}

/* v3 full WoW Forever talent grids and learned-recipe browser */
.forever-tree-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.forever-tree{background:linear-gradient(#211a17,#0e0b0b);border:1px solid #4c3024;border-radius:9px;min-width:0;overflow:visible}
.forever-tree header{display:flex;justify-content:space-between;gap:7px;padding:10px 9px;color:#f2b84a;border-bottom:1px solid #4d392a;font:12px Arial,sans-serif}
.forever-tree header span{color:#ab9478;white-space:nowrap}
.talent-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(7,44px);gap:4px;padding:10px 6px 18px;justify-items:center}
.talent-node{position:relative;display:block;width:38px;height:38px;border:2px solid #403832;border-radius:6px;background:#0e0c0c;box-shadow:0 0 4px #000;isolation:isolate}
.talent-node img{width:100%;height:100%;object-fit:cover;border-radius:3px}
.talent-node.unlearned img{filter:brightness(.36) saturate(.6)}
.talent-node.learned{border-color:#d0a948;box-shadow:0 0 7px #a47c3b77}
.talent-count{position:absolute;bottom:-6px;right:-5px;background:#090909dc;color:#bdad93;font:10px Arial,sans-serif;padding:0 3px;border-radius:3px}
.talent-node.learned .talent-count{color:#ffdc68}
.talent-fallback{display:grid;place-content:center;width:100%;height:100%;color:#d4a344}
.talent-tip{display:none;position:absolute;z-index:20;bottom:calc(100% + 9px);left:0;width:240px;background:#090e1b;border:1px solid #8d805d;border-radius:4px;box-shadow:0 7px 22px #000;color:#d6d9e8;padding:11px;pointer-events:none;font:12px/1.4 Arial,sans-serif;text-align:left}
.talent-tip b{display:block;color:#f6c165;margin-bottom:5px}.talent-tip small{display:block;color:#98a8c5;margin-bottom:5px}.talent-tip span{display:block}.talent-tip em{display:block;color:#e0b75d;font-style:normal;margin-top:7px}
.talent-node:hover,.talent-node:focus-visible{z-index:30}.talent-node:hover .talent-tip,.talent-node:focus-visible .talent-tip{display:block}
.recipe-browser{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:9px;align-items:start}
.recipe-category-list{max-height:400px;overflow:auto;border:1px solid #51412f}
.recipe-category-title{background:#302419;color:#edb959;padding:7px 10px;font:600 12px Arial,sans-serif;border-bottom:1px solid #4d3a2b}
.recipe-row{display:block;width:100%;border:0;border-bottom:1px solid #352d25;border-radius:0;background:#1b1917;color:#e8d0aa;text-shadow:none;text-align:left;font:12px Arial,sans-serif;padding:8px 10px}
.recipe-row:nth-child(even){background:#27211d}.recipe-row.selected{background:#694218;color:#ffdf90}.recipe-row:hover{background:#463020}
.recipe-row[hidden],.recipe-category[hidden]{display:none}
.recipe-detail{background:#121214;border:1px solid #55432e;min-height:160px;padding:12px;overflow-wrap:anywhere;font:13px/1.5 Arial,sans-serif}
.recipe-detail h4{color:#eec16e;font:17px Georgia,serif;margin:0 0 9px}.recipe-detail p{margin:6px 0}.recipe-detail ul{padding-left:20px}
@media(max-width:1150px){.forever-tree-grid{grid-template-columns:repeat(3,minmax(210px,1fr));overflow-x:auto}.talent-board{grid-template-rows:repeat(7,43px)}}
@media(max-width:760px){.recipe-browser{grid-template-columns:1fr}.forever-tree-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.talent-tip{width:190px}}
