@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#fff;--lav:#bda5ff;--pink:#ffa8d4;--ink:#191934}*{box-sizing:border-box}body{margin:0;background:#13132c;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible{outline:3px solid #fdcf80;outline-offset:3px}.hidden{display:none!important}.menu{height:100dvh;display:flex;background:radial-gradient(ellipse at 22% 40%,#554882 0%,transparent 45%),linear-gradient(135deg,#181833,#282447 75%,#1b1a3b);overflow:hidden;position:relative}.menu-art{position:relative;width:52%;min-width:0;align-self:stretch;background:radial-gradient(circle at 48% 47%,#b898c150,transparent 40%)}.hero-moon{position:absolute;width:380px;height:380px;background:#eee6ff;border-radius:50%;left:17%;top:19%;box-shadow:0 0 100px #ae94f56e;opacity:.8}.menu-art:after{content:"";position:absolute;bottom:-120px;left:-120px;width:900px;height:310px;border-radius:50%;background:linear-gradient(155deg,#4d447c,#2d2859);transform:rotate(-10deg)}.floating-star{position:absolute;font-size:40px;color:#f8ccff;z-index:2;animation:float 5s ease-in-out infinite}.s1{top:16%;left:12%}.s2{top:30%;right:15%;color:#fef2ba;animation-delay:1s}.s3{bottom:25%;left:20%;animation-delay:2s}@keyframes float{50%{transform:translateY(-15px)}}.anime-face{position:absolute;width:170px;height:215px;border:9px solid #31264f;border-radius:48% 48% 42% 42%;background:linear-gradient(#fff2e4,#f8c8c3);z-index:3;box-shadow:15px 25px 0 #2923436e}.face-a{left:23%;top:34%;transform:rotate(-10deg)}.face-b{left:49%;top:42%;transform:rotate(11deg);background:#ffdecb}.anime-face:before{content:"";position:absolute;left:-15px;right:-15px;top:-48px;height:105px;border-radius:60% 60% 25% 25%;background:#40335c;box-shadow:inset 0 14px 0 #72608c}.face-b:before{background:#f0afc5;box-shadow:inset 0 14px 0 #ffe0ed}.anime-face:after{content:"";position:absolute;left:25px;bottom:-90px;width:110px;height:100px;border-radius:45px 45px 0 0;background:#8b82cb}.face-b:after{background:#e98fae}.eyes{position:absolute;top:82px;left:50px;color:#49324a;font-size:33px;font-weight:900;white-space:pre}.blush{position:absolute;top:120px;left:80px;color:#bd677b;font-size:24px}.menu-content{position:relative;z-index:4;width:48%;padding:10vh 5vw 5vh 3vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.eyebrow{font-size:12px;font-weight:800;color:#ccb7ff;letter-spacing:2.2px}.menu h1{font-family:Outfit,system-ui;font-weight:900;font-size:clamp(54px,7vw,112px);margin:12px 0 10px;letter-spacing:-5px;line-height:.95}.menu h1 span,.brand span{color:#ffafda}.tagline{font-family:Outfit,system-ui;font-weight:500;font-size:clamp(22px,2.7vw,38px);line-height:1.3;margin:16px 0}.tagline strong{color:#ffb6db}.intro{font-size:15px;max-width:430px;line-height:1.7;color:#d4cde7}.menu-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.primary,.secondary{border:0;border-radius:14px;font-weight:800;padding:13px 18px}.primary{background:linear-gradient(110deg,#bca7ff,#ffc1d9);color:#26203d;box-shadow:0 8px 25px #dc9edc30}.secondary{background:#ffffff16;color:white;border:1px solid #ffffff55}.large{padding:16px 22px}.tinyline{color:#a69dbd;font-size:12px;margin-top:32px}.game{position:relative;width:100vw;height:100dvh;overflow:hidden;background:#8bbf98}#world{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;pointer-events:none}.hud button{pointer-events:auto}.top-left{top:max(16px,env(safe-area-inset-top));left:18px;text-shadow:0 2px 4px #34284f55}.brand{font-family:Outfit;font-weight:900;font-size:25px;letter-spacing:-1.3px}.zone{font-size:14px;font-weight:900;color:#fff7d2;margin-top:5px}.chapter{font-size:11px;color:white;margin-top:3px;opacity:.85}.top-right{right:15px;top:max(16px,env(safe-area-inset-top));display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:57%}.clock,.pill{background:#26213fc9;border:1px solid #ffffff45;backdrop-filter:blur(10px);color:#fff;box-shadow:0 5px 20px #211e4030;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:800}.pill:hover{background:#544477}.bottom-left{left:15px;bottom:max(17px,env(safe-area-inset-bottom))}.player-card{display:flex;align-items:center;gap:12px;border:1px solid #ffffff65;background:#27203fcc;border-radius:18px;padding:10px 18px 10px 10px;backdrop-filter:blur(10px);min-width:205px}.portrait,.dialog-avatar{display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#ffc2d4,#aa9bef);color:#694479;border-radius:14px;width:49px;height:49px;font-size:27px}.label,.quest-track small{font-size:9px;letter-spacing:1px;font-weight:800;color:#d7cae7}.player-name{font-weight:900;font-family:Outfit;font-size:17px}.stat-line{display:flex;align-items:center;gap:5px;color:#ffb7b7}.stat-line small{font-size:10px}.meter{width:85px;height:6px;border-radius:10px;background:#ffffff3d;overflow:hidden}.meter div{height:100%;background:linear-gradient(90deg,#ff9abb,#ffd7a4);transition:width .2s}.help-text{font-size:10px;margin:7px 4px;text-shadow:1px 2px 3px #000}.bottom-center{bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px}.quest-track{min-width:220px;max-width:300px;display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:16px;background:#231f42d9;border:1px solid #ffffff56;backdrop-filter:blur(9px)}.quest-ico{font-size:23px;color:#ffdeb5}.quest-track div{display:flex;flex-direction:column;gap:2px}.quest-track strong{font-size:13px}.quest-track span:not(.quest-ico){font-size:10px;color:#e1d9ef}.action-button{border:0;border-radius:15px;padding:14px 18px;background:#ffde9d;color:#493747;font-weight:900;box-shadow:0 5px 25px #2225;white-space:nowrap}.mini{position:absolute;right:16px;top:87px;background:#2c2548c9;border-radius:16px;padding:6px;border:1px solid #fff5;overflow:hidden;pointer-events:none;box-shadow:0 6px 18px #28223b30}#mapCanvas{display:block;width:150px;height:110px;border-radius:9px}#mapCaption{font-size:9px;letter-spacing:1.5px;text-align:center;font-weight:800;padding:3px}.toast{position:absolute;top:20%;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:14px;background:#24203eea;z-index:20;font-size:13px;font-weight:800;border:1px solid #fff7;pointer-events:none;box-shadow:0 12px 40px #0004}.dialogue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:12;display:flex;gap:15px;align-items:flex-start;background:#24213cf3;backdrop-filter:blur(22px);width:min(760px,calc(100% - 28px));min-height:185px;border:2px solid #ebd5ff8c;box-shadow:0 15px 50px #17102a80;border-radius:19px;padding:18px 22px}.dialog-avatar{width:78px;height:78px;flex-shrink:0;font-size:45px}.dialog-main{flex:1;min-width:0}.dialog-head{display:flex;align-items:center;gap:15px}.dialog-head strong{font-family:Outfit;font-size:21px;color:#ffbbdf}.dialog-head span{font-size:11px;color:#cebcff}.dialog-main p{margin:9px 0 14px;color:#f5f0ff;line-height:1.45;font-size:14px;max-height:120px;overflow:auto}.choices{display:flex;flex-wrap:wrap;gap:8px}.choices button{background:#51456b;border:1px solid #aa92df75;color:white;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:800;text-align:left}.choices button:hover{background:#77639e}.close{border:0;background:#ffffff21;color:#fff;border-radius:50%;width:30px;height:30px;font-size:22px;flex-shrink:0}.shade{position:absolute;inset:0;background:#111226b8;z-index:30;display:flex;justify-content:center;align-items:center;padding:16px;backdrop-filter:blur(6px)}.modal{position:relative;width:min(660px,100%);max-height:min(85dvh,760px);overflow-y:auto;background:linear-gradient(145deg,#302948,#211f38);border-radius:22px;border:1px solid #e4cfff75;box-shadow:0 30px 100px #0a071c99;padding:26px}.modal-x{position:absolute;top:14px;right:14px}.modal h2{font-family:Outfit;font-size:27px;margin:2px 36px 8px 0}.modal h3{font-family:Outfit;margin:20px 0 9px}.muted{font-size:13px;color:#d5cbe5;line-height:1.55}.field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.field label{font-size:12px;font-weight:800;color:#eacfff}.field input,.field textarea,.field select{width:100%;border-radius:11px;padding:12px;background:#ffffff13;border:1px solid #ffffff38;color:white;outline:0}.field select option{background:#302948}.field textarea{resize:vertical;min-height:125px}.field input:focus,.field textarea:focus{border-color:#dab1ff}.modal-buttons{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.tip{padding:12px;background:#e7baff15;border:1px solid #d6b0e944;border-radius:12px;font-size:12px;color:#f8e9ff}.file-upload{display:block;border:2px dashed #c9a9f577;border-radius:12px;text-align:center;padding:16px;cursor:pointer;margin:12px 0;color:#efd6fc;font-weight:800}.cast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cast-row,.quest-row{background:#ffffff10;border:1px solid #ffffff25;padding:12px;border-radius:12px}.cast-row strong{display:block;font-size:14px}.cast-row small{font-size:11px;color:#e0cde9}.quest-row{margin:8px 0;display:flex;gap:12px}.quest-row.done{opacity:.58}.progress-bar{height:7px;background:#ffffff22;border-radius:9px;margin-top:8px}.progress-bar div{height:7px;background:#e8aed7;border-radius:9px}.controls{display:none;position:absolute;z-index:9;bottom:24px;left:14px;right:14px;pointer-events:none;justify-content:space-between;align-items:flex-end}.controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;background:#2b244fba;border:1px solid #ffffff88;color:white;font-size:18px;font-weight:900;box-shadow:0 4px 18px #15112e65;backdrop-filter:blur(4px)}.dpad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:3px}.dpad button{border-radius:12px}.dpad .up{grid-column:2;grid-row:1}.dpad .left{grid-column:1;grid-row:2}.dpad .right{grid-column:3;grid-row:2}.dpad .down{grid-column:2;grid-row:3}.touch-right{display:flex;align-items:end;gap:10px}.touch-right .run{width:52px;height:52px;border-radius:50%;font-size:12px}.touch-right .interact{width:74px;height:74px;border-radius:50%;font-size:24px;background:#8a65bfe8}.touch-right .interact small{display:block;font-size:10px}
@media(max-width:900px){.menu-art{width:45%}.menu-content{width:55%;padding:8vh 3vw}.hero-moon{width:250px;height:250px}.face-a{left:10%}.face-b{left:40%}.mini{top:130px}.top-right{max-width:65%}.bottom-center{bottom:120px}.help-text{display:none}.controls{display:flex}.bottom-left{bottom:170px}.dialogue{bottom:165px;min-height:0}.quest-track{min-width:170px}}
@media(max-width:600px){.menu{flex-direction:column}.menu-art{width:100%;height:36%;flex:none}.menu-content{width:100%;height:64%;padding:20px 26px 36px;justify-content:flex-start}.hero-moon{width:190px;height:190px;top:14%;left:30%}.anime-face{transform:scale(.62)!important;transform-origin:top left}.face-a{left:32%;top:30%}.face-b{left:52%;top:36%}.menu h1{font-size:65px;letter-spacing:-4px}.tagline{font-size:22px;margin:9px 0}.intro{font-size:12px;margin:6px 0}.menu-actions{margin-top:15px}.large{font-size:12px;padding:13px 14px}.tinyline{font-size:10px;margin-top:18px}.top-left{left:10px;top:9px}.brand{font-size:19px}.zone{font-size:12px}.chapter{font-size:10px}.top-right{top:11px;right:7px;max-width:64%;gap:4px}.pill,.clock{font-size:10px;padding:7px 8px;border-radius:8px}.mini{top:99px;right:8px;transform:scale(.76);transform-origin:top right}.bottom-left{left:8px;bottom:155px}.player-card{padding:5px 9px 5px 5px;min-width:0;gap:6px;border-radius:11px}.portrait{width:32px;height:32px;font-size:20px}.label{font-size:7px}.player-name{font-size:12px}.meter{width:44px}.bottom-center{bottom:149px;left:auto;right:8px;transform:none;max-width:54%}.quest-track{padding:7px 9px;min-width:0;gap:7px;border-radius:11px}.quest-track strong{font-size:10px}.quest-track small{font-size:7px}.quest-track span:not(.quest-ico){font-size:8px}.quest-ico{font-size:17px}.action-button{display:none!important}.dialogue{bottom:152px;width:calc(100% - 14px);gap:8px;padding:11px;border-radius:13px;max-height:50dvh}.dialog-avatar{width:40px;height:40px;font-size:26px}.dialog-head strong{font-size:16px}.dialog-head span{font-size:9px}.dialog-main p{font-size:12px;margin:5px 0 9px}.choices button{font-size:11px;padding:8px}.close{width:25px;height:25px;font-size:17px}.controls{bottom:max(14px,env(safe-area-inset-bottom));left:10px;right:10px}.dpad{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px)}.touch-right .interact{width:70px;height:70px}.modal{padding:17px}.modal h2{font-size:21px}.cast-grid{grid-template-columns:1fr}}
@media(hover:none) and (pointer:coarse){.controls{display:flex}}

