@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#293d38;--muted:#79827b;--purple:#7462a7}*{box-sizing:border-box}body{margin:0;background:#f7f6f0;color:var(--ink);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}header{height:88px;border-bottom:1px solid #e4e5dc;display:flex;align-items:center;justify-content:space-between;padding:0 5%}.brand{font:700 21px 'Space Grotesk',monospace;letter-spacing:-1px;color:var(--ink);text-decoration:none}.brand>span:last-child{color:#8b9d76}.brand-icon{display:inline-grid;place-items:center;background:var(--ink);color:#f7e7a3;width:33px;height:33px;margin-right:10px;border-radius:9px}nav{display:flex;gap:24px;align-items:center;font-size:12px}nav button{background:none;border:0;color:#5f6c64}nav button:first-letter{font-size:20px}i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#769c66;margin-right:7px}.status{font-size:9px;letter-spacing:1.2px}main{max-width:1480px;padding:46px 5% 0;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.eyebrow{font:600 10px 'Space Grotesk',monospace;letter-spacing:1.7px;color:#788c73}h1{font:500 clamp(42px,4.3vw,64px)/1.05 'Space Grotesk',sans-serif;letter-spacing:-3px;margin:19px 0}h1 em{font-style:normal;color:var(--purple)}.intro p{font-size:13px;line-height:1.8;color:#7a827b}.player-card{border:1px solid #dedfd4;border-radius:13px;padding:20px;display:flex;align-items:center;gap:14px;background:#fbfaf5;position:relative;margin-right:20px;transform:rotate(2deg)}.avatar{background:#e7e2ef;border-radius:12px;width:56px;height:62px;display:grid;place-items:center;font-size:34px}.player-card small{display:block;font-size:8px;letter-spacing:2px;color:#939788}.player-card strong{display:block;font:600 19px 'Space Grotesk';margin:5px 0}.player-card span:not(.level){font-size:10px;color:#889082}.level{position:absolute;top:-12px;right:14px;background:#ece7ce;border:1px solid #d7cfad;padding:5px 8px;font-size:9px;border-radius:4px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 274px;gap:25px;align-items:stretch}.map-wrap{border:1px solid #d9dfd0;border-radius:14px;overflow:hidden;box-shadow:0 5px 0 #e8eadd}.map-top,.map-bottom{display:flex;align-items:center;justify-content:space-between;background:#fffdf5;padding:15px 20px;font:500 9px 'Space Grotesk',monospace;letter-spacing:1.3px}.map-top b{color:#a3b98b;margin-left:8px}.map{position:relative;aspect-ratio:1000/600;outline-offset:-4px;background:#a7cca0}.map svg{display:block;width:100%;height:100%}#building-buttons{position:absolute;inset:0}.building-btn{position:absolute;transform:translate(-50%,-50%);border:0;background:#fffdf1;color:#374d3d;box-shadow:0 3px 0 #76957355;border-radius:5px;padding:7px 11px;font:600 10px 'Space Grotesk',monospace;white-space:nowrap;transition:translate .18s,background .18s}.building-btn:hover,.building-btn:focus-visible{translate:0 -4px;background:#fff5c9;outline:2px solid #7462a7}.building-btn .num{color:#91a281;font-size:8px;margin-right:5px}.building-btn.visited:after{content:' ✓';color:#6d9264}.map-hint{position:absolute;top:14px;left:50%;transform:translateX(-50%);border:1px solid #e4edcf80;background:#f6fae1ba;backdrop-filter:blur(4px);padding:8px 14px;border-radius:30px;font-size:10px;color:#55734d;white-space:nowrap}.map-bottom{font-size:9px;letter-spacing:0;color:#89917f;padding:13px 17px}kbd{display:inline-block;font:9px monospace;border:1px solid #d9decd;border-bottom-width:2px;border-radius:3px;padding:2px 4px;margin-right:2px;color:#6d7a62}.dpad{position:absolute;bottom:12px;left:12px;text-align:center}.dpad button{background:#fffdf2bb;border:1px solid #8eac7c;border-radius:5px;color:#55714c;width:25px;height:25px;padding:0}.dpad>button{margin-bottom:2px}aside{padding:25px 22px;background:#eeefe5;border:1px solid #e0e3d7;border-radius:14px}.quest-heading{display:flex;justify-content:space-between;color:#9a9c71}.quest-heading .eyebrow{font-size:9px;letter-spacing:1.3px}h2{font:500 21px 'Space Grotesk';letter-spacing:-.6px;margin:14px 0 10px}aside p{font-size:12px;line-height:1.7;color:#8a9183;margin:0 0 23px}.progress-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#919780}.progress-label strong{color:var(--purple)}.progress{height:5px;background:#dedfcf;border-radius:10px;margin:9px 0 17px;overflow:hidden}#progress{height:100%;background:#8a7db1;width:0;transition:width .4s}.quest{border:0;border-top:1px solid #dfe2d3;width:100%;background:transparent;display:flex;align-items:center;text-align:left;padding:12px 0;gap:11px;color:#4a5a49}.quest-icon{width:30px;height:30px;display:grid;place-items:center;background:#e0e5d5;border-radius:7px;font-size:16px}.quest strong{display:block;font-size:11px;font-weight:500}.quest small{display:block;font-size:9px;color:#91987f;margin-top:3px}.quest .check{margin-left:auto;border:1px solid #c9cfba;width:14px;height:14px;border-radius:50%;font-size:10px;text-align:center;color:#fff}.quest.done .check{background:#809c6c;border-color:#809c6c}.badge{display:flex;align-items:center;gap:10px;background:#e5e6d8;border:1px dashed #c6ccb6;border-radius:9px;padding:14px 10px;margin-top:12px}.badge>span:first-child{font-size:26px;color:#9aab85}.badge strong{display:block;font-size:10px;color:#859078}.badge small{font-size:8px;color:#9ca38e}#lock{margin-left:auto;color:#a7ad97}.badge.unlocked{background:#f7efcc;border-color:#bb9e53}.badge.unlocked strong{color:#766126}.reset{border:0;background:transparent;display:block;margin:16px auto 0;font-size:9px;color:#8c947f}footer{display:flex;justify-content:space-between;margin:28px 0 24px;color:#a0a492;font-size:8px;letter-spacing:1px}footer b{color:#a79c76;margin:0 8px}dialog{border:1px solid #dddccc;border-radius:20px;background:#faf9f2;color:var(--ink);padding:36px;width:min(540px,90vw);box-shadow:0 25px 100px #233b3840}dialog::backdrop{background:#20382d66;backdrop-filter:blur(5px)}.close{position:absolute;right:17px;top:10px;background:transparent;border:0;font-size:28px;color:#818771}dialog h2{font-size:32px;margin:12px 0}dialog p{font-size:14px;line-height:1.8;color:#747e71}.modal-icon{font-size:36px}.sample{font-size:10px;letter-spacing:1px;color:#a48d5c}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.chips span{background:#e8ebde;border-radius:7px;padding:8px 12px;font-size:12px}.detail{padding:16px 0;border-top:1px solid #e0e2d6}.detail strong{font-size:15px}.detail p{font-size:12px;margin-bottom:0}.primary{border:0;border-radius:7px;background:#716299;color:white;padding:12px 18px;margin-top:18px;font-size:12px}@media(min-width:1500px){main{padding-top:55px}.intro{margin-bottom:40px}}@media(max-width:900px){.game-layout{grid-template-columns:1fr 230px;gap:14px}aside{padding:18px 15px}.player-card{margin-right:0}.building-btn{font-size:8px;padding:6px}.map-bottom>span:last-child{display:none}.map-hint{font-size:8px;padding:6px 9px}.quest{padding:9px 0}.intro{gap:20px}}@media(max-width:680px){header{height:68px}.brand{font-size:16px}.brand-icon{width:27px;height:27px;margin-right:5px}nav{gap:12px}nav .status,nav button span{display:none}main{padding:30px 5% 0}.intro{display:block}h1{font-size:48px}.intro p{font-size:12px}.player-card{margin:22px 0 28px;transform:none;width:fit-content;padding:12px 17px}.avatar{width:43px;height:47px;font-size:28px}.game-layout{grid-template-columns:1fr}.map{aspect-ratio:1.25}.map svg{height:100%}.building-btn{font-size:8px;padding:5px 6px}.building-btn .num{display:none}.map-hint{top:9px;font-size:7px}.map-top{padding:13px;font-size:8px}.map-bottom{padding:10px;font-size:8px}.desktop{display:none}aside{padding:22px}.quest{padding:12px 0}.quest-heading .eyebrow{font-size:10px}aside p{margin-bottom:18px}.badge{padding:16px}footer{gap:20px;font-size:7px;line-height:1.8}dialog{padding:28px}.map svg{object-fit:fill}}

