:root{--black:#080808;--ink:#111;--paper:#f1eee7;--white:#fff;--acid:#d7ff36;--line:rgba(255,255,255,.2)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--white);font-family:"DM Sans",sans-serif;font-size:16px}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}.nav{position:absolute;z-index:10;top:0;left:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:24px 4vw;border-bottom:1px solid var(--line);text-transform:uppercase}.brand{font:700 1.35rem/1 "Oswald";letter-spacing:.02em}.brand span{color:var(--acid)}nav{display:flex;gap:32px;font-size:.75rem;letter-spacing:.13em}nav a,.nav-cta{transition:color .2s}.nav a:hover{color:var(--acid)}.nav-cta{justify-self:end;border:1px solid currentColor;padding:11px 16px;font-size:.72rem;letter-spacing:.11em}.hero{position:relative;min-height:100svh;overflow:hidden;display:flex;align-items:flex-end}.hero>img{position:absolute;inset:0;object-position:center 28%;filter:saturate(.9) contrast(1.08)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.36) 55%,rgba(0,0,0,.2)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 45%)}.hero-copy{position:relative;z-index:2;padding:150px 5vw 7vh}.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0 0 22px}.hero h1,.section h2{font:600 clamp(4rem,9.5vw,9.2rem)/.82 "Oswald";letter-spacing:-.055em;margin:0;text-transform:uppercase}.hero h1 em,.book h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--white)}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:38px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;font:600 .78rem/1 "DM Sans";letter-spacing:.12em;text-transform:uppercase;padding:18px 24px;cursor:pointer}.button.light{background:var(--white);color:var(--black)}.text-link{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:7px}.text-link span{margin-left:8px}.side-note{position:absolute;z-index:2;right:2vw;top:50%;margin:0;writing-mode:vertical-rl;font-size:.65rem;letter-spacing:.2em}.ticker{overflow:hidden;background:var(--acid);color:var(--black);padding:15px 0;font:700 1rem "Oswald";letter-spacing:.12em;white-space:nowrap}.ticker div{width:max-content;animation:marquee 22s linear infinite}.ticker b{padding:0 25px}@keyframes marquee{to{transform:translateX(-50%)}}.section{padding:110px 5vw}.work,.about{background:var(--paper);color:var(--ink)}.section-head{display:grid;grid-template-columns:1fr 2.2fr 1fr;gap:35px;align-items:end;margin-bottom:70px}.section-head h2,.about h2{font-size:clamp(3.4rem,7vw,7.2rem)}.section h2 span{color:transparent;-webkit-text-stroke:1.2px var(--ink)}.section-head>p:last-child{line-height:1.6;color:#5b5955}.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:stretch}.gallery figure{position:relative;margin:0;overflow:hidden;background:#222;min-height:560px;grid-column:span 4}.gallery .wide{min-height:620px;grid-column:span 8}.gallery img{transition:transform .6s ease}.gallery figure:hover img{transform:scale(1.025)}figcaption{position:absolute;inset:auto 0 0;padding:50px 22px 22px;background:linear-gradient(transparent,rgba(0,0,0,.75));text-transform:uppercase;display:flex;justify-content:space-between;align-items:end;color:white}figcaption span{font-size:.68rem;letter-spacing:.14em}figcaption b{font:500 1.3rem "Oswald"}.services{background:#0b0b0b}.service-list{border-top:1px solid var(--line)}.service-list article{display:grid;grid-template-columns:80px 1fr minmax(280px,480px);gap:30px;align-items:center;padding:42px 0;border-bottom:1px solid var(--line)}.service-list span{color:var(--acid);font:500 1rem "Oswald"}.service-list h3{font:500 clamp(2.2rem,5vw,5rem)/1 "Oswald";text-transform:uppercase;margin:0}.service-list p{color:#aaa;line-height:1.6;margin:0}.about{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:end}.about-copy{max-width:560px}.about-copy .lead{font:500 clamp(1.8rem,3vw,3rem)/1.2 "Oswald";text-transform:uppercase;margin-top:0}.about-copy>p:not(.lead){color:#575550;line-height:1.7}.dark-link{display:inline-block;margin-top:25px}.book{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}.book h2{font-size:clamp(3.8rem,7.5vw,7.5rem)}.book-intro>p:last-child{max-width:480px;color:#aaa;line-height:1.6}.book form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:9px}.field.full,.button.full,.form-note{grid-column:1/-1}.field label{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#aaa}.field input,.field select,.field textarea{width:100%;color:white;background:transparent;border:0;border-bottom:1px solid #555;border-radius:0;padding:12px 0;font:inherit;outline:none}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--acid)}.field select option{color:#111}.acid{background:var(--acid);color:#090909;margin-top:10px;min-height:56px}.form-note{margin:0;color:#777;font-size:.78rem;text-align:center}footer{padding:42px 5vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:24px;align-items:center;text-transform:uppercase}footer p,footer a,footer small{font-size:.68rem;letter-spacing:.12em}footer>div{display:flex;gap:20px}@media(max-width:800px){.nav{grid-template-columns:1fr auto;padding:20px}.nav nav{display:none}.nav-cta{padding:10px}.hero{min-height:820px}.hero-copy{padding:130px 20px 64px}.hero h1{font-size:clamp(3.65rem,18vw,6.5rem)}.side-note{display:none}.section{padding:78px 20px}.section-head{grid-template-columns:1fr;margin-bottom:38px}.section-head>p:last-child{max-width:520px}.gallery{grid-template-columns:1fr 1fr}.gallery figure{grid-column:span 1}.gallery figure,.gallery .wide{min-height:440px}.gallery .wide{grid-column:1/-1}.service-list article{grid-template-columns:40px 1fr}.service-list article p{grid-column:2}.about,.book{grid-template-columns:1fr;gap:55px}.book form{grid-template-columns:1fr}.field{grid-column:1/-1}footer{grid-template-columns:1fr 1fr}footer>div{justify-self:end}footer small{grid-column:1/-1}}@media(max-width:520px){.hero{min-height:740px}.hero>img{object-position:center}.hero-copy{padding-bottom:48px}.hero h1{font-size:3.75rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.gallery{grid-template-columns:1fr}.gallery .wide{grid-column:auto}.gallery figure,.gallery .wide{min-height:520px}.service-list article{grid-template-columns:32px 1fr;gap:16px}.service-list h3{font-size:2.15rem}.about h2,.section-head h2{font-size:3.5rem}footer{grid-template-columns:1fr}footer>div{justify-self:start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.gallery img{transition:none}}
.contact-links{display:grid;gap:1px;margin-top:34px;background:#333;border:1px solid #333}.contact-links a{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center;background:#0b0b0b;padding:18px 20px;transition:background .2s,color .2s}.contact-links a:hover{background:var(--acid);color:var(--black)}.contact-links span{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#888}.contact-links a:hover span{color:#222}.contact-links strong{font-size:.9rem;overflow-wrap:anywhere}.contact-links b{font-weight:500}.footer-links{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:520px){.contact-links a{grid-template-columns:1fr auto}.contact-links span{grid-column:1/-1}.contact-links strong{font-size:.82rem}}
.field small{color:#777;font-size:.72rem;letter-spacing:.04em}
.mobile-portfolio{display:none}
.portfolio-more{display:inline-flex;gap:18px;align-items:center;margin-top:34px;padding:15px 0;border-bottom:1px solid var(--ink);font-weight:600;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em}
.portfolio-more:hover{color:#4f6500}
.portfolio-page .nav{position:relative;background:var(--black)}
.portfolio-page nav a[aria-current="page"],.mobile-portfolio[aria-current="page"]{color:var(--acid)}
.portfolio-intro{padding:80px 5vw 58px;background:var(--black)}
.portfolio-intro h1{font:600 clamp(4rem,12vw,10rem)/.9 "Oswald";letter-spacing:-.055em;margin:0;text-transform:uppercase}
.portfolio-intro h1 span{color:var(--acid)}
.portfolio-intro>p:last-child{color:#aaa;line-height:1.5;margin:24px 0 0}
.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px;background:var(--paper)}
.portfolio-item{position:relative;display:block;width:100%;height:clamp(260px,32vw,560px);margin:0;padding:0;border:0;background:#252525;color:white;text-align:left;cursor:zoom-in;overflow:hidden}
.portfolio-item:nth-child(5n+2){grid-column:span 2}
.portfolio-item img{transition:transform .4s ease}
.portfolio-item:hover img,.portfolio-item:focus-visible img{transform:scale(1.03)}
.portfolio-item:focus-visible{outline:4px solid var(--acid);outline-offset:-4px}
.portfolio-item span{position:absolute;bottom:0;left:0;right:0;padding:34px 18px 18px;background:linear-gradient(transparent,rgba(0,0,0,.7));font:500 1.15rem "Oswald";text-transform:uppercase;letter-spacing:.04em}
.portfolio-book{text-align:center;padding:60px 20px 85px}
.portfolio-viewer{position:fixed;inset:0;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;padding:60px 70px;border:0;background:rgba(0,0,0,.96);color:white;overflow:hidden}
.portfolio-viewer::backdrop{background:#000}
.portfolio-viewer img{width:100%;height:100%;object-fit:contain}
.portfolio-viewer button{position:absolute;z-index:1;border:0;background:rgba(0,0,0,.6);color:white;font:400 2.7rem/1 "DM Sans";cursor:pointer;min-width:48px;min-height:48px}
.viewer-close{top:12px;right:18px}
.viewer-prev,.viewer-next{top:50%;transform:translateY(-50%)}
.viewer-prev{left:12px}.viewer-next{right:12px}
.viewer-count{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:.8rem;letter-spacing:.12em}
@media(max-width:800px){
  .nav{grid-template-columns:1fr auto auto;gap:15px}
  .mobile-portfolio{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portfolio-item:nth-child(5n+2){grid-column:auto}
  .portfolio-item{height:clamp(260px,55vw,450px)}
}
@media(max-width:520px){
  .nav{gap:12px;padding:17px 14px}
  .nav .brand{font-size:1.1rem}
  .nav-cta{font-size:.62rem;padding:9px}
  .mobile-portfolio{font-size:.68rem}
  .portfolio-intro{padding:60px 20px 42px}
  .portfolio-intro h1{font-size:clamp(3.25rem,16vw,5.5rem)}
  .portfolio-grid{grid-template-columns:1fr;gap:8px;padding:8px}
  .portfolio-item{height:auto;aspect-ratio:4/5}
  .portfolio-viewer{padding:72px 12px 65px}
  .viewer-prev,.viewer-next{top:auto;bottom:8px;transform:none}
}
@media(prefers-reduced-motion:reduce){.portfolio-item img{transition:none}}