/* AU library and richer illustrated presentation */
.au-shelf{margin:18px 0 6px;max-width:510px}.au-shelf-heading{font-size:11px;letter-spacing:1.5px;font-weight:900;color:#e4caff;display:flex;justify-content:space-between}.au-shelf-heading span{color:#baadc9;letter-spacing:0}.au-cards{display:flex;gap:9px;overflow-x:auto;padding:10px 2px 12px;scroll-snap-type:x mandatory}.au-card{flex:0 0 166px;min-height:114px;text-align:left;display:flex;flex-direction:column;gap:8px;scroll-snap-align:start;background:linear-gradient(145deg,#463b6d,#2a2850);border:1px solid #ffffff3d;border-radius:16px;color:white;padding:13px;cursor:pointer;box-shadow:inset 0 1px #ffffff1a}.au-card:nth-child(3n+2){background:linear-gradient(145deg,#624258,#302744)}.au-card:nth-child(3n){background:linear-gradient(145deg,#38586a,#282a54)}.au-card.selected{border:2px solid #ffe0ab;box-shadow:0 0 0 2px #f7caff3d}.au-card strong{font-size:13px;line-height:1.25}.au-card small{font-size:10px;color:#dad4e8;line-height:1.35}.au-tag{font-size:11px;color:#ffdeef}.au-actions{display:flex;gap:8px;flex-wrap:wrap}.au-actions button{padding:9px 12px;font-size:12px}.world-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:9px 0;padding:13px;border:1px solid #ffffff32;border-radius:14px;background:#ffffff10}.world-row strong{display:block;font-size:15px}.world-row small{display:block;color:#d9c9e9;margin-top:4px;font-size:11px}.world-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:end}.world-row-actions button{font-size:11px;padding:8px 10px}.menu-art{background:radial-gradient(circle at 47% 42%,#ffe2ea55,transparent 38%),linear-gradient(160deg,#302e63,#654a76 60%,#885879)}.hero-moon{box-shadow:0 0 60px #ffeaf58a,0 0 130px #efb1e55e}.dialogue{border-color:#f1d4f0}.game{background:#a4c7b9}
@media(max-width:600px){.au-shelf{margin:10px 0 0}.au-cards{padding:7px 0}.au-card{flex-basis:136px;min-height:95px;padding:10px}.au-card strong{font-size:12px}.au-actions button{font-size:11px}.menu-art{height:30%}.menu-content{height:70%;overflow-y:auto}.menu h1{font-size:52px}.tagline{font-size:18px}.intro{font-size:11px}.world-row{align-items:flex-start;flex-direction:column}.world-row-actions{justify-content:flex-start}}

/* Keep gameplay reachable on touchscreens and hybrid laptops. */
@media(max-width:900px){.controls{display:flex!important}}
