:root{font-family:Inter,system-ui,sans-serif;color:#f6e8e5;background:#130f17;font-synthesis:none;font-size:14px;--ink:#f6e8e5;--muted:#b7a4ad;--edge:#ffffff23;--red:#f06d70;--panel:#19151e}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:var(--ink);border:1px solid var(--edge);background:#29202c;padding:9px 13px}button:hover:not(:disabled),button.selected{border-color:#e56c70;color:#ffb2a9}button:disabled{opacity:.48;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f88d88;outline-offset:3px}button.primary{background:#8d333f;border-color:#cc5a60;font-weight:700;min-height:43px}button.quiet{background:transparent;border-color:transparent;color:var(--muted)}input:not([type=checkbox]),select{width:100%;color:var(--ink);border:1px solid var(--edge);background:#100d15;padding:10px}input[type=range],input[type=checkbox]{accent-color:var(--red)}label{display:grid;gap:6px;color:var(--muted);font-size:12px}p{line-height:1.55}small{display:block;color:var(--muted);margin-top:4px}h2{margin:8px 0 12px}.eyebrow{color:#e48383;font-size:10px;font-weight:750;letter-spacing:.21em}.launcher{min-height:100dvh;display:grid;align-items:center;grid-template-columns:1fr minmax(310px,390px);gap:8vw;padding:6vh 8vw;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 35% 42%,#a45c55,#562e3d 38%,#1b1422 76%)}.launcher:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#110b13c9,transparent 50%,#110b13a8),linear-gradient(0deg,#100b15,transparent 55%)}.launch-art{position:absolute;inset:0;z-index:-2;overflow:hidden}.launch-art:before{content:"";width:min(46vw,580px);aspect-ratio:1;position:absolute;left:23%;top:4%;border-radius:50%;background:radial-gradient(circle at 44% 38%,#e4a48c,#a45150 71%);opacity:.62;box-shadow:0 0 160px #f9916e5c}.launch-art i{position:absolute;inset:40% -8% -8%;clip-path:polygon(0 35%,8% 39%,15% 28%,25% 37%,36% 30%,39% 36%,46% 12%,52% 0%,57% 7%,66% 29%,73% 31%,79% 23%,91% 29%,100% 18%,100% 100%,0 100%);background:#211626}.launch-art i:nth-child(2){transform:translate(-11%,14%) scale(1.2);background:#34202c;opacity:.72}.launch-art i:nth-child(3){transform:translate(13%,27%) scale(1.3);background:#1e1421}.launch-art i:nth-child(4){inset:auto 0 0;height:24%;background:#170f18}.launch-art i:nth-child(5){inset:41% auto auto 43%;width:12vw;height:27vh;clip-path:polygon(42% 0,57% 0,60% 8%,66% 9%,77% 42%,91% 91%,100% 100%,0 100%,12% 90%,23% 42%,35% 9%,40% 8%);background:#20151f}.wordmark{display:grid;align-content:start;gap:5px;letter-spacing:.15em;line-height:1.08}.wordmark span{font-size:.74em;font-weight:850;color:#f38b87}.wordmark strong{font-weight:850}.launch-brand{padding-bottom:4vh}.launch-brand .wordmark{font-size:clamp(13px,1.4vw,24px);margin-bottom:clamp(30px,9vh,120px)}.launch-brand p{color:#ffbbb0;font-size:12px;letter-spacing:.25em;font-weight:700}.launch-brand b{margin:0 8px;color:var(--red)}.launch-brand h1{margin:0;font-size:clamp(40px,6.5vw,106px);line-height:.94;letter-spacing:-.065em;font-weight:780}.launch-card{background:#18131eea;border:1px solid #e48e8b47;border-top:2px solid #dc777a;box-shadow:0 20px 80px #130b17ae;padding:30px;display:grid;gap:12px}.launch-card form{display:grid;gap:12px}.launch-card h2{font-size:28px;margin:0 0 6px}.launch-card footer,.launcher footer{position:absolute;bottom:22px;left:8vw;color:#c7aeb7;font-size:11px}.offline,.slot-list button{width:100%;display:flex;justify-content:space-between;gap:10px}.slot-list{display:grid;gap:5px;max-height:28vh;overflow:auto}.slot-list span,.offline span{color:#eb8b8e}.error{color:#ffb1ac;margin:0}.game,.stage,.vignette{position:fixed;inset:0}.stage canvas{display:block;width:100%;height:100%}.vignette{pointer-events:none;background:linear-gradient(0deg,#100b17d9,transparent 24%,transparent 75%,#100b17bd),radial-gradient(ellipse at center,transparent 55%,#150d1a8f)}.hud-top{position:absolute;inset:0 0 auto;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:start;padding:20px 25px;pointer-events:none}.top-location,.top-time{display:grid;gap:4px}.top-location{text-align:center}.top-time{text-align:right}.top-location span,.top-time span{font-size:10px;font-weight:700;letter-spacing:.19em;color:#e4a6a2}.top-location strong{font-size:clamp(16px,2vw,25px)}.quest,.status,.enemy,.controls-hint,.interaction,.notice{position:absolute}.quest{top:103px;left:25px;width:min(26vw,295px);padding:14px 15px;background:#17111dc9;border-left:2px solid #d66065;pointer-events:none}.quest h2{font-size:17px;margin:7px 0 4px}.quest p{color:#e1c8cd;margin:0;font-size:12px}.quest b{padding-right:4px}.map-hud{position:absolute;right:25px;top:86px;text-align:right}.compass{width:118px;height:118px;position:relative;border:1px solid #efd1d052;background:repeating-linear-gradient(0deg,transparent 0 15px,#d7a9b014 15px 16px),repeating-linear-gradient(90deg,transparent 0 15px,#d7a9b014 15px 16px),#1d1626d9;clip-path:polygon(0 0,91% 0,100% 9%,100% 100%,9% 100%,0 91%)}.compass span{position:absolute;top:2px;left:48%;font-size:9px;color:#eed3cf}.compass i{width:5px;height:5px;position:absolute;transform:translate(-50%,-50%) rotate(45deg);background:#d9a5b0}.compass i.locked{background:#7e515c}.compass b{position:absolute;color:#ffc2a8;font-size:18px;line-height:16px}.enemy{left:50%;top:88px;transform:translate(-50%);width:200px;text-align:center;background:#191320d6;padding:8px 12px;border:1px solid var(--edge)}.enemy.danger{border-color:#f46d66}.controls-hint{top:90px;left:50%;transform:translate(-50%);padding:9px 33px 9px 12px;background:#17111ee6;white-space:nowrap;color:#e0cbd1;font-size:11px}.controls-hint button{position:absolute;right:4px;top:1px;border:0;background:none;padding:6px}kbd{display:inline-block;font:700 10px Inter,system-ui,sans-serif;border:1px solid #e7c3ce52;padding:3px 5px;margin:0 4px;background:#251c2b;color:#f9dbdd}.interaction{left:50%;bottom:26%;transform:translate(-50%);background:#23182aee;border-color:#e28184;padding:10px 16px;font-weight:650}.status{bottom:64px;left:25px;width:clamp(150px,19vw,245px);padding:10px 12px;background:#17111de8;border:1px solid var(--edge)}.hero-id{display:flex;align-items:center;gap:10px;margin-bottom:9px}.hero-id small{margin-top:1px}.level{display:grid;place-items:center;border:1px solid #ed8987;color:#ffd3c6;width:33px;height:33px;font-weight:750;background:#462333}.meter{margin:4px 0}.meter div{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;color:#edcfd2}.meter i,.xp{display:block;height:4px;background:#ffffff1b;margin-top:3px}.meter i i{margin:0}.xp{height:2px;margin-top:8px}.xp i{display:block;height:100%;background:#e9b889}.actions{position:absolute;bottom:66px;left:50%;transform:translate(-50%);display:flex;gap:5px}.actions button{position:relative;background:#211826e8;display:grid;place-items:center;gap:3px;width:clamp(50px,7.4vw,97px);min-height:64px;padding:5px 2px;border-top-color:#c46d81}.actions kbd{position:absolute;top:4px;left:3px;margin:0;padding:1px 3px}.actions b{font-size:23px;color:#f4a5af}.actions span{font-size:9px;color:#f0d6d9}.notice{bottom:137px;left:50%;transform:translate(-50%);padding:4px 8px;text-align:center;color:#f5d3d4;background:#18111bd9;font-size:12px;width:max-content;max-width:46vw;pointer-events:none}.nav{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:2px;background:#140f1aea;border-top:1px solid #ffffff21;padding:5px}.nav button{background:transparent;border-color:transparent;padding:8px 9px;color:#d9bdc7;font-size:11px}.overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(570px,92vw);max-height:78vh;overflow:auto;background:#19141ff7;border:1px solid #b96a735c;border-top:2px solid #d36b73;padding:24px;box-shadow:0 16px 80px #120914c2}.overlay.housing{left:auto;right:26px;transform:translateY(-50%);width:min(350px,45vw)}.overlay h2{font-size:27px}.overlay p,.overlay li{color:#e3c9ce}.overlay li{margin:5px 0}.overlay .close{position:absolute;right:9px;top:8px;font-size:20px;background:none;border:0;padding:3px 7px}.overlay .primary{margin:10px 0 0;width:100%}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--edge)}.choice{display:block;text-align:left;width:100%;margin:7px 0}.text-dialogue{display:flex;gap:8px;margin-top:16px}.item-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.overlay details{padding:7px 0;border-bottom:1px solid var(--edge)}.dim{opacity:.54}.mapview{height:270px;position:relative;background:#120e18;border:1px solid var(--edge)}.mapview svg{position:absolute;inset:0;width:100%;height:100%;stroke:#6d495e;stroke-width:.4;fill:none}.mapview div{position:absolute;transform:translate(-50%,-5px);display:grid;justify-items:center;gap:3px;text-align:center;color:#cfb7c0;font-size:10px;white-space:nowrap}.mapview i{width:11px;height:11px;background:#9a7084;border:2px solid #201422;transform:rotate(45deg)}.mapview .active i{background:#ff938a;box-shadow:0 0 10px #f27576}.debug{position:absolute;left:25px;top:230px;background:#120d18e8;padding:10px;font-size:11px}.game-error{position:absolute;right:25px;bottom:72px;background:#522732;border:1px solid #d67b7c;padding:9px;max-width:330px}.game-error button{margin-left:8px;padding:3px 6px}@media(max-width:790px){.launcher{grid-template-columns:1fr;gap:20px;padding:30px 7vw 55px}.launch-brand .wordmark{margin-bottom:24px}.launch-brand{padding:0}.launch-card{max-width:420px}.hud-top{padding:12px}.quest,.status{left:12px}.map-hud{right:12px}.controls-hint{display:none}.nav{overflow:auto;justify-content:flex-start}.nav button{padding-inline:6px}.compass{width:85px;height:85px}.actions{left:66%}.notice{left:64%;max-width:58vw}}.overlay.talent-panel{width:min(830px,94vw)}.talent-trees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.talent-trees section{border:1px solid var(--edge);padding:10px;background:#221a28}.talent-trees h3{margin:0;color:#ffc4bc}.talent{display:grid;gap:5px;border-top:1px solid var(--edge);padding:10px 0;margin-top:8px}.talent button{justify-self:start;margin-top:4px}@media(max-width:680px){.talent-trees{grid-template-columns:1fr}}.character-overlay{position:fixed;z-index:5}.character-editor{display:grid;gap:10px}.character-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.character-preview{display:grid;place-items:center;min-height:120px;background:radial-gradient(ellipse,#4d2e41,transparent 72%)}.character-preview canvas{max-width:100%;max-height:160px;object-fit:contain}.character-editor .row .primary{margin:0;width:auto}
