/* Cinematic chapters. Motion runs only inside visible surfaces. */
:root{--cinema-ease:cubic-bezier(.22,1,.36,1)}
main{overflow:clip}.section{position:relative;isolation:isolate}.section-heading{gap:clamp(28px,5vw,76px)}
.section-heading h2{max-width:760px}.section-heading>p{line-height:1.8}
.cinema-atmosphere{position:absolute;inset:0 0 7.7%;overflow:hidden;pointer-events:none;z-index:2}
.light-shaft{position:absolute;inset:6% -10% 12% 48%;background:linear-gradient(118deg,transparent 23%,#e6ba7022 42%,transparent 57%);mix-blend-mode:screen;transform-origin:70% 5%;opacity:.6}
.mist{position:absolute;width:70%;height:21%;right:-15%;bottom:7%;background:radial-gradient(ellipse,#b8b7b512,transparent 70%);filter:blur(18px)}
.mist-two{right:16%;bottom:14%;width:45%;opacity:.6}
.ember{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#e5c898;box-shadow:0 0 8px #efad5670;opacity:0}
.ember:nth-child(3n){width:2px;height:5px;background:#bd8b5a;filter:blur(.6px)}
.section-nav{background:#f0ece7f5;backdrop-filter:blur(14px);isolation:isolate}
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.depth-hint{display:flex;justify-content:space-between;gap:20px;max-width:1220px;margin:0 auto 22px;font-size:10px;letter-spacing:.16em;color:var(--muted)}
.depth-hint>span{font-size:11px;letter-spacing:0;color:var(--blue)}
.foundation{padding-top:72px;padding-bottom:104px;background:var(--paper)}
.foundation .section-heading{margin-bottom:44px}.foundation .gallery{max-width:1160px}
.cinema-rig{position:relative;perspective:1800px;perspective-origin:50% 45%;padding:16px 4px 22px;touch-action:pan-y;isolation:isolate}
.depth-float{position:relative;z-index:1;transform-style:preserve-3d}
.cinema-stage{position:relative;transform-style:preserve-3d;transform:rotateX(var(--depth-x,0deg)) rotateY(var(--depth-y,0deg));transition:transform 850ms var(--cinema-ease)}
.cinema-rig[data-tracking=true] .cinema-stage{transition:transform 120ms linear}
.cinema-rig[data-dragging=true]{cursor:grabbing}.cinema-rig[data-dragging=true] .image-link{cursor:grabbing}
.depth-back{position:absolute;inset:0;border-radius:10px;background:linear-gradient(110deg,#545351,#191817 35%,#59513f);border:1px solid #9a938466;transform:translateZ(-18px);box-shadow:0 14px 32px #0005}
.cinema-stage::before,.cinema-stage::after{content:"";position:absolute;pointer-events:none;background:linear-gradient(#626861,#1b1b1a);backface-visibility:hidden}
.cinema-stage::before{top:0;bottom:0;width:18px;left:0;transform-origin:left;transform:rotateY(90deg);border-radius:5px 0 0 5px}
.cinema-stage::after{left:0;right:0;height:18px;bottom:0;transform-origin:bottom;transform:rotateX(90deg)}
.cinema-stage .image-link{border:1px solid #72756866;border-radius:7px;box-shadow:0 22px 48px -34px #0009;transform:translateZ(0);isolation:isolate}
.motion-enabled.motion-fine .cinema-stage .image-link[data-motion-hover=true]{transform:translateZ(0);box-shadow:0 24px 50px -30px #0009}
.cinema-stage .image-link::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(115deg,transparent 25%,#e7e4d20b 48%,transparent 70%);opacity:.75}
.cinema-stage .image-zoom{z-index:4}.cinema-stage .image-status{z-index:5}
.stage-shadow{position:absolute;bottom:0;left:10%;right:10%;height:24px;z-index:0;border-radius:50%;background:#1818173d;filter:blur(17px);transform:scaleX(.85)}
.foundation-steps{gap:22px;margin-top:28px}.foundation-steps button{border-color:#bebdbc}
.foundation-steps button[aria-pressed=true]{color:#315c8e;position:relative}
.foundation-steps button[aria-pressed=true]::after{content:"";position:absolute;top:-1px;left:0;width:28%;height:2px;background:#83a5cb;transform-origin:left}
.foundation-steps .phase-preview{padding:5px;border:1px solid #95939038;border-radius:4px}
.themes{--ink:#eeeee5;--muted:#b8b7b5;--line:#3f3e3d;--blue:#aec8df;--paper:#161616;background:#161616;color:var(--ink);border-top:1px solid #3c3b3a;padding-top:104px;padding-bottom:96px}
.themes>.section-heading{margin-bottom:40px}.themes .eyebrow{color:#bbad91}.themes .section-heading>p{max-width:380px}
.theme-index{gap:clamp(24px,5vw,72px);padding-bottom:24px}.theme-index a{min-height:48px;font-size:12px;color:#d7d7d6}
.theme-index a>span{color:#b9a280}.theme{--world:#bc8863;position:relative;padding-top:76px;isolation:isolate}
.theme[data-world=himmelstor]{--world:#b1b0ae}.theme[data-world=elementia]{--world:#a5a3a0}
.theme+.theme{margin-top:74px;padding-top:70px;border-color:#3d3c3b}
.theme-heading{margin-bottom:34px;grid-template-columns:1.15fr 1fr;gap:50px}
.theme h3{font-size:clamp(34px,4.6vw,68px);letter-spacing:.015em;line-height:1.06}
.theme-style{color:var(--world);font-size:10px;letter-spacing:.17em;margin-bottom:20px}
.theme-heading>p{color:#b8b7b5;max-width:360px;line-height:1.8}
.theme .gallery{max-width:1240px;margin:auto}.theme .launcher-image{aspect-ratio:16/10;max-height:660px}
.theme[data-world=rust] .gallery{max-width:940px}.theme[data-world=rust] .launcher-image{max-height:640px}
.theme .cinema-rig::before{content:"";position:absolute;inset:7% 10% 3%;border-radius:45%;background:var(--world);opacity:.10;filter:blur(70px);transform:translateY(22px) scale(.93);pointer-events:none}
.theme .depth-back{border-color:var(--world)}.theme .stage-shadow{background:#000b}
.themes .gallery-caption{margin-top:8px}.themes .view-kind{color:#9b9997}.themes .gallery-arrows button:hover:not(:disabled){background:#31302f}
.themes .open-viewer{margin-top:14px;color:#c8c7c5}.themes .open-viewer>span{color:var(--world)}
.themes .image-link:focus-visible{outline-color:#d1d0cf}.themes .phase-grid button[aria-pressed=true]{background:#41403e}
.cinema-film{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:0;transition:opacity .7s ease;z-index:1}
.cinema-film[data-playing=true]{opacity:1}.motion-film-badge{position:absolute;top:14px;left:14px;z-index:3;color:#e6e5e4;background:#171716de;padding:6px 9px;border:1px solid #b8b7b544;border-radius:3px;font:9px/1.3 Manrope,sans-serif;letter-spacing:.13em;opacity:0;pointer-events:none}
.cinema-film[data-playing=true]+.motion-film-badge{opacity:1}
.services{padding-top:100px;padding-bottom:110px;background:#ebe9e1}
.service-grid{position:relative;gap:36px;margin-top:60px}.service-grid article{position:relative;z-index:1;min-width:0;border-top:1px solid #b2b1af;padding:30px 10px 10px 0}
.service-number{font-size:12px;color:#706e6c}.service-grid h3{font-size:34px;margin-bottom:18px}.service-grid p{line-height:1.8}
.service-orbit{position:absolute;left:0;right:0;top:-1px;height:2px;overflow:hidden;pointer-events:none}
.service-orbit::after{content:"";position:absolute;left:-20%;width:18%;height:2px;background:linear-gradient(90deg,transparent,#7d7a77,transparent)}
.contact{position:relative;overflow:hidden;isolation:isolate;padding-top:120px;padding-bottom:112px;background:#181716;gap:90px}
.contact h2{font-size:clamp(43px,4.8vw,72px);line-height:1.03}.contact .contact-intro,.contact .contact-preview{position:relative;z-index:2}
.contact-world{position:absolute;inset:0 0 0 38%;z-index:0;overflow:hidden;pointer-events:none;background:url('../cinematic/hero.webp?v=63c3a232fcaa') center/cover;opacity:.24;mask-image:linear-gradient(90deg,transparent,#000 40%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%)}
.contact-world .cinema-film{object-fit:cover;object-position:65% 50%}
.contact::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#18171666,#18171633 55%,#18171677)}
.contact-preview{padding:30px;background:#181716e8;border:1px solid #6e6c6a6b;border-radius:5px;box-shadow:0 24px 64px #0003}
.contact-preview input,.contact-preview textarea{background:#1515148c;border-color:#767370}.contact-preview .primary-button{background:#496d9c}
.process{gap:16px}.process li{position:relative;display:flex;align-items:center;gap:15px}.process li>span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #656361;border-radius:50%;margin:0;color:#c1c0be}
.site-footer{background:#181716;padding-top:38px;padding-bottom:45px}.site-footer .wordmark{font-size:29px}
.cinema-control{position:fixed;right:22px;bottom:20px;z-index:6;display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 14px;border:1px solid #87858266;border-radius:30px;background:#181716e8;backdrop-filter:blur(10px);color:#e0e0df;font:11px/1.2 Manrope,sans-serif;box-shadow:0 4px 20px #0003}
.cinema-control[hidden]{display:none}.cinema-control:hover{border-color:#c4c3c2}.cinema-control:disabled{opacity:.78;cursor:default}.motion-icon{font-size:16px;min-width:14px;text-align:center}
@media(prefers-reduced-motion:no-preference){
  .cinema-ready .ember{animation:ember-drift var(--t) var(--d) linear infinite paused}
  .cinema-ready .light-shaft{animation:light-roam 17s ease-in-out infinite alternate paused}
  .cinema-ready .mist-one{animation:mist-drift 28s ease-in-out infinite alternate paused}
  .cinema-ready .mist-two{animation:mist-drift 35s -9s ease-in-out infinite alternate-reverse paused}
  .cinema-ready .warrior-aura{animation:warrior-breathe 8s ease-in-out infinite paused}
  .cinema-ready .hero-play{animation:play-light 5.5s ease-in-out infinite paused}
  .cinema-ready .depth-float{animation:stage-float 10s ease-in-out infinite paused}
  .cinema-ready .theme:nth-of-type(2) .depth-float{animation-delay:-3s}
  .cinema-ready .stage-shadow{animation:shadow-float 10s ease-in-out infinite paused}
  .cinema-ready .theme .cinema-rig::before{animation:world-light 14s ease-in-out infinite alternate paused}
  .cinema-ready .foundation-steps button[aria-pressed=true]::after{animation:phase-light 5s ease-in-out infinite paused}
  .cinema-ready .service-orbit::after{animation:service-flow 9s linear infinite paused}
  .cinema-ready .process li>span{animation:process-light 6s ease-in-out infinite paused}
  .cinema-ready .process li:nth-child(2)>span{animation-delay:-4s}.cinema-ready .process li:nth-child(3)>span{animation-delay:-2s}
  .cinema-live [data-cinema-visible=true] :is(.ember,.light-shaft,.mist,.warrior-aura,.hero-play,.depth-float,.stage-shadow),.cinema-live [data-cinema-visible=true] .cinema-rig::before,.cinema-live [data-cinema-visible=true] .foundation-steps button::after,.cinema-live [data-cinema-visible=true] .service-orbit::after,.cinema-live [data-cinema-visible=true] .process li>span{animation-play-state:running}
  .cinema-rig[data-dragging=true] .depth-float{animation-play-state:paused!important}
  @keyframes ember-drift{0%{opacity:0;transform:translate3d(-20px,100px,0)}18%{opacity:.65}76%{opacity:.4}100%{opacity:0;transform:translate3d(38px,-150px,0)}}
  @keyframes light-roam{from{transform:rotate(-7deg) translateX(-3%);opacity:.35}to{transform:rotate(6deg) translateX(4%);opacity:.9}}
  @keyframes mist-drift{from{transform:translate3d(-5%,8%,0);opacity:.25}to{transform:translate3d(12%,-7%,0);opacity:.8}}
  @keyframes warrior-breathe{0%,100%{opacity:.19}50%{opacity:.39}}
  @keyframes play-light{0%,100%{box-shadow:0 0 15px #efbf6920}50%{box-shadow:0 0 34px #efbf6950}}
  @keyframes stage-float{0%,100%{transform:translate3d(0,3px,0)}50%{transform:translate3d(0,-7px,0)}}
  @keyframes shadow-float{0%,100%{transform:scaleX(.9);opacity:.7}50%{transform:scaleX(.82);opacity:.4}}
  @keyframes world-light{from{transform:translateY(22px) scale(.9);opacity:.07}to{transform:translateY(-10px) scale(1.04);opacity:.13}}
  @keyframes phase-light{0%,100%{transform:translateX(0);opacity:.45}50%{transform:translateX(250%);opacity:1}}
  @keyframes service-flow{to{transform:translateX(670%)}}
  @keyframes process-light{0%,65%,100%{background:#18171600;border-color:#656361}30%{background:#918f8c30;border-color:#acaba9}}
}
.cinema-paused .hero-mobile-copy,.cinema-paused .gallery-viewer,.cinema-paused .gallery-viewer::backdrop,.cinema-paused .trailer-viewer{animation:none!important}
.cinema-paused .cinema-stage{transform:none!important;transition:none!important}.cinema-paused .image-link{transform:none!important}.cinema-paused .warrior-aura{opacity:.24}
@media(max-width:1000px){.theme h3{font-size:48px}.theme-heading{gap:36px}.theme .gallery{max-width:100%}.contact{gap:35px}.contact-preview{padding:24px}.cinema-rig{perspective:1300px}.theme+.theme{margin-top:52px}.theme{padding-top:56px}}
@media(max-width:760px){
  .foundation,.themes,.services{padding-top:62px;padding-bottom:68px}.section-heading{grid-template-columns:1fr;gap:24px}.section-heading>p{justify-self:start;max-width:480px}
  .cinema-atmosphere{inset:0}.cinema-rig{padding:8px 0 12px;perspective:1100px}.depth-hint{font-size:9px;letter-spacing:.08em;margin-bottom:12px}.depth-hint>span{display:none}
  .theme-heading{grid-template-columns:1fr;gap:20px;margin-bottom:22px}.theme h3{font-size:clamp(30px,7.8vw,46px)}.theme-heading>p{justify-self:start;max-width:460px}.theme-style{font-size:9px;letter-spacing:.10em;margin-bottom:15px}
  .theme-index{gap:10px 20px;padding-bottom:22px}.theme-index a{font-size:10px;letter-spacing:.06em}.theme{padding-top:48px}.theme+.theme{margin-top:48px;padding-top:48px}
  .theme .launcher-image{max-height:none}.themes .gallery-caption{margin-top:14px}.stage-shadow{height:12px;filter:blur(12px)}.motion-film-badge{font-size:7px;padding:4px 6px;top:8px;left:8px}
  .service-grid{grid-template-columns:1fr;gap:26px;margin-top:36px}.service-grid article{padding-top:23px}.service-grid h3{font-size:31px}.service-grid p{font-size:14px}.service-orbit{display:none}
  .contact{grid-template-columns:1fr;gap:36px;padding-top:70px;padding-bottom:76px}.contact h2{font-size:clamp(40px,9vw,56px)}.contact-world{inset:0 0 45% 10%;opacity:.2}.contact-preview{padding:22px}.contact-intro>p:not(.eyebrow){max-width:440px}
  .site-footer{padding-bottom:88px}.cinema-control{right:14px;bottom:14px;padding:9px 12px;font-size:10px}.foundation-steps{gap:12px 16px}.foundation-steps button>.phase-title{font-size:12px}
}
@media(pointer:coarse){.depth-hint>span{display:none}.cinema-stage{transform:none!important}}
@media(prefers-reduced-motion:reduce){.cinema-atmosphere,.service-orbit{display:none}.cinema-stage,.depth-float{transform:none!important}.cinema-film{display:none}.cinema-rig::before{opacity:.08}.warrior-aura{animation:none!important;opacity:.24}.cinema-film,.cinema-stage{transition:none}}
/* The page itself occupies a shared 3D environment. */
body{background:#10100f}
.space-fallback{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 2% 45%,#50412a35,transparent 45%),radial-gradient(ellipse at 100% 65%,#48464430,transparent 48%),#10100f;z-index:0}
.cinema-world{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.84;transition:opacity 1s;contain:strict}
.cinema-world[data-available=false]{opacity:0}
main{position:relative;z-index:1;background:transparent;overflow:clip}
.hero{overflow:hidden;border-bottom:1px solid #adaba926;box-shadow:0 35px 80px #0005}
.section-nav{box-shadow:0 10px 32px #0002}
.section{width:calc(100% - 64px);margin:56px auto;border:1px solid #7d7b7840;border-radius:7px;box-shadow:0 36px 70px -36px #0009}
.foundation{background:#eeebe3f5}.services{background:#e7e8dff5}.contact{background:#181716e8}
.themes{background:#181716dc;border-color:#7a777444}.theme{border-radius:3px}
.foundation,.services,.contact,.theme{transform:perspective(2200px) translate3d(var(--space-x,0px),var(--space-y,0px),0) rotateX(var(--space-rx,0deg)) rotateY(var(--space-ry,0deg));transform-origin:50% 50%;transition:transform 900ms cubic-bezier(.18,.75,.3,1)}
.section::before{content:"";position:absolute;left:24px;right:24px;top:0;height:1px;background:linear-gradient(90deg,transparent,#b8b7b555 25%,#d5ceb650 60%,transparent);pointer-events:none}
.themes .section-heading h2{font-size:clamp(40px,4.7vw,70px)}
.theme .theme-heading{position:relative}.theme .theme-heading::before{content:"";position:absolute;left:-22px;top:4px;width:3px;height:22px;background:var(--world);box-shadow:0 0 22px var(--world);opacity:.6}
.section-nav{border-radius:0 0 4px 4px}.site-footer{position:relative;background:#121211cc;border-top:1px solid #74726f40;padding-left:calc(var(--gutter) + 24px);padding-right:calc(var(--gutter) + 24px)}
.review-notes{position:relative;z-index:1}
.cinema-paused :is(.foundation,.services,.contact,.theme){transform:none!important;transition:none!important}
@media(min-width:1536px){.section{padding-left:64px;padding-right:64px}}
@media(max-width:1000px){.section{width:calc(100% - 36px);margin:38px auto;padding-left:32px;padding-right:32px}.theme .theme-heading::before{left:-15px}}
@media(max-width:760px){.section{width:100%;margin:30px auto;padding-left:24px;padding-right:24px;border-left:0;border-right:0;border-radius:0}.foundation,.services,.contact,.theme{transform:none!important}.cinema-world{opacity:.45}.theme .theme-heading::before{left:-12px;width:2px;height:17px}.site-footer{padding-left:24px;padding-right:24px}.section-nav{border-radius:0}}
@media(prefers-reduced-motion:reduce){.foundation,.services,.contact,.theme{transform:none!important;transition:none}.cinema-world{transition:none}}
