:root{--bg:#080808;--white:#fafaf8;--muted:#b1b1ae;--lime:#fff;color-scheme:dark}body{font-family:Outfit,Arial,sans-serif;background:#080808}h1,h2{font-family:Pridi,Georgia,serif;font-weight:300;letter-spacing:-.045em}h1 em,h2 em{color:inherit;font-weight:300;font-style:normal}header{position:absolute;left:0;right:0;top:0;z-index:40;border:0;padding:30px 5%;min-height:90px;background:linear-gradient(#0008,transparent);max-width:none}.brand{font-family:Pridi,Georgia,serif;font-size:24px;font-weight:400;letter-spacing:-.7px}nav{font-family:Outfit,Arial,sans-serif}header nav{gap:28px}.nav-contact{border-radius:2px;border-color:#ffffff88}header nav a:hover{opacity:.65}.hero.editorial-hero{position:relative;padding:160px 6% 105px;min-height:760px;min-height:100svh;display:flex;justify-content:center;align-items:center;isolation:isolate;overflow:hidden}.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 57%;z-index:-3}.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,#0004 0%,#0004 30%,#0008 75%,#000b 100%);z-index:-2}.hero-copy{text-align:center;max-width:1080px}.hero-copy .eyebrow{font-size:12px;letter-spacing:3px}.hero h1{font-size:clamp(46px,6.8vw,104px);line-height:1.12;letter-spacing:-.045em;margin:32px 0 24px;text-wrap:balance;text-shadow:0 2px 35px #0005}.hero-copy p{font-size:18px;color:#f1f1ed;margin:0 0 30px}.button{border-radius:2px;min-height:52px;padding:15px 26px;font-family:Outfit,Arial,sans-serif;font-size:15px;font-weight:500}.light{background:#fafaf8;color:#080808}.light:hover{background:#ddd}.hero-base{position:absolute;bottom:32px;left:5%;right:5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:1.2px}.hero-base a{letter-spacing:0;font-size:14px}.editorial-intro{text-align:center;padding:82px 6% 84px;border-bottom:1px solid #333}.editorial-intro>span{font-size:12px;letter-spacing:2px;color:var(--muted)}.editorial-intro p{font-family:Pridi,Georgia,serif;font-weight:300;font-size:clamp(33px,4vw,58px);line-height:1.2;margin:25px 0}.text-link{font-size:16px;font-weight:400}.work{padding:90px 6%;max-width:1600px;margin:auto}.section-heading{margin-bottom:44px}.eyebrow{font-weight:400;letter-spacing:1.5px}.section-heading h2{font-size:clamp(42px,5.4vw,72px);line-height:1.15}.section-heading p{font-size:16px;max-width:300px}.photo-card .image-wrap{background:#111}.expand{background:#080808b3;border:1px solid #ffffff50}.card-caption h3{font-family:Pridi,Georgia,serif!important;font-size:19px!important;font-weight:300}.card-caption>span{letter-spacing:1px;color:#a7a7a2}.gallery-controls{margin-top:25px}.gallery-controls .button{background:transparent;border:1px solid #888;color:white;min-width:210px}.gallery-controls .button:hover{background:white;color:black}.gallery.featured-gallery{gap:24px}.about{padding:90px 6%;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;border-top:1px solid #333;border-bottom:1px solid #333}.about-image{max-width:490px;width:100%;justify-self:center}.about-image img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain}.about-content{display:block;margin:0;max-width:560px}.about h2{font-size:clamp(38px,4.7vw,66px);line-height:1.15;margin:28px 0}.about p{font-size:17px;line-height:1.8}.about .intro{font-size:22px;font-weight:400;line-height:1.5}.services{padding:90px 6%;display:grid;grid-template-columns:1fr 1.25fr;gap:8%}.services h2{font-size:clamp(38px,4.5vw,64px);line-height:1.15;margin-top:25px}.service-list button{display:flex;align-items:center;gap:23px;width:100%;text-align:left;padding:27px 0;color:white;background:transparent;border:0;border-bottom:1px solid #555}.service-list button:first-child{border-top:1px solid #555}.service-list strong{font-family:Pridi,Georgia,serif;font-size:27px;font-weight:300;line-height:1.2;display:block}.service-list small{display:block;font-size:14px;color:#b1b1ae;line-height:1.5;margin-top:10px}.service-number{font-size:12px;color:#92928e}.service-plus{margin-left:auto;font-size:26px;font-weight:400}.service-list button:hover{background:#ffffff08}.session{background:#111;color:white;padding:75px 6% 80px;border-block:1px solid #444}.session-content{grid-template-columns:1.4fr 1fr;gap:70px}.session h2{font-size:clamp(40px,5.3vw,74px);line-height:1.15}.session h2 em{color:white}.session p{font-size:17px}.session .dark{background:white;color:#080808}.session .dark:hover{background:#ddd}.session .small{font-size:14px;color:#bfbfba}.session .small a{text-decoration:underline}footer{padding:40px 6%}footer .brand{font-size:23px}.contact-dock{border-radius:50%;padding:5px;border-color:#aaa}.contact-dock a:first-child{border-radius:50%;width:65px;height:65px;background:#fafaf8;color:#111;min-width:65px}.contact-dock a:first-child:hover{background:#ddd}.footer-contact a{border-radius:2px}.intro-brand{font-family:Pridi,Georgia,serif;font-weight:400}#brief{background:#101010;border-color:#888}#brief h2{font-size:44px;line-height:1.12;font-weight:300}#brief .cash-button{background:#fafaf8}#brief .cash-button:hover{background:#ddd}main{max-width:none;margin:0}.scroll-reveal.is-visible{opacity:1}
@media(max-width:900px){.services{grid-template-columns:1fr;gap:38px}.about{gap:6%}.session-content{gap:35px}header nav{gap:18px}}
@media(max-width:700px){header{padding:22px 6%;gap:16px;align-items:center}.brand{font-size:23px}header nav{width:100%;gap:13px;justify-content:space-between;font-size:14px}.nav-contact{padding:8px 12px}.hero.editorial-hero{min-height:850px;min-height:100svh;padding:180px 6% 115px}.hero h1{font-size:clamp(39px,9.1vw,62px);line-height:1.15;margin:25px 0}.hero-copy .eyebrow{font-size:11px;letter-spacing:1.5px}.hero-copy p{font-size:16px;max-width:240px;margin:0 auto 28px}.hero-background{object-position:46% center}.hero-base{bottom:26px;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:11px}.editorial-intro{padding:55px 6%}.work{padding:58px 6%}.section-heading h2{font-size:47px}.gallery.featured-gallery{grid-template-columns:1fr}.about{padding:55px 6%;grid-template-columns:1fr;gap:38px}.about-image{max-width:300px}.about h2{font-size:43px}.services{padding:58px 6%}.services h2{font-size:42px}.service-list strong{font-size:25px}.service-list button{gap:16px}.session{padding:50px 6%}.session-content{grid-template-columns:1fr;gap:25px}.session h2{font-size:46px}#brief h2{font-size:37px}footer{gap:25px}.contact-dock a:first-child{width:58px;height:58px;min-width:58px}}
@media(prefers-reduced-motion:no-preference){.hero-copy{animation:entrance 1s 1.1s both}.hero-background{animation:hero-settle 2s ease-out both}@keyframes hero-settle{from{opacity:.4}to{opacity:1}}}
/* Motion follows the photography and can be switched off at any time. */
.motion-toggle{background:transparent;color:#ccc;border:1px solid #666;border-radius:2px;padding:10px 14px;min-height:44px;font:inherit;font-size:14px;cursor:pointer}
.motion-toggle:hover{border-color:white;color:white}
@media(prefers-reduced-motion:no-preference){
 .hero-background{animation:hero-drift 18s ease-in-out infinite alternate}
 @keyframes hero-drift{from{transform:scale(1)}to{transform:scale(1.065)}}
 .motion-reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;transition-delay:var(--reveal-delay,0ms)}
 .motion-reveal.motion-visible{opacity:1;transform:translateY(0)}
 .services-heading h2,.editorial-intro p{transition:letter-spacing .8s ease}
 .services-heading.motion-visible h2,.editorial-intro.motion-visible p{letter-spacing:-.035em}
 .service-plus{transition:transform .35s ease}
 .service-list button:hover .service-plus{transform:rotate(90deg)}
 .service-list button{transition:padding .3s ease,background .3s ease}
 .service-list button:hover{padding-left:12px;padding-right:12px}
 .hero-copy .button{position:relative;overflow:hidden}
 .hero-copy .button::after{content:'';position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(110deg,transparent,#00000012,transparent);animation:button-sheen 5s ease-in-out 3}
 @keyframes button-sheen{0%,65%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
}
body.motion-off *,body.motion-off *::before,body.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.motion-off .motion-reveal,body.motion-off .scroll-reveal{opacity:1!important;transform:none!important}
body.motion-off #camera-intro{display:none!important}
@media(prefers-reduced-motion:reduce){.motion-reveal{opacity:1;transform:none}}

/* Keep Angel's portrait clear of the headline on wide and narrow screens. */
.hero.portrait-hero{justify-content:flex-start;background:#000;min-height:800px;min-height:100svh}
.portrait-hero .hero-background{left:auto;right:0;width:60%;object-fit:contain;object-position:center;transform-origin:65% 55%}
.portrait-hero .hero-veil{background:linear-gradient(90deg,#000 0%,#000d 30%,transparent 60%)}
.portrait-hero .hero-copy{text-align:left;width:46%;max-width:690px}
.portrait-hero h1{font-size:clamp(40px,4.8vw,74px)}
@media(max-width:700px){
 .hero.portrait-hero{min-height:850px;min-height:max(850px,100svh);padding:145px 6% 120px;align-items:flex-start}
 .portrait-hero .hero-background{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform-origin:50% 60%}
 .portrait-hero .hero-veil{background:linear-gradient(180deg,#0008,transparent 40%,transparent 73%,#000b)}
 .portrait-hero .hero-copy{width:100%;max-width:none;text-align:center}
 .portrait-hero h1{font-size:clamp(33px,8vw,47px);margin:16px 0 12px}
 .portrait-hero .hero-copy p{font-size:14px;max-width:none}
 .portrait-hero .hero-copy>.button{position:absolute;bottom:112px;left:50%;transform:translateX(-50%);white-space:nowrap}
 .portrait-hero .hero-copy>.button:hover{transform:translateX(-50%)}
}
@media(max-width:700px){.portrait-hero .hero-copy{animation:none;transform:none}}
/* Brushed silver display lettering, with plain readable supporting text. */
.hero h1,.about h2,.services h2,.session h2,.section-heading h2,#brief h2,.editorial-intro p,.brand,.intro-brand{font-family:Rajdhani,'Arial Narrow',Arial,sans-serif;font-weight:600;letter-spacing:.025em;line-height:1.08;color:#e4e8ed;text-transform:uppercase}
.hero h1 em,.about h2 em,.services h2 em,.session h2 em,.section-heading h2 em{font-family:inherit;font-weight:inherit;font-style:normal;color:inherit}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .hero h1,.about h2,.services h2,.session h2,.section-heading h2,#brief h2,.editorial-intro p,.brand,.intro-brand{background-image:linear-gradient(175deg,#ffffff 0%,#e7edf4 19%,#aebcca 36%,#f8fbff 46%,#b6c2cf 49%,#94a5b8 53%,#e3eaf2 64%,#ffffff 78%,#b8c4d1 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 3px #0009)}
}
header .brand,footer .brand{font-size:27px;letter-spacing:.045em}
.portrait-hero h1{font-size:clamp(40px,4.8vw,74px)}
.services-heading.motion-visible h2,.editorial-intro.motion-visible p{letter-spacing:.025em}
@media(max-width:700px){header .brand,footer .brand{font-size:25px}.portrait-hero h1{font-size:clamp(32px,8vw,47px);letter-spacing:.015em}.about h2,.session h2,.services h2{font-size:42px}.section-heading h2{font-size:46px}#brief h2{font-size:37px}}
@media(forced-colors:active){.hero h1,.about h2,.services h2,.session h2,.section-heading h2,#brief h2,.editorial-intro p,.brand,.intro-brand{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText;filter:none}}
/* Chrome and electric blue: a stronger visual signature. */
:root{--electric:#79dcff;--electric-edge:#329ed0}
body{background:#06090d}
header{border-bottom:1px solid #b5e9ff26;background:linear-gradient(180deg,#020609cf,transparent)}
header .brand{filter:drop-shadow(0 0 8px #7cdbff65)}
header .nav-contact{border-color:#7ddfff9c;background:#06121da6;box-shadow:inset 0 0 16px #43b4ec12}
.hero.portrait-hero{border-bottom:1px solid #79dcff80}
.portrait-hero::after{content:'';position:absolute;inset:auto 6% 0;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,#65d6ff,#fff,#65d6ff,transparent);box-shadow:0 0 20px #65d6ff99}
.hero-copy .eyebrow{color:#abebff;letter-spacing:3px}
.hero h1,.about h2,.services h2,.session h2,.section-heading h2,.editorial-intro p{filter:drop-shadow(0 0 8px #72d5ff4d) drop-shadow(0 2px 3px #000);background-size:100% 180%}
.hero-copy .button,.session .dark{background:linear-gradient(120deg,#f5fcff,#c7e5f2 45%,#f8fdff);border:1px solid #d4f2ff;box-shadow:0 0 24px #52caff38;color:#05121b;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.hero-copy .button:hover,.session .dark:hover{background:#fff;box-shadow:0 0 32px #52caff70}
.editorial-intro{position:relative;background:radial-gradient(ellipse at 50% 0,#0c2337 0,transparent 65%);border-bottom-color:#559ac440}
.editorial-intro>span,.services .eyebrow,.about .eyebrow,.work .eyebrow,.session>.eyebrow{color:#a8dcef}
.work{background:radial-gradient(ellipse at 100% 15%,#0b1b293b,transparent 55%)}
.sports-gallery .image-wrap{border:1px solid #90bfd840;box-shadow:0 8px 26px #0007;transition:border-color .4s ease,box-shadow .4s ease}
.sports-gallery .image-wrap::before{content:'';position:absolute;inset:8px;z-index:1;pointer-events:none;border-top:1px solid #d4f4ff80;border-left:1px solid #d4f4ff80;width:24px;height:24px}
.sports-gallery .photo-card:hover .image-wrap{border-color:#94e0ff;box-shadow:0 0 22px #3abdfa35}
.expand{border-color:#a4dbf36b;color:#e8f9ff;background:#04111edb;letter-spacing:2px}
.gallery-controls .button{border-color:#8bc8e5;color:#daf4ff;background:#06121e;box-shadow:inset 0 0 16px #44c0ff10}
.about{background:linear-gradient(120deg,#070b10,#0a1520);border-color:#4e718355}
.about-image{position:relative;padding:10px;border:1px solid #69899e65;background:#06090d;box-shadow:15px 15px 0 #12253270}
.about-image::after{content:'';position:absolute;right:-1px;top:-1px;width:60px;height:3px;background:#9ce7ff;box-shadow:0 0 15px #74d7ff}
.services{background:#070b10}
.service-list button{border-color:#4267807a;padding-left:16px;padding-right:16px}
.service-list button:first-child{border-color:#4267807a}
.service-list strong{font-family:Rajdhani,Arial,sans-serif;font-weight:600;letter-spacing:.045em;text-transform:uppercase;color:#edf6ff}
.service-plus{color:#9fe6ff;text-shadow:0 0 12px #59c6ffaa}
.service-list button:hover{background:linear-gradient(90deg,#15344c90,transparent)}
.session{background:radial-gradient(ellipse at 85% 100%,#113149,#090e16 65%);border-color:#83ccea70}
footer{border-top:1px solid #2c495d;background:#05090e}
.contact-dock{border-color:#a6e8ff;box-shadow:0 0 22px #54cbff3d,0 6px 20px #0008}
.contact-dock a:first-child{background:linear-gradient(150deg,#fff,#b7dbea);color:#061725}
.footer-contact a,.motion-toggle{border-color:#537b90}
#brief,#viewer{border-color:#80c4e5;box-shadow:0 0 45px #0c6e982d}
#brief h2{filter:drop-shadow(0 0 8px #82daff3d)}
@media(prefers-reduced-motion:no-preference){
 @keyframes chrome-glow{0%,100%{background-position:50% 0%;filter:drop-shadow(0 0 6px #73d5ff40) drop-shadow(0 2px 3px #000)}50%{background-position:50% 100%;filter:drop-shadow(0 0 13px #73d5ff85) drop-shadow(0 0 25px #338cc533)}}
 .hero h1,.about h2,.services h2,.session h2,.section-heading h2,.editorial-intro p{animation:chrome-glow 5s ease-in-out infinite}
 header .brand,.intro-brand{animation:chrome-glow 6s ease-in-out infinite}
 @keyframes edge-glow{0%,100%{opacity:.45;box-shadow:0 0 9px #65d6ff55}50%{opacity:1;box-shadow:0 0 25px #65d6ffaa}}
 .portrait-hero::after,.about-image::after{animation:edge-glow 4s ease-in-out infinite}
}
@media(max-width:700px){.hero-copy .eyebrow{letter-spacing:1.7px}.about-image{box-shadow:8px 8px 0 #12253270}.service-list button{padding-left:10px;padding-right:10px}}
@media(forced-colors:active){.hero h1,.about h2,.services h2,.session h2,.section-heading h2,.editorial-intro p,.brand{filter:none;animation:none}}
#angel-mascot{position:fixed;left:0;bottom:92px;width:120px;z-index:60;pointer-events:none;filter:drop-shadow(0 5px 6px #0008)}
.mascot-sprite{width:120px;height:160px;background-image:url('images/angel-sprite.png');background-repeat:no-repeat;background-size:400% 100%;background-position:0 0}
.mascot-dismiss{position:absolute;right:0;top:-26px;pointer-events:auto;border:1px solid #81cde5;background:#071321;color:white;border-radius:50%;width:32px;height:32px;font-size:23px;line-height:1;cursor:pointer}
.mascot-snap{position:absolute;top:-58px;left:0;white-space:nowrap;border:1px solid #97d9f3;border-radius:15px;background:#071321;color:white;padding:7px 11px;font-size:13px;opacity:0}
.mascot-running{animation:angel-stroll 16s linear forwards}
.mascot-running .mascot-sprite{animation:angel-steps .6s steps(3) infinite}
.mascot-shooting .mascot-sprite{animation:none;background-position:100% 0}
.mascot-shooting .mascot-snap{opacity:1;transition:opacity .3s ease}
@keyframes angel-steps{from{background-position:0 0}to{background-position:100% 0}}
@keyframes angel-stroll{0%{transform:translateX(-150px)}55%,72.5%{transform:translateX(calc(100vw - 235px))}100%{transform:translateX(calc(100vw + 150px))}}
@media(max-width:700px){#angel-mascot{width:96px;bottom:100px}.mascot-sprite{width:96px;height:128px}.mascot-dismiss{right:-5px}.mascot-snap{font-size:12px}}
body.motion-off #angel-mascot{display:none!important}
@media(prefers-reduced-motion:reduce){#angel-mascot,#mascot-replay{display:none!important}}
