@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101612;--panel:#151d18;--line:#d9c18c33;--gold:#e3c58b;--muted:#a6b0a4;--text:#f5f0df}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:5px}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}header{height:90px;padding:0 4%;display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line);background:#101612;position:relative;z-index:20}.brand{font-size:22px;font-weight:700;letter-spacing:3px;display:grid;grid-template-columns:40px auto;column-gap:13px;align-items:center}.brand-icon{grid-row:span 2;display:grid;place-items:center;color:var(--gold);border:1px solid var(--gold);height:42px;font:700 32px Georgia;transform:rotate(-5deg)}.brand-sub{font-size:9px;letter-spacing:5px;color:var(--gold);margin-top:5px}nav{display:flex;gap:34px;margin:auto;font-size:14px}nav a{padding:34px 0;color:#bfc5ba;position:relative}nav a:hover,nav a.active{color:var(--gold)}nav a.active:after{content:'';position:absolute;height:2px;background:var(--gold);bottom:0;left:0;right:0}.demo{font-size:11px;letter-spacing:1.5px;border:1px solid var(--line);border-radius:4px;padding:9px 12px;color:var(--gold)}.home{min-height:calc(100svh - 90px);position:relative;display:flex;align-items:center;overflow:hidden;background:#162317 url('reference.png') center/cover}.home:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#08130ff5 0%,#09130fdc 28%,#101b1255 70%,#0c171922),linear-gradient(0deg,#101612,transparent 35%)}.intro{position:relative;max-width:730px;padding:7vh 7% 130px}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;font-weight:600;display:block}.intro h1{font:600 clamp(58px,6.8vw,100px)/.98 'Cormorant Garamond',Georgia,serif;letter-spacing:-2px;margin:28px 0}.intro h1 em{font-style:normal;color:var(--gold)}.intro p{color:#c6cdbe;line-height:1.8;max-width:405px;font-size:17px}.actions{display:flex;gap:14px;margin-top:32px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;padding:15px 23px;border-radius:4px;border:1px solid var(--gold);background:var(--gold);color:#202419;font-weight:700;font-size:14px;transition:.2s}.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn.secondary{background:#122018b3;color:var(--text);border-color:#d8d8bc55}.home-bottom{position:absolute;bottom:28px;left:7%;right:5%;display:flex;justify-content:space-between;gap:24px;color:#b6c0ad;font-size:12px}.home-bottom span{display:block;color:var(--gold);font-size:16px;margin-bottom:5px}.realm-tag{position:absolute;right:8%;bottom:20%;font-family:'Cormorant Garamond',serif;font-size:30px;text-shadow:0 2px 5px #000}.realm-tag small{display:block;font:10px 'DM Sans';letter-spacing:3px;color:#ede8d4;margin-bottom:8px}.page{max-width:1150px;margin:auto;padding:56px 36px}.page h1{font:600 58px/1.05 'Cormorant Garamond',Georgia;margin:15px 0}.lead{color:var(--muted);line-height:1.7;max-width:650px}.hidden{display:none!important}
/* A class that sets `display` beats the browser's own [hidden] rule, so elements toggled
   with .hidden = true stayed on screen — the launch preview's placeholder sat on top of the
   rendered character. Anything given a display here would hit the same trap. */
[hidden]{display:none!important}@media(max-width:700px){header{height:110px;padding:15px 20px;flex-wrap:wrap;gap:12px}.brand{font-size:17px}.brand-sub{font-size:8px}.brand-icon{height:33px;font-size:25px}nav{order:3;width:100%;gap:24px;justify-content:center;font-size:12px}nav a{padding:3px 0}.demo{margin-left:auto;font-size:9px;padding:7px}.home{min-height:calc(100svh - 110px);background-position:60%}.intro{padding:50px 7% 150px}.intro h1{font-size:66px}.home-bottom{font-size:10px;gap:10px}.home-bottom span{font-size:13px}.realm-tag{display:none}.actions{flex-wrap:wrap}.page{padding:35px 22px}.page h1{font-size:46px}}

