:root{
  --bg:#080808;
  --fg:#f1efe9;
  --muted:rgba(241,239,233,.56);
  --line:rgba(255,255,255,.12);
  --ease:cubic-bezier(.22,.8,.2,1);
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:Inter,"Helvetica Neue",Arial,sans-serif;overflow:hidden;cursor:none;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.stage{position:relative;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:28px 32px 24px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 52% 42%,rgba(255,255,255,.018),transparent 36%)}
.frame{position:absolute;inset:16px;border:1px solid var(--line);pointer-events:none;z-index:8;overflow:hidden}
.frame::after{content:"";position:absolute;top:-1px;left:-24%;width:18%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);filter:blur(.2px);opacity:.55;animation:frameTrace 12s ease-in-out infinite}
@keyframes frameTrace{0%,14%{left:-24%;opacity:0}22%{opacity:.55}48%{left:108%;opacity:.15}49%,100%{left:108%;opacity:0}}
.topbar,.footer{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.brand-mini{font-weight:700;letter-spacing:.23em}.email{transition:opacity .3s ease}.email:hover{opacity:.55}
.hero{position:relative;z-index:7;align-self:center;display:flex;flex-direction:column;justify-content:center;min-height:70vh;padding:4vh 0}
.eyebrow{margin-left:.3vw;margin-bottom:3.5vh;font-size:clamp(9px,.75vw,12px);letter-spacing:.28em;color:var(--muted)}
.title{position:relative;margin:0;display:flex;flex-direction:column;width:min(84vw,1280px);font-size:clamp(78px,14vw,245px);line-height:.72;letter-spacing:-.075em;font-weight:700;text-transform:uppercase;user-select:none;transform-style:preserve-3d;will-change:transform}
.title-line{position:relative;display:block;width:max-content;transform:translate3d(0,120%,0) rotateX(-16deg);opacity:0;filter:blur(12px);will-change:transform,opacity,filter,text-shadow}
.title-line::after,.title-line::before{content:attr(data-text);position:absolute;inset:0;pointer-events:none}
.title-line::after{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.14);transform:translate3d(var(--echo-x,0),var(--echo-y,0),0);opacity:var(--echo-opacity,.42);filter:blur(var(--echo-blur,0px))}
.title-line::before{color:transparent;background:linear-gradient(108deg,transparent 18%,transparent 34%,rgba(255,255,255,.04) 42%,rgba(255,255,255,.36) 49%,rgba(255,255,255,.055) 56%,transparent 68%);background-size:280% 100%;background-position:160% 0;-webkit-background-clip:text;background-clip:text;opacity:0;mix-blend-mode:screen}
.line-of{margin-left:24vw;font-weight:300;letter-spacing:-.06em;font-size:.44em;line-height:.95}.line-deev{margin-left:5vw}
body.loaded .title-line{animation:titleIn 1.35s var(--ease) forwards}
body.loaded .line-house{animation-delay:.08s}body.loaded .line-of{animation-delay:.22s}body.loaded .line-deev{animation-delay:.36s}
@keyframes titleIn{to{transform:translate3d(0,0,0) rotateX(0);opacity:1;filter:blur(0)}}
body.ambient .title-line{animation:none;opacity:1;filter:blur(0)}
body.ambient .line-house::before{animation:textSheen 10.8s 1.2s ease-in-out infinite}
body.ambient .line-of::before{animation:textSheen 13.4s 4.1s ease-in-out infinite}
body.ambient .line-deev::before{animation:textSheen 11.9s 6.5s ease-in-out infinite}
@keyframes textSheen{0%,11%,100%{background-position:160% 0;opacity:0}16%{opacity:.5}34%{background-position:-65% 0;opacity:.12}38%{opacity:0}}
.status-row{display:flex;justify-content:space-between;align-items:center;margin-top:6vh;padding-left:.5vw;font-size:10px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}
.status{display:flex;align-items:center;gap:10px}.pulse{width:6px;height:6px;border-radius:50%;background:#e9e6de;box-shadow:0 0 22px rgba(255,255,255,.85);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.35;transform:scale(.8);box-shadow:0 0 12px rgba(255,255,255,.34)}50%{opacity:1;transform:scale(1.25);box-shadow:0 0 28px rgba(255,255,255,.92)}}
body.ambient .eyebrow,body.ambient .status-row,body.ambient .topbar,body.ambient .footer{animation:quietBreath 7.5s ease-in-out infinite}
body.ambient .status-row{animation-delay:-2.3s}body.ambient .footer{animation-delay:-4.7s}
@keyframes quietBreath{0%,100%{filter:brightness(.88);opacity:.82}50%{filter:brightness(1.08);opacity:1}}

/* Ambient lighting: always alive, even with no mouse movement */
.glow{position:fixed;border-radius:50%;filter:blur(85px);pointer-events:none;z-index:1;opacity:.22;mix-blend-mode:screen;will-change:transform,opacity}
.glow-a{width:45vw;height:45vw;left:-18vw;top:-14vw;background:radial-gradient(circle,rgba(142,174,255,.46),rgba(119,149,224,.12) 34%,transparent 68%);animation:glowPulseA 9s ease-in-out infinite}
.glow-b{width:38vw;height:38vw;right:-12vw;bottom:-18vw;background:radial-gradient(circle,rgba(230,196,150,.32),rgba(181,133,91,.08) 38%,transparent 70%);animation:glowPulseB 12s ease-in-out infinite}
.glow-c{position:fixed;width:30vw;height:30vw;left:42vw;top:36vh;border-radius:50%;z-index:1;pointer-events:none;filter:blur(110px);mix-blend-mode:screen;background:radial-gradient(circle,rgba(216,223,255,.10),transparent 68%);opacity:.14;animation:glowCenter 14s ease-in-out infinite;will-change:transform,opacity}
@keyframes glowPulseA{0%,100%{opacity:.15}45%{opacity:.29}70%{opacity:.2}}
@keyframes glowPulseB{0%,100%{opacity:.11}52%{opacity:.25}76%{opacity:.17}}
@keyframes glowCenter{0%,100%{opacity:.07;transform:scale(.85)}50%{opacity:.2;transform:scale(1.2)}}
.light-beam{position:fixed;z-index:1;pointer-events:none;mix-blend-mode:screen;will-change:transform,opacity}
.beam-a{width:22vw;height:145vh;left:20vw;top:-23vh;transform:rotate(19deg);background:linear-gradient(90deg,transparent,rgba(166,188,255,.018) 30%,rgba(215,225,255,.075) 49%,rgba(170,191,255,.018) 68%,transparent);filter:blur(22px);opacity:.42;animation:beamA 18s ease-in-out infinite}
.beam-b{width:13vw;height:130vh;right:17vw;top:-20vh;transform:rotate(-24deg);background:linear-gradient(90deg,transparent,rgba(255,229,192,.025) 35%,rgba(255,238,212,.09) 50%,rgba(255,222,180,.018) 68%,transparent);filter:blur(28px);opacity:.26;animation:beamB 23s ease-in-out infinite}
@keyframes beamA{0%,100%{transform:translate3d(-8vw,-2vh,0) rotate(19deg);opacity:.18}45%{transform:translate3d(13vw,4vh,0) rotate(15deg);opacity:.53}72%{transform:translate3d(5vw,-1vh,0) rotate(22deg);opacity:.26}}
@keyframes beamB{0%,100%{transform:translate3d(7vw,2vh,0) rotate(-24deg);opacity:.12}38%{transform:translate3d(-11vw,-3vh,0) rotate(-19deg);opacity:.38}69%{transform:translate3d(-3vw,4vh,0) rotate(-28deg);opacity:.21}}
.ambient-haze{position:fixed;inset:-25%;z-index:0;pointer-events:none;background:conic-gradient(from 120deg at 53% 46%,transparent 0 16%,rgba(135,162,230,.022) 23%,transparent 31% 57%,rgba(221,181,136,.018) 64%,transparent 72%);filter:blur(45px);opacity:.9;animation:hazeTurn 38s linear infinite;will-change:transform}
@keyframes hazeTurn{to{transform:rotate(360deg) scale(1.06)}}

.orb{position:absolute;right:5vw;top:18vh;width:min(42vw,620px);aspect-ratio:1;z-index:2;pointer-events:none;filter:saturate(.75);will-change:transform,filter}
.orb::before{content:"";position:absolute;inset:-17%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.055),transparent 61%);filter:blur(28px);opacity:.42;animation:orbAura 6.8s ease-in-out infinite}
.orb-core{position:absolute;inset:17%;border-radius:50%;background:radial-gradient(circle at 38% 34%,rgba(255,255,255,.42),rgba(255,255,255,.08) 14%,rgba(255,255,255,.015) 43%,transparent 70%);box-shadow:inset -18px -26px 60px rgba(0,0,0,.82),0 0 100px rgba(255,255,255,.055);animation:orbCore 8s ease-in-out infinite}
.orb-ring{position:absolute;border:1px solid rgba(255,255,255,.11);border-radius:50%;will-change:transform,opacity}.ring-1{inset:4%;animation:ringOne 28s linear infinite}.ring-2{inset:12%;opacity:.5;animation:ringTwo 21s linear infinite}
@keyframes orbAura{0%,100%{transform:scale(.82);opacity:.18}50%{transform:scale(1.13);opacity:.52}}
@keyframes orbCore{0%,100%{transform:translate3d(0,0,0) scale(.98);filter:brightness(.82)}48%{transform:translate3d(-10px,13px,0) scale(1.027);filter:brightness(1.12)}72%{transform:translate3d(5px,-4px,0) scale(1.01);filter:brightness(.95)}}
@keyframes ringOne{from{transform:rotateX(69deg) rotateY(9deg) rotateZ(0)}to{transform:rotateX(69deg) rotateY(9deg) rotateZ(360deg)}}
@keyframes ringTwo{from{transform:rotateX(30deg) rotateY(76deg) rotateZ(360deg)}to{transform:rotateX(30deg) rotateY(76deg) rotateZ(0)}}
.noise{position:fixed;inset:-10%;z-index:5;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");animation:noiseMove .32s steps(2) infinite}
@keyframes noiseMove{0%{transform:translate3d(0,0,0)}25%{transform:translate3d(1.2%,-.8%,0)}50%{transform:translate3d(-.7%,1.1%,0)}75%{transform:translate3d(.6%,.4%,0)}100%{transform:translate3d(-.4%,-.6%,0)}}
.reveal{opacity:0;transform:translateY(14px);transition:opacity 1s .7s var(--ease),transform 1s .7s var(--ease)}body.loaded .reveal{opacity:1;transform:none}
.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:99;border-radius:50%;transform:translate(-50%,-50%)}
.cursor-dot{width:4px;height:4px;background:#fff;box-shadow:0 0 20px rgba(255,255,255,.9)}
.cursor-ring{width:34px;height:34px;border:1px solid rgba(255,255,255,.34);transition:width .25s ease,height .25s ease,border-color .25s ease,background .25s ease}.cursor-ring.active{width:52px;height:52px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.04)}
.magnetic{display:inline-block;will-change:transform}
@media (max-width:780px){
  body{overflow:auto;cursor:auto}.cursor-dot,.cursor-ring{display:none}.stage{padding:24px 24px 20px;min-height:100svh}.frame{inset:10px}.hero{min-height:74vh}.title{font-size:clamp(62px,20vw,150px);line-height:.76;width:100%}.line-of{margin-left:30vw;font-size:.42em}.line-deev{margin-left:0}.orb{width:76vw;right:-23vw;top:22vh;opacity:.72}.email{font-size:9px}.status-row{margin-top:8vh}.scroll-hint{display:none}.topbar,.footer{font-size:9px;letter-spacing:.14em}.beam-a{width:45vw;opacity:.28}.beam-b{width:30vw}.glow-a{width:75vw;height:75vw}.glow-b{width:70vw;height:70vw}.glow-c{width:58vw;height:58vw;left:25vw}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
