:root{color-scheme:dark;--ink:#e9efe9;--muted:#a3b7b7;--teal:#8fd5ca;--gold:#e4b876;--line:#ffffff20}*{box-sizing:border-box}body{margin:0;background:#08151c;color:var(--ink);font:16px/1.6 system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#142a31;border-radius:5px;padding:10px 16px;transition:.2s}button:hover{border-color:var(--teal);background:#224149}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--teal);color:#10282c;border-color:var(--teal);font-weight:650}input{background:#10252d;border:1px solid var(--line);padding:10px;color:white;border-radius:4px;width:100%}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(46px,7vw,100px);line-height:1.03;letter-spacing:-3px}h2{font-size:32px}h3{font-size:19px}small,.muted{color:var(--muted)}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.side{padding:30px 22px;background:#0b1d24;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px}.brand{font:25px/1.1 Georgia;color:var(--ink);letter-spacing:1px}.brand small{font:11px system-ui;letter-spacing:3px;display:block;margin-top:10px;color:var(--teal)}.nav{display:grid;gap:7px}.nav button{text-align:left;background:transparent;border-color:transparent;color:var(--muted)}.nav button.active{background:#19323a;color:var(--teal);border-color:#8fd5ca30}.profile{padding-top:18px;border-top:1px solid var(--line)}.profile b{font-size:20px}.bar{height:5px;background:#ffffff14;border-radius:9px;margin:8px 0 12px;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal)}.statrow{display:flex;justify-content:space-between;font-size:14px;margin:8px 0}.side footer{margin-top:auto;font-size:12px;color:var(--muted)}main{min-width:0}.top{padding:18px 32px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;background:#091a21}.top span{font-size:14px;color:var(--muted)}.stage{height:calc(100vh - 65px);min-height:650px;position:relative;overflow:hidden;background:#102c38 url('assets/city.png') center/cover}.stage:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#04151aaa,transparent 70%),linear-gradient(0deg,#04151a 0%,#04151a30 55%,#04151a30)}.title{position:relative;z-index:2;padding:70px 6%;max-width:850px}.eyebrow{letter-spacing:4px;font-size:12px;color:var(--gold);text-transform:uppercase}.title p{max-width:460px;color:#c7d5d4;font-size:18px}.title .buttons{display:flex;gap:10px;margin-top:28px}.tag{border:1px solid #ffffff35;padding:5px 10px;border-radius:3px;font-size:12px;letter-spacing:1px;display:inline-block}.heroform{max-width:300px;margin:20px 0}.heroform label{font-size:14px;color:var(--muted)}.chapter{position:absolute;top:28px;left:40px;z-index:2}.chapter .tag{color:var(--gold)}.sprite{position:absolute;width:430px;height:85%;right:3%;bottom:12%;background-image:url('assets/characters.png');background-repeat:no-repeat;background-size:200% 100%;background-position:left;filter:drop-shadow(0 10px 25px #0008)}.sprite.male{background-position:right}.dialog{position:absolute;bottom:25px;left:4%;right:4%;padding:26px 30px;background:#081b23f2;border:1px solid #91cabe40;backdrop-filter:blur(12px);border-radius:7px;z-index:3;box-shadow:0 20px 70px #0006}.speaker{color:var(--teal);letter-spacing:2px;font-size:14px;margin-bottom:8px}.dialog p{font-size:18px;line-height:1.75;max-width:950px;margin-bottom:18px}.choices{display:grid;gap:8px}.choices button{text-align:left;background:#ffffff05}.choices small{display:block;font-size:12px}.content{padding:40px;max-width:1200px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:25px;background:#10262e;border:1px solid var(--line);border-radius:6px}.card .number{font:44px Georgia;color:var(--teal)}.card p{color:var(--muted)}.card button{margin-top:8px}.wide{grid-column:1/-1}.sectionline{display:flex;align-items:center;justify-content:space-between;gap:15px}.list{display:grid;gap:12px;margin-top:22px}.entry{padding:18px 22px;border:1px solid var(--line);background:#10262e;border-radius:4px}.combat{max-width:820px;margin:auto}.enemy{padding:28px;border:1px solid #e4b87650;background:#183039;text-align:center;margin:20px 0}.enemy h2{margin-bottom:10px}.actions{display:flex;flex-wrap:wrap;gap:10px}.log{background:#07171e;border:1px solid var(--line);padding:18px;margin-top:22px;min-height:140px;color:#bfcecd}.log p{margin:4px 0}.timing{position:relative;height:55px;background:#07151a;border:1px solid var(--line);margin:25px 0;overflow:hidden}.zone{position:absolute;left:42%;width:16%;height:100%;background:#8fd5ca45;border-left:2px solid var(--teal);border-right:2px solid var(--teal)}.needle{position:absolute;width:4px;height:100%;background:var(--gold);left:0}.wires{display:flex;gap:12px;margin:25px 0}.wires button{flex:1;font-size:25px;padding:22px 5px}.ending{border-color:var(--gold);background:linear-gradient(120deg,#244046,#10232d)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#8fd5ca;color:#09262b;padding:12px 22px;z-index:20;border-radius:4px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}.badge{font-size:12px;color:var(--gold)}.mobileonly{display:none}@media(max-width:900px){.shell{grid-template-columns:190px 1fr}.side{padding:24px 15px}.grid{grid-template-columns:1fr 1fr}.content{padding:24px}.title{padding:55px 6%}.sprite{right:-15%;width:370px}.dialog{padding:20px}.dialog p{font-size:16px}}@media(max-width:650px){.shell{display:block}.side{padding:15px;display:block;border-right:0}.brand{font-size:20px}.brand small,.profile,.side footer{display:none}.nav{display:flex;overflow-x:auto;margin-top:12px;gap:4px}.nav button{white-space:nowrap;font-size:14px;padding:8px 10px}.top{padding:12px 16px;font-size:14px}.stage{height:calc(100dvh - 170px);min-height:660px}.title{padding:35px 25px}.title h1{font-size:62px}.title p{font-size:16px}.grid{grid-template-columns:1fr}.content{padding:25px 18px}.chapter{left:20px;top:18px}.sprite{right:-12%;width:310px;height:70%;bottom:24%;opacity:.85}.dialog{left:12px;right:12px;bottom:12px;padding:18px}.dialog p{line-height:1.55}.choices button{padding:9px 12px}.title .buttons{flex-wrap:wrap}.sectionline{align-items:flex-start}.wide{grid-column:auto}.top button{padding:6px 10px}}

.stage.interior{background-image:url('assets/heart.png')}
.auth{width:430px;max-width:100%;padding:30px;background:#081b23ee;border:1px solid var(--line);border-radius:6px}.auth label{display:block;margin:12px 0 5px;font-size:14px;color:var(--muted)}.auth .buttons{margin-top:18px}.auth button{flex:1}.title.auth-title{padding-top:35px}.title.auth-title h1{font-size:72px;margin-bottom:18px}.notice{font-size:14px;color:var(--gold);margin-bottom:16px}.tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.tools input,.tools select{width:auto;min-width:80px;max-width:160px}.tools input[type=number]{width:85px}.tools select{background:#142a31;border:1px solid var(--line);border-radius:4px;color:var(--ink);padding:8px}.chatbox{height:270px;overflow-y:auto;background:#07171e;padding:15px;border-radius:4px}.chatbox p{margin:6px 0;font-size:14px;word-break:break-word}.chatbox b{color:var(--teal)}.chatinput{display:flex;gap:8px;margin-top:10px}.log{max-height:300px;overflow-y:auto}.pill{font-size:14px;padding:5px 8px;border:1px solid var(--line);display:inline-block;margin:3px}.online{display:flex;flex-wrap:wrap;gap:5px}.err{color:#f1ae92;font-size:14px;min-height:22px}.empty{color:var(--muted);padding:15px 0}.top .balance{color:var(--teal)}.auth-title p{font-size:16px}.dialog{max-height:75%;overflow-y:auto}.grid .card p{font-size:15px}.marketrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.stage.interior{background-image:url('assets/heart.png')}.stage .auth-title{max-width:750px}@media(max-width:650px){.title.auth-title h1{font-size:58px}.auth{padding:20px}.stage:has(.auth){min-height:850px}.top{flex-wrap:wrap}.chatinput button{padding:8px}.sprite{height:68%;bottom:28%}}

.memoryclue{font-size:30px;color:var(--teal);animation:hideclue .1s 4s forwards}@keyframes hideclue{to{opacity:0}}
@media(max-width:650px){.card[style*="span 2"]{grid-column:auto!important}}

.enemy-portrait{width:270px;height:360px;max-width:100%;margin:0 auto 16px;background:url('assets/monsters.png') left center/200% 100% no-repeat;filter:drop-shadow(0 8px 15px #0008)}.enemy-portrait.lurker{background-position:right center}

.maplayout{padding:18px}.maphead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;font-size:14px}#worldcanvas{display:block;width:100%;height:58vh;min-height:350px;max-height:650px;border:1px solid #8fd5ca55;border-radius:6px;touch-action:none;background:#173e40}.maphud{display:flex;justify-content:space-between;gap:12px;padding:15px;background:#10262e}.maphud #nearlabel{display:block;color:var(--teal);margin-bottom:8px}.mapbottom{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.mapbottom .chatbox{height:130px}.pad{display:none;text-align:center}.pad button{padding:8px 14px;touch-action:none}.maphud button{font-size:14px}@media(max-width:700px){.pad{display:block}.mapbottom{grid-template-columns:1fr}#worldcanvas{height:48vh;min-height:320px}.maplayout{padding:10px}}

.stage.archive{background-image:url('assets/archive.png')}

.outfits{display:flex;gap:16px;flex-wrap:wrap}.outfits button{width:140px;text-align:center;background:#0b202a}.outfits .selected{border-color:var(--teal)}.outfitpreview{display:block;width:96px;height:110px;margin:0 auto 8px;background-image:url('assets/avatars.png');background-size:400% 400%;background-repeat:no-repeat}#worldcanvas{border-color:#ffffff18}.maphud{background:#0b2029}.maphead{padding:8px 4px}
