@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#f9f3df;background:#102d30;--gold:#efc578;--ink:#153f40;--cream:#fbf6e9}*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,a,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #e9a63e;outline-offset:4px}header{height:78px;flex-shrink:0;display:flex;align-items:center;gap:25px;padding:0 30px;border-bottom:1px solid #ffffff16;z-index:4;background:#102d30}a{color:inherit;text-decoration:none}.brand b{font-family:Manrope,sans-serif;font-size:25px;letter-spacing:4px}.brand small{display:block;font-size:8px;letter-spacing:3px;margin:4px 0 0 31px;color:#c2cec1}.chapter{border-left:1px solid #ffffff25;padding-left:23px;font-size:9px;letter-spacing:2px;color:#b7c8be}.chapter strong{display:block;font-size:13px;letter-spacing:0;color:var(--cream);margin-top:6px}nav{margin-left:auto;display:flex;gap:5px}nav button{background:none;color:#e5e8dc;padding:12px;border-radius:9px;font-size:12px}nav button:hover{background:#ffffff12}nav span{font-size:10px;background:#ffffff18;padding:3px 6px;border-radius:5px;margin-left:3px}.xp{font-size:11px;color:var(--gold);white-space:nowrap}.xp b{font-size:16px}main{position:relative;flex:1;overflow:hidden;background:#9e9b7a;isolation:isolate;outline:none!important}#world{position:absolute;left:0;top:0;width:1800px;height:1200px;background:url('assets/eid-world.png') center/100% 100%;will-change:transform;transform-origin:top left}#world.room{width:900px;height:600px;background-image:url('assets/eid-interiors.png');background-size:300% 100%}.objective{position:absolute;top:26px;left:26px;width:276px;padding:22px 24px;border-radius:16px;background:#123b3bee;box-shadow:0 12px 40px #05242630;border:1px solid #e5dab322;backdrop-filter:blur(15px)}.objective small{font-size:8px;letter-spacing:2px;color:var(--gold)}h1{font:600 24px/1.3 Manrope,sans-serif;letter-spacing:-.7px;margin:12px 0}.objective p{font-size:12px;line-height:1.7;color:#d3dfd3;margin-bottom:18px}.objective button{font-size:11px;color:var(--gold);background:transparent;padding:0}.minimap{position:absolute;right:24px;top:24px;width:155px;background:#163d3be8;border:1px solid #f5df9f40;border-radius:13px;padding:10px;backdrop-filter:blur(8px)}.minimap svg{display:block;width:100%;height:auto}.minimap path{stroke:#7d9b8c;stroke-width:24;fill:none}.minimap circle{fill:var(--gold)}#mini-player{fill:white;stroke:#123b3b;stroke-width:12}.minimap span{display:block;font-size:8px;letter-spacing:3px;text-align:center;color:#e2c996}#scene-name{position:absolute;bottom:112px;left:50%;transform:translateX(-50%);padding:8px 16px;border-radius:20px;background:#163b3bba;color:#fff6df;font-size:11px;letter-spacing:1px;white-space:nowrap}.interaction{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);text-align:center;min-width:290px}.interaction button{padding:13px 22px;border-radius:10px;color:#f9f2d7;background:#123a3bf0;border:1px solid #e0c28770;box-shadow:0 7px 20px #0002;font-size:13px}.interaction small{display:block;font-size:10px;color:#fffbe9;margin-top:10px;text-shadow:0 1px 4px black}kbd{font:10px inherit;background:#ffffff20;padding:4px 6px;border:1px solid #ffffff40;border-radius:4px;margin-right:8px}#player{position:absolute;width:68px;height:92px;margin:-83px 0 0 -34px;pointer-events:none;z-index:3}#player img{width:100%;height:100%;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(2px 3px 2px #0003)}#player.walking img{animation:walk .35s ease-in-out infinite alternate}.player-shadow{position:absolute;width:27px;height:10px;background:#16343170;border-radius:50%;bottom:4px;left:20px;filter:blur(2px)}@keyframes walk{to{translate:0 -4px;rotate:2deg}}.marker{position:absolute;transform:translate(-50%,-100%);border:1px solid #ffe8ab80;box-shadow:0 6px 16px #0003;background:#113b3be8;color:var(--cream);border-radius:11px;padding:8px 12px;white-space:nowrap;font-size:11px;z-index:2}.marker small{display:block;color:#d3bc80;font-size:8px;margin-top:3px}.marker.active{background:#fff5d7;color:#174244;border:2px solid #bc803d}.marker.active small{color:#9a6732}.marker.active:before{content:'✦';color:#bd863f;margin-right:6px}.marker:after{content:'';position:absolute;left:calc(50% - 4px);bottom:-6px;border-width:6px 5px 0;border-style:solid;border-color:#173d3c transparent transparent}#destination{position:absolute;width:22px;height:10px;border:2px solid #fff3b0;border-radius:50%;transform:translate(-50%,-50%);display:none}#leave-room{position:absolute;right:25px;bottom:30px;background:#153c3d;color:#fff6df;border:1px solid #eac57870;border-radius:10px;padding:14px;z-index:3}.npc{position:absolute;left:450px;top:300px;transform:translate(-50%,-100%);text-align:center;background:none;color:var(--cream);z-index:2}.npc-portrait{width:100px;height:125px;border-radius:48px 48px 20px 20px;border:3px solid #f0ce80;display:block;background-image:url('assets/characters.png');background-size:300% auto;box-shadow:0 10px 25px #0004}.npc span:last-child{display:block;padding:6px 12px;background:#153d3e;border-radius:8px;margin-top:-3px;font-size:12px}.npc.salma .npc-portrait{background-image:url('assets/salma.png');background-size:auto 100%;background-position:center}.room-door{position:absolute;left:380px;top:558px;width:140px;text-align:center;background:#f5dba088;color:#123536;border-radius:10px;padding:6px;font-size:11px}footer{height:32px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 28px;font-size:9px;color:#a8bcb0;letter-spacing:.5px}footer span:nth-child(2){letter-spacing:2px;font-size:8px}footer a{color:#e6c88b}.dpad{display:none}dialog{width:min(820px,calc(100% - 28px));max-height:calc(100dvh - 44px);border:1px solid #d8d1b8;border-radius:23px;background:var(--cream);color:var(--ink);padding:0;box-shadow:0 25px 120px #0007}dialog::backdrop{background:#08292bb8;backdrop-filter:blur(7px)}#panel-body{padding:35px 40px 38px}.close{position:absolute;right:15px;top:13px;border-radius:50%;background:#153f4010;color:var(--ink);width:32px;height:32px;font-size:23px;z-index:2}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#9c6d2e;font-weight:700}h2{font:800 32px/1.15 Manrope,sans-serif;letter-spacing:-1px;margin:12px 36px 16px 0}h3{font-size:17px;margin:22px 0 12px}p{line-height:1.7;font-size:14px;color:#55706a}.speech{padding:16px 20px;background:#e8eee3;border-left:3px solid #799f83;border-radius:0 10px 10px 0;margin:18px 0;font-size:14px;line-height:1.7}.speech b{display:block;font-size:10px;letter-spacing:1px;color:#47694f;margin-bottom:5px}.primary,.secondary,.choice{border-radius:9px;padding:12px 18px;font-weight:700;font-size:13px}.primary{background:#1c5351;color:#fff7df}.primary:hover{background:#28716a}.secondary{background:#e9e7da;color:#28514e}.actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}.card{border:1px solid #d8decd;border-radius:12px;padding:17px;background:#fffaf0;color:#244b44;text-align:left}.card strong{display:block;margin-bottom:8px}.card small{color:#62796b;line-height:1.5}.card.done{border-color:#749b7b;background:#e9f0df}.card.locked{opacity:.65}.hint{padding:13px 16px;background:#f0e6cc;border-radius:10px;font-size:12px;line-height:1.6;color:#725d38}.feedback{margin-top:16px;padding:14px;border-radius:9px;background:#f7e5d6;color:#80502b;font-size:13px;line-height:1.5}.feedback:empty{display:none}.feedback.success{background:#e0ecd9;color:#345e3e}.clues{font-size:13px;line-height:1.9;padding-left:22px}.gift-row{display:grid;grid-template-columns:65px 1fr 1fr;gap:10px;align-items:center;margin:9px 0;font-size:12px}select{width:100%;padding:10px;border:1px solid #bfcdbb;border-radius:8px;background:#fffdf5;color:#234d43;font-size:13px}.pattern-wrap{display:flex;gap:28px;align-items:center;margin:22px 0}.pattern{display:grid;grid-template-columns:repeat(2,112px);gap:3px;background:#c6ab68;border:8px solid #c6ab68;border-radius:14px;flex-shrink:0}.tile{padding:0;width:112px;height:112px;overflow:hidden;background:#f8edcb}.tile svg{display:block;width:100%;height:100%;transition:transform .2s}.tile:focus-visible{outline-offset:-5px}.palette{display:flex;gap:8px;margin-top:12px}.swatch{width:35px;height:35px;border-radius:50%;border:3px solid transparent}.swatch[aria-pressed=true]{outline:2px solid #9a7846;outline-offset:3px}.stats{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.stat{flex:1;min-width:100px;border-radius:10px;background:#e8eddf;padding:14px;text-align:center;font-size:11px}.stat b{display:block;font-size:23px;margin-bottom:5px}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:10px}.item{padding:14px;border:1px solid #d4dccc;border-radius:10px}.item b{font-size:13px;display:block}.item small{font-size:11px;color:#64766a;display:block;margin:6px 0}.stepper{display:flex;align-items:center;gap:15px;margin-top:10px}.stepper button{width:32px;height:30px;border-radius:6px;background:#e3e9db;color:#285145}.route-stops{display:flex;flex-wrap:wrap;gap:7px}.route-stops button{padding:10px 12px;background:#e0e8d9;color:#30594b;border-radius:7px}.timeline{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0}.timeline span{padding:8px;background:#e7d8b0;border-radius:7px;font-size:11px}.matrix{border-collapse:collapse;width:100%;font-size:11px;margin-top:12px}.matrix th,.matrix td{padding:7px;text-align:center;border-bottom:1px solid #dbdfcf}.matrix th{color:#607468}details{margin:18px 0;font-size:12px}summary{cursor:pointer;color:#376b5d;font-weight:700}.choice{display:block;text-align:left;width:100%;border:1px solid #cedac6;background:#f4f4e8;margin:9px 0;line-height:1.5;color:#234d43}.choice:hover{background:#e5eddd}.hero-art{width:calc(100% + 80px);margin:-35px -40px 24px;height:240px;object-fit:cover;object-position:50% 50%;display:block}.intro-tags{display:flex;gap:8px;flex-wrap:wrap}.intro-tags span{font-size:10px;border:1px solid #d2d9c7;border-radius:30px;padding:7px 11px}.source{font-size:12px;line-height:1.8}.source a{color:#286e64;text-decoration:underline}#toast{position:fixed;left:50%;bottom:50px;transform:translateX(-50%) translateY(15px);opacity:0;pointer-events:none;z-index:20;background:#fdf3d7;color:#204c42;padding:14px 22px;border-radius:12px;box-shadow:0 10px 40px #0004;font-size:13px;transition:.2s;max-width:90%;text-align:center}.bunting{position:absolute;display:flex;gap:4px;pointer-events:none}.bunting i{width:19px;height:27px;clip-path:polygon(0 0,100% 0,50% 100%);background:var(--banner,#3a9c8c)}.bunting i:nth-child(even){background:#f4d295}.festive-table{position:absolute;width:52px;height:30px;border-radius:9px;background:#fff1ce;border:5px solid #a77842;box-shadow:0 4px 6px #0003;pointer-events:none}.festive-table:after{content:'✿';color:#a55751;display:block;text-align:center;font-size:19px;line-height:18px}.festive-mat{position:absolute;width:46px;height:32px;background:repeating-linear-gradient(90deg,#bd7456 0 5px,#eed69b 5px 8px);border:3px solid #ebcf99;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%)}#scene-fade{position:absolute;inset:0;background:#163c3b;opacity:0;pointer-events:none;transition:opacity .2s;z-index:8}#scene-fade.flash{opacity:.8}
@media(max-width:950px){header{padding:0 18px;gap:12px}.chapter{display:none}.objective{width:235px;padding:17px;left:18px;top:18px}h1{font-size:20px}.objective p{font-size:11px}.minimap{width:125px;right:18px;top:18px}}
@media(pointer:coarse),(max-width:600px){.dpad{position:absolute;bottom:30px;left:22px;display:grid;grid-template-columns:42px 42px 42px;grid-template-rows:42px 42px;gap:3px}.dpad button{border:1px solid #efe2ad60;background:#153d3bdc;color:#fff5d5;border-radius:9px;font-size:20px;touch-action:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2;grid-column:1}.dpad button:nth-child(3){grid-row:2;grid-column:2}.dpad button:nth-child(4){grid-row:2;grid-column:3}.interaction{left:auto;right:18px;transform:none;min-width:0;max-width:50%}.interaction small{display:none}.interaction button{padding:12px;font-size:11px}#scene-name{bottom:133px}}
@media(max-width:600px){header{height:65px;padding:0 12px;gap:7px}.brand b{font-size:17px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.7px;margin-left:20px}nav{gap:0}nav button{font-size:10px;padding:10px 7px}#notes,#sound{display:none}.xp{font-size:8px}.xp b{font-size:13px}nav span{display:none}.objective{width:200px;top:12px;left:12px;padding:13px 15px}.objective small{font-size:7px;letter-spacing:1px}.objective h1{font-size:17px;margin:8px 0}.objective p{display:none}.objective button{font-size:10px}.minimap{width:89px;right:12px;top:12px;padding:6px}.minimap span{font-size:6px}.interaction{bottom:30px}footer{padding:0 12px;font-size:8px}footer span:nth-child(2){display:none}#panel-body{padding:28px 22px}h2{font-size:26px}.hero-art{width:calc(100% + 44px);margin:-28px -22px 22px;height:195px}.cards{grid-template-columns:1fr}.gift-row{grid-template-columns:43px 1fr 1fr;gap:5px;font-size:10px}select{font-size:11px;padding:8px 5px}.pattern-wrap{flex-direction:column;align-items:flex-start;gap:10px}.pattern{margin:auto}.inventory{grid-template-columns:1fr 1fr;gap:7px}.item{padding:10px}.stat{min-width:75px;padding:10px}.matrix{font-size:9px}.matrix td,.matrix th{padding:6px 2px}#leave-room{bottom:140px;right:15px;padding:9px;font-size:10px}.source{font-size:11px}}
.town-pattern{position:absolute;width:58px;height:58px;left:1218px;top:350px;background:#f8edcb;border:5px solid #c6ab68;box-shadow:0 5px 12px #0003;pointer-events:none}.town-pattern svg{width:100%;height:100%}main:has(#world.room){background:radial-gradient(ellipse,#b9ab82,#173b38)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
