:root{color-scheme:dark;--ink:#07121a;--ivory:#eee8d4;--muted:#a6b4b4;--jade:#a5e6d4;--gold:#d5bc85;--accent:165,230,212}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ink)}body{color:var(--ivory);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--jade);outline-offset:7px;border-radius:2px}button:disabled{cursor:wait}img{max-width:100%;height:auto}h1,h2,p{margin:0}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}em{font-weight:400}::selection{background:#386e69;color:white}
.experience{position:relative;isolation:isolate;height:100svh;min-height:560px;overflow:hidden;background:#081820}.scene,.scene-shade,.atmosphere{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.scene{z-index:-5}.scene img{width:100%;height:100%;object-fit:cover}.scene-shade{z-index:-3}.atmosphere{z-index:-1}.eyebrow,.whisper{font-size:10px;font-weight:500;letter-spacing:.25em;color:var(--gold)}.state-dot{display:inline-block;width:4px;height:4px;margin-right:8px;background:currentColor;border-radius:50%;box-shadow:0 0 10px currentColor}
.experience-controls{position:absolute;right:3.1%;bottom:76px;display:flex;gap:5px;z-index:10}.icon-button{width:42px;height:42px;display:grid;place-items:center;color:#b7c9c6;border-radius:50%;transition:color .2s,background .2s}.icon-button:hover{color:#f0e9cf;background:#ffffff09}.icon-button svg{width:19px;height:19px}.sound-wave{display:none}.sound-toggle[aria-pressed=true] .sound-wave{display:block}.sound-toggle[aria-pressed=true] .sound-slash{display:none}.motion-toggle[aria-pressed=false]{opacity:.55}
.companion{position:absolute;left:3.3%;bottom:62px;width:238px;height:116px;padding:0;z-index:6;filter:drop-shadow(0 5px 7px #0009);transition:filter .2s}.companion:hover{filter:drop-shadow(0 0 8px #a4efd655)}.companion canvas{display:block;width:100%;height:100%;position:relative;z-index:1}.companion-aura{position:absolute;bottom:5%;left:13%;width:74%;height:7%;background:radial-gradient(ellipse,#b2e7db30,transparent 65%);filter:blur(3px)}
.prelude{display:none;position:fixed;inset:0;background:#07121a;z-index:100;align-items:center;justify-content:center;flex-direction:column;gap:25px;transition:opacity .5s;pointer-events:none;font-size:10px;letter-spacing:.35em;color:#c4b488}.is-loading .prelude{display:flex}.is-ready .prelude{opacity:0}.loading-sigil{height:34px;width:34px;border:1px solid #819e9a;transform:rotate(45deg);box-shadow:0 0 40px #8eeee325}.loading-sigil:after{content:"";position:absolute;inset:7px;border:1px solid #d7c59c}.loading-thread{height:1px;width:92px;background:linear-gradient(90deg,transparent,#d5c290,transparent);animation:loading 1s ease-in-out infinite alternate}@keyframes loading{to{opacity:.2;transform:scaleX(.35)}}
.world-dialog{color:var(--ivory);background:linear-gradient(145deg,#14282cfa,#08151dfc);border:1px solid #b7c7ad38;border-top-color:#d6c69777;box-shadow:0 35px 120px #000b;width:min(530px,calc(100% - 36px));padding:58px 46px;max-height:85svh;overflow:auto}.world-dialog::backdrop{background:#030d16b8;backdrop-filter:blur(9px)}.world-dialog[open]{animation:dialog-in .35s ease both}.world-dialog h2{font:40px/1.1 Georgia,serif;margin:25px 0;color:#f1ecd8}.world-dialog h2 em{color:var(--jade)}.world-dialog p:not(.eyebrow){color:#b7c5c5;line-height:1.8;margin:18px 0;font-size:14px}.world-dialog .notice{border-left:1px solid var(--gold);padding-left:16px;color:#ded0af!important}.dialog-close{position:absolute;right:15px;top:9px;width:40px;height:40px;color:#c9cbbf;font-size:28px;font-weight:200}.text-action{display:inline-flex;align-items:center;gap:30px;font-size:10px;letter-spacing:.16em;color:var(--jade);padding:18px 0 9px;border-bottom:1px solid #a5e6d440}.text-action:hover{color:#fff;border-color:var(--jade)}.text-action span{font-size:18px}@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.motion-off *, .motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important}.motion-off .atmosphere{opacity:.55}
@media(max-width:700px){.experience{min-height:560px}.experience-controls{right:14px;bottom:57px;gap:0}.icon-button{width:39px;height:39px}.companion{width:184px;height:90px;bottom:56px;left:12px}.world-dialog{padding:49px 27px}.world-dialog h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-height:560px) and (min-width:701px){.experience{min-height:400px}.companion{width:178px;height:87px;bottom:37px}.experience-controls{bottom:42px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-height:560px) and (min-width:701px){.experience{min-height:320px}}

/* The companions share a real walking surface, separate from navigation. */
.companion-stage{position:absolute;left:3.5%;bottom:58px;width:min(680px,78%);height:135px;z-index:6;isolation:isolate;pointer-events:none}
.companion-stage canvas{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 4px 5px #0008)}
.companion-toolbar{position:absolute;left:12px;right:8px;bottom:-12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.03em;color:#a4b9b3}
.companion-caption{opacity:.7}.companion-next{pointer-events:auto;font-size:9px;padding:10px 2px;color:#c5dac7;border-bottom:1px solid #a2c4b22e;min-height:30px}.companion-next:hover{color:#f9f2ce}.companion-next.queued{color:#a7beb8}
@media(max-width:700px){.companion-stage{left:12px;bottom:55px;width:calc(100% - 106px);height:114px}.companion-caption{display:none}.companion-toolbar{bottom:-16px;justify-content:flex-start;left:3px}.companion-next{font-size:8px;min-height:36px;padding:9px 3px}}
@media(max-height:700px) and (max-width:700px){.companion-stage{height:99px;bottom:47px}}
@media(max-height:560px) and (min-width:701px){.companion-stage{width:34%;height:78px;bottom:38px}.companion-caption{display:none}.companion-toolbar{bottom:-14px}.companion-next{font-size:8px;padding:7px 2px}}
.companion-stage{height:154px}
@media(max-width:700px){.companion-stage{height:128px}}
@media(max-height:700px) and (max-width:700px){.companion-stage{height:120px}}
@media(max-height:560px) and (min-width:701px){.companion-stage{height:100px}}

.portal .scene img{object-position:center 57%}.portal .scene-shade{background:linear-gradient(180deg,#06121d3b 0%,#06121d05 28%,#03101930 48%,#020b16b5 85%,#030b14f0),radial-gradient(ellipse at 50% 50%,#07172633,transparent 75%)}
.portal-identity{position:absolute;top:9%;left:50%;width:min(550px,55vw);transform:translateX(-50%);text-align:center}.portal-identity h1{line-height:0}.portal-identity h1 img{width:100%;filter:drop-shadow(0 5px 15px #0008)}.portal-identity .whisper{margin-top:5px;color:#e1d5b5;letter-spacing:.4em;font-size:9px;text-shadow:0 2px 8px black}.identity-rule{display:block;height:1px;width:110px;margin:23px auto 0;background:linear-gradient(90deg,transparent,#c7bd995f,transparent)}
.worlds{position:absolute;left:50%;top:46%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:min(840px,81vw);gap:36px}.world-choice{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;text-align:center;min-width:0;padding:0 15px 32px;color:#e9e5d7;transition:color .35s,transform .5s}.world-choice:after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,currentColor,transparent);opacity:.24;transition:opacity .35s}.world-choice:hover:after,.world-choice:focus-visible:after{opacity:.85}.world-choice:hover{transform:translateY(-6px)}.world-symbol{height:65px;width:65px;margin-bottom:12px;display:block;color:#c3d4d7;filter:drop-shadow(0 0 12px #b5d5dd38);transition:filter .4s,color .4s}.world-symbol svg{width:100%;height:100%;stroke-width:1}.world-symbol .fine{stroke-width:.6;opacity:.7}.sword-symbol{color:#b8e1cc}.world-choice:hover .world-symbol{filter:drop-shadow(0 0 15px #a9e8dba3);color:#f0ead2}.world-title{font:clamp(27px,3vw,42px)/1.12 Georgia,serif;letter-spacing:.01em;text-shadow:0 3px 20px #00151a}.world-title em{display:block;font-size:.76em;color:#c7c7b7;margin-top:4px;letter-spacing:.1em}.world-platform{font-size:8px;letter-spacing:.28em;color:#aabdbd;margin-top:20px}.world-state{font-size:8px;letter-spacing:.16em;color:#99a9b4;margin-top:21px}.world-state .state-dot{width:3px;height:3px}.world-enter{display:flex;gap:14px;align-items:center;font-size:9px;letter-spacing:.2em;color:#c4eada;margin-top:18px}.world-enter svg{width:22px;height:22px;stroke-width:1;transition:transform .3s}.world-choice:hover .world-enter svg{transform:translateX(5px)}.world-divider{align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:15px;color:#aab9ab4d;font-size:7px;padding:25px 0}.world-divider i{width:1px;flex:1;background:linear-gradient(transparent,#aab9ab4d)}.world-divider i:last-child{transform:rotate(180deg)}.selection-light{position:absolute;inset:0;pointer-events:none;z-index:-2;opacity:0;background:radial-gradient(ellipse at 69% 67%,#81e2b325,transparent 39%);transition:opacity .8s}.portal[data-glow=jade] .selection-light{opacity:1}.portal[data-glow=moon] .selection-light{opacity:1;background:radial-gradient(ellipse at 30% 67%,#aac6f123,transparent 39%)}
.portal-footer{position:absolute;left:3.5%;right:3.5%;bottom:25px;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.18em;color:#91a3a5}.portal-footer i{font-style:normal;margin:0 12px;opacity:.6}.portal-footer button{font-size:8px;letter-spacing:.16em;padding:8px 0}.portal-footer button:hover{color:var(--ivory)}.portal-footer button span{margin-left:8px;color:#d0cfb5}
@media(min-width:1500px){.portal-identity{top:11%;width:630px}.worlds{top:47%;width:950px;gap:75px}.world-symbol{width:77px;height:77px}.world-platform,.world-state,.world-enter{font-size:10px}}
@media(max-width:700px){.portal .scene img{object-position:50% 50%}.portal .scene-shade{background:linear-gradient(#06121d22,#05121b20 25%,#020e18a3 64%,#020c16f7 100%)}.portal-identity{top:12%;width:min(92vw,440px)}.portal-identity .whisper{font-size:8px;letter-spacing:.3em;margin-top:0}.identity-rule{margin-top:20px}.worlds{top:44%;width:95%;gap:4px}.world-choice{padding:0 6px 23px}.world-symbol{width:52px;height:52px;margin-bottom:13px}.world-title{font-size:clamp(24px,6vw,35px)}.world-platform{font-size:7px;letter-spacing:.13em;margin-top:16px}.world-state{font-size:6px;letter-spacing:.1em;margin-top:21px}.world-enter{font-size:7px;gap:5px;letter-spacing:.11em;margin-top:17px}.world-enter svg{width:19px;height:19px}.world-divider{padding:15px 2px}.portal-footer{left:19px;right:19px;bottom:18px;font-size:6px;letter-spacing:.1em}.portal-footer i{margin:0 5px}.portal-footer button{font-size:7px}.portal .companion{left:21px;bottom:56px}.portal .experience-controls{bottom:58px}.portal-identity h1 img{filter:drop-shadow(0 5px 8px #0009)}}
@media(max-height:700px) and (max-width:700px){.portal-identity{top:5%;width:min(82vw,350px)}.worlds{top:39%}.world-symbol{width:40px;height:40px}.portal .companion{width:152px;height:74px;bottom:42px}.portal .experience-controls{bottom:43px}.portal-footer{bottom:12px}.world-platform{margin-top:12px}.world-title{font-size:25px}}
@media(max-height:560px) and (min-width:701px){.portal-identity{top:0;width:310px}.portal-identity .whisper{font-size:7px;margin-top:-8px}.identity-rule{display:none}.worlds{top:37%;width:680px;gap:80px}.world-symbol{width:42px;height:42px;margin-bottom:4px}.world-title{font-size:29px}.world-platform{margin-top:10px}.world-state,.world-enter{margin-top:11px}.world-choice{padding-bottom:14px}.portal-footer{bottom:13px}}
@media(max-width:700px){.world-platform{font-size:8px;letter-spacing:.06em}.world-state{font-size:7px;letter-spacing:.03em}.world-enter{font-size:8px;letter-spacing:.06em}.portal-footer{font-size:7px;letter-spacing:.03em}.portal-footer button{min-height:44px}.portal-footer{bottom:7px}.world-state .state-dot{margin-right:4px}}
@media(max-height:450px) and (min-width:701px){.portal .companion{left:10px;width:130px;height:64px;bottom:36px}.portal .experience-controls{right:10px;bottom:36px}}
