*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0b1011;color:#f0e7d4;font:16px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}a:focus-visible{outline:2px solid #e0bc73;outline-offset:6px}nav{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:22px 5%;border-bottom:1px solid #ffffff12}.brand{font:22px Georgia;letter-spacing:3px}.navlinks{display:flex;gap:30px;color:#bec6c3;font-size:13px}.tag{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#c4a66e}.hero{min-height:740px;max-width:1400px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;padding:70px 6%;gap:35px;position:relative}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 76% 45%,#2e6b5a26,transparent 55%);pointer-events:none}.intro{position:relative;z-index:1}.wordmark{width:min(100%,420px);max-height:170px;object-fit:contain;object-position:left;margin:18px 0 10px}h1{font:clamp(42px,5.5vw,76px)/1.1 Georgia;margin:12px 0 24px;font-weight:400;letter-spacing:-2px}h1 em{color:#d3b579;font-weight:400}p{color:#aebbb6;max-width:530px}.buttons{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:30px 0}.button{padding:13px 24px;background:#d5b982;color:#17211e;border-radius:4px;font-weight:bold;font-size:13px}.secondary{background:transparent;color:#e5d9c1;border:1px solid #877a5b66}.status{font-size:12px;color:#81948a;letter-spacing:.5px}.heroart{position:relative;min-height:520px;display:flex;align-items:center;justify-content:center}.portal{width:90%;aspect-ratio:1;border:1px solid #b4935630;border-radius:50%;background:radial-gradient(circle,#32615224,transparent 70%)}.heroart img.character{position:absolute;width:100%;filter:drop-shadow(0 20px 50px #0008)}.floatkey{position:absolute;width:90px;filter:drop-shadow(0 0 18px #d0a64f44);animation:drift 7s ease-in-out infinite}.k1{left:0;top:14%}.k2{right:0;bottom:10%;animation-delay:-3s}@keyframes drift{50%{transform:translateY(-14px) rotate(5deg)}}.strip{display:flex;justify-content:space-around;gap:20px;border-block:1px solid #ffffff12;padding:25px 6%;font-size:11px;letter-spacing:2px;color:#a8b9af;text-transform:uppercase}.section{max-width:1200px;margin:auto;padding:100px 6%}.section h2{font:clamp(32px,4vw,52px)/1.15 Georgia;font-weight:400;max-width:630px;margin:14px 0 24px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}.phone{display:block;width:260px;max-width:100%;margin:auto;border:1px solid #c7aa7155;border-radius:24px;box-shadow:0 30px 90px #0009}.steps{list-style:none;padding:0;counter-reset:steps}.steps li{border-top:1px solid #ffffff12;padding:20px 0;color:#9fafaa;counter-increment:steps}.steps li:before{content:'0' counter(steps);font:18px Georgia;color:#c6a975;margin-right:20px}.steps strong{color:#ece2cc}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:40px 0}.key{background:linear-gradient(145deg,#1c2927,#101716);border:1px solid #9c84552e;border-radius:100px 100px 8px 8px;padding:24px 12px;text-align:center}.key img{width:100%;height:150px;object-fit:contain;transition:transform .3s}.key:hover img{transform:translateY(-8px)}.key span{font:14px Georgia;color:#d7c4a0}.quote{font:32px/1.4 Georgia;text-align:center;color:#d7c9af;max-width:800px;margin:0 auto}.footer{padding:40px 6%;border-top:1px solid #ffffff12;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;color:#8d9d96;font-size:12px}.footer a{margin-right:20px}.legal{max-width:800px;margin:60px auto;padding:0 24px}.legal h1{font-size:44px}.legal h2{font:25px Georgia}.draft{background:#27382e;padding:7px 14px;color:#c6d0c5;font-size:11px;text-align:center;letter-spacing:1px}video{width:100%;max-height:600px;border-radius:12px;background:#080b0c}@media(max-width:700px){nav{padding:20px}.navlinks{gap:16px}.hero{grid-template-columns:1fr;padding:45px 24px;min-height:0;gap:0}.heroart{min-height:360px;max-width:420px;width:100%;margin:auto}.wordmark{max-width:300px}h1{font-size:45px}.section{padding:65px 24px}.split{grid-template-columns:1fr;gap:38px}.gallery{grid-template-columns:repeat(2,1fr)}.strip{flex-wrap:wrap;justify-content:center;font-size:9px}.floatkey{width:66px}.footer{padding:30px 24px}.phone{width:240px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}/* Keep the full character inside the hero at every screen width. */
.heroart{height:650px;min-height:0}
.heroart img.character{height:100%;width:auto;max-width:100%;object-fit:contain}
@media(max-width:700px){.heroart{height:500px;margin-top:25px;margin-bottom:20px}.heroart img.character{height:100%;width:auto;max-width:100%}}