.home{background-image:url('world.png');background-position:62% 44%}.world{height:calc(100svh - 90px);position:relative;overflow:hidden;background:#182c27}#viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}#terrain{width:1536px;height:1024px;position:absolute;transform-origin:0 0;will-change:transform}#terrain>img{width:100%;height:100%;pointer-events:none;user-select:none}.panel{background:linear-gradient(135deg,#17221cf5,#101911f2);border:1px solid #d4c18b50;box-shadow:0 6px 25px #0004;border-radius:6px}.world-title{position:absolute;top:25px;left:28px;padding:20px 24px;pointer-events:none}.world-title .eyebrow{font-size:10px}.world-title h1{font:600 30px 'Cormorant Garamond',Georgia;margin:8px 0}.world-title p{font-size:12px;color:#c1caba;margin:0}.regionbar{position:absolute;top:25px;left:365px;right:315px;display:flex;flex-wrap:wrap;gap:5px}.regionbar button{background:#142019df;border:1px solid #d2c49150;color:#dedfcf;font-size:12px;padding:9px 12px;border-radius:4px}.regionbar button:hover,.regionbar button.selected{background:var(--gold);color:#1b261b}.inspector{position:absolute;right:24px;top:25px;width:266px;padding:21px}.inspector .eyebrow{font-size:10px;letter-spacing:1.6px}.inspector h2{font:600 29px/1.1 'Cormorant Garamond',Georgia;margin:15px 0}.inspector p{font-size:13px;line-height:1.6;color:#bcc5b5}.sprite{display:block;width:88px;height:125px;background-image:url('characters.png');background-repeat:no-repeat;background-size:auto 125px;filter:drop-shadow(0 5px 3px #0005)}.s0{background-position:-4px center;width:86px}.s1{width:121px;background-position:-82px center}.s2{width:84px;background-position:-204px center}.s3{width:84px;background-position:-291px center}.sample-sprite{display:flex;justify-content:center;margin:15px 0}.text-link{color:var(--gold);font-size:12px;border-bottom:1px solid var(--gold);padding-bottom:4px}.char{position:absolute;transform:translate(-50%,-90%);background:none;border:0;padding:0;width:95px;height:130px;transition:left 1.3s linear,top 1.3s linear;cursor:pointer;display:flex;flex-direction:column;align-items:center;color:#fff;isolation:isolate}.char .sprite{flex-shrink:0}.char-label{font-size:12px;background:#152217dc;border:1px solid #d2c58b6a;border-radius:3px;padding:3px 8px;font-weight:700;position:absolute;top:-13px;white-space:nowrap;z-index:2}.health{width:57px;height:5px;border:1px solid #10200e;background:#142019;position:absolute;bottom:0;border-radius:4px;overflow:hidden}.health i,.detail-health i{display:block;height:100%;background:#8ec37d;transition:width .4s}.char.chosen .char-label,.char:hover .char-label{background:var(--gold);color:#1a261c}.char.chosen .sprite,.char:hover .sprite{filter:drop-shadow(0 0 6px #e3c58b)}.char.resting{opacity:.6}.detail-top{display:flex;align-items:center;justify-content:space-between}#clear{border:0;color:#c2ccb9;background:none;font-size:23px}.identity{display:flex;align-items:center;gap:8px;margin-top:4px}.identity h2{font-size:26px;overflow-wrap:anywhere;margin:0 0 6px}.portrait{width:60px;height:82px;overflow:hidden;flex-shrink:0}.portrait .sprite{transform:scale(.64);transform-origin:top left}.ticker{font-size:12px;color:var(--gold)}.hp-label{display:flex;justify-content:space-between;font-size:11px;color:#c7d0bd;margin-top:15px}.detail-health{height:6px;background:#344237;border-radius:3px;overflow:hidden;margin:9px 0 18px}.inspector dl{margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.inspector dt{font-size:11px;color:#aeb7a3;margin-bottom:5px}.inspector dd{font-size:14px;margin:0}.thought{border-left:2px solid var(--gold);padding-left:11px}.thought span{font-size:9px;letter-spacing:1.5px;color:var(--gold)}.thought p{margin:6px 0;font-size:12px}.terrain-info{border-top:1px solid var(--line);margin-top:15px;padding-top:12px;font-size:12px}.terrain-info p{font-size:11px;margin:5px 0 10px}.subtle{color:#8f9d87;font-size:11px}.activity{position:absolute;bottom:25px;left:28px;width:340px;padding:16px 18px}.panel-title{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;color:var(--gold)}.panel-title button{font-size:11px;color:#c7d2bd;border:1px solid var(--line);background:transparent;border-radius:3px;padding:4px 9px}.activity p{font-size:11px;margin:12px 0 0;line-height:1.5;color:#d2d7c9}.activity p span{font-size:8px;color:#90a987;display:inline-block;width:47px;letter-spacing:1px}.map-help{position:absolute;bottom:28px;left:395px;color:white;text-shadow:0 2px 5px #000;font-size:11px;background:#142019c9;border-radius:4px;padding:10px}.map-tools{position:absolute;bottom:173px;right:24px;display:flex;align-items:center;overflow:hidden}.map-tools button{background:transparent;color:#e8d7af;border:0;border-right:1px solid var(--line);height:37px;width:41px;font-size:23px}.map-tools span{font-size:11px;padding:0 12px}.minimap{position:absolute;right:24px;bottom:25px;width:200px;height:133px;border:2px solid #c9b47c;border-radius:4px;padding:0;overflow:hidden;background:#172219}.minimap img{width:100%;height:100%;object-fit:cover;pointer-events:none}.minimap small{position:absolute;bottom:0;left:0;right:0;background:#101a15cf;font-size:8px;letter-spacing:2px;padding:4px;color:#efdfbd}#mini-box{position:absolute;border:1px solid #fff2b7;background:#ffdc7212;pointer-events:none}
.launch-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:70px;margin-top:40px}.section-number{color:var(--gold);font-size:12px;letter-spacing:1px;display:flex;gap:14px;align-items:center;margin:28px 0 20px}.section-number:first-child{margin-top:0}.section-number span{font-size:17px;color:var(--text);letter-spacing:0}form label{display:block;color:#b8c2b1;font-size:14px}input:not([type=radio]),select{display:block;width:100%;padding:14px;color:#edf0df;background:#1b251e;border:1px solid #b7c3a732;border-radius:4px;margin:9px 0 19px}input::placeholder{color:#73826e}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.class-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.class-option{position:relative;text-align:center;background:#19251e;border:1px solid #a2b09533;border-radius:4px;padding:12px 2px;font-size:12px;cursor:pointer;overflow:hidden}.class-option input{position:absolute;top:9px;left:9px;accent-color:var(--gold);z-index:2}.class-option:has(input:checked){border-color:var(--gold);background:#283021}.class-option .sprite{transform:scale(.72);transform-origin:center;margin:-12px auto -16px}.form-note{font-size:13px;color:#97a68e;line-height:1.6;margin:25px 0 18px}.character-preview{align-self:start;text-align:center;padding:34px 30px;position:sticky;top:25px;background:radial-gradient(ellipse at 50% 35%,#4f593235,transparent 60%),#152019}.character-preview .eyebrow{font-size:11px}.character-preview #preview-sprite{height:230px;display:flex;justify-content:center;align-items:center}.character-preview #preview-sprite .sprite{transform:scale(1.75)}.character-preview h2{font:600 35px 'Cormorant Garamond',Georgia;margin:10px 0;overflow-wrap:anywhere}.character-preview #preview-symbol{color:var(--gold);font-size:14px}.character-preview .detail-health{margin:25px 0 10px}.character-preview p{font-size:12px;color:#a9bf9d}.preview-traits{margin:30px 0;display:flex;flex-direction:column;gap:13px;font-size:14px;color:#d1d9c7}.character-preview small{font-size:12px;color:#8d9e84}#form-error{color:#ffa98c;font-size:14px}.faq-page{max-width:900px}.faq-list{margin:40px 0}.faq-list details{border-top:1px solid var(--line);padding:23px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:17px;gap:20px;list-style:none}summary::-webkit-details-marker{display:none}summary span{font-size:25px;color:var(--gold)}details[open] summary span{transform:rotate(45deg)}details p{font-size:16px;line-height:1.85;color:#aebca5;max-width:690px}
@media(max-width:1050px){.regionbar{top:158px;left:28px;right:320px}.map-help{display:none}.launch-grid{gap:30px}.world-title{max-width:310px}.inspector{width:250px}}@media(max-width:700px){.world{height:calc(100svh - 110px)}.world-title{top:12px;left:12px;padding:12px 15px}.world-title h1{font-size:24px;margin:5px 0}.world-title p{font-size:10px}.regionbar{top:111px;left:12px;right:12px;flex-wrap:nowrap;overflow:auto;scrollbar-width:none}.regionbar button{white-space:nowrap;font-size:12px;padding:8px}.inspector{top:auto;bottom:12px;right:12px;width:205px;padding:14px;max-height:48%;overflow:auto}.inspector h2{font-size:24px}.inspector .sample-sprite{display:none}.inspector .text-link{font-size:12px}.inspector>p{font-size:12px}.activity{left:12px;bottom:12px;width:calc(100% - 241px);min-width:112px;padding:11px}.activity p{font-size:12px}.activity p:not(:first-child){display:none}.panel-title{font-size:10px;letter-spacing:1px;flex-wrap:wrap;gap:8px}.activity p span{display:block}.minimap{width:106px;height:71px;bottom:auto;top:158px;right:12px}.map-tools{bottom:auto;top:238px;right:12px}.map-tools button{width:27px;height:30px;font-size:19px}.map-tools span{padding:0 5px;font-size:10px}.launch-grid{grid-template-columns:1fr;gap:30px}.character-preview{position:static;grid-row:1;padding:20px}.character-preview #preview-sprite{height:150px}.character-preview #preview-sprite .sprite{transform:scale(1.1)}.preview-traits{display:none}.character-preview .detail-health{max-width:240px;margin:20px auto 10px}.character-preview h2{font-size:29px}.character-preview small{display:none}.fields{gap:12px}.class-option{font-size:12px}.class-option .sprite{transform:scale(.6);margin-left:calc(50% - 44px)}.faq-list{margin:25px 0}.faq-list summary{font-size:16px}.home .intro p{font-size:15px}.home-bottom>div:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- 3D world, fights, customizer (added with the Three.js build) ---------- */
#stage,#arena-stage{position:absolute;inset:0;background:#182c27}.stage-canvas{display:block;width:100%!important;height:100%!important;outline:none;touch-action:none}.stage-canvas:focus-visible{box-shadow:inset 0 0 0 2px var(--gold)}
.fx-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.world>.panel,.world>.regionbar,.world>.minimap,.world>.map-help{z-index:3}.world.fighting>.regionbar,.world.fighting>.world-title,.world.fighting>.map-help,.world.fighting>.encounter{display:none}.world.fighting>.inspector,.world.fighting>.activity{opacity:.25;pointer-events:none}.dmg{position:absolute;left:0;top:0;font:800 22px 'DM Sans';color:#fff;text-shadow:0 2px 0 #000,0 0 12px #000a;white-space:nowrap;will-change:transform}.dmg.crit{color:#ffd27a;font-size:30px}.dmg.miss{color:#c9d4c6;font-size:16px;letter-spacing:2px}.dmg.block{color:#9fc8ff}
.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#101612e6;color:#d6dccd;font-size:14px;letter-spacing:2px;text-transform:uppercase;z-index:30;text-align:center;padding:20px}.loading span{width:34px;height:34px;border:2px solid var(--gold);border-right-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.loading b{color:var(--gold);font-size:16px;letter-spacing:1px;text-transform:none}.loading p{text-transform:none;letter-spacing:0;max-width:420px;line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}
.portrait-img{width:60px;height:82px;object-fit:contain;display:block;flex-shrink:0}.portrait-img.placeholder{background:#1b251e;border-radius:6px}.sample-portraits{display:flex;justify-content:center;gap:4px;margin:14px 0}.sample-portraits .portrait-img{width:52px;height:72px}
.map-tools button{width:38px}
.minimap canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.inspector{max-height:calc(100% - 50px);overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.inspector::-webkit-scrollbar{width:0;height:0}
.stats{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 14px}.stat{display:inline-flex;flex-direction:column;align-items:center;min-width:42px;padding:5px 6px;border:1px solid #d4c18b40;border-radius:4px;background:#1b251e;font-size:9px;letter-spacing:1px;color:#aeb7a3;cursor:help}.stat b{font-size:14px;color:var(--text);letter-spacing:0}.stat.power{border-color:var(--gold);background:#2a2d1f}.stat.power b{color:var(--gold)}
dl.token{margin:0 0 10px;display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}dl.token dt{font-size:10px;color:#aeb7a3;margin-bottom:3px}dl.token dd{font-size:13px;margin:0}dd.up{color:#9ee37d}dd.down{color:#ff8c7a}dd.mint{font-family:ui-monospace,monospace;font-size:12px}
.bonding{font-size:11px;color:#c7d0bd;margin-bottom:14px}.bonding i{display:block;height:5px;background:#344237;border-radius:3px;margin-top:6px;overflow:hidden}.bonding i b{display:block;height:100%;background:linear-gradient(90deg,#8ec37d,var(--gold))}.grad{color:var(--gold);letter-spacing:1.5px;font-size:10px}
.challenge{display:flex;gap:6px;margin-top:14px}.challenge select{margin:0;padding:8px;font-size:12px;flex:1;min-width:0}.btn.small{padding:9px 13px;font-size:12px}
.encounter{position:absolute;top:95px;left:50%;transform:translateX(-50%);padding:16px 20px;width:min(420px,calc(100% - 24px));text-align:center;z-index:12;animation:drop .35s ease}@keyframes drop{from{opacity:0;transform:translate(-50%,-14px)}}.encounter .eyebrow{font-size:10px}.enc-pair{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 0}.enc-pair b{font-size:16px}.enc-pair b small{display:block;font-size:10px;color:#aeb7a3;font-weight:400;letter-spacing:1px}.enc-pair span{font:600 20px 'Cormorant Garamond',Georgia;color:var(--gold)}.enc-actions{display:flex;gap:8px;justify-content:center;margin:8px 0 6px;flex-wrap:wrap}.encounter small{font-size:11px;color:#8f9d87}.encounter>b{display:block;font-size:18px;margin-top:4px}
.hud{position:absolute;inset:0;pointer-events:none;z-index:14;display:flex;flex-direction:column;justify-content:space-between;padding:18px 20px}.hud-top{display:flex;align-items:flex-start;justify-content:center;gap:18px}.hud-side{flex:1;max-width:330px;background:#10191199;border:1px solid #d4c18b50;border-radius:6px;padding:10px 12px;display:grid;grid-template-columns:50px 1fr;gap:3px 10px;backdrop-filter:blur(6px)}.hud-side .portrait-img{grid-row:span 3;width:50px;height:68px}.hud-side.b{direction:rtl;text-align:right}.hud-side.b .hud-name,.hud-side.b small{direction:ltr}.hud-name b{display:block;font:600 20px/1.1 'Cormorant Garamond',Georgia}.hud-name span{font-size:11px;color:#c1caba}.hud-hp{height:9px;background:#2a3a2d;border-radius:4px;overflow:hidden;border:1px solid #0008}.hud-hp i{display:block;height:100%;background:linear-gradient(90deg,#8ec37d,#d7e37a);transition:width .35s ease}.hud-side.b .hud-hp i{margin-left:auto}.hud-side small{font-size:11px;color:#d2d7c9}.hud-vs{font:700 26px 'Cormorant Garamond',Georgia;color:var(--gold);text-align:center;padding-top:14px;text-shadow:0 2px 6px #000}.hud-vs small{display:block;font:10px 'DM Sans';letter-spacing:2px;color:#ede8d4;margin-top:2px}
.hud-log{align-self:center;width:min(560px,100%);display:flex;flex-direction:column-reverse;gap:4px;margin-bottom:8px}.hud-log p{margin:0;font-size:12px;background:#10191199;border-radius:4px;padding:6px 10px;color:#e4e8dc;backdrop-filter:blur(6px);animation:drop .3s ease}.hud-log p span{font-size:9px;color:var(--gold);letter-spacing:1px;margin-right:8px}.hud-log p.crit{color:#ffd27a}.hud-log p.special{color:#d9c8ff}
.hud-controls{position:absolute;right:20px;bottom:20px;display:flex;gap:6px;pointer-events:auto}.hud-controls button{font-size:11px;letter-spacing:1px;color:#e8d7af;background:#10191199;border:1px solid var(--line);border-radius:4px;padding:8px 12px}
.hud-result{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);padding:24px 34px;text-align:center;pointer-events:auto;min-width:260px;animation:drop .4s ease}.hud-result h2{font:600 40px 'Cormorant Garamond',Georgia;margin:6px 0}.hud-result p{font-size:13px;color:#bcc5b5;margin:0}.hud-result .enc-actions{margin-top:16px}
.tag{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:2px;transform-origin:50% 100%;will-change:transform;transition:opacity .3s}.tag b{font-size:9px;letter-spacing:1px;color:#f5f0dfcc;text-shadow:0 1px 3px #000,0 0 6px #000}.tag i{display:block;width:30px;height:3px;background:#0008;border-radius:2px;overflow:hidden}.tag span{display:block;height:100%;background:#8ec37d;transition:width .25s}.tag.engaged b{color:#ffd27a;background:#2a1f10cc}.tag.low span{background:#ff6a5a}.tag.peace{opacity:.45}.tag.dead{display:none}
.map-tools button.on{background:var(--gold);color:#1b261b}.btn.on{background:var(--gold);color:#202419}
.board{width:100%;border-collapse:collapse;font-size:11px;margin:12px 0 8px}.board th{font-size:9px;letter-spacing:1px;color:#8f9d87;text-align:left;font-weight:600;padding:0 4px 6px;border-bottom:1px solid var(--line)}.board td{padding:6px 4px;border-bottom:1px solid #d9c18c14;vertical-align:middle;white-space:nowrap}.board th:nth-child(5){white-space:nowrap}@media(min-width:701px){.inspector{max-height:calc(100% - 245px)}}.board tr[data-id]{cursor:pointer}.board tr[data-id]:hover td{background:#1b251e}.board td b{display:block;color:var(--gold);font-size:12px}.board td small{display:block;color:#aeb7a3;font-size:10px}.mini-hp{display:block;width:38px;height:4px;background:#2a3a2d;border-radius:2px;overflow:hidden}.mini-hp b{display:block;height:100%;background:#8ec37d}.board tr.fight td:first-child{color:#ff8c7a}.board tr.rest td:first-child{color:#9fc8ff}.board tr.fallen td{opacity:.45}.board-legend{font-size:10px;color:#8f9d87;margin:0}.board-legend span{margin:0 2px 0 8px}.board-legend .fight{color:#ff8c7a}.board-legend .rest{color:#9fc8ff}.board-legend .fallen{color:#777}.badge{font:600 8px 'DM Sans';letter-spacing:1.5px;color:#1b261b;background:var(--gold);padding:2px 5px;border-radius:3px;vertical-align:middle;margin-left:6px}
.persona{margin:0 0 14px;padding:10px 12px;border:1px solid #d4c18b40;border-radius:4px;background:#161f19}.persona-top b{font:600 17px 'Cormorant Garamond',Georgia;color:var(--gold);display:block}.persona-top span{font-size:11px;color:#aeb7a3;display:block;margin:2px 0 6px}.persona q{display:block;font-size:12px;color:#d8dcc9;font-style:italic;margin:4px 0 8px;quotes:'“' '”'}.traits{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.traits span{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:#8f9d87;cursor:help}.traits em{font-style:normal;display:block;margin-bottom:3px}.traits i{display:block;height:4px;background:#2a3a2d;border-radius:2px;overflow:hidden}.traits i b{display:block;height:100%;background:var(--gold)}
.persona-preview{margin:-8px 0 8px}.persona-preview .persona{margin:0}
.duel-hud{position:absolute;inset:0;pointer-events:none;z-index:14;padding:18px 20px}.form-error{color:#ffa98c;font-size:14px;width:100%}
/* ---- docs ---- */
/* Docs keeps its own measure rather than the wide .page one — it is read, not scanned. The
   doubled class is deliberate: modern.css sets .page{max-width:1280px} later in the cascade,
   so a lone .docs-page never won and the column ran to about 150 characters a line. Padding
   is fixed rather than a viewport percentage so the measure holds steady as the window grows. */
.page.docs-page{max-width:820px;padding-inline:clamp(22px,4vw,40px)}
/* Nine sections wrapped into ragged rows of pills. Three columns of plain links is the same
   contents in a shape you can read down. */
.docs-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px 22px;margin:30px 0 6px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.docs-nav a{font-size:13px;color:#c7d2bd;padding:6px 0;line-height:1.5}
.docs-nav a:hover{color:var(--gold)}
.docs-sec{padding:34px 0;border-bottom:1px solid var(--line)}.docs-sec h2{font:600 30px 'Cormorant Garamond',Georgia;margin:0 0 16px;color:var(--text)}.docs-sec p{line-height:1.8;color:#c3cdb9;margin:0 0 14px}.docs-sec b{color:var(--text)}.docs-sec ol,.docs-sec ul{color:#c3cdb9;line-height:1.8;padding-left:22px;margin:0 0 14px}.docs-sec li{margin-bottom:8px}.docs-sec code{background:#1b251e;border:1px solid var(--line);border-radius:3px;padding:1px 5px;font-size:13px}
/* Fixed layout, so every table on the page shares one column rhythm. Left to themselves
   the five tables auto-sized independently and their first columns came out 155, 146, 267,
   831 and 228px wide — nothing lined up, and the status table squeezed long text into the
   narrow side while the labels wasted half the row. */
.docs-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:6px 0 18px;font-size:14px}.docs-table th{text-align:left;font-size:10px;letter-spacing:1.5px;color:var(--gold);font-weight:600;padding:0 10px 8px;border-bottom:1px solid var(--line)}.docs-table td{padding:11px 10px;border-bottom:1px solid #d9c18c1c;color:#c3cdb9;line-height:1.6;vertical-align:top}.docs-table td:first-child{color:var(--text)}
.docs-table td:first-child,.docs-table th:first-child{width:28%}
.docs-table.cols3 td:first-child,.docs-table.cols3 th:first-child{width:20%}
.docs-table.cols3 td:nth-child(2),.docs-table.cols3 th:nth-child(2){width:17%}
/* th as well as td: with table-layout:fixed the header row is what sets the columns, so a
   td-only override is silently ignored. */
.docs-table.status td:first-child,.docs-table.status th:first-child{width:58%}.docs-table .yes{color:#9ee37d}.docs-table .no{color:#ff8c7a}.docs-table .part{color:#f2c94c}
.callout{border:1px solid var(--gold);border-left-width:4px;border-radius:4px;background:#2a2d1f;padding:14px 18px;margin:16px 0;font-size:14px;line-height:1.7;color:#d8dcc9}.callout.warn{border-color:#ff8c7a;background:#2d1f1d}.callout.warn b{color:#ff8c7a}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0;padding:18px;background:#161f19;border:1px solid var(--line);border-radius:6px}.chain span{font-weight:700;color:#8f9d87;background:#1b251e;border:1px solid var(--line);border-radius:4px;padding:7px 12px;text-decoration:line-through}.chain span.alive{color:#1b261b;background:var(--gold);border-color:var(--gold);text-decoration:none}.chain i{font-style:normal;font-size:11px;color:#8f9d87;letter-spacing:1px}.chain small{width:100%;color:#8f9d87;font-size:12px;margin-top:4px}
.split-bar{display:flex;height:54px;border-radius:5px;overflow:hidden;margin:6px 0 18px;border:1px solid var(--line)}.split-bar i{display:flex;flex-direction:column;align-items:center;justify-content:center;font-style:normal;font-size:10px;letter-spacing:1px;color:#1b261b;gap:2px}.split-bar i b{font-size:16px}.split-bar .buyback{background:var(--gold)}.split-bar .treasury{background:#8ec37d}.split-bar .creator{background:#9fc8ff}
.risks li{color:#c3cdb9}.docs-foot{font-size:12px;color:#8f9d87;padding:22px 0 50px}
/* ---- body creator: pack / build / upload ---- */
.body-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.body-tabs button{font-size:13px;color:#c7d2bd;background:#ffffff08;border:1px solid transparent;border-radius:999px;padding:9px 16px;transition:.18s}.body-tabs button:hover{color:var(--gold)}.body-tabs button.on{background:#d2b57022;border-color:#d6b76655;color:#f4d997}
.body-pane{margin-bottom:6px}.body-pane textarea{margin-bottom:10px}
/* Generation is the headline, so both of its paths sit open side by side. Presets and a
   .glb upload are real options but not the pitch, so they fold away underneath. */
/* The hero is the generation section now, not a one-line upload row. modern.css lays
   .picture-upload out as a centred flex row and loads after this file, so the override is
   element+class to win on specificity rather than on order. */
section.picture-upload{display:block;padding:26px 28px 24px}
.picture-upload-head{margin-bottom:16px}
.picture-upload-head h2{margin:6px 0 8px;font:600 30px 'Cormorant Garamond',Georgia}
.picture-upload-head p{margin:0;max-width:62ch;font-size:14px;line-height:1.7;color:#a9b5a4}
.body-primary{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;margin-bottom:14px}
.body-card{background:#ffffff05;border:1px solid var(--line);border-radius:8px;padding:16px 18px;display:flex;flex-direction:column}
.body-card h3{margin:0 0 6px;font:600 19px 'Cormorant Garamond',Georgia;color:var(--gold)}
.body-card>p{margin:0 0 14px;font-size:13px;line-height:1.65;color:#a9b5a4}
.body-card textarea{width:100%;margin-bottom:10px}
.body-card .form-note{margin-top:auto;padding-top:10px}
.filepick{display:flex;flex-direction:column;gap:3px;border:1px dashed #d9c18c4d;border-radius:6px;padding:13px 15px;cursor:pointer;transition:.15s}
.filepick:hover{border-color:var(--gold);background:#ffffff06}
.filepick>span{font-size:13px;color:var(--gold);font-weight:600}
.filepick>small{font-size:11px;color:#8f9d87}
.filepick input[type=file]{display:none}
.body-more{border:1px solid var(--line);border-radius:8px;margin-bottom:6px}
.body-more>summary{cursor:pointer;padding:13px 18px;font-size:13px;color:#c7d2bd;list-style:none}
.body-more>summary::-webkit-details-marker{display:none}
.body-more>summary:before{content:'+ ';color:var(--gold);font-weight:700}
.body-more[open]>summary{border-bottom:1px solid var(--line)}
.body-more[open]>summary:before{content:'– '}
.body-more-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding:16px 18px}
.body-more-inner h4{margin:0 0 10px;font-size:11px;letter-spacing:1.5px;color:var(--gold);text-transform:uppercase}
/* The coin as pump.fun would show it: square profile picture, name, ticker, blurb, socials. */
.coin-card{display:flex;gap:13px;align-items:flex-start;text-align:left;margin:14px 0 4px;padding:13px;background:#ffffff06;border:1px solid var(--line);border-radius:10px}
.coin-img{position:relative;flex-shrink:0;width:74px;height:74px;border-radius:8px;overflow:hidden;background:#16211b;display:grid;place-items:center}
.coin-img img{width:100%;height:100%;object-fit:cover;display:block}
#coin-img-empty{font-size:9px;letter-spacing:.5px;color:#6f7d6a;text-align:center;padding:0 6px}
.coin-meta{min-width:0;flex:1}
.coin-meta h2{margin:0;font:600 21px 'Cormorant Garamond',Georgia;line-height:1.15;overflow-wrap:anywhere}
.coin-meta>span{display:block;font-size:12px;color:var(--gold);letter-spacing:.5px;margin-top:1px}
.coin-desc{margin:7px 0 0;font-size:12px;line-height:1.6;color:#a9b5a4;overflow-wrap:anywhere}
.coin-socials{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.coin-socials span{font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:#c7d2bd;border:1px solid var(--line);border-radius:3px;padding:3px 7px}
.preview-wrap{position:relative}
.preview-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;padding:0 26px;font-size:13px;line-height:1.7;color:#8f9d87;pointer-events:none}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.presets button{font-size:12px;color:#c9d2c0;background:#ffffff06;border:1px solid #ffffff12;border-radius:999px;padding:8px 14px;transition:.18s}.presets button:hover{background:#315c4244;border-color:#cfb27166;color:#f1dba2}
.gen-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px}
.photo-row{display:flex;align-items:center;gap:12px;margin:10px 0 6px}
.photo-row img{width:84px;height:84px;object-fit:cover;border-radius:4px;border:1px solid #b7c3a732;background:#141c14}
.gen-status{font-size:12px;color:#aeb7a3;line-height:1.5}.gen-status.ok{color:#9ee37d}.gen-status.warn{color:#ffa98c}
.hint{color:#8f9d87;font-size:11px;font-weight:400;letter-spacing:0}
input[type=file]{display:block;width:100%;padding:12px 14px;margin:9px 0 14px;color:#c9d2c0;background:#ffffff05;border:1px dashed #8ea99255;border-radius:10px;font-size:13px;cursor:pointer}input[type=file]::file-selector-button{margin-right:12px;border:0;border-radius:999px;padding:7px 14px;background:#d2b57022;color:#e8d7af;cursor:pointer;font:inherit;font-size:12px}
.coinart-row{display:flex;align-items:center;gap:14px;margin:-4px 0 16px;padding:12px;background:#ffffff05;border-radius:12px}.coinart-row img{width:56px;height:56px;object-fit:cover;border-radius:10px;flex-shrink:0}.coinart-row span{font-size:12px;color:#aeb7a3;line-height:1.6;flex:1;min-width:0}
.retex{margin:4px 0 18px;padding:16px 0 0;border-top:1px solid #ffffff12}.retex>b{display:block;font-size:13px;color:var(--text);margin-bottom:10px}
.retex-modes{display:flex;flex-wrap:wrap;gap:7px}.retex-option{position:relative;cursor:pointer}.retex-option input{position:absolute;opacity:0}.retex-option span{display:block;font-size:12px;color:#c9d2c0;background:#ffffff06;border-radius:999px;padding:8px 14px}.retex-option:has(input:checked) span{background:#315c42;color:#f1dba2;box-shadow:inset 0 0 0 1px #cfb27166}.retex-option:has(input:focus-visible) span{outline:2px solid #e4c67e;outline-offset:2px}
@media(max-width:700px){.body-tabs button{font-size:12px;padding:8px 13px}.coinart-row{flex-wrap:wrap}}
/* ---- live launch ---- */
.launch-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}.mode-option{position:relative;border:1px solid #a2b09533;border-radius:4px;background:#19251e;padding:14px 16px;cursor:pointer}.mode-option input{position:absolute;opacity:0}.mode-option:has(input:checked){border-color:var(--gold);background:#283021}.mode-option b{display:block;font-size:14px;color:var(--text);margin-bottom:4px}.mode-option span{font-size:12px;color:#aeb7a3;line-height:1.5}
.wallet-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;font-size:13px}.wallet-ok{color:#9ee37d}.wallet-ok b{font-family:ui-monospace,monospace}
.launch-steps{margin-top:14px;border-left:2px solid var(--gold);padding-left:14px}.launch-steps p{margin:0 0 7px;font-size:13px;color:#c3cdb9}.launch-steps p:last-child{color:var(--gold)}
@media(max-width:700px){.launch-mode{grid-template-columns:1fr}.docs-sec h2{font-size:24px}.docs-table{font-size:13px}.docs-table td:first-child{white-space:normal}.split-bar i b{font-size:13px}}
.mode-banner{margin:28px 0 0;padding:14px 18px;border:1px solid var(--gold);border-left-width:4px;border-radius:4px;background:#2a2d1f;font-size:13px;line-height:1.6;color:#d8dcc9}.mode-banner b{color:var(--gold)}
.launch-page .launch-grid{margin-top:34px}.section-number em{font-style:normal;font-size:11px;color:#8f9d87;margin-left:auto;letter-spacing:0}textarea{display:block;width:100%;padding:12px 14px;color:#edf0df;background:#1b251e;border:1px solid #b7c3a732;border-radius:4px;margin:9px 0 19px;resize:vertical;font:inherit}.fields.three{grid-template-columns:1fr 1fr 1fr}
.class-option b{display:block;font:600 18px 'Cormorant Garamond',Georgia;margin-top:16px}.class-option span{display:block;color:var(--gold);font-size:11px;margin:3px 0}.class-option small{color:#8f9d87;font-size:10px}
.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;max-height:230px;overflow:auto;padding:4px;border:1px solid #b7c3a732;border-radius:4px;background:#141c17;scrollbar-width:thin}.avatar-chip{position:relative;font-size:12px;padding:9px 8px;border:1px solid #a2b09533;border-radius:4px;background:#19251e;cursor:pointer;color:#c9d2c0;text-align:center}.avatar-chip input{position:absolute;opacity:0}.avatar-chip:has(input:checked){border-color:var(--gold);background:#283021;color:var(--text)}.avatar-chip:hover{border-color:#d4c18b80}
.swatches{display:flex;gap:8px;margin:9px 0 19px;flex-wrap:wrap}.swatch{position:relative;cursor:pointer}.swatch input{position:absolute;opacity:0}.swatch i{display:block;width:32px;height:32px;border-radius:50%;border:2px solid #0008}.swatch:has(input:checked) i{border-color:var(--gold);box-shadow:0 0 0 2px #1b251e,0 0 0 4px var(--gold)}input[type=color]{height:48px;padding:4px;cursor:pointer}input[type=range]{accent-color:var(--gold);padding:0;margin:14px 0 19px}#size-label{color:var(--gold);font-size:12px;margin-left:8px}

#preview-3d{height:300px;position:relative;margin:10px -10px 0}#preview-3d canvas{display:block;width:100%!important;height:100%!important}.pose-row{display:flex;justify-content:center;gap:6px;margin-bottom:6px}.pose-row button{font-size:11px;color:#c7d2bd;border:1px solid var(--line);background:transparent;border-radius:3px;padding:5px 9px}.pose-row button:hover{color:var(--gold);border-color:var(--gold)}#preview-stats .stats{justify-content:center;margin:14px 0 6px}
.arena-page .match{display:flex;flex-wrap:wrap;gap:16px;align-items:end;padding:22px 24px;margin-top:34px}.match label{flex:1;min-width:180px;font-size:13px;color:#b8c2b1}.match select{margin:9px 0 0}.match .vs{font:700 24px 'Cormorant Garamond',Georgia;color:var(--gold);padding-bottom:10px}.match .btn{margin-bottom:0}
.compare{display:flex;align-items:center;gap:18px;margin:22px 0;flex-wrap:wrap}.fighter-card{flex:1;min-width:280px;display:flex;gap:14px;padding:16px 18px;align-items:center}.fighter-card .portrait-img{width:64px;height:88px}.fighter-card b{display:block;font:600 22px 'Cormorant Garamond',Georgia}.fighter-card span{font-size:12px;color:#aeb7a3}.fighter-card .stats{margin:10px 0 0}.vs.big{font:700 30px 'Cormorant Garamond',Georgia;color:var(--gold)}
.arena-wrap{position:relative;height:min(72vh,680px);border:1px solid #d4c18b50;border-radius:6px;overflow:hidden;background:#182c27;margin-bottom:40px}
@media(max-width:1050px){.hud-side .hud-name b{font-size:16px}}
@media(max-width:700px){.map-help{display:none}.encounter{top:160px;padding:12px}.enc-pair .portrait-img{display:none}.hud{padding:10px}.hud-top{gap:8px}.hud-side{grid-template-columns:1fr;padding:8px}.hud-side .portrait-img{display:none}.hud-name b{font-size:15px}.hud-vs{font-size:18px;padding-top:6px}.hud-log{margin-bottom:46px}.hud-log p:nth-child(n+3){display:none}.hud-controls{bottom:12px;right:12px}.hud-result{top:45%;padding:18px;min-width:220px}.hud-result h2{font-size:30px}.fields.three{grid-template-columns:1fr}.avatar-grid{max-height:180px}.match{padding:16px}.arena-wrap{height:70vh}.inspector{max-height:48%}.stats{gap:4px}.stat{min-width:36px;padding:4px}.loading{font-size:11px}}
