@font-face{font-family:Pixelify;src:url('/assets/pixelify-regular.ttf');font-display:swap}@font-face{font-family:Pixelify;src:url('/assets/pixelify-semibold.ttf');font-weight:600;font-display:swap}
:root{color-scheme:dark;--text:#f1ebdf;--muted:#aaa2bb;--violet:#c4a6ef;--mint:#8bdbc4;--amber:#f0c27b;--pixel:Pixelify,monospace;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:#0d101c;color:var(--text);font:14px/1.7 system-ui,sans-serif;overflow-x:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:5px}a{color:inherit;text-decoration:none}.courtyard{position:fixed;inset:-3%;background:url('/assets/keeper-threshold.webp') center/cover;image-rendering:pixelated;opacity:.78;transform:translate3d(var(--scene-x,0px),var(--scene-y,0px),0);pointer-events:none}.shade{position:fixed;inset:0;background:linear-gradient(90deg,#0d101ce8,#0d101cba 48%,#0d101c85),linear-gradient(0deg,#0d101c 0%,transparent 30%,#0d101c4a);pointer-events:none}.stars{position:fixed;inset:0;background:radial-gradient(2px 2px at 42% 13%,#d9bdff 99%,transparent),radial-gradient(2px 2px at 86% 26%,#d9bdff 99%,transparent),radial-gradient(2px 2px at 11% 40%,#ffe1a9 99%,transparent),radial-gradient(2px 2px at 70% 14%,#b8e9d8 99%,transparent);opacity:.5;pointer-events:none}header,main,footer{position:relative;max-width:1260px;margin:auto}header{padding:28px 46px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:10px;font:34px var(--pixel)}.brand span{color:var(--violet);margin-left:-9px}.brand img{image-rendering:pixelated}.edition,.eyebrow,footer,.scene-note,form label,.character span{font:9px/1.6 var(--mono);letter-spacing:.08em;color:var(--muted)}.edition{padding:6px 9px;border:1px solid #b99cdf38;background:#c8a4ee08}main{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px;min-height:calc(100svh - 170px);padding:35px 46px 80px}.invitation{z-index:2;padding-bottom:20px}.eyebrow{color:#d7c1e8;display:flex;align-items:center;gap:9px;margin:0 0 26px}.eyebrow span{width:5px;height:5px;background:var(--mint);box-shadow:0 0 10px #8bdbc455}h1{font:400 clamp(46px,4.8vw,68px)/1.02 var(--pixel);letter-spacing:-.7px;margin:0;text-shadow:3px 3px #1d1730}h1 em{font-style:normal;color:var(--violet)}.introduction{font-size:13px;line-height:1.9;color:#c1b9ce;margin:23px 0 31px}form{max-width:410px}form label{display:block;margin-bottom:10px;color:#c8b9db}.input-frame{display:flex;align-items:center;gap:11px;padding:0 13px;border:1px solid #bb9cde66;background:#111323d9;box-shadow:4px 4px #050813;min-height:56px}.input-frame>span{color:var(--violet);font-size:18px}input{width:100%;min-width:0;font:15px var(--pixel);color:#f7e9d2;background:none;border:0;padding:17px 0;letter-spacing:1px}input::placeholder{font:14px var(--pixel);color:#9083a5;letter-spacing:0}input:focus{outline:0!important}form:focus-within .input-frame{border-color:var(--mint)}#reveal{color:#b1a1c4;font:9px var(--mono);background:none;border:0;padding:6px 0}#reveal:hover{color:var(--mint)}.enter{margin-top:14px;width:100%;min-height:49px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:var(--amber);color:#282032;border:1px solid #ffe0a0;box-shadow:4px 4px #050813;font:11px var(--mono);transition:transform .15s,box-shadow .15s,background .15s}.enter:hover{transform:translate(-1px,-2px);box-shadow:5px 6px #050813;background:#ffce89}.enter:active{transform:translate(2px,2px);box-shadow:2px 2px #050813}#keeper-message{font:10px/1.7 var(--mono);min-height:34px;color:#b3a5c6;margin:18px 0 0}.denied #keeper-message{color:#edb298}.denied .input-frame{border-color:#df9b7b}.scene{height:520px;position:relative;perspective:1200px;min-width:0}.portal{position:absolute;left:50%;top:18px;transform:translateX(-50%);width:250px;height:355px;background:#483658;border:9px solid #776384;box-shadow:-6px 0 #211d35,6px 0 #211d35,0 -6px #8b7696,0 0 70px #9e5edd12;clip-path:polygon(0 9%,10% 9%,10% 4%,20% 4%,20% 0,80% 0,80% 4%,90% 4%,90% 9%,100% 9%,100% 100%,0 100%);animation:gate-breathe 4s steps(12) infinite}.stone-cap{position:absolute;inset:5px 8px auto;height:41px;background:repeating-linear-gradient(90deg,#a18aab 0 31px,#4d3b5f 31px 34px);border-bottom:5px solid #342940}.portal-inner{position:absolute;inset:49px 12px 12px;overflow:hidden;background:#100e23;border:4px solid #b193ce;box-shadow:inset 0 0 24px #6e3e9750;isolation:isolate}.beyond{position:absolute;inset:0;background:radial-gradient(ellipse at center,#d8f6e0,#8cd5d0 12%,#8159bb 39%,#201731 72%);opacity:.35;animation:world-breathe 3s steps(12) infinite}.door{position:absolute;top:0;bottom:0;width:50%;background:repeating-linear-gradient(90deg,#31273f 0 15px,#3a2d4c 15px 19px,#211c31 19px 22px);box-shadow:inset 0 0 0 2px #8d6caf55;transition:transform 1.8s cubic-bezier(.36,.01,.26,1)}.door:after{content:'';position:absolute;inset:17px 8px;border:2px solid #8d6caf35}.door span{position:absolute;top:45%;color:#ab91bd;font-size:18px}.left{left:0;border-right:2px solid #b091ce}.right{right:0;border-left:2px solid #b091ce}.left span{left:30%}.right span{right:30%}.seal{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);color:var(--mint);font:42px var(--pixel);padding:1px 8px;background:#252438;border:3px solid #8971b1;box-shadow:0 0 24px #9b5fe333;transition:opacity .35s,transform .5s}.step{position:absolute;bottom:-7px;left:-18px;right:-18px;height:13px;background:#7f6a8e;border-top:4px solid #b19ebe}.step.second{bottom:-19px;left:-34px;right:-34px;background:#514358}.portal-shadow{position:absolute;top:355px;left:50%;transform:translateX(-50%);height:90px;width:440px;background:radial-gradient(ellipse,#987ac332,transparent 66%)}.portal-beam{position:absolute;inset:0;background:linear-gradient(transparent,#beefed40);opacity:0;transition:opacity 1s}.crew{position:absolute;left:50%;top:299px;transform:translateX(-50%);display:flex;align-items:flex-end;gap:14px;z-index:3}.character{border:0;padding:0;background:none;color:#b3a4c4;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}.character .pixel-sprite{image-rendering:pixelated;filter:drop-shadow(0 7px #070b17);transform-origin:50% 100%;animation:crew-idle 3s steps(2) infinite;transition:transform 1.2s,opacity .9s}.keeper .pixel-sprite{animation-delay:-1.5s}.checker .pixel-sprite{animation-delay:-.7s}.character span{white-space:nowrap;font-size:8px;letter-spacing:.03em}.keeper span{color:var(--violet)}.builder span{color:var(--amber)}.checker span{color:var(--mint)}.character:hover img,.character:focus-visible img,.character.greeting img{animation:crew-wave .6s steps(4) 2}.scene-note{position:absolute;top:491px;left:0;right:0;text-align:center;font-size:8px;color:#938aa7;margin:0}.sky-sparks{position:absolute;inset:0}.sky-sparks i{position:absolute;top:20%;left:10%;width:3px;height:3px;background:#c5a4eb;animation:spark-float 5s steps(10) infinite;opacity:0}.sky-sparks i:nth-child(2){left:84%;top:65%;animation-delay:-1s;background:var(--mint)}.sky-sparks i:nth-child(3){left:31%;top:15%;animation-delay:-3s}.sky-sparks i:nth-child(4){left:68%;top:40%;animation-delay:-2s;background:var(--amber)}.sky-sparks i:nth-child(5){left:14%;top:65%;animation-delay:-4s}.sky-sparks i:nth-child(6){left:90%;top:10%;animation-delay:-2.6s}footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 46px 24px;font-size:8px}footer button{font:9px var(--mono);color:#cbb8e2;border:1px solid #c4a6ef38;background:#211b32;padding:8px 11px}.opening-wash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 73% 48%,#eadcff,#25162d);opacity:0;z-index:10;transition:opacity 1.4s ease .6s}.opening .door.left{transform:translateX(-105%)}.opening .door.right{transform:translateX(105%)}.opening .seal{opacity:0;transform:translate(-50%,-50%) scale(1.8)}.opening .beyond{opacity:1}.opening .portal-beam{opacity:1}.opening .keeper .pixel-sprite{transform:translateX(82px) rotate(8deg);animation:none}.opening .builder .pixel-sprite{transform:translateX(-26px);animation:none}.opening .checker .pixel-sprite{transform:translateX(45px);animation:none}.opening .opening-wash{opacity:.93}.opening .invitation{transition:opacity 1s;opacity:.15}.denied .portal{animation:gate-shake .32s steps(4)}.no-script{color:var(--muted);font-size:11px}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .door,.motion-paused .opening-wash,.motion-paused .character .pixel-sprite{transition-duration:.12s!important}.motion-paused .courtyard{transform:none!important}@keyframes gate-breathe{50%{box-shadow:-6px 0 #211d35,6px 0 #211d35,0 -6px #8b7696,0 0 70px #9e5edd30}}@keyframes world-breathe{50%{filter:hue-rotate(12deg)}}@keyframes crew-idle{50%{translate:0 -3px}}@keyframes crew-wave{25%{rotate:-4deg;translate:0 -4px}75%{rotate:3deg;translate:0 -2px}}@keyframes spark-float{20%,70%{opacity:.8}90%{transform:translateY(-28px)}}@keyframes gate-shake{25%{translate:-4px 0}75%{translate:4px 0}}@media(max-width:850px){header{padding:22px 25px}.edition{font-size:7px}main{padding:20px 25px 25px;gap:0;grid-template-columns:1fr;max-width:630px;min-height:auto}.invitation{padding:12px 0 20px}h1{font-size:clamp(43px,8vw,64px)}.introduction br{display:none}form{max-width:none}.scene{height:480px;margin-top:15px}.portal{top:0}.crew{top:283px}.scene-note{top:466px}.courtyard{background-position:70% center}footer{padding:22px 25px;flex-wrap:wrap}.opening-wash{background:radial-gradient(ellipse at 50% 70%,#eadcff,#25162d)}}@media(max-width:380px){.crew{gap:3px}.character .pixel-sprite{width:80px;height:80px}.keeper .pixel-sprite{width:105px;height:126px}.character span{font-size:7px}.edition{display:none}.portal{width:230px}.scene{height:440px}.scene-note{top:432px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-duration:.12s!important}.courtyard{transform:none!important}}

/* Supplied Keeper world, with readable invitation and an animated foreground gate. */
.shade{background:linear-gradient(90deg,#0d101cf2 0%,#0d101cbb 37%,#0d101c38 75%),linear-gradient(0deg,#0d101c 0%,transparent 35%)}
main>.retro-canvas{z-index:0}main>.invitation,main>.scene{position:relative;z-index:1}
.portal{background:#483658aa;box-shadow:-6px 0 #211d35,6px 0 #211d35,0 -6px #8b7696,0 0 70px #9e5edd30}
header{flex-wrap:wrap}.opening .retro-canvas{opacity:1}.crt-mode .opening-wash{z-index:55}
@media(max-width:850px){.shade{background:linear-gradient(#0d101cf2 0%,#0d101ccb 36%,#0d101c35 72%,#0d101c)}.courtyard{background-position:70% center}.edition{display:none}}