.studio-home{min-height:100svh;display:flex;flex-direction:column;background:#0b1011}.studio-welcome{position:relative;isolation:isolate;flex:1;min-height:650px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:55px 24px 70px;overflow:hidden}.studio-aura{position:absolute;z-index:-1;width:850px;height:850px;border-radius:50%;background:radial-gradient(circle,#9b614b16,transparent 62%)}.studio-emblem{display:block;width:min(520px,85vw);height:auto;max-height:53svh;object-fit:contain;filter:drop-shadow(0 18px 45px #0008)}.studio-caption{margin:28px 0 24px;text-align:center;font:19px Georgia;letter-spacing:2px;color:#b9afa0}.studio-game-link{display:flex;align-items:center;gap:30px;padding:13px 0;border-bottom:1px solid #b4935666;font-size:13px;letter-spacing:1px;color:#d8c49d;transition:color .2s}.studio-game-link:hover{color:#fff0cf}@media(max-width:700px){.studio-welcome{min-height:540px;padding:45px 24px 55px}.studio-emblem{width:min(420px,90vw);max-height:45svh}.studio-caption{font-size:15px;letter-spacing:1px}.studio-home .footer{font-size:11px}}

/* Studio identity: midnight and satin brass, with game content on its own page. */
.studio-home{background:#080c13;color:#e0c895}.studio-home nav{width:100%;max-width:1380px;padding-block:27px;border-bottom-color:#b3976033}.studio-home .brand{font-size:21px;letter-spacing:5px;color:#d5bd8e}.studio-home .navlinks{font:12px Georgia;letter-spacing:1.3px;gap:38px}.studio-home .navlinks [aria-current]{color:#d2b576}.studio-home .draft{background:#111924;color:#9f977e;font-size:10px;letter-spacing:2px}.studio-welcome{margin:32px;min-height:650px;border:1px solid #a3854e33;padding:65px 24px 48px;background:radial-gradient(ellipse at 50% 45%,#1d253244,transparent 65%)}.studio-welcome:before,.studio-welcome:after{content:'';position:absolute;width:90px;height:90px;border-color:#b89a5c77;pointer-events:none}.studio-welcome:before{left:10px;top:10px;border-left:1px solid;border-top:1px solid;border-color:#b89a5c77}.studio-welcome:after{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid;border-color:#b89a5c77}.studio-aura{background:radial-gradient(circle,#c1a25b10,transparent 62%)}.studio-emblem{width:min(490px,75vw);max-height:51svh}.studio-caption{font:18px Georgia!important;letter-spacing:8px!important;font-weight:400;margin:28px 0 13px;color:#d7c08d}.studio-flourish{color:#a78b51;font-size:20px;position:relative}.studio-home .footer{border:0;padding:10px 4% 28px;color:#7e827f;font-size:11px;letter-spacing:1px}@media(max-width:700px){.studio-home nav{padding:22px}.studio-home .brand{font-size:16px;letter-spacing:3px}.studio-home .navlinks{font-size:11px;gap:22px}.studio-welcome{margin:18px;min-height:530px;padding:45px 18px}.studio-emblem{width:min(390px,78vw);max-height:48svh}.studio-caption{font-size:14px!important;letter-spacing:6px!important}.studio-home .footer{justify-content:center;text-align:center;gap:7px;flex-direction:column;padding:2px 20px 24px}}
/* Muted heirloom metal to match the game's opening emblem. */
.studio-home{background:#0b0f13;color:#c6b8a7}.studio-home .brand{color:#bdae9c}.studio-home .navlinks [aria-current]{color:#c5b39c}.studio-welcome{border-color:#a6978330;background:radial-gradient(ellipse at 50% 45%,#25292e50,transparent 66%)}.studio-welcome:before,.studio-welcome:after{border-color:#9e8c7270}.studio-caption{color:#b7aa99}.studio-flourish{color:#998b77}.studio-aura{background:radial-gradient(circle,#aa92750b,transparent 62%)}

.studio-note{font-size:12px;letter-spacing:1.4px;color:#7e858b;text-align:center;margin:18px 0 0}.studio-welcome{background:radial-gradient(ellipse at 50% 42%,#27324144,transparent 66%)}.keydoku-page{background:#0b1412}.keydoku-page main{position:relative;isolation:isolate;overflow:hidden}.keydoku-page .hero,.keydoku-page .section{position:relative;z-index:1}.ambient-grid{position:absolute;width:260px;height:260px;opacity:.22;z-index:0;pointer-events:none;filter:drop-shadow(0 0 9px #3cafa433);animation:grid-breathe 10s ease-in-out infinite;transform:rotate(-8deg)}.grid-one{top:130px;right:-90px}.grid-two{top:1100px;left:-75px;animation-delay:-4s;transform:rotate(12deg)}.grid-three{bottom:250px;right:-30px;animation-delay:-7s;transform:rotate(-4deg)}@keyframes grid-breathe{0%,100%{opacity:.08}50%{opacity:.25}}.cast{padding-top:45px;padding-bottom:60px}.cast-heading{text-align:center}.cast-heading h2,.cast-heading p{margin-left:auto;margin-right:auto}.cast-lineup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:45px;align-items:end}.cast-lineup figure{margin:0;min-width:0;text-align:center;position:relative}.cast-lineup figure:after{content:'';position:absolute;bottom:48px;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,#b1976266,transparent)}.cast-lineup img{height:300px;width:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 14px 16px #0005);transition:transform .3s}.cast-lineup figure:hover img{transform:translateY(-7px)}.cast-lineup figcaption{font:18px Georgia;color:#cabb9d;padding-top:22px}.keydoku-page .portal{display:none}@media(max-width:700px){.cast-lineup{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}.cast-lineup img{height:235px}.ambient-grid{width:160px;height:160px}.grid-one{top:750px;right:-70px}.grid-two{top:1700px;left:-65px}.grid-three{bottom:400px;right:-65px}.cast-heading h2{font-size:38px}}@media(prefers-reduced-motion:reduce){.ambient-grid{animation:none;opacity:.15}}

/* Characters inhabit different parts of the page, without a matching lineup. */
.scene-character{margin:0;pointer-events:none;z-index:2}.scene-character img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 20px #0005)}.reader{position:absolute;width:240px;height:260px;left:7%;bottom:20px}.keydoku-page #discover{padding-bottom:300px}.examiner{position:absolute;width:230px;height:270px;right:5%;top:75px;transform:rotate(3deg)}.keydoku-page #collection>.tag,.keydoku-page #collection>h2,.keydoku-page #collection>p{max-width:600px}.keydoku-page #collection .gallery{margin-top:95px}.closing{min-height:540px;padding-top:140px;padding-bottom:170px}.closing .quote{max-width:560px}.heartkeeper{position:absolute;width:230px;height:265px;left:-20px;bottom:15px;transform:rotate(-4deg)}.mysterious{position:absolute;width:205px;height:250px;right:-5px;bottom:0;opacity:.78;transform:rotate(5deg)}.mysterious img{filter:brightness(.75) drop-shadow(0 15px 25px #0008)}.keydoku-page .heroart .floatkey{display:none}.keydoku-page .heroart:before{content:'';position:absolute;width:60%;height:70%;background:radial-gradient(ellipse,#7b9d7910,transparent 70%);pointer-events:none}.keydoku-page main>.ambient-grid{z-index:0}.grid-extra{width:190px;height:190px}.grid-4{left:1%;top:480px;animation-delay:-2s;transform:rotate(9deg)}.grid-5{right:3%;top:820px;animation-delay:-7s;transform:rotate(-6deg)}.grid-6{right:0;top:1550px;animation-delay:-4s;transform:rotate(12deg)}.grid-7{left:2%;top:2100px;animation-delay:-9s;transform:rotate(-5deg)}.grid-8{right:5%;bottom:650px;animation-delay:-3s;transform:rotate(-10deg)}.grid-9{left:7%;bottom:110px;animation-delay:-6s;transform:rotate(8deg)}.key-fragment{position:absolute;z-index:0;width:17px;height:21px;pointer-events:none;opacity:0;transform:rotate(var(--turn));animation:fragment-glimmer var(--duration) ease-in-out infinite;animation-delay:var(--delay);filter:drop-shadow(0 0 3px #cbb27444)}@keyframes fragment-glimmer{0%,12%,64%,100%{opacity:0;transform:translateY(5px) rotate(var(--turn))}28%{opacity:.35}34%{opacity:.7;filter:drop-shadow(0 0 5px #f6d69088)}43%{opacity:.28}53%{opacity:.4;transform:translateY(-7px) rotate(calc(var(--turn) + 8deg))}}
.fragment-0{left:4%;top:220px;width:11px}
.fragment-1{left:33%;top:453px;width:14px}
.fragment-2{left:62%;top:686px;width:17px}
.fragment-3{left:91%;top:919px;width:20px}
.fragment-4{left:29%;top:1152px;width:11px}
.fragment-5{left:58%;top:1385px;width:14px}
.fragment-6{left:87%;top:1618px;width:17px}
.fragment-7{left:25%;top:1851px;width:20px}
.fragment-8{left:54%;top:2084px;width:11px}
.fragment-9{left:83%;top:2317px;width:14px}
.fragment-10{left:21%;top:2550px;width:17px}
.fragment-11{left:50%;top:2783px;width:20px}
.fragment-12{left:79%;top:3016px;width:11px}
.fragment-13{left:17%;top:399px;width:14px}
.fragment-14{left:46%;top:632px;width:17px}
.fragment-15{left:75%;top:865px;width:20px}
.fragment-16{left:13%;top:1098px;width:11px}
@media(max-width:700px){.keydoku-page #discover{padding-bottom:60px}.reader{position:relative;width:210px;height:235px;left:auto;bottom:auto;margin:0 auto 0 3%}.examiner{position:relative;top:auto;right:auto;margin:-5px 0 -35px auto;width:200px;height:225px}.keydoku-page #collection .gallery{margin-top:45px}.closing{padding-top:40px;padding-bottom:265px;min-height:570px}.closing .quote{font-size:28px}.heartkeeper{width:175px;height:210px;left:12px;bottom:40px}.mysterious{width:160px;height:200px;right:5px;bottom:0}.grid-4{top:430px;left:-50px}.grid-5{top:1320px;right:-40px}.grid-6{top:2300px;right:-30px}.grid-7{top:3100px;left:-45px}.grid-8{bottom:800px;right:-50px}.grid-9{bottom:100px;left:-45px}.key-fragment{max-width:16px}}@media(prefers-reduced-motion:reduce){.key-fragment{animation:none;opacity:.2}.scene-character{transform:none}}

/* Lucien stands beside the cabinet rather than tucked into the footer. */
.keydoku-page #collection .mysterious{position:relative;width:245px;height:280px;right:auto;bottom:auto;margin:45px 4% -30px auto;opacity:1;transform:none}.keydoku-page .mysterious img{filter:drop-shadow(0 18px 20px #0005)}.keydoku-page .closing{min-height:450px;padding-bottom:170px}
@media(max-width:700px){.keydoku-page #collection .mysterious{width:215px;height:245px;margin:36px 2% -20px auto}.keydoku-page .closing{min-height:530px;padding-bottom:245px}}
