*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0c0c0b;--text:#ede8de;--dim:rgba(237,232,222,.42);--faint:rgba(237,232,222,.08);--border:rgba(237,232,222,.1);--border-hi:rgba(237,232,222,.22);--copper:#b47334;--copper-dim:rgba(180,115,52,.14);--copper-text:rgba(180,115,52,.9);--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",system-ui,-apple-system,sans-serif}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text)}body{font-family:var(--sans)}.atmo-root{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}@keyframes atmo-bloom{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}.atmo-channel{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;animation:atmo-bloom .9s cubic-bezier(.4,0,.2,1) both;filter:brightness(2.2) saturate(1.4);mix-blend-mode:screen}.atmo-skills{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}@keyframes ghost-drift{0%{opacity:0;transform:translateY(0)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(-22px)}}.atmo-ghost{position:absolute;left:var(--gx);top:var(--gy);font-size:30px;color:#ede8de0e;animation:ghost-drift 12s ease-in-out infinite;animation-delay:var(--gd,0s);-webkit-user-select:none;user-select:none;pointer-events:none;line-height:1}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-size:200px;pointer-events:none;z-index:0;opacity:.025}.prog{position:fixed;top:0;left:0;right:0;height:1px;background:var(--faint);z-index:100}.prog-fill{height:100%;background:var(--copper);transition:width .8s cubic-bezier(.4,0,.2,1);width:0}header{position:fixed;top:0;left:0;right:0;padding:32px 56px;display:flex;justify-content:space-between;align-items:center;z-index:50;pointer-events:none}.brand{font-family:var(--serif);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}.step-ind{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.12em;color:var(--dim);opacity:0;transition:opacity .5s}.step-ind.show{opacity:1}.screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:100px 56px 80px;opacity:0;pointer-events:none;transition:opacity .5s cubic-bezier(.4,0,.2,1),transform .5s cubic-bezier(.4,0,.2,1);transform:translateY(14px) scale(.997);z-index:2;overflow-y:auto;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.screen.active{opacity:1;pointer-events:all;transform:none}.screen.out{opacity:0;transform:translateY(-10px) scale(.998);pointer-events:none}.screen>*:not(.screen-center){flex-shrink:0}.screen-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:100%}@keyframes optIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.opt,.ability-card{animation:optIn .42s cubic-bezier(.4,0,.2,1) both;animation-delay:calc(var(--i,0) * 36ms);animation-play-state:paused}.screen.active .opt,.screen.active .ability-card{animation-play-state:running}@keyframes cflash{0%,to{opacity:1}50%{opacity:.55}}.btn-confirm.flash{animation:cflash .28s ease}@keyframes landingPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.85;transform:scale(1.12)}}@keyframes preShimmer{0%,to{opacity:.7}50%{opacity:1}}.landing-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(180,115,52,.09) 0%,rgba(180,115,52,.03) 45%,transparent 70%);animation:landingPulse 5s ease-in-out infinite;pointer-events:none;z-index:0}.landing-pre{font-family:var(--serif);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--copper-text);margin-bottom:40px;display:flex;align-items:center;gap:20px;animation:preShimmer 5s ease-in-out infinite;position:relative;z-index:1}.landing-pre:before,.landing-pre:after{content:"";display:block;height:1px;width:44px;background:#b4733459}.landing-title{font-family:var(--serif);font-size:clamp(68px,9.5vw,152px);font-weight:300;line-height:.87;letter-spacing:-.02em;text-align:center;margin-bottom:32px;position:relative;z-index:1}.landing-title i{font-style:italic}.landing-rule{width:1px;height:52px;background:linear-gradient(to bottom,transparent,var(--border),transparent);margin:0 auto 28px}.landing-sub{font-family:var(--serif);font-size:18px;font-style:italic;font-weight:300;color:var(--dim);text-align:center;max-width:380px;line-height:1.6;margin-bottom:64px}.btn-begin{all:unset;cursor:pointer;font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--text);padding:16px 44px;border:1px solid var(--border);display:inline-flex;align-items:center;gap:16px;transition:border-color .3s,color .3s,gap .3s}.btn-begin:after{content:"";display:block;width:32px;height:1px;background:currentColor;transition:width .3s}.btn-begin:hover{border-color:var(--copper);color:var(--copper);gap:22px}.btn-begin:hover:after{width:52px}.name-prompt{font-family:var(--serif);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--copper-text);margin-bottom:52px;display:flex;align-items:center;gap:20px}.name-prompt:before,.name-prompt:after{content:"";display:block;height:1px;width:28px;background:#b4733447}.name-display{font-family:var(--serif);font-size:clamp(52px,8vw,124px);font-weight:300;line-height:.88;letter-spacing:-.02em;text-align:center;min-height:1.1em;margin-bottom:48px;transition:color .3s}.name-display.empty{color:var(--faint)}.name-input-wrap{position:relative;width:100%;max-width:520px;margin-bottom:48px}.name-input{all:unset;width:100%;font-family:var(--sans);font-size:15px;font-weight:300;letter-spacing:.06em;color:var(--text);padding:16px 0;border-bottom:1px solid var(--border);text-align:center;transition:border-color .3s;caret-color:var(--copper)}.name-input::placeholder{color:var(--dim)}.name-input:focus{border-color:#b4733480}.name-underline{position:absolute;bottom:0;left:50%;transform:translate(-50%);height:1px;width:0;background:var(--copper);transition:width .4s cubic-bezier(.4,0,.2,1)}.name-input:focus~.name-underline{width:100%}.step-kicker{font-family:var(--serif);font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--copper-text);margin-bottom:40px;display:flex;align-items:center;gap:16px}.step-kicker:before,.step-kicker:after{content:"";display:block;height:1px;width:24px;background:#b4733440}.hero-name{font-family:var(--serif);font-size:clamp(48px,7vw,108px);font-weight:300;line-height:1;letter-spacing:-.02em;text-align:center;padding-top:.1em;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s,max-height .45s,margin .45s;min-height:0;max-height:0;overflow:hidden;pointer-events:none;margin-bottom:0}.hero-name.show{opacity:1;transform:none;min-height:auto;max-height:260px;margin-bottom:24px}.hero-tag{font-family:var(--serif);font-size:16px;font-style:italic;font-weight:300;color:var(--dim);text-align:center;opacity:0;transition:opacity .4s .1s;max-height:0;overflow:hidden;margin-bottom:0}.hero-tag.show{opacity:1;max-height:80px;margin-bottom:28px}.option-grid{display:grid;gap:1px;background:var(--faint);border:1px solid var(--faint);border-radius:6px;overflow:hidden;width:100%;max-width:880px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.opt{all:unset;cursor:pointer;background:var(--bg);padding:22px;display:flex;flex-direction:column;gap:6px;position:relative;transition:background .2s;overflow:hidden}.opt:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--copper);transform:scaleY(0);transform-origin:bottom;transition:transform .28s cubic-bezier(.4,0,.2,1)}.opt:after{content:"";position:absolute;top:0;left:-100%;bottom:0;width:60%;background:linear-gradient(90deg,transparent,rgba(180,115,52,.055),transparent);transition:left 0s}.opt:hover:after{left:160%;transition:left .55s ease}.opt:hover,.opt.on{background:#ede8de0a}.opt:hover:before,.opt.on:before{transform:scaleY(1)}.opt.on{background:var(--copper-dim)}.opt.on:after{display:none}.opt-name{font-family:var(--serif);font-size:19px;color:var(--text);transition:color .2s;letter-spacing:.01em}.opt.on .opt-name{color:var(--copper-text)}.opt-meta{font-family:var(--sans);font-size:11px;font-weight:300;color:var(--dim);letter-spacing:.06em;display:flex;gap:8px;flex-wrap:wrap}.opt-meta span+span:before{content:"·";margin-right:8px;opacity:.4}.detail{width:100%;max-width:880px;border-top:1px solid var(--faint);padding-top:22px;margin-top:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .4s,transform .4s}.detail.show{opacity:1;transform:none;pointer-events:all}.detail-facts{display:flex;gap:24px;flex-wrap:wrap}.fact{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);display:flex;flex-direction:column;gap:4px}.fact strong{font-family:var(--serif);font-size:18px;font-weight:400;color:var(--text);letter-spacing:0;text-transform:none}.btn-confirm{all:unset;cursor:pointer;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;background:var(--copper);color:var(--bg);padding:15px 40px;white-space:nowrap;transition:opacity .25s;flex-shrink:0}.btn-confirm:hover{opacity:.84}.btn-confirm.dim{opacity:.35;cursor:not-allowed}.btn-confirm.dim:hover{opacity:.35}.ua-class-section{width:100%;max-width:880px;margin-top:2px}.ua-class-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.22em;text-transform:uppercase;color:#b4733480;margin-bottom:2px;padding-left:2px}.class-grid-ua{display:flex;width:100%;max-width:880px}.class-grid-ua .opt{flex:0 0 calc(25% - 1px);border:1px solid var(--faint);border-radius:4px}.skill-picks{width:100%;max-width:880px;border-top:1px solid var(--faint);padding-top:16px;margin-top:10px;max-height:0;opacity:0;overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .3s .05s,margin .38s}.skill-picks.show{max-height:none;opacity:1;overflow:visible}.skill-picks-label{font-family:var(--serif);font-size:13px;letter-spacing:.25em;text-transform:uppercase;color:var(--copper-text);margin-bottom:12px}.skill-list{display:flex;flex-wrap:wrap;gap:6px}.skill-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.1em;border:1px solid var(--faint);padding:5px 12px;color:var(--dim);transition:border-color .18s,color .18s,background .18s}.skill-btn:hover{color:var(--text);border-color:var(--border)}.skill-btn.on{border-color:#b4733480;background:var(--copper-dim);color:var(--copper-text)}.skill-stat{font-family:var(--sans);font-size:8px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-left:5px;opacity:.65}.skill-btn.on .skill-stat{color:var(--copper-text);opacity:.8}.skill-btn.locked{opacity:.38;pointer-events:none;border-color:#ede8de0f;cursor:default}.skill-have{margin-bottom:10px}.skill-have-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);opacity:.45;margin-bottom:6px}.skill-ref{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.08em;color:var(--dim);text-align:center;margin-bottom:4px;line-height:1.7;max-width:640px}.skill-ref-sep{margin:0 7px;opacity:.28}.skill-ref-stat{color:var(--copper-text);opacity:.75;font-size:9px;letter-spacing:.06em}.assign-section{width:100%;max-width:920px;display:flex;flex-direction:column;gap:20px;align-items:center}.assign-method-label{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.24em;text-transform:uppercase;color:var(--copper-text)}.stat-grid-6{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;width:100%}.stat-grid-32{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.stat-box{all:unset;cursor:pointer;border:1px solid var(--border);padding:26px 10px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;transition:border-color .2s,background .2s}.stat-box.primary{border-color:#b4733466}.stat-box.filled{border-color:var(--border-hi)}.stat-box.active-slot{border-color:var(--copper);background:var(--copper-dim)}.stat-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}.stat-score{font-family:var(--serif);font-size:52px;font-weight:300;color:var(--text);line-height:1;transition:color .2s}.stat-box.primary .stat-score{color:var(--copper-text)}.stat-score.empty{color:#ede8de1f;font-size:26px}.stat-mod{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--dim);min-height:16px}.stat-mod.pos{color:var(--copper-text)}.score-pool{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.score-chip{all:unset;cursor:pointer;font-family:var(--serif);font-size:20px;font-weight:300;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--text);transition:border-color .18s,background .18s,color .18s,opacity .18s}.score-chip:hover{border-color:var(--border-hi)}.score-chip.selected{border-color:var(--copper);background:var(--copper-dim);color:var(--copper-text)}.score-chip.used{opacity:.22;pointer-events:none}.pb-row{display:flex;align-items:center;gap:6px;margin-top:2px}.pb-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:13px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid var(--faint);color:var(--dim);transition:color .15s,border-color .15s}.pb-btn:hover:not(:disabled){color:var(--text);border-color:var(--border)}.pb-btn:disabled{opacity:.2;pointer-events:none}.pb-budget{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);text-align:center}.pb-budget strong{font-family:var(--serif);font-size:22px;font-weight:300;color:var(--text)}.reroll-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:9px;letter-spacing:.14em;border:1px solid var(--faint);padding:2px 6px;color:var(--dim);transition:color .15s,border-color .15s;margin-top:3px}.reroll-btn:hover{color:var(--copper-text);border-color:#b473344d}.roll-all-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);padding:12px 28px;border:1px solid var(--border);transition:color .2s,border-color .2s}.roll-all-btn:hover{color:var(--copper-text);border-color:#b4733466}.assign-confirm-row{width:100%;display:flex;justify-content:flex-end;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.assign-confirm-row.show{opacity:1;transform:none;pointer-events:all}.equip-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto;gap:10px;width:100%;max-width:840px}.equip-card{all:unset;cursor:pointer;border:1px solid var(--border);padding:28px;display:flex;flex-direction:column;gap:10px;position:relative;transition:border-color .25s,background .25s}.equip-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--copper);transform:scaleY(0);transform-origin:bottom;transition:transform .28s cubic-bezier(.4,0,.2,1)}.equip-card:hover,.equip-card.on{border-color:var(--border-hi);background:#ede8de08}.equip-card:hover:before,.equip-card.on:before{transform:scaleY(1)}.equip-card.on{border-color:#b4733480;background:var(--copper-dim)}.equip-card.feature{grid-row:1/3}.equip-card-tag{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-text)}.equip-card-name{font-family:var(--serif);font-size:22px;color:var(--text);letter-spacing:-.01em}.equip-card.on .equip-card-name{color:var(--copper-text)}.equip-card-items{display:flex;flex-direction:column;gap:5px;margin-top:4px}.equip-card-item{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--dim);display:flex;gap:8px;align-items:baseline}.equip-card-item:before{content:"·";color:#b4733466;flex-shrink:0}.equip-confirm-row{width:100%;max-width:840px;margin-top:16px;display:flex;justify-content:flex-end;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.equip-confirm-row.show{opacity:1;transform:none;pointer-events:all}.ability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:760px}.ability-card{all:unset;cursor:pointer;border:1px solid var(--border);padding:32px 28px;display:flex;flex-direction:column;gap:12px;position:relative;transition:border-color .25s,background .25s}.ability-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--copper);transform:scaleY(0);transform-origin:bottom;transition:transform .25s cubic-bezier(.4,0,.2,1)}.ability-card:hover,.ability-card.on{border-color:var(--border-hi);background:#ede8de08}.ability-card:hover:before,.ability-card.on:before{transform:scaleY(1)}.ability-card.on{border-color:#b4733480;background:var(--copper-dim)}.ability-card-name{font-family:var(--serif);font-size:24px;color:var(--text);letter-spacing:-.01em}.ability-card.on .ability-card-name{color:var(--copper-text)}.ability-card-scores{font-family:var(--serif);font-size:14px;font-weight:300;color:var(--dim);font-style:italic}.ability-card-note{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--dim);line-height:1.65}.ability-confirm-row{width:100%;max-width:760px;margin-top:20px;display:flex;justify-content:flex-end;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.ability-confirm-row.show{opacity:1;transform:none;pointer-events:all}.spell-paths{display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr;gap:10px;width:100%;max-width:840px}.spell-path{all:unset;cursor:pointer;border:1px solid var(--border);padding:28px;display:flex;flex-direction:column;gap:10px;position:relative;transition:border-color .25s,background .25s;overflow:hidden}.spell-path:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--copper);transform:scaleY(0);transform-origin:bottom;transition:transform .28s cubic-bezier(.4,0,.2,1)}.spell-path:hover,.spell-path.on{border-color:var(--border-hi);background:#ede8de08}.spell-path:hover:before,.spell-path.on:before{transform:scaleY(1)}.spell-path.on{border-color:#b4733480;background:var(--copper-dim)}.spell-path.feature{grid-row:1/3}.spell-path-tag{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-text)}.spell-path-name{font-family:var(--serif);font-size:22px;letter-spacing:-.01em;color:var(--text)}.spell-path.on .spell-path-name{color:var(--copper-text)}.spell-path-note{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.06em;color:var(--dim);line-height:1.65}.spell-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.spell-chip{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.1em;border:1px solid var(--faint);padding:4px 10px;color:var(--dim);display:flex;align-items:center;gap:6px;transition:border-color .2s,color .2s}.spell-chip-role{color:#b473348c;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.spell-path.on .spell-chip{border-color:#b4733433;color:#ede8deb3}.spell-paths-confirm{width:100%;max-width:840px;margin-top:16px;display:flex;justify-content:flex-end;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.spell-paths-confirm.show{opacity:1;transform:none;pointer-events:all}.reveal{position:absolute;top:0;right:0;bottom:0;left:0;padding:72px 0 60px}.reveal-identity{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;width:min(580px,90vw);transition:top 1.1s cubic-bezier(.5,0,.2,1),left 1.1s cubic-bezier(.5,0,.2,1),transform 1.1s cubic-bezier(.5,0,.2,1),width 1.1s cubic-bezier(.5,0,.2,1)}.reveal-identity.docked{top:50%;left:25%;transform:translate(-50%,-50%);width:min(440px,42vw)}.reveal-name{font-family:var(--serif);font-size:clamp(48px,6vw,96px);font-weight:300;line-height:1;letter-spacing:-.01em;color:var(--text);font-style:italic;opacity:0;transform:translateY(8px);transition:opacity 1.2s cubic-bezier(.4,0,.2,1),transform 1.2s cubic-bezier(.4,0,.2,1),font-size .8s;margin-bottom:14px}.reveal-name.show{opacity:1;transform:none}.reveal-identity.docked .reveal-name{font-size:clamp(40px,4.5vw,72px)}.reveal-subtitle{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.32em;text-transform:uppercase;color:var(--dim);opacity:0;transition:opacity .8s;margin-bottom:44px}.reveal-subtitle.show{opacity:1}.reveal-stats{display:flex;gap:clamp(20px,3vw,40px);opacity:0;transition:opacity .9s}.reveal-stats.show{opacity:1}.reveal-stat{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:40px}.reveal-stat-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);transition:color .4s}.reveal-stat-score{font-family:var(--serif);font-size:30px;font-weight:300;line-height:1;color:var(--dim);transition:color .4s}.reveal-stat-mod{font-family:var(--sans);font-size:11px;font-weight:300;color:var(--dim);transition:color .4s;letter-spacing:.04em}.reveal-stat.secondary .reveal-stat-label{color:#b473348c}.reveal-stat.secondary .reveal-stat-score{color:#b47334a6}.reveal-stat.secondary .reveal-stat-mod{color:#b473348c}.reveal-stat.primary .reveal-stat-label{color:var(--copper-text)}.reveal-stat.primary .reveal-stat-score{color:var(--copper)}.reveal-stat.primary .reveal-stat-mod{color:var(--copper-text)}.reveal-synthesis{position:absolute;top:50%;left:72%;transform:translate(-50%,-50%);width:min(480px,42vw);display:flex;flex-direction:column;opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1);pointer-events:none}.reveal-synthesis.show{opacity:1}.reveal-ledger{font-family:var(--serif);font-size:clamp(15px,1.3vw,17px);font-weight:300;color:var(--text);line-height:1.7;white-space:pre-wrap;min-height:1.7em;opacity:0;transition:opacity .4s;text-align:left;margin-bottom:18px}.reveal-ledger.show{opacity:1}.reveal-cursor{display:inline-block;margin-left:2px;color:var(--copper);animation:reveal-cursor-pulse 1s ease-in-out infinite;text-shadow:0 0 6px rgba(180,115,52,.6),0 0 12px rgba(180,115,52,.3)}@keyframes reveal-cursor-pulse{0%,to{opacity:.4}50%{opacity:1}}.reveal-attribution{font-family:var(--serif);font-size:12px;font-style:italic;color:var(--dim);letter-spacing:.04em;opacity:0;transition:opacity .7s;text-align:left}.reveal-attribution.show{opacity:1}.reveal-actions{position:absolute;bottom:48px;left:50%;transform:translate(-50%);display:flex;gap:24px;opacity:0;transition:opacity .8s}.reveal-actions.show{opacity:1}.reveal-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.22em;text-transform:uppercase;padding:14px 28px;border:1px solid var(--border);color:var(--dim);transition:color .25s,border-color .25s,background .25s}.reveal-btn.ghost:hover{color:var(--text);border-color:var(--border-hi)}.reveal-btn.forward{color:var(--copper-text);border-color:#b4733452}.reveal-btn.forward:hover{color:var(--copper);border-color:var(--copper);background:#b473340f}.reveal-modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;z-index:340;display:flex;align-items:center;justify-content:center;animation:reveal-fade .25s ease}@keyframes reveal-fade{0%{opacity:0}to{opacity:1}}.reveal-modal{background:#0a0a09f7;border:1px solid var(--border-hi);max-width:380px;padding:32px 36px 28px;text-align:center;animation:reveal-rise .3s cubic-bezier(.4,0,.2,1)}@keyframes reveal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reveal-modal-title{font-family:var(--serif);font-size:22px;font-weight:300;color:var(--text);margin-bottom:14px}.reveal-modal-body{font-family:var(--serif);font-size:14px;font-style:italic;font-weight:300;color:var(--dim);line-height:1.5;margin-bottom:24px}.reveal-modal-actions{display:flex;gap:14px;justify-content:center}.sheet-placeholder{padding:80px 40px;text-align:center}.sheet-placeholder-kicker{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.32em;text-transform:uppercase;color:var(--copper-text);margin-bottom:18px}.sheet-placeholder-name{font-family:var(--serif);font-size:clamp(36px,5vw,64px);font-style:italic;font-weight:300;color:var(--text);margin-bottom:8px}.sheet-placeholder-meta{font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);margin-bottom:48px}.sheet-placeholder-body{max-width:520px;margin:0 auto 40px;font-family:var(--serif);font-size:16px;line-height:1.6;color:var(--text)}.sheet-placeholder-body p{margin-bottom:14px}.sheet-placeholder-quiet{color:var(--dim);font-style:italic;font-size:14px}.back{all:unset;cursor:pointer;position:fixed;top:88px;left:56px;font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);opacity:0;pointer-events:none;transition:opacity .4s,color .2s;z-index:250;display:flex;align-items:center;gap:8px}.back:before{content:"←";font-size:13px}.back.show{opacity:1;pointer-events:all}.back:hover{color:var(--copper-text)}.brand-wrap{position:relative;pointer-events:all}.brand{all:unset;cursor:default;font-family:var(--serif);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);transition:color .3s;display:flex;align-items:center;gap:10px}.brand:after{content:"";display:block;width:4px;height:4px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .3s;opacity:.4}.brand-wrap:hover .brand{color:var(--copper-text)}.brand-wrap:hover .brand:after{transform:rotate(225deg) translateY(-2px)}.brand-drop{position:absolute;top:100%;left:0;padding-top:8px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .3s ease,transform .3s ease;z-index:200}.brand-drop-inner{background:#0a0a09f7;border:1px solid var(--border);min-width:172px}.brand-wrap:hover .brand-drop{opacity:1;transform:none;pointer-events:all}.brand-drop-item{all:unset;cursor:pointer;display:block;width:100%;font-family:var(--sans);font-size:11px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:14px 20px;transition:color .18s,background .18s;box-sizing:border-box}.brand-drop-item:hover{color:var(--text);background:var(--faint)}.brand-drop-item.danger:hover{color:var(--copper-text)}.brand-drop-sep{height:1px;background:var(--faint);margin:0}.grid-5{grid-template-columns:repeat(5,1fr)}.subclass-picks{width:100%;max-width:880px;border-top:1px solid var(--faint);padding-top:16px;margin-top:10px;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s .05s,margin .4s}.subclass-picks.show{max-height:none;opacity:1;overflow:visible}.subclass-picks-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:16px}.subclass-picks-label{font-family:var(--serif);font-size:13px;letter-spacing:.25em;text-transform:uppercase;color:var(--copper-text)}.ua-toggle{display:flex;gap:2px;flex-shrink:0}.ua-toggle-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.18em;text-transform:uppercase;padding:5px 14px;border:1px solid var(--faint);color:var(--dim);transition:color .18s,border-color .18s,background .18s}.ua-toggle-btn.on{border-color:#b4733466;background:var(--copper-dim);color:var(--copper-text)}.subclass-grid{display:grid;gap:1px;background:var(--faint);border:1px solid var(--faint);border-radius:4px;overflow:hidden;width:100%}.subclass-opt{all:unset;cursor:pointer;background:var(--bg);padding:16px 16px 14px;display:flex;flex-direction:column;gap:5px;position:relative;transition:background .2s}.subclass-opt:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--copper);transform:scaleY(0);transform-origin:bottom;transition:transform .28s cubic-bezier(.4,0,.2,1)}.subclass-opt:hover,.subclass-opt.on{background:#ede8de0a}.subclass-opt:hover:before,.subclass-opt.on:before{transform:scaleY(1)}.subclass-opt.on{background:var(--copper-dim)}.subclass-opt-name{font-family:var(--serif);font-size:15px;color:var(--text);letter-spacing:.01em;line-height:1.2}.subclass-opt.on .subclass-opt-name{color:var(--copper-text)}.subclass-opt-tag{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.06em;color:var(--dim);line-height:1.5}.subclass-pending{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.14em;color:var(--dim);opacity:.5;padding:8px 0}.opt-badge{font-family:var(--sans);font-size:8px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;margin-top:3px;display:inline-block;border:1px solid rgba(180,115,52,.28);color:#b47334a6;align-self:flex-start}.opt-badge.setting{border-color:#ede8de24;color:#ede8de61}.opt-ua-tag{font-family:var(--sans);font-size:8px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;padding:1px 5px;border:1px solid rgba(180,115,52,.28);color:#b47334a6;margin-left:2px}.subspecies-picks{width:100%;max-width:880px;border-top:1px solid var(--faint);padding-top:16px;margin-top:10px;max-height:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s .05s,margin .4s}.subspecies-picks.show{max-height:none;opacity:1;overflow:visible}.subspecies-picks-label{font-family:var(--serif);font-size:13px;letter-spacing:.25em;text-transform:uppercase;color:var(--copper-text);margin-bottom:12px}.level-strip{width:100%;max-width:880px;display:flex;align-items:center;gap:0;max-height:0;opacity:0;overflow:hidden;margin-bottom:0;transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .35s .05s,margin .38s}.level-strip.show{max-height:52px;opacity:1;margin-bottom:12px}.level-strip-label{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);white-space:nowrap;margin-right:18px;flex-shrink:0}.lvl-num{all:unset;cursor:pointer;font-family:var(--serif);font-size:13px;font-weight:300;color:var(--dim);width:32px;height:36px;display:flex;align-items:center;justify-content:center;transition:color .16s;position:relative;flex-shrink:0}.lvl-num:hover{color:var(--text)}.lvl-num.on{color:var(--copper-text)}.lvl-num.on:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:12px;height:1px;background:var(--copper)}.lvl-num.milestone{color:#ede8de8c}.lvl-num.milestone.on{color:var(--copper-text)}.feat-intro{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:28px;text-align:center}.feat-slots{width:100%;max-width:880px;display:flex;flex-direction:column;gap:10px}.feat-slot{border:1px solid var(--border);padding:20px 24px;display:flex;flex-direction:column;gap:14px;transition:border-color .2s}.feat-slot.configured{border-color:#b4733466}.feat-slot-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}.feat-mode-tabs{display:flex;gap:2px}.feat-mode-tab{all:unset;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;padding:7px 16px;border:1px solid var(--faint);color:var(--dim);transition:color .18s,border-color .18s,background .18s}.feat-mode-tab.on{border-color:#b4733466;background:var(--copper-dim);color:var(--copper-text)}.feat-stat-row{display:flex;gap:6px;flex-wrap:wrap}.feat-stat-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.18em;text-transform:uppercase;padding:7px 14px;border:1px solid var(--faint);color:var(--dim);transition:color .18s,border-color .18s,background .18s}.feat-stat-btn:hover{color:var(--text);border-color:var(--border)}.feat-stat-btn.on{border-color:#b4733480;background:var(--copper-dim);color:var(--copper-text)}.feat-stat-btn.disabled{opacity:.2;pointer-events:none}.feat-stat-note{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.08em;color:var(--copper-text);opacity:.7}.feat-cat-tabs{display:flex;gap:2px;margin-bottom:10px}.feat-list{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.feat-list::-webkit-scrollbar{display:none}.feat-list-item{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--faint);transition:border-color .18s,background .18s}.feat-list-item:hover{border-color:var(--border);background:#ede8de08}.feat-list-item.on{border-color:#b4733473;background:var(--copper-dim)}.feat-list-name{font-family:var(--serif);font-size:16px;color:var(--text)}.feat-list-item.on .feat-list-name{color:var(--copper-text)}.feat-list-tag{font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.06em;color:var(--dim)}.feat-prereq{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);opacity:.5}.feat-confirm-row{width:100%;max-width:880px;margin-top:16px;display:flex;justify-content:flex-end;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.feat-confirm-row.show{opacity:1;transform:none;pointer-events:all}.name-roll-btn{all:unset;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);padding:10px 22px;border:1px solid var(--border);transition:color .2s,border-color .2s;margin-bottom:32px}.name-roll-btn:hover{color:var(--copper-text);border-color:#b4733466}.sheet-tab{all:unset;cursor:pointer;position:fixed;top:50%;right:0;transform:translateY(-50%);font-family:var(--sans);font-size:10px;font-weight:300;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);padding:18px 10px;border:1px solid var(--border);border-right:none;background:#0a0a09b3;writing-mode:vertical-rl;transition:color .2s,border-color .2s,background .2s;z-index:260}.sheet-tab:hover{color:var(--copper-text);border-color:#b4733466;background:#0a0a09eb}.sheet-tab.on{color:var(--copper-text);border-color:#b4733480}.sheet-tab-label{display:block}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000006b;z-index:270;animation:sheet-fade .25s ease}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.sheet-panel{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:88vw;background:#0a0a09f7;border-left:1px solid var(--border-hi);z-index:280;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.sheet-panel.open{transform:translate(0)}.sheet-panel-head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 18px;border-bottom:1px solid var(--border);font-family:var(--serif);font-size:13px;letter-spacing:.04em;color:var(--copper-text);font-style:italic}.sheet-close{all:unset;cursor:pointer;font-size:22px;line-height:1;color:var(--dim);padding:0 4px;transition:color .2s}.sheet-close:hover{color:var(--text)}.sheet-panel-body{flex:1;overflow-y:auto;padding:14px 0}.sheet-empty{padding:20px 26px;color:var(--dim);font-size:12px;font-style:italic}.sheet-row{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box;padding:12px 26px;border-left:2px solid transparent;transition:background .18s,border-color .18s}.sheet-row:hover:not(:disabled){background:var(--faint);border-left-color:var(--copper)}.sheet-row:disabled{cursor:default;opacity:.55}.sheet-row-label{font-family:var(--sans);font-size:9px;font-weight:300;letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}.sheet-row-value{font-family:var(--serif);font-size:15px;color:var(--text);line-height:1.32}
