@font-face{font-family:GloamSerif;src:local('Georgia')}*{box-sizing:border-box}body{margin:0;background:#171321;color:#ede6da;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:13px}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #b6b4d9;outline-offset:5px}#app{height:100svh;min-height:680px;overflow:hidden;position:relative}#world{position:absolute;inset:0}#world canvas{width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 51% 47%,transparent 30%,#14101d77 80%),linear-gradient(90deg,#171321aa,transparent 28%,transparent 75%,#17132166)}header{height:106px;position:absolute;top:0;left:0;right:0;display:flex;align-items:center;padding:0 4.2%;gap:50px;border-bottom:1px solid #c5b8d612;background:linear-gradient(#17132188,#17132122);z-index:3}.brand{color:#f4eddf;text-decoration:none;display:flex;align-items:center;gap:13px;font-family:Georgia,serif;font-size:29px;letter-spacing:-1px}.brandmoon{font-size:48px;line-height:1;color:#d2b47b;transform:rotate(-18deg)}.brand small{display:block;font-family:system-ui;font-size:8px;letter-spacing:2.5px;color:#a59baf;margin-top:7px}.brand span:last-child{white-space:nowrap}nav{display:flex;align-items:center;gap:30px;margin:auto}.nav{border:0;background:none;padding:16px 0;font-size:12px;color:#a69eaf;position:relative}.nav.active{color:#f0e6d7}.nav.active:after{position:absolute;content:'';width:4px;height:4px;background:#d2b47b;border-radius:50%;bottom:3px;left:50%}.nav span{margin-left:6px;color:#d0b27e;font-size:10px}.icon{border:1px solid #74677e55;background:#25203099;border-radius:50%;height:37px;width:37px;font-size:19px}.intro{position:absolute;left:4.5%;top:155px;pointer-events:none}.eyebrow{font-size:8px;letter-spacing:2px;font-weight:650;color:#b9a2c2;display:flex;align-items:center;gap:9px}.eyebrow i,.offline i{width:5px;height:5px;border-radius:50%;background:#88b5a2;box-shadow:0 0 9px #88b5a266}.intro h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(34px,3.7vw,57px);letter-spacing:-1.5px;line-height:1.15;margin:23px 0 19px;color:#efe5d8}.intro p{font-size:12px;line-height:1.9;color:#b1a7b9;margin:0}.season{display:flex;gap:12px;align-items:center;margin-top:35px;color:#c5b28c;font-size:9px;letter-spacing:1.5px}.season>span{font-size:32px;font-family:Georgia;transform:rotate(-15deg)}.season small{display:block;font-size:10px;letter-spacing:.2px;color:#9f93ac;margin-top:6px}.season b{font-weight:400;color:#b9aec2;margin-left:8px}.resident-panel{position:absolute;right:3.5%;top:143px;width:280px;padding:22px 23px 0;border:1px solid #9b85ac2b;border-radius:14px;background:linear-gradient(135deg,#2b2436e8,#211d2aee);box-shadow:0 20px 80px #0d0a1444;backdrop-filter:blur(15px)}.panel-top{display:flex;justify-content:space-between;align-items:center}.panel-top .eyebrow{font-size:7px;letter-spacing:1.7px}.panel-top button{background:none;border:none;color:#b8a9c6;font-size:19px;padding:0}.portrait-wrap{height:144px;position:relative;display:flex;align-items:center;justify-content:center;margin:5px 0 0;isolation:isolate}.portrait-wrap canvas{height:141px;width:113px;image-rendering:pixelated;position:relative;z-index:1}.portrait-halo{position:absolute;width:115px;height:115px;border-radius:50%;border:1px solid #ae8fbd24;background:radial-gradient(#6f55784d,transparent 70%);z-index:-1;top:19px}.portrait-halo:after{content:'';position:absolute;inset:8px;border:1px dashed #b192b22a;border-radius:50%}.portrait-spark{position:absolute;right:32px;top:33px;color:#c7ac7b;font-size:16px}.resident-heading{display:flex;justify-content:space-between;align-items:center}.resident-heading h2{font-family:Georgia,serif;font-weight:400;font-size:25px;margin:3px 0 4px;letter-spacing:-.6px}.resident-heading p{font-size:9px;color:#b09abd;margin:0}.mood{border:1px solid #91baa22b;color:#a6c2af;border-radius:5px;padding:4px 7px;font-size:8px}.bio{font-size:10px;line-height:1.9;color:#b2a6bc;margin:18px 0}.divider{height:1px;background:#a68bb622;margin:20px 0}.quest-title{font-size:7px;letter-spacing:1.4px;color:#c5ac7b;display:flex;justify-content:space-between}.quest-title span:last-child{letter-spacing:0;color:#8b7e99}h3{font-family:Georgia,serif;font-size:16px;font-weight:400;margin:12px 0 8px}.quest-description{font-size:10px;color:#a89bb3;line-height:1.8;margin-bottom:17px}.primary{width:100%;border:1px solid #a48aaf44;border-radius:6px;padding:11px;background:#6b54763d;font-size:10px;color:#dfcbe8;transition:.2s}.primary:hover{background:#85639366;border-color:#ae8abc}.primary:disabled{opacity:.6;cursor:default}.panel-foot{display:flex;align-items:center;justify-content:space-between;margin-top:19px;padding:14px 0;border-top:1px solid #a68bb61a;color:#9e8baa;font-size:8px;gap:8px}.panel-foot b{font-weight:400;color:#c9a8c4}.world-status{position:absolute;bottom:113px;left:4.5%;display:flex;align-items:center;gap:14px;pointer-events:none}.status-lantern{width:37px;height:37px;border:1px solid #9d89512b;background:#322b2840;border-radius:8px;display:grid;place-items:center;font-size:22px;color:#c5a96e}.world-status strong{font-family:Georgia,serif;font-size:17px;font-weight:400;letter-spacing:.1px}.world-status small{display:block;color:#9e92ac;font-size:9px;margin-top:6px}.world-coordinate{border-left:1px solid #a694b321;padding-left:18px;margin-left:12px;font-size:10px;color:#9887a5;letter-spacing:2px}footer{position:absolute;bottom:0;left:0;right:0;height:77px;border-top:1px solid #b6a5c21c;display:flex;align-items:center;padding:0 4.5%;gap:30px;background:#18142066}.offline{display:flex;align-items:center;gap:8px;font-size:7px;letter-spacing:1.3px;color:#b8acbf}.offline span{letter-spacing:0;color:#82778e;font-size:9px;margin-left:10px}.world-controls{display:flex;gap:4px;margin:auto}.world-controls button{width:32px;height:30px;background:#27203077;border:1px solid #a18cac24;font-size:17px;color:#b8a9c7;border-radius:4px}.gallery-link{background:none;border:0;font-size:10px;color:#c9b9d4}.gallery-link span{margin-left:20px;color:#bda47c}#toast{position:absolute;left:50%;bottom:100px;transform:translate(-50%,15px);opacity:0;transition:.25s;background:#302735ed;border:1px solid #be9bc254;border-radius:9px;padding:15px 23px;max-width:90%;color:#ead8e9;font-size:12px;pointer-events:none;z-index:8}#toast.show{opacity:1;transform:translate(-50%,0)}.overlay{position:absolute;inset:0;z-index:10;background:#110e1ccc;backdrop-filter:blur(15px);padding:8vh 7vw;overflow:auto}.hidden{display:none!important}.collection{max-width:1150px;margin:auto;border:1px solid #a18bab30;background:#231c2dee;border-radius:20px;padding:35px}.collection-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:20px}.collection h2{font:32px Georgia;margin:13px 0 0}.resident-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.resident-tile{background:#302739;border:1px solid #b195ba22;border-radius:12px;padding:18px;text-align:left;transition:.2s}.resident-tile:hover{border-color:#b195ba88;transform:translateY(-3px)}.resident-tile canvas{width:100%;height:170px;object-fit:contain;image-rendering:pixelated}.resident-tile h3{font-size:21px;margin-bottom:5px}.resident-tile p{font-size:11px;color:#bca6c7;line-height:1.7}.resident-tile small{font-size:9px;color:#9da898}.journal-entry{border-top:1px solid #ab8dbc22;padding:24px 0;max-width:750px}.journal-entry small{color:#b79ac6;font-size:9px;letter-spacing:1px}.journal-entry p{font-family:Georgia;font-size:19px;line-height:1.8;color:#d9cddf}.journal-entry span{color:#8e839b;font-size:11px}button{transition:background .15s}button:hover{filter:brightness(1.15)}
@media(min-width:1600px){.resident-panel{right:5%;width:300px;top:160px}.intro{top:190px}}
@media(max-width:1050px){header{gap:15px;padding:0 25px}.brand{font-size:25px}nav{gap:20px}.intro{left:25px}.intro h1{font-size:37px}.resident-panel{right:25px;width:245px;padding:18px 18px 0}.bio{font-size:9px}.resident-heading h2{font-size:22px}.portrait-wrap{height:115px}.portrait-wrap canvas{height:120px}.portrait-halo{width:95px;height:95px}.world-coordinate,.offline span{display:none}}
@media(max-width:700px){#app{min-height:650px;height:100svh}header{height:82px;padding:0 20px;align-items:center}.brand{font-size:25px}.brandmoon{font-size:39px}.brand small{font-size:6px;letter-spacing:1.8px;margin-top:5px}nav{position:absolute;top:83px;left:20px;gap:27px;margin:0}.nav{font-size:10px;padding:14px 0}.icon{margin-left:auto;width:32px;height:32px}.intro{top:154px;left:22px}.intro .eyebrow{font-size:6px;letter-spacing:1.6px}.intro h1{font-size:33px;margin-top:15px;margin-bottom:12px}.intro p{font-size:10px;line-height:1.8}.season{display:none}.resident-panel{top:auto;bottom:74px;left:18px;right:18px;width:auto;height:146px;padding:14px 16px 12px 105px;border-radius:12px}.panel-top{display:none}.portrait-wrap{position:absolute;left:3px;top:5px;width:100px;height:130px;margin:0}.portrait-wrap canvas{width:100px;height:125px}.portrait-halo{width:80px;height:80px;top:23px}.portrait-spark{font-size:10px;right:8px;top:21px}.resident-heading h2{font-size:22px;margin:2px 0}.resident-heading p{font-size:8px;margin-top:5px}.mood{font-size:7px}.bio,.divider,.quest-title,.quest-description,.panel-foot{display:none}.resident-panel h3{font-size:12px;margin:12px 0 8px}.resident-panel .primary{padding:8px;font-size:8px}.world-status{left:22px;bottom:241px;gap:9px}.status-lantern{width:28px;height:28px;font-size:17px}.world-status strong{font-size:14px}.world-status small{font-size:7px}.world-coordinate{display:none}footer{height:59px;padding:0 20px;gap:10px}.offline{font-size:6px;letter-spacing:1px}.gallery-link{font-size:8px}.gallery-link span{margin-left:5px}.world-controls{gap:2px}.world-controls button{width:25px;height:26px;font-size:15px}.overlay{padding:20px 12px}.collection{padding:22px 15px;border-radius:13px}.collection h2{font-size:24px}.collection-head{gap:5px;margin-bottom:22px}.collection-head .eyebrow{font-size:6px;letter-spacing:1.4px}.resident-grid{grid-template-columns:repeat(2,1fr);gap:10px}.resident-tile{padding:12px}.resident-tile canvas{height:120px}.resident-tile h3{font-size:18px}.resident-tile p{font-size:9px}.journal-entry p{font-size:17px}#toast{bottom:235px;font-size:10px;min-width:240px;text-align:center}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
