@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600;700&family=DM+Sans:wght@400;500&family=Libre+Baskerville:wght@400;700&display=swap";:root{--serif:"Cormorant Garamond", Georgia, serif;--serif-alt:"Libre Baskerville", Georgia, serif;--sans:"DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--soft-arrow-cursor:url(/assets/cursors/soft-arrow-cursor.png) 58 31;color:#f5e6c8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.5 var(--sans);font-synthesis:none;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050505}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100svh;margin:0}body{cursor:var(--soft-arrow-cursor), auto;overflow:hidden}button,input,select,textarea{cursor:var(--soft-arrow-cursor), auto;font:inherit}a{color:inherit}.homepage-shell{min-height:100svh}.intro-stage{--anchor-x:50%;--bulb-x:47%;--light-x:18%;--swing:0deg;--beam-angle:0deg;--lamp-rig-width:clamp(210px, 17.4vw, 250px);--lamp-mouth-half:clamp(39px, 3.225vw, 46.5px);--lamp-pivot-y:clamp(72px, 7vw, 100px);--beam-origin-y:clamp(184px, 14.4vw, 208px);--beam-y:var(--beam-origin-y);--beam-opacity:.68;--beam-brightness:1;--beam-blur:8px;--floor-opacity:.55;--floor-brightness:1;--pull-y:0px;--pull-whiteout:0;z-index:10;isolation:isolate;color:#f7ecd0;cursor:crosshair;-webkit-user-select:none;user-select:none;background:#030303;position:fixed;inset:0;overflow:hidden}.intro-stage:before{content:"";z-index:-3;background:radial-gradient(circle at 50% 115%,#4c35121c,#0000 42%),linear-gradient(#020202 0%,#050504 72%,#080705 100%);position:absolute;inset:0}.intro-stage button:focus-visible{outline-offset:5px;outline:1px solid #f2b442}.ambient-noise{z-index:8;pointer-events:none;opacity:.13;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");position:absolute;inset:0}.scene-label{z-index:12;color:#fff8e838;letter-spacing:.2em;text-transform:uppercase;pointer-events:none;justify-content:space-between;align-items:center;font-size:.64rem;display:flex;position:absolute}.scene-label--top{top:clamp(22px,3.4vw,52px);left:clamp(22px,4.2vw,70px);right:clamp(22px,4.2vw,70px)}.scene-label span:first-child{color:#f1b84e6b;font-weight:500}.lamp-rig{z-index:7;top:calc(0px - var(--lamp-pivot-y));left:var(--anchor-x);width:var(--lamp-rig-width);height:auto;transform:translateX(-50%) rotate(var(--swing));transform-origin:50% var(--lamp-pivot-y);pointer-events:none;transition:opacity .4s;position:absolute}.lamp-rig img{filter:brightness(.6)saturate(.56)contrast(1.08);width:100%;height:auto;display:block}.light-beam{z-index:1;top:var(--beam-y);left:var(--bulb-x);width:clamp(310px,35vw,560px);height:72vh;transform:translateX(-50%) rotate(var(--beam-angle));transform-origin:50% 0;clip-path:polygon(calc(50% - var(--lamp-mouth-half)) 0, calc(50% + var(--lamp-mouth-half)) 0, 98% 96%, 90% 100%, 10% 100%, 2% 96%);opacity:var(--beam-opacity);pointer-events:none;filter:blur(var(--beam-blur)) brightness(var(--beam-brightness));mix-blend-mode:screen;background:radial-gradient(58% 78% at 50% 46%,#ffcf5d7a 0%,#d5821442 48%,#5e340614 72%,#0000 100%),linear-gradient(#ffd36f47 0%,#b3670a21 56%,#0000 100%);position:absolute}.floor-light{z-index:0;left:var(--light-x);width:clamp(410px,48vw,740px);height:42vh;opacity:var(--floor-opacity);pointer-events:none;filter:blur(20px) brightness(var(--floor-brightness));background:radial-gradient(#e697255c 0%,#6f3e0a21 43%,#0000 72%);border-radius:50%;position:absolute;bottom:-18vh;transform:translate(-50%)}.wordmark-stage{z-index:4;perspective:900px;pointer-events:none;width:min(92vw,1360px);height:clamp(160px,20vw,300px);position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.wordmark{letter-spacing:-.065em;grid-template-columns:repeat(9,minmax(0,1fr));align-items:end;width:100%;padding:0 1vw;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(4.7rem,11vw,10rem);font-weight:600;line-height:.78;display:grid;position:absolute;inset:0}.wordmark--ghost{color:#d2bf9802;text-shadow:none}.lit-window{pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 21% 64% at var(--light-x) 52%, #000 2%, #000000f0 48%, transparent 100%);-webkit-mask-image:radial-gradient(ellipse 21% 64% at var(--light-x) 52%, #000 2%, #000000f0 48%, transparent 100%);mask-image:radial-gradient(ellipse 21% 64% at var(--light-x) 52%, #000 2%, #000000f0 48%, transparent 100%);position:absolute;inset:0}.wordmark--lit{color:#dfc48e;text-shadow:1px 2px #8d6c37,2px 4px #60451f,3px 6px #392811,6px 12px 18px #000000d6,0 0 24px #f4b1382e;inset:0}.letter{min-width:0;height:100%;color:inherit;font:inherit;line-height:inherit;transform-origin:50% 100%;background:0 0;border:0;justify-content:center;align-items:flex-end;padding:0;display:flex;position:relative;transform:rotateY(-3deg)translateZ(0)}.letter:nth-child(2n){transform:rotateY(3deg)translateZ(3px)}.letter--pull-cord-placeholder{overflow:visible}.replacement-letter-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pull-cord-assembly{z-index:6;aspect-ratio:724/2172;transform-origin:50% 0;opacity:.075;pointer-events:none;-webkit-user-select:none;user-select:none;filter:brightness(.16)saturate(.34)contrast(1.04);background:0 0;border:0;width:auto;max-width:none;height:calc(58vh + clamp(116px,12vw,194px));padding:0;transition:opacity .22s,filter .22s;position:absolute;top:0;left:calc(50% + min(30vw,440px));transform:translate(-50%)}.pull-cord-chain-base,.pull-cord-grip-image{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.pull-cord-chain-base{clip-path:inset(0 0 26.8%)}.pull-cord-chain-extension{z-index:1;width:4.6%;min-width:6px;height:var(--pull-y);pointer-events:none;background:radial-gradient(circle at 44% 40%,#c8bba4 0 10%,#807463 24%,#49423a 48%,#211e1a 67%,#0000 72%) top/100% 10px repeat-y,linear-gradient(90deg,#0000 43%,#39342dd1 44% 56%,#0000 57%);transition:height .19s cubic-bezier(.22,.78,.24,1);position:absolute;top:73.2%;left:50%;transform:translate(-50%)}.pull-cord-grip-image{z-index:2;clip-path:inset(72.2% 0 0);transform:translateY(var(--pull-y));transition:transform .19s cubic-bezier(.22,.78,.24,1)}.pull-cord-handle-hit{z-index:3;height:22%;transform:translateY(var(--pull-y));pointer-events:auto;cursor:grab;touch-action:none;border-radius:45% 45% 50% 50%;transition:transform .19s cubic-bezier(.22,.78,.24,1);position:absolute;bottom:5%;left:28%;right:28%}.pull-cord-assembly:not(.is-illuminated) .pull-cord-handle-hit{pointer-events:none}.pull-cord-assembly.is-pulling .pull-cord-chain-extension,.pull-cord-assembly.is-pulling .pull-cord-grip-image,.pull-cord-assembly.is-pulling .pull-cord-handle-hit{transition:none}.pull-cord-assembly.is-pulling .pull-cord-handle-hit{cursor:grabbing}.pull-cord-assembly:focus-visible{outline:none}.pull-cord-assembly:focus-visible .pull-cord-handle-hit{outline-offset:7px;outline:1px solid #f2b442e6}.pull-cord-assembly.is-illuminated{opacity:1;filter:brightness(.72)saturate(.62)contrast(1.08)drop-shadow(3px 8px 8px #000000bd)drop-shadow(0 0 9px #e7a13029)}.intro-instruction{z-index:12;color:#fff4d97a;letter-spacing:.22em;pointer-events:none;align-items:center;gap:15px;font-size:.58rem;display:flex;position:absolute;bottom:clamp(28px,4.8vw,64px);left:clamp(22px,4.2vw,70px)}.intro-instruction p{margin:0}.instruction-line{background:#f5ae368a;width:42px;height:1px}.keyboard-hint{z-index:12;color:#fff8e724;letter-spacing:.18em;text-transform:uppercase;writing-mode:vertical-rl;margin:0;font-size:.52rem;position:absolute;top:50%;right:clamp(22px,4.2vw,70px)}.pull-whiteout{z-index:19;opacity:var(--pull-whiteout);pointer-events:none;background:#fff;transition:opacity 80ms linear;position:absolute;inset:0}.reveal-wash{z-index:20;left:var(--light-x);aspect-ratio:1;opacity:0;pointer-events:none;background:#f1eadb;border-radius:50%;width:54vmax;position:absolute;bottom:-20vmax;transform:translate(-50%)scale(0)}.phase-revealing .reveal-wash{animation:1.1s cubic-bezier(.76,0,.24,1) .7s forwards reveal-room}.phase-revealing .lamp-rig{animation:1.45s cubic-bezier(.76,0,.24,1) forwards lamp-exit}.phase-revealing .wordmark--lit>.letter{animation:1s ease-out .7s forwards word-flare}.phase-revealing .scene-label,.phase-revealing .intro-instruction,.phase-revealing .keyboard-hint{opacity:0;transition:opacity .28s}@keyframes reveal-room{0%{opacity:0;transform:translate(-50%)scale(0)}18%{opacity:1}to{opacity:1;transform:translate(-50%)scale(5.5)}}@keyframes lamp-exit{0%{opacity:1}55%{opacity:1;transform:translate(-50%)rotate(0)translateY(-18px)}to{opacity:0;transform:translate(-50%)rotate(0)translateY(-120px)}}@keyframes word-flare{0%{filter:brightness()}45%{filter:brightness(2.1)}to{filter:brightness(4)}}@media (width<=760px){.scene-label--top span:last-child,.keyboard-hint{display:none}.lamp-rig{width:var(--lamp-rig-width)}.light-beam{top:var(--beam-y);width:66vw;height:72vh}.wordmark-stage{width:96vw;height:145px;top:57%}.wordmark{padding:0;font-size:clamp(3rem,17vw,5rem)}.pull-cord-assembly{height:calc(57vh + 104px);left:calc(50% + 32vw)}.lit-window{-webkit-mask-image:radial-gradient(ellipse 30% 70% at var(--light-x) 52%, #000 0%, #000000eb 44%, transparent 100%);-webkit-mask-image:radial-gradient(ellipse 30% 70% at var(--light-x) 52%, #000 0%, #000000eb 44%, transparent 100%);mask-image:radial-gradient(ellipse 30% 70% at var(--light-x) 52%, #000 0%, #000000eb 44%, transparent 100%)}.intro-instruction{font-size:.52rem;bottom:32px;left:22px}.instruction-line{width:20px}}@media (prefers-reduced-motion:reduce){.intro-stage *,.intro-stage :before,.intro-stage :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portfolio-room{background:#20130c;min-height:100svh;position:relative;overflow:hidden}.room-canvas,.room-canvas canvas{touch-action:none;inset:0;width:100%!important;height:100svh!important;position:fixed!important}.room-canvas.is-room-dragging,.room-canvas canvas.is-room-dragging{cursor:grabbing!important}.film-grain{pointer-events:none;mix-blend-mode:screen;opacity:.44;background:radial-gradient(circle at 72% 34%,#e096521f,#0000 34%),linear-gradient(90deg,#2a13092e,#0000 34%),repeating-linear-gradient(0deg,#ffdaae04 0 1px,#0000 1px 5px);position:fixed;inset:0}
