@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--paper:#f7f7f5;--ink:#151619;--muted:#70757c;--line:#d9dbde;--gold:#c08a2d;--sun:#e9bc58;--silver:#b6bdc5;--dark:#111214;--max:1440px;--pad:clamp(1.1rem,4vw,4.75rem)}
*{box-sizing:border-box}html{scroll-behavior:auto}html.motion-scroll{scroll-behavior:auto!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk',Arial,sans-serif;line-height:1.45;overflow-x:clip;overflow-y:visible}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{max-width:100%;display:block}.container{width:min(var(--max),100%);margin:auto;padding-inline:var(--pad)}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:100;background:var(--ink);color:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.mono,.eyebrow,.work-tags,.rail-label{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.13em;font-size:.66rem}.eyebrow{color:var(--gold);display:inline-block}
.site-header{position:fixed;z-index:20;top:0;left:0;right:0;padding:1.2rem var(--pad);transition:background .6s,backdrop-filter .6s,border-color .6s}.site-header.is-scrolled{background:rgba(247,247,245,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(21,22,25,.1)}.nav{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:auto}.nav-logo{width:clamp(132px,12vw,178px);height:clamp(72px,7vw,96px);object-fit:contain;object-position:center;border-radius:0}.nav-links{display:flex;align-items:center;gap:clamp(1rem,3vw,3rem);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.nav-links a{transition:color .45s}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--gold)}.nav-cta{border:1px solid var(--ink);border-radius:999px;padding:.7rem 1.15rem}.nav-cta:hover{background:var(--ink);color:#fff!important}.menu-toggle{display:none;border:0;background:none;font-size:1.35rem;color:var(--ink);cursor:pointer}.scroll-rail{position:fixed;z-index:15;right:1.35rem;top:50%;height:180px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:.65rem}.rail-track{width:1px;height:130px;background:rgba(21,22,25,.18);position:relative}.rail-fill{position:absolute;inset:0 0 auto;width:1px;height:0;background:var(--gold);transform-origin:top}.rail-label{writing-mode:vertical-rl;font-size:.55rem;color:var(--muted);white-space:nowrap}
.hero{position:relative;min-height:115svh;display:flex;align-items:flex-end;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f7f8f8 55%,#e8ecee 100%);padding:8rem 0 5.5rem}.sunrise-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 38%,rgba(247,247,245,.08));pointer-events:none}.hero-content{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.45fr);gap:3rem;align-items:end}.hero-kicker{margin-bottom:1.25rem}.hero h1{font-size:clamp(4rem,12vw,11.6rem);line-height:.79;letter-spacing:-.105em;font-weight:600;margin:0;max-width:1100px}.hero h1 span{display:block;color:#56616a}.hero h1 em{font-style:normal;color:var(--gold)}.hero-side{max-width:290px;justify-self:end;margin-bottom:.3rem}.hero-side p{font-size:1rem;line-height:1.7;color:#5f666e;margin:0 0 2rem}.scroll-cue{display:flex;align-items:center;gap:.75rem;color:#646a71}.scroll-cue i{display:block;width:36px;height:1px;background:var(--gold)}.hero-title-line{overflow:hidden}.hero-title-line>*{animation:rise 1.35s cubic-bezier(.22,.8,.22,1) both}.hero-title-line:nth-child(2)>*{animation-delay:.12s}.hero-title-line:nth-child(3)>*{animation-delay:.22s}@keyframes rise{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
.section{padding:clamp(6rem,12vw,12rem) 0}.section-intro{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:clamp(3rem,6vw,6rem)}.section-intro h2{font-size:clamp(3.4rem,7vw,7.5rem);line-height:.82;letter-spacing:-.09em;margin:.8rem 0 0;font-weight:600}.section-intro p{max-width:330px;color:var(--muted);line-height:1.65}.arrow-link{display:inline-flex;gap:.9rem;align-items:center;color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:.55rem;font:500 .68rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em}.arrow-link span{font:1.25rem 'Space Grotesk';transition:transform .45s}.arrow-link:hover span{transform:translate(4px,-4px)}.reveal{opacity:0;transform:translateY(30px);transition:opacity 1.35s ease,transform 1.35s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}
.positioning{background:#eef0f1;padding:0;min-height:210vh;position:relative}.positioning-sticky{height:100svh;min-height:650px;position:sticky;top:0;display:flex;align-items:center;overflow:hidden}.positioning-grid{display:grid;grid-template-columns:1fr .65fr;gap:5rem;align-items:center;width:100%}.positioning h2{font-size:clamp(4rem,10vw,10.5rem);line-height:.82;letter-spacing:-.11em;margin:0;font-weight:600}.positioning h2 span{display:block;color:#7c858d}.positioning-copy{max-width:330px;color:var(--muted)}.positioning-copy p{font-size:1.1rem;line-height:1.65;margin:0 0 2rem}.stroke-orbit{position:absolute;width:min(44vw,600px);height:min(44vw,600px);right:2%;bottom:-10%;transform:rotate(-22deg);opacity:.8;pointer-events:none}.stroke-orbit path{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-dasharray:1000;stroke-dashoffset:1000}.positioning.is-active .stroke-orbit path{animation:draw-stroke 3.2s .35s cubic-bezier(.2,.7,.2,1) forwards}@keyframes draw-stroke{to{stroke-dashoffset:0}}.floating-dot{width:10px;height:10px;border-radius:50%;background:var(--gold);position:absolute;right:15%;top:27%;box-shadow:0 0 0 10px rgba(192,138,45,.12),0 0 40px rgba(192,138,45,.4);animation:float 7s ease-in-out infinite}@keyframes float{50%{transform:translateY(-22px)}}
.showreel-section{background:var(--paper)}.showreel{position:relative;aspect-ratio:16/8.7;min-height:430px;border-radius:clamp(1.3rem,3vw,2.5rem);overflow:hidden;background:linear-gradient(125deg,#e6e9ea 0%,#c4a35d 47%,#f7f7f5 100%);border:1px solid #d5d7d9;box-shadow:0 25px 80px rgba(34,40,45,.12);transform:rotate(.6deg) scale(.98);transition:transform 1.5s cubic-bezier(.2,.8,.2,1),opacity 1.5s}.showreel.is-visible{transform:rotate(0) scale(1)}.showreel:before{content:"";position:absolute;inset:-15%;background:radial-gradient(circle at 61% 44%,rgba(255,232,156,.95),transparent 20%),conic-gradient(from 180deg at 62% 44%,transparent 0 20%,rgba(255,255,255,.62) 28%,transparent 42% 65%,rgba(185,145,69,.45) 76%,transparent 84%);filter:blur(12px);animation:reel-glow 18s linear infinite}@keyframes reel-glow{to{transform:rotate(360deg)}}.showreel:after{content:"ANU DAWN / REEL 01";position:absolute;left:clamp(1.2rem,4vw,4rem);bottom:1.6rem;color:#30353b;font: .65rem 'DM Mono',monospace;letter-spacing:.14em}.reel-copy{position:absolute;z-index:1;left:clamp(1.2rem,4vw,4rem);top:clamp(1.2rem,4vw,4rem)}.reel-copy span{display:block;color:#4e555c}.reel-copy strong{display:block;font-size:clamp(2rem,5vw,5.2rem);letter-spacing:-.08em;line-height:.87;margin-top:.65rem}.play-button{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(95px,12vw,160px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(21,22,25,.5);background:rgba(255,255,255,.36);backdrop-filter:blur(12px);cursor:pointer;color:var(--ink);display:grid;place-items:center;transition:background .55s,transform .55s}.play-button:before{content:"";margin-left:7px;border-left:22px solid currentColor;border-top:14px solid transparent;border-bottom:14px solid transparent}.play-button:hover{background:rgba(255,255,255,.8);transform:translate(-50%,-50%) scale(1.07)}
.work-section{background:#fbfbfa}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(4rem,10vw,10rem) clamp(1.2rem,5vw,6rem)}.work-card{min-width:0}.work-thumb{aspect-ratio:16/10;overflow:hidden;border-radius:clamp(1rem,2vw,1.65rem);background:#e8eaeb;box-shadow:0 14px 36px rgba(34,40,45,.08);position:relative}.work-thumb:after{content:"↗";position:absolute;right:1.2rem;top:1.2rem;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.82);font-size:1.2rem;opacity:0;transform:translateY(5px);transition:opacity .55s,transform .55s}.work-card:hover .work-thumb:after{opacity:1;transform:none}.work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.8,.2,1)}.work-card:hover .work-thumb img{transform:scale(1.05)}.work-tags{display:block;color:#6e747b;margin:1.05rem 0 .65rem;font-size:.6rem;line-height:1.5}.work-title{font-size:clamp(1.7rem,3vw,3.1rem);line-height:.96;letter-spacing:-.07em;margin:0;font-weight:600}.work-portfolio-link{margin:.85rem 0 0}.work-portfolio-link .arrow-link{display:inline-flex}.work-card:focus-visible{outline:2px solid var(--gold);outline-offset:8px}
.immersive{position:relative;min-height:245vh;background:#e3e5e6}.immersive-sticky{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;display:grid;place-items:center}.immersive-grid{width:100%;display:grid;grid-template-columns:.75fr 1fr;align-items:center;gap:4rem}.story-copy{max-width:360px;z-index:2}.story-copy h2{font-size:clamp(3rem,7vw,7.2rem);line-height:.8;letter-spacing:-.1em;margin:1rem 0 1.5rem}.story-copy h2 span{display:block;color:#757e85}.story-copy p{color:#646b72;line-height:1.7}.device-stage{height:min(68vh,650px);position:relative;display:grid;place-items:center}.device-glow{position:absolute;width:65%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(234,189,87,.48),transparent 68%);filter:blur(10px)}.device{position:relative;width:min(37vw,480px);aspect-ratio:.72;border:1px solid rgba(32,35,38,.38);border-radius:2rem;background:linear-gradient(145deg,#f8f9f9,#b6bdc2);box-shadow:24px 35px 80px rgba(47,52,56,.25);transform:rotate(8deg);transition:transform .2s linear}.device:before{content:"";position:absolute;inset:4%;border-radius:1.5rem;background:linear-gradient(180deg,#f9f9f7,#d5d8d8);border:1px solid rgba(21,22,25,.14)}.device-screen{position:absolute;inset:13% 10%;z-index:1;border-radius:.9rem;background:#181a1d;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:1rem}.device-screen img{width:45px;height:45px;object-fit:contain;border-radius:0}.device-screen strong{font-size:clamp(2rem,4vw,4rem);line-height:.8;letter-spacing:-.1em;color:#f5f3e9}.device-screen small{color:var(--sun);font: .58rem 'DM Mono';letter-spacing:.1em}.gold-path{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.gold-path path{fill:none;stroke:var(--gold);stroke-width:1;stroke-dasharray:700;stroke-dashoffset:700}.immersive.is-active .gold-path path{animation:draw-stroke 3.4s forwards}
.dark-scene{position:relative;min-height:420vh;background:var(--paper);transition:background .55s}.dark-scene.is-dark{background:var(--dark);color:#f7f5ee}.dark-sticky{height:100svh;min-height:650px;position:sticky;top:0;overflow:hidden;display:grid;place-items:center}.scene-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.3s}.dark-scene.is-dark .scene-canvas{opacity:1}.scene-content{position:relative;z-index:2;width:100%;min-height:70%;display:flex;flex-direction:column;justify-content:space-between}.scene-kicker{color:var(--gold)}.scene-statement{max-width:760px;font-size:clamp(3.2rem,8vw,9rem);line-height:.84;letter-spacing:-.1em;margin:0;transition:transform .1s linear}.scene-statement span{color:var(--silver)}.scene-bottom{display:flex;justify-content:space-between;align-items:end;gap:2rem}.scene-bottom p{max-width:250px;color:#9a9ca1;font-size:.9rem;line-height:1.6}.scene-number{font:clamp(3rem,6vw,7rem) 'DM Mono';color:rgba(255,255,255,.15)}
.dark-cta{min-height:155vh;background:var(--dark);color:#f7f5ee;position:relative;overflow:hidden;display:flex;align-items:center}.dark-cta:before,.dark-cta:after{content:"";position:absolute;border:1px solid rgba(234,189,87,.32);border-radius:50%;width:48vw;height:48vw;right:-16vw;top:10%;animation:orbit 28s linear infinite}.dark-cta:after{width:23vw;height:23vw;right:15vw;top:38%;animation-duration:17s;animation-direction:reverse}@keyframes orbit{to{transform:rotate(360deg)}}.cta-inner{position:relative;z-index:1}.cta-inner h2{font-size:clamp(4rem,12vw,13rem);line-height:.78;letter-spacing:-.11em;font-weight:600;margin:1rem 0 3rem;max-width:1050px}.cta-inner h2 span{display:block;color:var(--gold)}.light-button{display:inline-flex;align-items:center;gap:1rem;background:#f7f5ee;color:var(--ink);border-radius:999px;padding:1rem 1.4rem;font: .68rem 'DM Mono';letter-spacing:.11em;text-transform:uppercase}.light-button:hover{background:var(--gold);color:#fff}.site-footer{background:#f0f1f1;color:var(--ink);padding:5rem 0 1.5rem}.footer-top{display:flex;justify-content:space-between;gap:3rem;padding-bottom:7rem}.footer-logo{width:clamp(180px,16vw,230px);height:clamp(96px,10vw,132px);object-fit:contain;object-position:center;border-radius:0}.footer-nav{display:flex;gap:1.6rem;flex-wrap:wrap;align-content:flex-start;font: .65rem 'DM Mono';text-transform:uppercase;letter-spacing:.1em;color:#697078}.footer-nav a:hover{color:var(--gold)}.footer-bottom{border-top:1px solid var(--line);padding-top:1rem;display:flex;justify-content:space-between;color:#848a90;font: .6rem 'DM Mono';text-transform:uppercase;letter-spacing:.1em}.back-top{color:var(--ink)}
.page-main{padding-top:8rem}.page-hero{padding:clamp(5rem,10vw,10rem) 0 6rem;background:linear-gradient(180deg,#fff,#eef0f1)}.page-hero h1{font-size:clamp(4rem,11vw,11rem);line-height:.8;letter-spacing:-.1em;margin:1rem 0 2rem;max-width:1100px}.page-lead{max-width:590px;color:var(--muted);font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.6}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:.2fr 1.05fr 1fr;gap:2rem;padding:3rem 0;border-bottom:1px solid var(--line)}.service-num{color:var(--gold)}.service-row h2{font-size:clamp(2.2rem,5vw,5rem);line-height:.85;letter-spacing:-.08em;margin:0}.service-row p{max-width:370px;color:var(--muted);margin:0;line-height:1.7}.lore-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem)}.lore-block{border-top:1px solid var(--gold);padding-top:1rem}.lore-block h2{font-size:clamp(2.5rem,5vw,5.5rem);line-height:.84;letter-spacing:-.09em;margin:.8rem 0 1.2rem}.lore-block p{color:var(--muted);max-width:470px;line-height:1.75}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,10vw,10rem)}.contact-email{font-size:clamp(1.5rem,3vw,3rem);letter-spacing:-.06em;border-bottom:1px solid var(--gold);display:inline-block;margin:1rem 0 1.5rem}.contact-copy{color:var(--muted);max-width:350px}.form{display:grid;gap:1.4rem}.form label{color:var(--muted);font: .62rem 'DM Mono';text-transform:uppercase;letter-spacing:.12em}.form input,.form textarea{width:100%;border:0;border-bottom:1px solid #cdd0d3;background:transparent;padding:.8rem 0;color:var(--ink);outline:none;border-radius:0}.form textarea{min-height:130px;resize:vertical}.form input:focus,.form textarea:focus{border-color:var(--gold)}.form button{border:0;cursor:pointer;justify-self:start}
.cursor-trail-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:50;pointer-events:none;display:block}
.modal{position:fixed;z-index:60;inset:0;background:rgba(10,11,13,.86);backdrop-filter:blur(12px);display:none;place-items:center;padding:1rem}.modal.is-open{display:grid}.modal-inner{width:min(1080px,100%);aspect-ratio:16/9;background:#000;position:relative;box-shadow:0 30px 100px #000}.modal iframe{width:100%;height:100%;border:0}.modal-close{position:absolute;right:0;bottom:calc(100% + .8rem);width:40px;height:40px;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:transparent;color:#fff;cursor:pointer;font-size:1.4rem}
@media(max-width:800px){.scroll-rail{right:.65rem}.nav-links{position:fixed;inset:0 0 0 28%;padding:5rem 2rem;background:rgba(247,247,245,.96);backdrop-filter:blur(20px);flex-direction:column;align-items:flex-start;justify-content:center;transform:translateX(100%);transition:transform .35s}.nav-links.open{transform:none}.menu-toggle{display:block;z-index:2}.hero{min-height:100svh;padding-top:8rem;padding-bottom:4rem}.hero-content,.positioning-grid,.immersive-grid,.contact-grid,.lore-grid{grid-template-columns:1fr;gap:2.5rem}.hero-side{justify-self:start}.positioning{min-height:160vh}.positioning-sticky{min-height:620px}.positioning-copy{max-width:300px}.stroke-orbit{width:85vw;height:85vw;right:-24%;bottom:-4%}.floating-dot{right:20%;top:18%}.showreel{aspect-ratio:1/1.05;min-height:420px}.reel-copy strong{font-size:3rem}.work-grid{grid-template-columns:1fr;gap:4.5rem}.immersive{min-height:175vh}.device-stage{height:55vh}.device{width:min(65vw,320px)}.scene-bottom{display:block}.scene-number{display:none}.dark-scene{min-height:300vh}.dark-cta{min-height:115vh}.cta-inner h2{font-size:clamp(4rem,18vw,8rem)}.footer-top{display:block;padding-bottom:4rem}.footer-nav{margin-top:3rem}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:.65rem}.service-row{grid-template-columns:.17fr 1fr}.service-row p{grid-column:2}.page-main{padding-top:6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.showreel,.work-thumb img{transition:none}.positioning,.immersive,.dark-scene{min-height:auto}.positioning-sticky,.immersive-sticky,.dark-sticky{position:relative;height:auto;min-height:0;padding:7rem 0}.dark-scene{background:var(--dark);color:#f7f5ee}.scene-canvas{opacity:1}.dark-cta:before,.dark-cta:after,.floating-dot{animation:none}.hero-title-line>*{animation:none}}

/* Live-feel portfolio previews: long captures travel through a clipped card window. */
.work-preview{position:absolute;inset:0;overflow:hidden;background:#e8eaeb;isolation:isolate}
.work-preview-track{position:absolute;top:0;left:0;width:100%;animation:work-preview-scroll var(--preview-duration,18s) cubic-bezier(.42,0,.58,1) infinite alternate;animation-play-state:paused;will-change:transform}
.work-preview-track img{width:100%;height:auto;max-width:none;object-fit:initial;transform:none;transition:none}
.work-card:hover .work-preview-track{animation-duration:18s}
.work-card:hover .work-preview-track img{transform:none}
.work-preview.is-active .work-preview-track{animation-play-state:running}
.work-preview.has-scroll .work-preview-track{backface-visibility:hidden}
.work-preview-label{position:absolute;z-index:2;left:1rem;bottom:1rem;padding:.48rem .65rem;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(16,18,20,.48);color:#fff;backdrop-filter:blur(10px);font:500 .53rem 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.8;pointer-events:none}
.work-preview:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),transparent 15%,transparent 78%,rgba(0,0,0,.28));pointer-events:none}
@keyframes work-preview-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,calc(-1 * var(--preview-distance,0px)),0)}}
@media(prefers-reduced-motion:reduce){.work-preview-track{animation:none!important;transform:none!important}.work-preview-label{opacity:.65}}

/* Header ambient sound control. */
.sound-btn{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(21,22,25,.42);border-radius:999px;background:transparent;color:var(--ink);padding:.48rem .72rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.sound-btn canvas{display:block;width:42px;height:18px}
.sound-btn-label{font:500 .58rem 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.sound-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff;transform:translateY(-1px)}
.sound-btn.is-playing{border-color:var(--gold);color:var(--gold)}
.sound-btn.is-playing:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.sound-btn:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
