:root {
  --paper: #f1eee6;
  --ink: #25241f;
  --muted: #77746b;
  --red: #0008ff;
  --blue: #b8d0d8;
  --yellow: #0008ff;
  --line: rgba(37,36,31,.23);
  --mono: "Public Sans", monospace;
  --sans: "Public Sans", sans-serif;
  --serif: "Public Sans", Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); cursor: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { color: var(--paper); background: var(--red); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.section-pad { padding-left: 6.1vw; padding-right: 6.1vw; }
.site-header { min-height: 92px; padding: 23px 6.1vw; display:flex; align-items:center; justify-content:space-between; border-bottom:0; position:relative; z-index:10; }
.home-page .site-header { position:absolute; inset:0 0 auto; color:#f6eee2; border-bottom:0; }
.home-page .site-header .header-note { color:rgba(246,238,226,.75); }
.home-page .site-header .site-nav a[aria-current="page"] { color:#0004ff; }
.home-page .site-header .site-nav a:hover { color:var(--red); }
.home-page .site-footer { position:absolute; inset:auto 0 0; z-index:2; color:#f6eee2; }
.home-page .site-footer > span { color:rgba(246,238,226,.75); }
.wordmark { font-size: 14px; font-weight:300; letter-spacing:0px; }
.site-header .wordmark, .site-header .site-nav a { font-family:"Public Sans",sans-serif; font-size:14px; font-weight:300; }
.wordmark span { font: 9px var(--mono); display:inline-block; margin-top:8px; }
.site-nav { display:flex; gap:35px; margin-left: auto; margin-right: 8vw; }
.site-nav a, .header-note { font: 14px var(--mono); text-transform:uppercase; }
.site-nav a { transition: color .2s; }
.site-nav a:hover, .text-link:hover { color:var(--red); }
.site-nav sup { color:var(--muted); font-size:8px; }
.header-note { color:var(--muted); line-height:1.6; text-align:right; }
.menu-toggle { display:none; }
.hero { min-height: min(790px, calc(100svh - 92px)); padding-top: 34px; padding-bottom: 58px; position:relative; display:flex; flex-direction:column; overflow:hidden; }
.home-page .hero { min-height:100vh; min-height:100svh; }
.hero-video { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; }
.hero-topline, .contact-top { display:flex; justify-content:space-between; align-items:center; gap:15px; font:10px var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.availability { color:var(--muted); }
.availability i { display:inline-block; width:6px; height:6px; background:#718d5d; border-radius:50%; margin-right:8px; vertical-align:middle; }
.hero-title { font-size:clamp(76px, 13.6vw, 195px); line-height:.78; letter-spacing:-.095em; font-weight:500; margin:clamp(50px, 8vh, 95px) 0 48px; max-width:1100px; position:relative; z-index:1; }
h1 em, h2 em, .contact-title em { font-family:var(--serif); font-weight:500; letter-spacing:-.09em; }
.period { color:var(--red); }
.hero-bottom { display:flex; align-items:flex-end; justify-content:flex-end; padding-right:6.1vw; margin-top:auto; position:relative; z-index:2; }
.hero-intro { font-size:15px; line-height:1.55; max-width:300px; margin:0; }
.round-link { position:relative; width:102px; height:102px; border:1px solid var(--ink); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; font:10px var(--mono); text-transform:uppercase; transition:background .3s,color .3s,transform .3s; }
.home-page .round-link { border-color:#fff; color:#fff; }
.round-link span { text-align:center; }
.round-link b { font-size:20px; font-weight:400; }
.round-link:hover { background:var(--ink); color:var(--paper); transform:rotate(-8deg); }
.home-page .round-link:hover { background:#fff; color:var(--ink); }
.hero-stamp { position:absolute; right:23%; top:33%; width:105px; height:105px; border:1px solid var(--red); border-radius:50%; color:var(--red); display:flex; align-items:center; justify-content:center; flex-direction:column; font:10px var(--mono); text-align:center; text-transform:uppercase; transform:rotate(12deg); }
.hero-stamp span { font-size:24px; margin-top:5px; }
.work-section { padding:125px 4vw 120px; background:#e6e1d7; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:65px; gap:30px; }
.eyebrow { font:10px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.section-heading h1, .section-heading h2, .about-layout h1, .about-layout h2 { font-size:clamp(55px, 8.5vw, 115px); line-height:.86; letter-spacing:-.085em; font-weight:500; margin:32px 0 0; }
.section-heading > p { max-width:225px; font-size:13px; line-height:1.6; margin:0 0 7px; }
.work-page-title { margin:24px 0 40px; color:var(--ink); font:300 14px/1.2 "Public Sans",sans-serif; text-align:center; text-transform:uppercase; }
.work-page-title a { transition:none; }
.work-page-title a:hover, .work-page-title a:focus-visible { background:var(--red); color:#fff; }
.project-grid { display:grid; grid-template-columns:1fr; width:min(1040px,calc(100% - 8vw)); margin:24px auto 80px; gap:96px; align-items:start; }
.project { display:block; min-width:0; }
.project-offset { margin-top:0; }
.project-wide { grid-column:auto; }
.project-art { position:relative; overflow:hidden; aspect-ratio: .93; display:flex; align-items:center; justify-content:center; transition: border-radius .4s; }
.project-photo { aspect-ratio:1.6; margin:0; }
.gallery-main { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; padding:0; overflow:hidden; border:0; background:transparent; cursor:none; }
.gallery-main img, .gallery-main video { display:block; width:100%; height:100%; object-fit:cover; }
.gallery-main [hidden] { display:none; }
.project-photo::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(180deg,rgba(0,0,0,.32),transparent 34%,transparent 68%,rgba(0,0,0,.22)); }
.project-photo .art-label, .project-photo .gallery-count { z-index:3; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.55); }
.gallery-main:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.gallery-count { position:absolute; right:18px; bottom:18px; font:10px var(--mono); }
.art-label, .art-index { position:absolute; z-index:2; font:9px var(--mono); letter-spacing:.06em; }
.art-label { top:18px; left:18px; }
.art-index { right:18px; bottom:18px; }
.art-red { background:var(--red); color:#f7e9d7; }
.book-cover { width:53%; aspect-ratio:.7; background:#e8d6b9; color:#27251e; padding:17px 13px; display:flex; flex-direction:column; justify-content:space-between; transform:rotate(-5deg); box-shadow:15px 19px 0 rgba(40,20,12,.13); transition:transform .5s; }
.project:hover .book-cover { transform:rotate(1deg) scale(1.04); }
.book-cover small, .book-cover span { font:8px var(--mono); }
.book-cover strong { font-size:clamp(22px,3.4vw,48px); letter-spacing:-.08em; line-height:.86; }
.art-blue { background:var(--blue); color:#213d4b; }
.blue-shape { position:absolute; border:1px solid #213d4b; border-radius:50%; width:55%; aspect-ratio:1; }
.shape-one { transform:translate(-19%,-10%); }
.shape-two { transform:translate(17%,14%); border-style:dashed; }
.blue-copy { position:relative; z-index:1; font-size:clamp(30px,5.2vw,72px); line-height:.82; letter-spacing:-.08em; font-weight:600; text-align:center; transform:rotate(-8deg); }
.blue-copy em { font-family:var(--serif); font-weight:500; }
.art-paper { background:#d4c4a8; color:#413c32; }
.paper-scribble { position:absolute; z-index:1; font:italic clamp(30px,4vw,60px)/.92 var(--serif); transform:rotate(-9deg); text-align:center; }
.paper-scribble span { color:var(--red); }
.scribble-svg { position:absolute; width:90%; height:85%; }
.art-yellow { background:var(--yellow); color:#29271d; aspect-ratio:1.12; }
.project-photo.art-yellow { aspect-ratio:1.15; }
.yellow-words { font-size:clamp(38px,6.3vw,88px); line-height:.8; font-weight:600; letter-spacing:-.09em; transform:rotate(-7deg); z-index:1; }
.yellow-words i { font:italic 500 1em var(--serif); }
.yellow-circle { position:absolute; right:13%; top:17%; width:90px; height:90px; border:1px solid; border-radius:50%; display:grid; place-items:center; font-size:44px; }
.project-meta { display:flex; align-items:flex-start; justify-content:space-between; padding-top:6px; margin-top:6px; }
.project-meta h3 { color:var(--ink); font:300 14px/1.2 "Public Sans",sans-serif; margin:0 0 6px; letter-spacing:0; text-align:left; text-transform:uppercase; }
.project-meta p { font:12px var(--mono); color:var; margin:0; }
.project-meta p a { transition:none; }
.project-meta p a:hover, .project-meta p a:focus-visible { background:var(--red); color:#fff; }
.project-arrow { font-size:20px; transition:transform .25s; }
.project:hover .project-arrow { transform:translate(3px,-3px); }
.work-footnote { font:10px var(--mono); color:var(--muted); margin:90px 0 0; }
.about-section { padding-top:55px; padding-bottom:110px; overflow:hidden; }
.about-top { display:flex; justify-content:flex-end; align-items:center; }
.about-symbol { font-size:40px; color:var(--red); }
.about-layout { display:grid; grid-template-columns:1fr; align-items:end; padding:65px 0 90px; }
.about-layout h1, .about-layout h2 { margin:0; font-size:clamp(65px,10vw,140px); }
.about-copy { max-width:1200px; }
.about-bios { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: 110px; }
.about-copy p { font-size:13px; line-height:1.75; color:#68655d; }
.about-bios p { margin:0; }
.about-copy .about-lead { font-size:20px; line-height:1.4; color:var(--ink); letter-spacing:-.035em; }
.about-bios .about-lead { color:var(--ink); transition:color .2s ease; }
.about-bios .about-lead:hover { color:var(--red); }
.text-link { display:inline-flex; gap:25px; align-items:center; border-bottom:1px solid var(--ink); padding:13px 0 9px; margin-top:14px; font:10px var(--mono); text-transform:uppercase; transition:color .2s; }
.about-copy > .text-link { display:flex; width:max-content; }
.about-contact-link { flex-direction:column; align-items:flex-start; gap:6px; }
.about-contact-link > span:last-child { font:14px var(--sans); text-transform:none; }
.about-marquee { overflow:hidden; white-space:nowrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:17px 0; font:clamp(18px,2.6vw,34px) var(--serif); }
.about-marquee div { width:max-content; animation:marquee 24s linear infinite; }
.contact-section { background:var(--red); color:#f6eee2; padding-top:38px; padding-bottom:60px; }
.contact-top { padding-bottom:80px; border-bottom:1px solid lch(32.49% 133.59 306.39 / 0.45); }
.contact-title { font-size:clamp(65px,12vw,165px); line-height:.82; letter-spacing:-.09em; font-weight:500; margin:80px 0 90px; }
.contact-title em { color:#e5c7a5; }
.contact-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; }
.contact-email { font-size:clamp(20px,3vw,39px); letter-spacing:-.06em; border-bottom:1px solid rgba(246,238,226,.6); padding-bottom:8px; }
.contact-email span { font-size:.7em; display:inline-block; transition:transform .2s; }
.contact-email:hover span { transform:translate(4px,-4px); }
.contact-side { display:flex; align-items:flex-end; gap:40px; }
.contact-side p { max-width:200px; font-size:11px; line-height:1.6; margin:0; }
.contact-side a { font:10px var(--mono); border-bottom:1px solid rgba(246,238,226,.6); padding-bottom:5px; white-space:nowrap; }
.site-footer { display:flex; justify-content:space-between; align-items:center; padding:25px 6.1vw; gap:20px; font:9px var(--mono); text-transform:uppercase; }
.site-footer > span { color:var(--muted); }
.cursor, .cursor-ring { pointer-events:none; position:fixed; left:0; top:0; z-index:1000; border-radius:50%; transform:translate(-50%,-50%); opacity:0; }
.cursor { width:7px; height:7px; background:var(--red); }
.cursor.is-gallery { display:none; }
.cursor-ring { width:34px; height:34px; border:1px solid var(--red); transition:width .2s,height .2s,background .2s; }
.cursor-ring.is-hover { width:58px; height:58px; background:rgba(0, 8, 255, 0.09); }
.cursor-ring.is-gallery, .cursor-ring.is-gallery.is-hover { display:grid; place-items:center; width:58px; height:58px; border:1px solid #0800ff; background:rgba(0, 8, 255, 0.17); transition:none; }
.cursor-ring.is-gallery::after { content:"\2192"; display:block; color:#1500ff; font:28px/1 var(--sans); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
@keyframes marquee { from { transform:translateX(100vw); } to { transform:translateX(-100%); } }
@media (pointer: fine) { body, a, button { cursor:none; } }
@media (pointer: coarse) { .cursor, .cursor-ring { display:none; } body, a, button { cursor:auto; } }
@media (max-width: 760px) {
  .section-pad { padding-left:6vw; padding-right:6vw; }
  .site-header { padding:20px 6vw; min-height:76px; }
  .site-nav {  display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 12px; margin: 0 0 0 auto;}
  .site-nav a {display: inline-block; font-size: 10px; white-space: nowrap; text-decoration: none; }
  .hero { min-height:calc(88svh - 76px); padding-top:25px; padding-bottom:35px; }
  .hero-topline { font-size:8px; align-items:flex-start; }
  .hero-title { font-size:clamp(66px,16.3vw,120px); margin:100px 0 50px; }
  .hero-stamp { right:8%; top:28%; width:75px; height:75px; font-size:8px; }
  .hero-stamp span { font-size:17px; }
  .hero-intro { max-width:230px; font-size:13px; }
  .round-link { width:82px; height:82px; font-size:8px; flex-shrink:0; }
  .work-section { padding-top:80px; padding-bottom:75px; }
  .section-heading { align-items:flex-start; flex-direction:column; margin-bottom:42px; }
  .section-heading h1, .section-heading h2 { margin-top:25px; font-size:clamp(58px,13vw,90px); }
  .section-heading > p { max-width:290px; }
  .project-grid { grid-template-columns:1fr; margin-top:20px; gap:64px; }
  .project-offset { margin-top:0; }
  .project-wide { grid-column:auto; }
  .project-art, .art-yellow { aspect-ratio:1.08; }
  .project-photo, .project-photo.art-yellow { aspect-ratio:1.6; }
  .art-label { font-size:7px; top:10px; left:10px; }
  .art-index { font-size:8px; right:10px; bottom:10px; }
  .book-cover { width:64%; padding:10px 8px; }
  .book-cover strong { font-size:clamp(21px,5.5vw,40px); }
  .book-cover small, .book-cover span { font-size:6px; }
  .blue-copy { font-size:clamp(25px,6vw,42px); }
  .yellow-words { font-size:clamp(27px,6.5vw,48px); }
  .yellow-circle { width:48px; height:48px; font-size:25px; }
  .paper-scribble { font-size:clamp(26px,6vw,40px); }
  .project-meta p { font-size:10px; line-height:1.5; }
  .project-arrow { font-size:16px; }
  .work-footnote { margin-top:60px; font-size:8px; }
  .about-section { padding-top:35px; padding-bottom:70px; }
  .about-layout { grid-template-columns:1fr; gap:40px; padding:55px 0 65px; }
  .about-layout h1, .about-layout h2 { font-size:clamp(65px,14vw,100px); }
  .about-copy { max-width:480px; }
  .about-bios { grid-template-columns:1fr; gap:48px; }
  .about-copy .about-lead { font-size:19px; }
  .contact-section { padding-top:28px; padding-bottom:40px; }
  .contact-top { font-size:8px; align-items:flex-start; padding-bottom:50px; }
  .contact-title { font-size:clamp(57px,12vw,100px); margin:65px 0; }
  .contact-bottom { align-items:flex-start; flex-direction:column; }
  .contact-side { width:100%; justify-content:space-between; gap:20px; }
  .site-footer { padding:22px 6vw; flex-wrap:wrap; font-size:8px; }
}

@media (max-width: 420px) {
  .menu-toggle {
    display: none;
  }

  .site-header {
    padding: 16px 4vw;
    gap: 10px;
  }

  .site-nav {
    display: flex;
    position: static;
    background: transparent;
    border-bottom: 0;
    padding: 0;
    margin: 0 0 0 auto;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 10px;
  }

  .site-nav a {
    font-size: 9px;
    white-space: nowrap;
  }

  .hero-title { font-size: 16vw; }
  .availability { max-width: 130px; text-align: right; }
  .project-grid { gap: 56px; }
  .project-meta { gap: 6px; }
  .project-meta p { font-size: 9px; }
  .contact-email { font-size: clamp(20px, 6vw, 28px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