.map-wrap{align-self:start}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* A brighter, illustrated world */
body{background:radial-gradient(ellipse at 88% 6%,#e6ddfa88,transparent 34%),radial-gradient(ellipse at 0% 44%,#e7efca77,transparent 35%),#faf8f1;--ink:#302d45;--purple:#7e54bd}
header{height:80px;border-color:#ded7e7;background:#faf8f1bc}.brand-icon{background:#7750b1;color:#ffe29b;box-shadow:3px 3px 0 #ddd0ee}.brand>span:last-child{color:#9163be}nav button{border:1px solid #e2dce9;border-radius:20px;padding:8px 13px;background:#fff9;color:#61596f}.status{color:#69795b}main{padding-top:47px;max-width:1570px}.intro{position:relative;min-height:250px;margin-bottom:43px}.intro>.eyebrow{color:#9166b2}.intro .eyebrow{display:inline-block;background:#eee5fa;border:1px solid #e3d4f4;border-radius:30px;padding:8px 12px;font-size:9px;color:#8358ac;letter-spacing:1.2px}h1{font-size:clamp(44px,4.5vw,69px);font-weight:600;letter-spacing:-3.5px;margin:18px 0;line-height:1.08}h1 em{background:linear-gradient(100deg,#7250ad,#ad6c9e);color:transparent;background-clip:text;-webkit-background-clip:text;position:relative}h1 em:after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:7px;border-radius:100%;background:#e5ce7d88;transform:rotate(-1deg);z-index:-1}.intro p{color:#81768a;font-size:13px}.hero-actions{display:flex;align-items:center;gap:17px;margin-top:22px}.hero-actions button{border:1px solid #68419d;background:#7851b1;color:white;font-size:12px;font-weight:600;padding:13px 19px;border-radius:9px;box-shadow:0 4px 0 #5b378b;transition:transform .2s}.hero-actions button:hover{transform:translateY(-3px)}.hero-actions button span{margin-left:25px}.hero-actions>span{font-size:10px;color:#94899a}.player-card{margin:10px 18px 0 28px;padding:24px;background:linear-gradient(135deg,#fffcf3,#f1e9fb);border:1px solid #cfc0e0;box-shadow:7px 7px 0 #e9e0f0,0 20px 50px #9e82b514;transform:rotate(4deg);z-index:1}.player-card:before{content:'PLAYER 001 / CREATOR';position:absolute;bottom:-25px;right:12px;color:#a291b0;letter-spacing:2px;font:8px monospace}.player-card:after{content:'✦';position:absolute;top:-35px;left:-28px;font-size:43px;color:#bd9cdd;transform:rotate(20deg)}.avatar{width:72px;height:78px;font-size:44px;background:linear-gradient(145deg,#d9c8ef,#bca2dc);border:3px solid #fff8;box-shadow:0 4px 0 #c8b0e1}.player-card strong{font-size:23px}.player-card small{color:#9b7bae}.player-card span:not(.level){color:#8e8199}.level{background:#f7e9ae;color:#8b702c;border-color:#d9bf6a;border-radius:7px;box-shadow:2px 3px 0 #e6d59c}.hero-sticker{position:absolute;right:28%;top:2px;color:#d7ad50;font-size:65px;transform:rotate(-13deg);line-height:1}.hero-sticker span{display:block;color:#9a8a66;font:italic 11px Georgia;white-space:nowrap}.world-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:19px}.world-heading h2{font-size:19px;margin:8px 0 0;letter-spacing:-.5px}.world-heading .eyebrow{color:#a18ab6;font-size:8px}.world-tag{font:italic 12px Georgia;color:#a391b0;transform:rotate(-4deg);margin-right:12px}.game-layout{grid-template-columns:minmax(0,1fr) 275px;gap:22px}.map-wrap{border:1px solid #c8b7db;border-radius:19px;box-shadow:0 7px 0 #e2d5eb,0 16px 35px #775b8a12;background:#fffdf7}.map-top{background:#f7f0fd;color:#806997;padding:17px 20px;border-bottom:1px solid #d9cbe6;letter-spacing:1px}.map-top b{color:#af91c7}.map-bottom{padding:16px 18px;color:#9785a5;background:#fcf9ff}.map{background:#b4d8a1}.map-hint{background:#fffdf0ed;border:1px solid #fff9;box-shadow:0 3px 12px #31542f12;color:#5e7952;font-weight:500}.building-btn{background:#fffaf0;border:1px solid #e3d4a9;box-shadow:0 3px 0 #7e926777,0 5px 10px #33552b16;padding:8px 12px;border-radius:6px;color:#534861;font-size:10px}.building-btn:hover{background:#f5e3ff;border-color:#ba88dc;box-shadow:0 4px 0 #a77cbd77}.building-btn .num{color:#a58bb4}.dpad button{background:#fff8efde;border-color:#c4b4d6;color:#8e6aa7;box-shadow:0 2px 0 #9c84af55}aside{background:linear-gradient(150deg,#f3ebfb,#fcf6eb);border:1px solid #dfd0e8;border-radius:18px;box-shadow:0 5px 0 #eee4f1;padding:23px 20px}.quest-heading{color:#b795cf}.quest-heading .eyebrow{color:#a083b6;font-size:8px}aside h2{font-size:23px;line-height:1.2;margin:14px 0 12px;color:#574367}aside p{font-size:11px;color:#a08ca9;margin-bottom:20px}.progress-label{color:#a18cab}.progress{background:#e6d9ee;height:7px}#progress{background:linear-gradient(90deg,#a682cf,#d2a0cc);border-radius:10px}.quest{border:0;border-radius:10px;margin:4px 0;padding:10px 7px;transition:background .2s,transform .2s}.quest:hover{background:#ffffffa6;transform:translateX(3px)}.quest-icon{background:#e9ddf6;border:1px solid #d9c7eb;border-radius:9px;width:34px;height:34px;font-size:18px;box-shadow:0 3px 0 #dfd0e9}.quest:nth-child(2) .quest-icon{background:#dce6fb;border-color:#c8d7ef}.quest:nth-child(3) .quest-icon{background:#f7e8c8;border-color:#e9d6a9}.quest:nth-child(4) .quest-icon{background:#f7dcd9;border-color:#eec7c4}.quest:nth-child(5) .quest-icon{background:#d9eee3;border-color:#bfdccd}.quest strong{color:#6d567d;font-size:11px}.quest small{color:#a18dab}.quest .check{border-color:#d5c5de}.quest.done .check{background:#9a74bc;border-color:#9a74bc}.badge{background:linear-gradient(110deg,#f9edc8,#f5e5d8);border:1px dashed #d9bd7c;margin-top:17px;padding:15px 10px}.badge strong{color:#9c8056}.badge small{color:#b19877}.reset{color:#a28aac}footer{color:#b1a0bb}.bottom-note{display:flex;align-items:center;gap:17px;margin-top:35px;padding:20px 25px;border:1px solid #e9dfed;border-radius:13px;background:linear-gradient(100deg,#f0e9f9aa,#faf2dc88)}.bottom-note>span:first-child{font-size:42px;color:#af8ac9}.bottom-note p{font-size:12px;line-height:1.7;color:#a18eab;margin:0}.bottom-note strong{font-weight:500;color:#766180}.bottom-note>span:last-child{margin-left:auto;font-size:8px;letter-spacing:2px;color:#a28bb1}dialog{background:linear-gradient(140deg,#fffdf5,#f4edfc);border:1px solid #cfb8e0;box-shadow:0 24px 100px #39224d55}.modal-icon{background:#ecdef8;width:66px;height:66px;border-radius:17px;display:grid;place-items:center;margin-bottom:20px;box-shadow:4px 4px 0 #ddc7ed}.primary{background:#8053b1;box-shadow:0 3px 0 #603a8b}.chips span{background:#ebdff6;color:#8b65a5}.detail{border-color:#e6d9eb}.sample{color:#b08ec0}.close{color:#a887bb}.balloon{animation:float 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.cloud{animation:drift 12s ease-in-out infinite}.spark{animation:twinkle 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.butterfly{animation:float 3s ease-in-out infinite}.water-ripple{animation:twinkle 4s ease-in-out infinite}@keyframes float{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -9px;rotate:3deg}}@keyframes drift{0%,100%{translate:0 0}50%{translate:14px 0}}@keyframes twinkle{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:1000px){.hero-sticker{right:31%;top:10px;font-size:40px}.player-card{padding:18px;margin-right:3px}.game-layout{grid-template-columns:minmax(0,1fr) 238px;gap:16px}aside{padding:20px 15px}.map-top{font-size:8px}.building-btn{font-size:8px;padding:7px}.intro h1{font-size:49px}.avatar{width:55px;height:65px;font-size:35px}.player-card strong{font-size:20px}.hero-actions>span{font-size:9px}.quest{padding:9px 3px}.world-tag{font-size:10px}}
@media(max-width:760px){.hero-sticker{display:none}.intro h1{font-size:45px}.player-card{padding:14px;gap:10px}.player-card strong{font-size:18px}.player-card span:not(.level){font-size:8px}.world-heading h2{font-size:16px}.world-tag{display:none}.hero-actions>span{display:none}.map-top{letter-spacing:.3px}}
@media(max-width:680px){header{height:67px}nav button{padding:6px 9px}main{padding-top:29px}.intro{margin-bottom:35px}.intro h1{font-size:46px;letter-spacing:-2.5px}.intro .eyebrow{font-size:8px;padding:7px 10px}.hero-actions{margin-top:17px}.hero-actions>span{display:inline;font-size:9px}.player-card{margin:38px 8px 0 5px;transform:rotate(2deg);padding:17px;width:calc(100% - 14px)}.player-card:after{left:auto;right:20px;top:-30px}.player-card:before{bottom:-21px;font-size:7px}.player-card strong{font-size:22px}.player-card span:not(.level){font-size:10px}.avatar{height:62px;width:59px}.world-heading{margin-top:40px}.world-heading h2{font-size:18px;max-width:300px;line-height:1.4}.game-layout{grid-template-columns:1fr;gap:25px}.map{aspect-ratio:1.25}.map-top{padding:14px 10px;font-size:6px}.map-bottom{padding:14px 10px}.building-btn{font-size:7px;padding:6px 7px}.map-hint{font-size:7px;padding:7px 9px}aside{padding:24px}.quest{padding:12px 7px}.quest strong{font-size:13px}.quest small{font-size:10px}.quest-icon{width:39px;height:39px;font-size:21px}aside h2 br{display:none}.bottom-note{padding:15px;gap:10px}.bottom-note>span:last-child{display:none}.bottom-note p{font-size:11px}footer{font-size:6px;letter-spacing:.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Cartridge edition: arcade shell, warm world. */

body{background:radial-gradient(ellipse at 85% 0%,#3c2c5844,transparent 45%),#171621;color:#f4efdf;--ink:#f4efdf;--purple:#c2a0ff}header{background:#1c1a29;border-color:#383144;height:74px}.brand{color:#faf1df}.brand-icon{border-radius:3px;box-shadow:3px 3px 0 #4e3b68}.brand>span:last-child{color:#b8a0ed}nav button{color:#c4b7d9;background:#282334;border-color:#463a57;border-radius:4px}.status{color:#a6bd85}.intro{min-height:235px;margin-bottom:37px}main{padding-top:35px}h1{font-size:clamp(48px,5vw,76px);line-height:1.03;letter-spacing:-3px}h1 em{background:linear-gradient(100deg,#c0a1f6,#e0b8dc);background-clip:text;-webkit-background-clip:text}h1 em:after{background:#b5945144}.intro .eyebrow{border:0;background:none;color:#c3a4e7;padding:0;letter-spacing:2px}.intro p{color:#a79caf}.hero-actions button{background:#bd9ce9;border:2px solid #ddc4ff;color:#261b35;border-radius:3px;box-shadow:4px 4px 0 #654485;font:600 11px 'Space Grotesk',monospace}.hero-actions>span{color:#84788f;font:8px monospace;letter-spacing:1px}.player-card{background:linear-gradient(140deg,#322a44,#252034);border:2px solid #6c5687;border-radius:4px;box-shadow:6px 6px 0 #0c0b13;transform:rotate(2deg)}.player-card strong{color:#f5e7fb}.player-card span:not(.level){color:#b3a0c6}.player-card:before{color:#88739d}.player-card:after{color:#d5b077}.avatar{border-radius:3px;border-color:#a184bf;background:#635077;box-shadow:3px 3px 0 #1c1729}.level{border-radius:1px;border:2px solid #a6854a;background:#e8ca87;color:#503b20;box-shadow:3px 3px 0 #17111c}.hero-sticker{color:#c1a477}.hero-sticker span{color:#988a78}.world-heading .eyebrow{color:#c09cdf}.world-heading h2{color:#dfd4e9}.world-tag{color:#85758f;font:8px monospace;letter-spacing:1px;transform:none}.game-layout{grid-template-columns:minmax(0,1fr) 266px}.map-wrap{border:3px solid #69537f;border-radius:7px;box-shadow:7px 7px 0 #0c0b13,0 0 45px #a174b808;background:#231e30}.console-bar{background:#30263e;border-bottom:2px solid #69537f;color:#baa4d1;padding:11px 15px;display:flex;align-items:center;justify-content:space-between;font:8px monospace;letter-spacing:1px}.console-bar>div{display:flex;gap:17px;align-items:center}#xp{color:#efd094}#replay{background:none;border:0;border-left:1px solid #655073;padding-left:12px;color:#c5b3d4;font:8px monospace}.map-top{padding:11px 15px;background:#e9dfc6;color:#71604d;border-bottom:3px solid #a5aa7d;font:8px monospace}.map-top b{color:#9a895b}.map{isolation:isolate}.map:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#19311708 0px,#19311708 1px,transparent 1px,transparent 4px);pointer-events:none;z-index:2}.map-hint{border-radius:3px;background:#fff8dded;box-shadow:3px 3px 0 #5b785b55;font:9px monospace}.building-btn{border-radius:1px;border:2px solid #83765d;box-shadow:3px 3px 0 #4c674d77;font:600 9px monospace;padding:7px 10px;z-index:3}.building-btn:hover,.building-btn:focus-visible{outline:2px solid #fff3ab;background:#fff1b9;box-shadow:4px 4px 0 #52664a}.building-btn .num{color:#9d7ab7}.game-dialogue{display:flex;align-items:center;gap:12px;background:#292134;border-top:3px solid #69537f;border-bottom:1px solid #473751;padding:15px 17px;min-height:81px}.guide-face{border:2px solid #b39ac7;background:#473355;color:#e8cf8d;display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;font-size:27px;box-shadow:3px 3px 0 #17111f}.game-dialogue small{color:#d2adf2;font:8px monospace;letter-spacing:1.5px}.game-dialogue p{font:11px/1.7 monospace;color:#d0c4da;margin:7px 0 0}.dialogue-next{margin-left:auto;color:#cdb0ea;font-size:10px;animation:twinkle 2s infinite}.map-bottom{background:#211b2a;color:#9e8aaa;font:8px monospace}kbd{background:#3a2d48;border-color:#5f4975;color:#d6bceb;border-radius:1px}.dpad button{border-radius:2px;background:#f9efd5;border:2px solid #8c7a92;box-shadow:2px 2px 0 #5e655d88;width:28px;height:28px}.dpad{z-index:4}aside{background:#25202f;border:2px solid #51405f;border-radius:5px;box-shadow:5px 5px 0 #0c0b13}.quest-heading .eyebrow{color:#b69bc9;letter-spacing:1px}aside h2{font:700 21px/1.25 'Space Grotesk';color:#f0dfc7;letter-spacing:.3px}aside p{color:#9984a8}.progress-label{color:#9e86af}.progress{background:#44354f;border-radius:0}#progress{background:linear-gradient(90deg,#a17dc8,#dcafd8);border-radius:0}.quest{border-radius:3px}.quest:hover{background:#3b2e47}.quest strong{color:#e3d5ed}.quest small{color:#9781a7}.quest-icon{border-radius:2px!important;box-shadow:2px 2px 0 #120e19}.quest .check{border-radius:1px;border-color:#6c547f}.badge{background:#3a2f32;border-radius:2px;border-color:#a98a50}.badge strong{color:#e5c88d}.badge small{color:#ac906b}.badge.unlocked{background:#51422a}.badge.unlocked strong{color:#ffe4a5}.reset{color:#ac92bf}.bottom-note{border-radius:3px;background:linear-gradient(100deg,#30253d,#282332);border-color:#493751}.bottom-note p{color:#a78bb7}.bottom-note strong{color:#d2b6e3}.bottom-note>span:last-child{color:#947aa5}footer{color:#72647d}#modal{border:3px solid #b096cd;border-radius:3px;background:#292134;color:#f6eaf8;box-shadow:8px 8px 0 #100c18}#modal h2{color:#f1dcae}#modal p{color:#bda9cc}.modal-icon{border-radius:3px;border:2px solid #9471af;background:#4f365e;box-shadow:4px 4px 0 #171020}.chips span{border:1px solid #74548b;background:#443050;color:#d6bbe8;border-radius:2px}.detail{border-color:#594265}.primary{border:2px solid #c9a0e3;background:#9470b6;border-radius:2px;color:white;box-shadow:3px 3px 0 #140f1d}.sample{color:#ba99cf}.close{color:#c0a2d3}#start-screen{width:min(590px,92vw);padding:44px 28px;text-align:center;border:4px solid #a98ac9;border-radius:4px;background:radial-gradient(ellipse at center,#453059,#1e192c 75%);color:#e8dcf2;box-shadow:9px 9px 0 #0e0b16,0 0 80px #ad79c833;max-height:92dvh;overflow:auto}#start-screen::backdrop{background:#100c1de8;backdrop-filter:blur(8px)}.start-stars{font-size:30px;letter-spacing:21px;color:#dfc180;margin-bottom:24px}#start-screen .eyebrow{font-size:8px;color:#b599ce;letter-spacing:2px}#start-screen h2{font:700 clamp(30px,7vw,49px)/1.1 'Space Grotesk',monospace;letter-spacing:-2px;color:#fff1d5;text-shadow:3px 3px #6e4689;margin:22px 0}#start-screen h2 span{color:#c7a0f2}#start-screen p{color:#baa4c9;font:12px/1.8 monospace}.start-scene{font-size:44px;padding:16px 0;letter-spacing:10px;border-bottom:2px solid #6d537e;margin:0 auto 20px;width:80%;background:linear-gradient(transparent,#a78eab16)}#start-game{display:block;margin:26px auto 17px;padding:16px 25px;border:2px solid #e6cfff;background:#b791de;color:#271c36;border-radius:2px;box-shadow:4px 4px 0 #61447d;font:700 12px monospace;letter-spacing:1px}#skip-intro{display:block;margin:0 auto 25px;background:none;border:0;color:#b59bc7;font:10px monospace}#start-screen>small{display:block;font:8px/1.8 monospace;color:#ae95bf}.start-version{display:block;font:7px monospace;letter-spacing:1px;color:#7a668d;margin-top:26px}#toast{position:fixed;bottom:25px;left:50%;translate:-50% 30px;opacity:0;pointer-events:none;background:#35253e;color:#f4d995;border:2px solid #c3a16b;box-shadow:4px 4px 0 #130d1d;z-index:100;padding:14px 20px;font:12px monospace;transition:opacity .2s,translate .2s;width:max-content;max-width:90vw;text-align:center}#toast.visible{opacity:1;translate:-50% 0}.coin{animation:twinkle 2s infinite;transform-box:fill-box;transform-origin:center}
@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 235px}.intro h1{font-size:55px}.hero-sticker{display:none}.building-btn{font-size:8px;padding:6px}.game-dialogue{padding:12px;gap:10px}.game-dialogue p{font-size:10px}.map-top{font-size:7px}}
@media(max-width:680px){.game-layout{grid-template-columns:1fr}.intro h1{font-size:55px}.intro .eyebrow{font-size:7px;letter-spacing:1px}.console-bar{font-size:6px;padding:10px}.console-bar>div{gap:8px}#replay{font-size:7px}.map-top{font-size:6px;padding:10px}.building-btn{font-size:7px;padding:5px}.map-hint{font-size:7px}.hero-actions>span{font-size:7px}.player-card{margin-top:30px}.world-heading h2{font-size:17px}.game-dialogue p{font-size:10px}aside h2{font-size:23px}.quest strong{font-size:13px}.map-bottom{font-size:7px}.start-scene{font-size:35px}#start-screen{padding:30px 20px}}

/* Mobile handheld layout: a roomy world and a separate thumb controller. */
@media(max-width:680px){
 main{padding:22px 4% 0}.intro h1{font-size:42px;line-height:1.05}.intro{margin-bottom:27px}.intro p{font-size:12px}.intro .player-card{display:none}.hero-actions{margin-top:15px}.hero-actions>span{display:none}.hero-actions button{padding:12px 17px;min-height:46px}.world-heading{margin-top:0;margin-bottom:13px}.world-heading h2{font-size:16px;max-width:none}.game-layout{gap:22px}.map-wrap{overflow:visible;border-radius:5px}.console-bar{border-radius:2px 2px 0 0;padding:13px 10px}.map-top{padding:12px 9px}.map{aspect-ratio:auto;height:440px;overflow:hidden}.map svg{width:155%;max-width:none;height:100%;position:absolute;left:-27.5%;top:0}.map #building-buttons{width:155%;left:-27.5%;right:auto}.map-hint{top:10px;padding:9px 11px;font-size:9px;max-width:95%;white-space:normal;text-align:center}.building-btn{font-size:9px;min-height:40px;padding:7px 10px;max-width:135px;white-space:normal;border-width:2px}.map-bottom{display:none}.game-dialogue{padding:13px;min-height:82px}.game-dialogue p{font-size:11px}.touch-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#211b2b;border-top:1px solid #584168;padding:18px 18px 20px;border-radius:0 0 3px 3px}.dpad{position:static;display:grid;grid-template-columns:50px 50px 50px;grid-template-rows:50px 50px;gap:5px;width:160px;flex-shrink:0;touch-action:none}.dpad>button{grid-column:2;margin:0}.dpad>div{display:contents}.dpad button{width:50px;height:50px;border:2px solid #bca1d6;background:#493657;color:#f0dfff;font-size:24px;box-shadow:0 4px 0 #100b19;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.dpad button:active,.dpad button.held{background:#aa80cc;color:#20152d;translate:0 3px;box-shadow:0 1px 0 #100b19}.touch-action{display:flex;align-items:center;flex-direction:column;gap:12px;max-width:140px}.touch-action button{width:74px;height:74px;border-radius:50%;border:3px solid #e3c5f7;background:#a57ac8;box-shadow:0 5px 0 #604276;color:#23142f;font:bold 12px monospace;touch-action:manipulation}.touch-action button:active{translate:0 3px;box-shadow:0 2px 0 #604276}.touch-action small{font:8px/1.7 monospace;color:#ad93bf;text-align:center}.touch-title{display:block;font:8px monospace;color:#a88cba;letter-spacing:1.5px;background:#211b2b;padding:13px 17px 0}.quest{min-height:60px}.close{min-width:44px;min-height:44px}.reset{min-height:44px}dialog{max-height:85dvh;overflow-y:auto}.hero-actions button span{margin-left:12px}.map:focus-visible{outline:2px solid #dab0ff;outline-offset:0}
}
@media(min-width:681px){.touch-panel{display:contents}.touch-action,.touch-title{display:none}}
@media(min-width:681px){.touch-panel{display:block;position:relative;height:0}.touch-panel .dpad{bottom:150px}}
@media(max-width:680px){.dpad>[data-move="up"]{grid-row:1;grid-column:2}.dpad [data-move="left"]{grid-row:2;grid-column:1}.dpad [data-move="down"]{grid-row:2;grid-column:2}.dpad [data-move="right"]{grid-row:2;grid-column:3}aside h2 br{display:initial}}
.contact-label{display:block;font:9px monospace;letter-spacing:1px;color:#c5a5db;margin:20px 0 9px}#contact-quest input,#contact-quest select,#contact-quest textarea{display:block;width:100%;border:1px solid #806091;border-radius:3px;background:#1d1728;color:#f0e5f6;padding:12px;font:13px/1.6 'DM Sans',sans-serif}#contact-quest textarea{resize:vertical}#contact-quest input:focus,#contact-quest select:focus,#contact-quest textarea:focus{outline:2px solid #c9a0e3;outline-offset:2px}#contact-quest .contact-note{font-size:11px;line-height:1.7;color:#b7a2c4}.contact-actions{display:flex;gap:12px;flex-wrap:wrap}.contact-actions .primary{min-height:44px;margin-top:4px}.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.primary.secondary{background:#392b47;border-color:#826397;color:#e8d4f4}#copy-state{font-size:12px!important;color:#d9c08b!important}
/* Shared palette: midnight plum, parchment, soft jade and violet crystal. */
:root{--night:#171621;--panel:#25202f;--panel-raised:#30213e;--plum:#806093;--lavender:#bd91dc;--parchment:#f4e4c2;--jade:#9dbd9e;--crystal:#c7a0f2;--gold:#f3d17f}
.brand-icon{background:#30213e;border:1px solid #806093;color:var(--gold)}.brand>span:last-child{color:var(--lavender)}.hero-actions button{background:var(--lavender);border-color:#e1c5f5;box-shadow:4px 4px #654485}.player-card{border-color:#806093}.level{background:var(--gold)}.console-bar{background:#30213e;border-color:#806093;color:#d6bceb}.console-bar #xp{color:var(--gold)}.map-top{background:var(--parchment);color:#665741;border-bottom-color:#9eaa86}.map-hint{color:#4e705b;background:#fff8e8ed;border-color:#d4c294}.building-btn{border-color:#8c805f;color:#463a55;background:#fff8e8}.building-btn:hover,.building-btn:focus-visible{background:#f1dbff;border-color:#b78bd0}.game-dialogue{background:#292134;border-color:#806093}.guide-face{background:#473355;border-color:#b39ac7;color:var(--gold)}.game-dialogue small{color:#d2adf2}.game-dialogue p{color:#f0e3cf}.dpad button{border-color:#bca1d6;background:#42304f;color:#efdbff}.dpad button:active,.dpad button.held{background:#bd91dc;color:#25182f}.touch-action button{border-color:#e3c5f7;background:#a57ac8}.quest-icon{background:#e4d9ef!important;border-color:#cbb8da!important}.quest:nth-child(3) .quest-icon{background:#f1e1bc!important;border-color:#dfc98f!important}.quest:nth-child(5) .quest-icon{background:#d4e9e1!important;border-color:#b1d4ca!important}.badge{background:#353044;border-color:#b79c63}.badge.unlocked{background:#51422a}.bottom-note{background:linear-gradient(100deg,#30253d,#282332);border-color:#493751}.primary{background:#806093;border-color:#c9a0e3}.chips span{background:#443050;color:#e6d4ed}

/* Keep the astronaut together across browser emoji implementations. */
.avatar{flex-shrink:0;overflow:hidden}.avatar img{display:block;width:44px;height:48px;max-width:100%;object-fit:contain}

/* Personal portfolio identity. */
.intro h1{font-size:clamp(56px,7vw,96px);letter-spacing:-3px}.portfolio-subtitle{display:block;font:500 clamp(14px,1.5vw,19px)/1.5 'Space Grotesk',sans-serif;letter-spacing:0;color:#d6bceb;margin-top:18px}.intro>div:first-child{max-width:700px}@media(max-width:680px){.intro h1{font-size:56px}.portfolio-subtitle{max-width:280px;font-size:14px}}

/* Ketan's portrait in the player card. */
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center 33%}

.player-name-label{display:block;color:#e4c9f5;font:10px monospace;letter-spacing:1px;margin:24px 0 10px}#player-name-input{display:block;width:min(100%,320px);margin:0 auto 10px;padding:14px 16px;background:#1d1728;color:#fff1d5;border:2px solid #9471af;border-radius:5px;font:16px 'DM Sans',sans-serif}#player-name-input:focus{outline:2px solid #f3d17f;outline-offset:3px}#player-name-note{color:#ae95bf;font:10px monospace}.visitor-player{font:10px monospace;color:#c7a0f2;max-width:180px;overflow-wrap:anywhere}.visitor-player strong{color:#f3d17f}@media(max-width:680px){.visitor-player{max-width:100px;font-size:9px}nav{gap:10px}}

.player-initials{font:700 25px/1 'Space Grotesk',sans-serif;letter-spacing:1px;color:#fff1d5;background:linear-gradient(145deg,#806093,#493355);text-shadow:0 2px 0 #30213e}

.contact-socials{margin-top:24px}.contact-socials h3{color:#c7a0f2}.social-links{display:flex;gap:10px;flex-wrap:wrap}.social-links a{padding:12px 16px;border:1px solid #806093;border-radius:4px;background:#443050;color:#f4e4c2;text-decoration:none;min-height:44px}.social-links a:hover,.social-links a:focus-visible{background:#604477;outline:2px solid #c7a0f2}
