:root {
  --paper: #f8f7f4;
  --white: #ffffff;
  --ink: #161616;
  --muted: #6c6a65;
  --line: #d9d7d1;
  --orange: #f15a35;
  --blue: #2c54d4;
  --yellow: #f7d552;
  --lime: #b9d95b;
  --red: #d94332;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 94px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.cursor-glow { width: 180px; height: 180px; position: fixed; z-index: -1; top: 0; left: 0; pointer-events: none; border-radius: 50%; background: rgba(247, 213, 82, .14); filter: blur(35px); transform: translate(-50%, -50%); transition: opacity .35s; }
.site-header { position: sticky; top: 0; z-index: 20; height: 84px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 5.2vw, 88px); background: rgba(248,247,244,.88); border-bottom: 1px solid transparent; backdrop-filter: blur(12px); transition: border-color .25s, height .25s; }
.site-header.is-stuck { height: 72px; border-color: var(--line); }
.brand { font-size: 23px; font-weight: 800; letter-spacing: -1.7px; line-height: 1; }
.brand span { font-size: 8px; vertical-align: top; letter-spacing: 0; margin-left: 2px; }
.main-nav { display: flex; align-items: center; gap: 31px; font-size: 12px; font-weight: 700; }
.main-nav a { position: relative; }
.main-nav a::after { content: ""; position: absolute; left: 0; bottom: -5px; width: 0; height: 1px; background: var(--ink); transition: width .25s; }
.main-nav a:hover::after { width: 100%; }
.header-cta, .button { border: 0; display: inline-flex; align-items: center; justify-content: center; gap: 18px; font-size: 12px; font-weight: 800; letter-spacing: .01em; }
.header-cta { padding: 11px 0 11px 18px; background: transparent; }
.header-cta svg, .button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.header-cta svg { border: 1px solid var(--ink); border-radius: 50%; padding: 4px; width: 26px; height: 26px; transition: transform .25s, background .25s, color .25s; }
.header-cta:hover svg { transform: translateX(3px); background: var(--ink); color: var(--white); }
.menu-toggle { display: none; border: 0; padding: 8px 0 8px 12px; background: transparent; }
.menu-toggle span { display: block; width: 25px; height: 1.5px; margin: 5px; background: var(--ink); transition: transform .25s; }

.section-pad { padding-left: clamp(24px, 5.2vw, 88px); padding-right: clamp(24px, 5.2vw, 88px); }
.hero { min-height: calc(100vh - 84px); display: grid; grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr); gap: clamp(35px, 7vw, 130px); align-items: center; position: relative; padding-top: clamp(60px, 9vh, 112px); padding-bottom: 82px; overflow: hidden; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 23px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.eyebrow span { display: inline-block; width: 28px; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { letter-spacing: -.067em; font-weight: 600; line-height: .98; }
h1 { max-width: 640px; margin-bottom: 29px; font-size: clamp(54px, 6vw, 104px); }
h1 em, h2 em { font-family: var(--serif); font-weight: 600; letter-spacing: -.08em; }
.hero-lead { max-width: 440px; margin-bottom: 32px; color: #4c4a47; font-size: 16px; line-height: 1.7; }
.hero-actions { display: flex; align-items: center; gap: 29px; }
.button { min-height: 51px; padding: 0 21px; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--ink); color: var(--white); }
.button-dark:hover { background: var(--blue); }
.button-outline { border: 1px solid var(--ink); background: transparent; color: var(--ink); }
.button-outline b { font-size: 18px; font-weight: 400; }
.text-link { display: inline-flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--ink); padding-bottom: 3px; font-size: 12px; font-weight: 800; }
.text-link span { font-size: 18px; line-height: 12px; transition: transform .2s; }
.text-link:hover span { transform: translateY(3px); }
.hero-art { aspect-ratio: 1 / 1.04; min-height: 480px; position: relative; overflow: hidden; background: #efeee9; isolation: isolate; }
.hero-art::before { content: ""; position: absolute; z-index: -2; inset: 0; background: repeating-linear-gradient(90deg, rgba(22,22,22,.075) 0 1px, transparent 1px 53px), repeating-linear-gradient(0deg, rgba(22,22,22,.075) 0 1px, transparent 1px 53px); mask-image: linear-gradient(135deg, #000 0 46%, transparent 85%); }
.sun { position: absolute; top: 10%; left: 13%; width: 28%; aspect-ratio: 1; border-radius: 50%; background: var(--yellow); }
.blob { position: absolute; }
.blob-orange { top: 20%; right: 10%; width: 47%; height: 62%; border-radius: 54% 46% 33% 67% / 30% 38% 62% 70%; background: var(--orange); transform: rotate(-10deg); }
.blob-blue { bottom: -16%; left: -9%; width: 77%; height: 51%; border-radius: 52% 48% 0 0 / 73% 58% 0 0; background: var(--blue); transform: rotate(8deg); }
.blob-ink { top: 34%; left: 24%; width: 25%; height: 42%; border-radius: 50% 50% 46% 54% / 32% 42% 58% 68%; background: var(--ink); transform: rotate(28deg); }
.hero-line { position: absolute; z-index: 2; border: 4px solid var(--paper); border-left: 0; border-bottom: 0; border-radius: 0 130px 0 0; }
.line-one { width: 36%; height: 27%; right: 4%; bottom: 13%; transform: rotate(-24deg); }
.line-two { width: 23%; height: 14%; left: 15%; top: 38%; transform: rotate(34deg); }
.checker { position: absolute; right: 8%; bottom: 7%; width: 84px; height: 84px; background: conic-gradient(var(--ink) 25%, #fff 0 50%, var(--ink) 0 75%, #fff 0) 0 / 28px 28px; transform: rotate(14deg); }
.hero-art-label { position: absolute; z-index: 5; font-size: 9px; font-weight: 800; letter-spacing: .14em; }
.top-label { top: 22px; right: 23px; }
.side-label { transform: rotate(-90deg); transform-origin: 0 0; left: 20px; bottom: 24px; }
.hero-stamp { position: absolute; z-index: 5; right: 22px; top: 47%; display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid var(--ink); border-radius: 50%; font-family: var(--serif); font-size: 20px; }
.hero-scroll { position: absolute; bottom: 20px; left: 50%; display: flex; gap: 10px; align-items: center; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .16em; transform: translateX(-50%); }
.hero-scroll span { font-size: 17px; color: var(--ink); }

.intro { padding: 127px clamp(24px, 10.5vw, 178px) 0; overflow: hidden; }
.intro-grid { display: grid; grid-template-columns: 1.2fr .65fr; align-items: end; gap: 70px; }
h2 { margin-bottom: 0; font-size: clamp(42px, 5vw, 77px); }
.intro-copy { padding-bottom: 8px; }
.intro-copy p { margin-bottom: 26px; color: #4c4a47; font-size: 15px; line-height: 1.75; }
.marquee { margin: 118px -12vw 0; padding: 19px 0; overflow: hidden; white-space: nowrap; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.marquee div { display: inline-block; font-size: clamp(27px, 3.1vw, 48px); font-weight: 800; letter-spacing: -.06em; animation: marquee 20s linear infinite; }
.marquee i { padding: 0 17px; color: var(--orange); font-size: .8em; font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

.projects { padding-top: 145px; padding-bottom: 133px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 55px; }
.project-filters { display: flex; gap: 5px; border-bottom: 1px solid var(--line); }
.filter { border: 0; padding: 9px 12px; background: transparent; color: var(--muted); font-size: 11px; font-weight: 800; }
.filter.is-active { border-bottom: 2px solid var(--ink); color: var(--ink); }
.project-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(34px, 4vw, 65px) clamp(22px, 3.8vw, 62px); }
.project-card { min-width: 0; transition: opacity .3s, transform .3s; }
.project-card.is-hidden { display: none; }
.art-piece { width: 100%; min-height: 340px; position: relative; overflow: hidden; border: 0; color: var(--ink); text-align: left; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.art-piece:hover { transform: scale(.986); }
.project-large .art-piece { min-height: 570px; }
.project-wide { grid-column: 1 / -1; }
.project-wide .art-piece { min-height: 470px; }
.project-info { display: flex; justify-content: space-between; align-items: baseline; padding-top: 13px; }
.project-info h3, .product-meta h3 { margin: 0; font-size: 16px; letter-spacing: -.035em; }
.project-info p, .product-meta p { margin: 0; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.art-index { position: absolute; z-index: 3; top: 17px; left: 18px; padding: 4px 6px; background: var(--paper); font-size: 9px; font-weight: 800; }
.view-project { position: absolute; z-index: 3; right: 17px; bottom: 17px; display: flex; align-items: center; gap: 8px; padding: 9px 11px; background: var(--paper); font-size: 10px; font-weight: 800; opacity: 0; transform: translateY(6px); transition: .25s; }
.view-project b { font-size: 16px; font-weight: 400; }
.art-piece:hover .view-project { opacity: 1; transform: translateY(0); }
.art-night { background: #243f62; }
.art-night::before { content:""; position: absolute; width: 72%; height: 85%; right: -9%; bottom: -40%; border-radius: 54% 46% 0 0; background: #b4d785; transform: rotate(-13deg); }
.shape-moon { position: absolute; top: 17%; left: 18%; width: 33%; aspect-ratio: 1; border-radius: 50%; background: #f6db69; }
.shape-hill { position: absolute; left: -12%; bottom: -15%; width: 73%; height: 60%; border-radius: 45% 55% 0 0; background: #e55435; transform: rotate(15deg); }
.shape-flower { position: absolute; z-index: 2; width: 25%; aspect-ratio: 1; border: 9px solid #edeee5; border-radius: 50% 50% 10% 50%; }
.flower-a { right: 23%; top: 24%; transform: rotate(45deg); }.flower-b { left: 33%; bottom: 27%; transform: rotate(-38deg); }
.paint-line { position: absolute; z-index: 2; right: 14%; bottom: 11%; width: 55%; height: 30%; border-top: 5px solid var(--ink); border-radius: 55%; transform: rotate(-30deg); }
.art-red { background: #ede2d0; }.red-disc { position: absolute; top: 10%; right: 9%; width: 59%; aspect-ratio: 1; border-radius: 50%; background: var(--red); }.red-arch { position: absolute; bottom: -25%; left: -8%; width: 68%; height: 83%; border: 24px solid #2d2c27; border-bottom: 0; border-radius: 50% 50% 0 0; transform: rotate(20deg); }.red-wave { position: absolute; z-index: 1; width: 83%; height: 18%; bottom: 21%; right: -20%; border-top: 8px solid #fff7e7; border-radius: 50%; transform: rotate(-27deg); }
.art-grid { background: #e6e3de; background-image: linear-gradient(#303534 1px, transparent 1px), linear-gradient(90deg, #303534 1px, transparent 1px); background-size: 27px 27px; }.grid-sun { position: absolute; top: 20%; right: 14%; width: 44%; aspect-ratio: 1; border-radius: 50%; background: #f0b82a; }.grid-arch { position: absolute; bottom: -22%; left: 12%; width: 60%; height: 79%; border: 32px solid var(--blue); border-bottom: 0; border-radius: 50% 50% 0 0; transform: rotate(-13deg); }.grid-cutout { position: absolute; z-index: 2; left: 42%; top: 17%; width: 21%; height: 49%; border-radius: 50%; background: var(--ink); transform: rotate(33deg); }
.art-sunrise { background: #efe6d8; }.rise-sun { position: absolute; z-index: 1; top: 15%; left: 47%; width: 26%; aspect-ratio: 1; border-radius: 50%; background: var(--orange); }.rise-arch { position: absolute; z-index: 2; left: 5%; bottom: -48%; width: 54%; height: 110%; border: 39px solid #2f507b; border-radius: 50% 50% 0 0; transform: rotate(6deg); }.rise-leaf { position: absolute; z-index: 3; width: 21%; height: 69%; border-radius: 100% 0 100% 0; background: #b1cf6e; }.leaf-one { right: 21%; bottom: -5%; transform: rotate(24deg); }.leaf-two { right: 6%; bottom: 14%; transform: rotate(-21deg); background: #d64734; }.rise-line { position:absolute; z-index: 3; bottom: 22%; left: 27%; width: 60%; height: 30%; border-bottom: 5px solid var(--ink); border-radius: 50%; transform: rotate(-6deg); }
.section-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 69px; color: var(--muted); font-size: 13px; }

.services { padding-top: 115px; padding-bottom: 125px; color: var(--white); background: var(--ink); }
.services-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 64px; }.services-top .eyebrow { color: #b2b1ad; }.services-top > p { max-width: 360px; margin: 0; color: #cfcdc7; font-size: 14px; }
.service-list { border-top: 1px solid #494845; }.service-item { display: grid; grid-template-columns: 9% 1.4fr .8fr 40px; gap: 24px; align-items: center; min-height: 152px; border-bottom: 1px solid #494845; transition: padding .3s, background .3s; }.service-item:hover { padding: 0 18px; background: #222; }.service-number { color: #a5a39e; font-size: 11px; font-weight: 800; }.service-item h3 { margin: 0 0 7px; font-size: clamp(22px, 2.4vw, 37px); letter-spacing: -.06em; }.service-item p { max-width: 510px; margin: 0; color: #bab8b2; font-size: 13px; }.service-tags { display: flex; flex-wrap: wrap; gap: 7px; }.service-tags i { padding: 4px 8px; border: 1px solid #6a6964; border-radius: 20px; color: #c6c4be; font-size: 9px; font-style: normal; font-weight: 700; text-transform: uppercase; }.service-item button { width: 36px; height: 36px; border: 1px solid #9c9a95; border-radius: 50%; background: transparent; color: #fff; font-size: 21px; line-height: 1; transition: transform .25s, background .25s; }.service-item:hover button { background: var(--orange); border-color: var(--orange); transform: rotate(45deg); }

.shop { padding-top: 135px; padding-bottom: 135px; background: #ebeae5; }.shop-intro { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 60px; }.shop-intro > p { max-width: 330px; margin: 0 5vw 7px 0; color: #565550; font-size: 14px; }.shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(17px, 2.3vw, 37px); }.product-art { position: relative; width: 100%; aspect-ratio: .89; overflow: hidden; border: 12px solid var(--white); background: #d9d9d9; box-shadow: 0 6px 15px rgba(0,0,0,.07); transition: transform .35s, box-shadow .35s; }.product-art:hover { transform: translateY(-8px) rotate(-1deg); box-shadow: 0 17px 25px rgba(0,0,0,.11); }.product-blue { background: #3d64c8; }.product-blue span { position:absolute; top:-15%; left:27%; width:50%; height:85%; border:30px solid #ebe27a; border-bottom:0; border-radius:50% 50% 0 0; transform:rotate(21deg); }.product-blue i { position:absolute; right:-5%; bottom:-18%; width:76%; height:62%; border-radius:60% 0 0 0; background:#17233f; }.product-blue b { position:absolute; bottom:28%; left:8%; width:67%; height:18%; border-top:8px solid #fff; border-radius:50%; transform:rotate(-20deg); }.product-melon { background: #f0bd7f; }.product-melon span { position:absolute; left:-21%; bottom:-20%; width:85%; height:81%; border-radius:50%; background:#d34a34; }.product-melon i { position:absolute; right:5%; top:11%; width:44%; aspect-ratio:1; border-radius:50%; background:#f7eddb; }.product-melon b { position:absolute; top:30%; left:10%; width:72%; height:42%; border:8px solid #222; border-top:0; border-radius:0 0 58% 48%; transform:rotate(-19deg); }.product-ink { background:#e1dfd7; }.product-ink span { position:absolute; top:-10%; left:16%; width:47%; height:112%; border-radius:50%; background:#213353; transform:rotate(27deg); }.product-ink i { position:absolute; top:18%; right:8%; width:37%; height:54%; border-radius:50% 0 50% 50%; background:#dc5537; transform:rotate(26deg); }.product-ink b { position:absolute; bottom:11%; left:9%; width:79%; height:25%; border-top:8px solid #202020; border-radius:50%; transform:rotate(7deg); }.product-meta { display: flex; justify-content: space-between; gap: 10px; padding-top: 15px; }.product-meta strong { white-space: nowrap; font-size: 11px; }.shop-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 58px; border-bottom: 1px solid; padding-bottom: 3px; font-size: 12px; font-weight: 800; }.shop-link span { font-size: 18px; }

.about { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(55px, 12vw, 195px); padding-top: 145px; padding-bottom: 145px; }.about-art { min-height: 535px; position: relative; overflow: hidden; background:#df4b35; }.about-art::before { content:""; position:absolute; width:120%; height:70%; left:-10%; bottom:-12%; background:#f6d872; border-radius:50% 50% 0 0; }.about-dots { position:absolute; top:8%; left:8%; width:96px; height:96px; background:radial-gradient(#243b68 28%, transparent 30%) 0 0/19px 19px; }.about-face { position:absolute; z-index:2; top:18%; left:32%; width:39%; height:54%; border-radius:46% 48% 45% 45%; background:#f1bb9b; transform:rotate(5deg); }.about-hair { position:absolute; z-index:3; top:8%; left:23%; width:56%; height:50%; border:25px solid #24231e; border-bottom:0; border-radius:47% 53% 0 0; transform:rotate(9deg); }.about-swoop { position:absolute; z-index:4; top:52%; left:13%; width:68%; height:25%; border-bottom:8px solid #222; border-radius:50%; transform:rotate(-17deg); }.about-word { position:absolute; z-index:5; right:-52px; bottom:22px; color:var(--paper); font-size:94px; font-weight:800; letter-spacing:-.11em; transform:rotate(-90deg); transform-origin:center; }.about-copy > p:not(.eyebrow) { max-width: 460px; margin-top: 27px; color:#4c4a47; font-size:14px; line-height:1.8; }.signature { margin-top:33px; font-family:var(--serif); font-size:43px; font-style:italic; transform:rotate(-8deg); }

.process { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; padding-top: 118px; padding-bottom: 118px; border-top: 1px solid var(--line); }.process-steps { display:grid; grid-template-columns:repeat(2, 1fr); gap:0; padding:0; margin:0; list-style:none; }.process-steps li { min-height:197px; padding:20px 28px; border-top:1px solid var(--ink); }.process-steps li:nth-child(odd) { border-right:1px solid var(--ink); }.process-steps li:nth-last-child(-n+2) { border-bottom:1px solid var(--ink); }.process-steps span { font-size:10px; font-weight:800; }.process-steps h3 { margin:36px 0 7px; font-size:18px; letter-spacing:-.04em; }.process-steps p { max-width:180px; margin:0; color:var(--muted); font-size:12px; line-height:1.6; }

.contact { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(45px, 11vw, 170px); padding: 118px clamp(24px, 10.5vw, 178px) 126px; color:var(--white); background: #263f6c; }.contact .eyebrow { color:#c0ccd9; }.contact h2 { font-size:clamp(48px, 5.8vw, 87px); }.contact h2 em { color:var(--yellow); }.contact-copy > p:not(.eyebrow) { max-width:415px; margin:27px 0 42px; color:#d2dae6; font-size:14px; line-height:1.75; }.contact-links { display:flex; gap:21px; flex-wrap:wrap; }.contact-links a { border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:3px; font-size:11px; font-weight:800; }.contact-links span { padding-left:4px; font-size:15px; }.contact-form { display:grid; align-content:start; gap:22px; padding-top:8px; }.contact-form label { color:#e8edf3; font-size:11px; font-weight:800; }.contact-form input, .contact-form select, .contact-form textarea { width:100%; display:block; padding:10px 0; border:0; border-bottom:1px solid #9fafc4; border-radius:0; outline:0; color:#fff; background:transparent; font-size:14px; font-weight:500; resize:vertical; transition:border .2s; }.contact-form select { color:#fff; }.contact-form select option { color:var(--ink); }.contact-form input::placeholder, .contact-form textarea::placeholder { color:#b7c1d0; }.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--yellow); }.contact-form .button { justify-self:start; margin-top:5px; background:var(--yellow); color:var(--ink); }.contact-form .button:hover { background:var(--white); }.form-note { margin: -12px 0 0; color:#bac5d4; font-size:9px; }
.site-footer { display:flex; align-items:center; justify-content:space-between; min-height:86px; padding:0 clamp(24px, 5.2vw, 88px); background:#1d3157; color:#cdd6e2; font-size:10px; font-weight:700; }.site-footer .brand { color:var(--white); }.site-footer p { margin:0; }.site-footer > a:last-child { border-bottom:1px solid #cdd6e2; }

.modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; pointer-events:none; opacity:0; transition:opacity .28s; }.modal.is-open { pointer-events:auto; opacity:1; }.modal-backdrop { position:absolute; inset:0; background:rgba(20,20,20,.56); backdrop-filter:blur(5px); }.modal-content { position:relative; width:min(100%, 520px); padding:clamp(38px, 6vw, 68px); background:var(--paper); transform:translateY(15px); transition:transform .3s cubic-bezier(.2,.8,.2,1); }.modal.is-open .modal-content { transform:translateY(0); }.modal-content h2 { margin-bottom:24px; font-size:clamp(45px, 6vw, 65px); }.modal-content > p:not(.eyebrow) { margin-bottom:28px; color:var(--muted); }.modal-close { position:absolute; top:12px; right:17px; border:0; background:transparent; font-size:30px; font-weight:300; line-height:1; }.toast { position:fixed; z-index:200; bottom:27px; left:50%; padding:12px 17px; background:var(--ink); color:#fff; font-size:11px; font-weight:700; opacity:0; pointer-events:none; transform:translate(-50%, 20px); transition:.3s; }.toast.is-visible { opacity:1; transform:translate(-50%, 0); }
.reveal { opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease; }.reveal.is-visible { opacity:1; transform:none; }

.portfolio-media { cursor: pointer; }
.lightbox { position:fixed; z-index:150; inset:0; display:grid; place-items:center; padding:24px; pointer-events:none; opacity:0; transition:opacity .28s; }
.lightbox.is-open { pointer-events:auto; opacity:1; }
.lightbox-backdrop { position:absolute; inset:0; background:rgba(10,10,10,.82); backdrop-filter:blur(6px); }
.lightbox-content { position:relative; display:flex; flex-direction:column; align-items:center; gap:16px; max-width:min(92vw, 980px); max-height:92vh; transform:translateY(15px) scale(.98); transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.lightbox.is-open .lightbox-content { transform:translateY(0) scale(1); }
.lightbox-image { display:block; max-width:100%; max-height:74vh; width:auto; height:auto; object-fit:contain; background:#111; box-shadow:0 20px 60px rgba(0,0,0,.45); }
.lightbox-caption { text-align:center; color:var(--white); }
.lightbox-caption h3 { margin:0 0 4px; font-size:18px; letter-spacing:-.03em; }
.lightbox-caption p { margin:0; color:#c9c7c1; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.lightbox-close { position:absolute; top:-46px; right:-6px; border:0; background:transparent; color:var(--white); font-size:34px; font-weight:300; line-height:1; }
@media (max-width: 720px) { .lightbox-close { top:-42px; right:0; } }

.lightbox-arrow { position:absolute; top:50%; transform:translateY(-50%); border:0; background:rgba(255,255,255,.08); color:var(--white); width:48px; height:48px; border-radius:50%; font-size:26px; line-height:1; display:grid; place-items:center; cursor:pointer; }
.lightbox-arrow:hover { background:rgba(255,255,255,.18); }
.lightbox-prev { left:16px; }
.lightbox-next { right:16px; }
@media (max-width: 720px) { .lightbox-arrow { width:40px; height:40px; font-size:20px; } .lightbox-prev { left:6px; } .lightbox-next { right:6px; } }

.folder-overlay { position:fixed; z-index:140; inset:0; pointer-events:none; opacity:0; transition:opacity .3s; background:rgba(10,10,10,.96); backdrop-filter:blur(6px); }
.folder-overlay.is-open { pointer-events:auto; opacity:1; }
.folder-overlay-backdrop { position:absolute; inset:0; }
.folder-overlay-content { position:relative; width:100%; height:100%; overflow-y:auto; padding:90px 40px 60px; box-sizing:border-box; }
.folder-overlay-title { margin:0 0 28px; color:var(--white); font-size:22px; letter-spacing:-.03em; text-align:center; }
.folder-overlay-close { position:fixed; top:24px; right:32px; border:0; background:rgba(255,255,255,.08); color:var(--white); width:44px; height:44px; border-radius:50%; font-size:28px; font-weight:300; line-height:1; z-index:2; cursor:pointer; }
.folder-overlay-close:hover { background:rgba(255,255,255,.18); }
.folder-overlay-grid { column-count:4; column-gap:16px; max-width:1700px; margin:0 auto; }
.folder-overlay-item { display:block; width:100%; margin:0 0 16px; border:0; padding:0; cursor:zoom-in; border-radius:6px; overflow:hidden; break-inside:avoid; background:#111; }
.folder-overlay-item img { display:block; width:100%; height:auto; transition:transform .3s; }
.folder-overlay-item:hover img { transform:scale(1.03); }
@media (min-width: 1500px) { .folder-overlay-grid { column-count:5; } }
@media (max-width: 1180px) { .folder-overlay-grid { column-count:3; } }
@media (max-width: 860px) { .folder-overlay-grid { column-count:2; } }
@media (max-width: 720px) { .folder-overlay-content { padding:80px 16px 40px; } .folder-overlay-grid { column-count:2; column-gap:10px; } .folder-overlay-item { margin-bottom:10px; } .folder-overlay-close { top:16px; right:16px; width:38px; height:38px; font-size:24px; } }
@media (max-width: 480px) { .folder-overlay-grid { column-count:1; } }

.contact-form .req { color:var(--orange); }
.contact-form .opt { color:var(--muted); font-size:9px; font-weight:700; text-transform:none; letter-spacing:0; }
.field-toggle { display:grid; gap:8px; }
.field-toggle-label { color:var(--ink); font-size:11px; font-weight:800; }
.toggle-group { display:flex; gap:8px; }
.toggle-option { position:relative; flex:1; margin:0; }
.toggle-option input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.toggle-option span { display:block; padding:10px 12px; border:1px solid #aaa8a1; border-radius:100px; color:var(--muted); font-size:11px; font-weight:800; text-align:center; transition:color .2s, background .2s, border-color .2s; }
.toggle-option input:checked + span { border-color:var(--ink); background:var(--ink); color:var(--white); }
.toggle-option input:focus-visible + span { outline:2px solid var(--blue); outline-offset:2px; }

@media (max-width: 900px) { .hero { grid-template-columns: 1fr 1fr; gap:38px; }.hero-art { min-height:0; }.about { gap:55px; }.about-art { min-height:440px; }.service-item { grid-template-columns: 8% 1.3fr .7fr 35px; }.section-bottom { margin-top:50px; }.contact { padding-left:7vw; padding-right:7vw; } }
@media (max-width: 720px) { .cursor-glow { display:none; }.site-header { height:68px; }.site-header.is-stuck { height:64px; }.main-nav { position:absolute; top:68px; right:0; left:0; display:block; padding:17px 24px 24px; background:var(--paper); border-bottom:1px solid var(--line); opacity:0; visibility:hidden; transform:translateY(-8px); transition:.25s; }.main-nav.is-open { opacity:1; visibility:visible; transform:none; }.main-nav a { display:block; width:max-content; padding:9px 0; font-size:13px; }.header-cta { display:none; }.menu-toggle { display:block; }.menu-toggle.is-open span:first-child { transform:translateY(3.2px) rotate(45deg); }.menu-toggle.is-open span:last-child { transform:translateY(-3.2px) rotate(-45deg); }.hero { min-height:auto; grid-template-columns:1fr; gap:47px; padding-top:64px; padding-bottom:65px; }.hero-art { order:-1; min-height:0; aspect-ratio:1.15; }.hero-copy { display:contents; }.hero-copy .eyebrow { order:-2; margin:0; }.hero-copy h1 { order:-1; margin:-22px 0 0; }.hero-lead, .hero-actions, .hero-meta { order:1; }.hero-meta { margin-top:12px; }.hero-scroll { display:none; } h1 { font-size:clamp(52px, 14.5vw, 79px); }.intro { padding:89px 24px 0; }.intro-grid, .about, .contact, .process { grid-template-columns:1fr; gap:34px; }.intro-grid h2 { margin-bottom:0; }.marquee { margin-top:75px; }.projects, .shop { padding-top:89px; padding-bottom:89px; }.section-heading, .shop-intro { display:block; }.section-heading h2, .shop-intro h2 { margin-bottom:25px; }.project-filters { width:max-content; }.project-grid { gap:38px 18px; }.project-large .art-piece { min-height:410px; }.art-piece { min-height:255px; }.project-wide .art-piece { min-height:310px; }.project-info { display:block; }.project-info p { margin-top:3px; }.section-bottom { align-items:flex-start; gap:22px; flex-direction:column; }.services { padding-top:82px; padding-bottom:84px; }.services-top { display:block; margin-bottom:39px; }.services-top > p { margin-top:18px; }.service-item { grid-template-columns:34px 1fr 30px; gap:12px; min-height:0; padding:23px 0; }.service-item:hover { padding:23px 7px; }.service-item p { font-size:11px; }.service-tags { display:none; }.service-item h3 { font-size:25px; }.shop-intro > p { margin-top:18px; }.shop-grid { grid-template-columns:1fr; gap:35px; }.product-card { max-width:420px; }.product-meta { display:block; }.product-meta strong { display:block; margin-top:7px; }.shop-link { margin-top:36px; }.about { padding-top:88px; padding-bottom:89px; }.about-art { min-height:390px; }.about-word { font-size:70px; right:-42px; }.process { padding-top:83px; padding-bottom:83px; }.process-steps li { min-height:170px; padding:18px; }.process-steps h3 { margin-top:30px; }.contact { gap:55px; padding:85px 24px; }.contact-form { gap:19px; }.site-footer { min-height:115px; flex-wrap:wrap; padding-top:25px; padding-bottom:25px; gap:13px; }.site-footer p { order:3; width:100%; }.modal-content { padding:47px 31px 38px; } }
@media (max-width: 380px) { .hero-meta { gap:17px; }.hero-meta strong { font-size:28px; }.hero-meta span { font-size:8px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.project-grid { grid-template-columns:1fr; }.project-wide { grid-column:auto; }.art-piece, .project-large .art-piece, .project-wide .art-piece { min-height:350px; }.process-steps { grid-template-columns:1fr; }.process-steps li:nth-child(odd) { border-right:0; }.process-steps li:nth-last-child(-n+2) { border-bottom:0; }.process-steps li:last-child { border-bottom:1px solid var(--ink); } }

/*1*/
.brand i { margin-left:2px; font-family:var(--serif); font-weight:600; letter-spacing:-1.4px; }
.hero-promise { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:25px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.hero-promise span { display:inline-flex; align-items:center; gap:6px; }.hero-promise span::before { content:"✓"; color:var(--blue); font-size:12px; }
.hero-art:hover .sun { transform:translate(7px, -7px); }.hero-art:hover .blob-orange { transform:rotate(-6deg) scale(1.025); }.hero-art:hover .checker { transform:rotate(24deg) translate(-3px, -3px); }
.sun { transition:transform .8s cubic-bezier(.2,.8,.2,1); animation:art-breathe 7s ease-in-out infinite; }.blob-orange, .checker { transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.quick-contact { display:none; }
.button:focus-visible, .header-cta:focus-visible, .filter:focus-visible, .art-piece:focus-visible, .product-art:focus-visible, .main-nav a:focus-visible, .quick-contact:focus-visible { outline:3px solid var(--yellow); outline-offset:4px; }
@keyframes art-breathe { 50% { transform:translateY(-7px); } }
@media (max-width: 720px) { .hero-lead, .hero-actions, .hero-meta, .hero-promise { order:1; }.hero-promise { margin-top:17px; }.quick-contact { position:fixed; z-index:18; right:14px; bottom:14px; display:flex; align-items:center; gap:8px; padding:12px 14px; border-radius:999px; background:var(--ink); box-shadow:0 8px 26px rgba(0,0,0,.24); color:var(--white); font-size:11px; font-weight:800; }.quick-contact span { color:var(--yellow); font-size:15px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }

.creative-lab { display:grid; grid-template-columns:.68fr 1.32fr; gap:clamp(40px, 8vw, 130px); margin-top:70px; padding-top:66px; border-top:1px solid #494845; }
.creative-lab-copy h3 { margin:0 0 19px; color:var(--white); font-size:clamp(30px, 3vw, 47px); font-weight:600; letter-spacing:-.065em; line-height:1.01; }.creative-lab-copy h3 em { font-family:var(--serif); font-weight:600; }.creative-lab-copy > p:not(.eyebrow) { max-width:300px; margin:0; color:#bab8b2; font-size:13px; line-height:1.7; }
.creative-tools { display:grid; grid-template-columns:repeat(2, 1fr); gap:11px; }.creative-tool { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:196px; padding:21px; border:1px solid #565550; color:var(--white); overflow:hidden; transition:transform .32s cubic-bezier(.2,.8,.2,1), border-color .32s, background .32s; }.creative-tool:hover { transform:translateY(-5px); border-color:#c3c1ba; background:#242424; }.creative-tool.is-priority { border-color:var(--blue); background:var(--blue); }.creative-tool.is-priority:hover { background:#355ddc; }.creative-tool h4 { margin:0 0 5px; font-size:17px; letter-spacing:-.045em; }.creative-tool p { max-width:190px; margin:0; color:#c9c7c1; font-size:11px; line-height:1.55; }.creative-tool.is-priority p { color:#e8edff; }.creative-tool > i { position:absolute; top:18px; right:18px; padding:4px 7px; border:1px solid rgba(255,255,255,.5); border-radius:100px; font-size:8px; font-style:normal; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.tool-icon { position:relative; display:grid; place-items:center; width:39px; height:39px; margin-bottom:28px; border:1px solid currentColor; font-size:13px; }.tool-play { border-radius:50%; padding-left:2px; }.tool-frame::before { content:""; width:17px; height:21px; border:1px solid var(--yellow); transform:rotate(-13deg); }.tool-frame::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--orange); transform:translate(9px, -7px); }.tool-grid-icon { background:linear-gradient(90deg, transparent 47%, currentColor 48% 52%, transparent 53%), linear-gradient(transparent 47%, currentColor 48% 52%, transparent 53%); }.tool-cube { transform:rotate(30deg) skew(-5deg); }.tool-cube::before { content:""; position:absolute; inset:8px; border:1px solid var(--yellow); }.creative-tool.is-priority::after { content:""; position:absolute; width:130px; height:130px; right:-63px; bottom:-62px; border:1px solid rgba(255,255,255,.25); border-radius:50%; }
@media (max-width: 720px) { .creative-lab { grid-template-columns:1fr; gap:30px; margin-top:47px; padding-top:45px; }.creative-lab-copy > p:not(.eyebrow) { max-width:360px; }.creative-tools { gap:9px; }.creative-tool { min-height:172px; padding:18px; }.creative-tool h4 { font-size:15px; }.creative-tool p { font-size:10px; }.tool-icon { width:34px; height:34px; margin-bottom:20px; } }
@media (max-width: 380px) { .creative-tools { grid-template-columns:1fr; }.creative-tool { min-height:145px; } }

.portfolio { padding-top:132px; padding-bottom:132px; background:var(--white); }.portfolio-heading { display:flex; align-items:end; justify-content:space-between; gap:55px; margin-bottom:50px; }.portfolio-heading > p { max-width:365px; margin:0 3vw 5px 0; color:var(--muted); font-size:13px; line-height:1.7; }
.portfolio-tabs { display:flex; gap:8px; margin-bottom:16px; overflow-x:auto; padding-bottom:7px; scrollbar-width:thin; }.portfolio-tab { flex:0 0 auto; display:inline-flex; align-items:center; gap:10px; padding:10px 13px; border:1px solid var(--line); border-radius:100px; background:transparent; color:var(--muted); font-size:11px; font-weight:800; transition:color .25s, background .25s, border-color .25s; }.portfolio-tab span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#e8e7e2; color:var(--ink); font-size:8px; }.portfolio-tab:hover, .portfolio-tab.is-active { border-color:var(--ink); background:var(--ink); color:var(--white); }.portfolio-tab.is-active span { background:var(--yellow); }.portfolio-tab[data-locked="true"] { opacity:.6; }.portfolio-tab[data-locked="true"] span { font-size:10px; background:transparent; }
.portfolio-subtabs { display:flex; gap:8px; margin-bottom:38px; overflow-x:auto; padding-bottom:7px; }.portfolio-subtabs[hidden] { display:none; }.portfolio-subtab { flex:0 0 auto; padding:8px 14px; border:1px solid var(--line); border-radius:100px; background:transparent; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; transition:color .25s, background .25s, border-color .25s; }.portfolio-subtab:hover, .portfolio-subtab.is-active { border-color:var(--orange); background:var(--orange); color:var(--white); }
.portfolio-grid { column-count:3; column-gap:22px; }.portfolio-work { display:none; min-width:0; break-inside:avoid; margin-bottom:22px; }.portfolio-work.is-visible { display:block; animation:portfolio-in .42s cubic-bezier(.2,.8,.2,1) both; }.portfolio-media { width:100%; position:relative; overflow:hidden; border:0; color:var(--white); text-align:left; isolation:isolate; transition:transform .42s cubic-bezier(.2,.8,.2,1), box-shadow .42s; }.portfolio-media img { display:block; width:100%; height:auto; }.portfolio-media:hover { transform:translateY(-6px); box-shadow:0 16px 24px rgba(0,0,0,.11); }.media-number, .media-type { position:absolute; z-index:2; font-weight:800; letter-spacing:.08em; }.media-number { top:14px; left:14px; padding:4px 6px; background:rgba(255,255,255,.9); color:var(--ink); font-size:9px; }.media-type { left:15px; bottom:15px; font-size:10px; }.portfolio-info { display:flex; justify-content:space-between; gap:14px; padding-top:12px; }.portfolio-info h3 { margin:0; font-size:16px; letter-spacing:-.04em; }.portfolio-info p { margin:3px 0 0; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.04em; line-height:1.35; text-transform:uppercase; }
.portfolio-note { max-width:590px; margin:37px auto 0; color:var(--muted); font-size:11px; line-height:1.65; text-align:center; }.portfolio-note::before { content:"✦"; padding-right:8px; color:var(--orange); }.portfolio-note code { padding:2px 5px; border-radius:4px; background:#e8e7e2; font-size:10px; }
@keyframes portfolio-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media (max-width: 720px) { .portfolio { padding-top:86px; padding-bottom:85px; }.portfolio-heading { display:block; margin-bottom:30px; }.portfolio-heading h2 { margin-bottom:22px; }.portfolio-heading > p { margin:0; }.portfolio-tabs, .portfolio-subtabs { margin-right:-24px; padding-right:24px; }.portfolio-grid { column-count:1; }.portfolio-note { margin-top:29px; text-align:left; } }

.order-button { min-height:64px; padding:0 30px; font-size:13px; gap:22px; }.order-button svg { width:20px; height:20px; }
.marquee { white-space:normal; }.marquee .marquee-track { display:flex; width:max-content; animation:marquee-loop 26s linear infinite; will-change:transform; }.marquee .marquee-track span { flex:0 0 auto; display:block; padding-right:3.8rem; white-space:nowrap; font-size:clamp(27px, 3.1vw, 48px); font-weight:800; letter-spacing:-.06em; }.marquee .marquee-track i { padding:0 17px; color:var(--orange); font-size:.8em; font-style:normal; }
@keyframes marquee-loop { to { transform:translateX(-50%); } }
.main-nav a.is-current::after { width:100%; }
.portfolio-page-hero { padding-top:clamp(86px, 14vh, 170px); padding-bottom:clamp(62px, 10vh, 120px); }.portfolio-page-hero-grid { display:grid; grid-template-columns:1.16fr .64fr; align-items:end; gap:50px; }.portfolio-page-hero h1 { margin:0; }.portfolio-page-hero-grid > p { max-width:350px; margin:0 0 7px; color:var(--muted); font-size:15px; line-height:1.75; }.portfolio-page .portfolio { padding-top:0; }.portfolio-cta { display:flex; align-items:end; justify-content:space-between; gap:35px; padding-top:105px; padding-bottom:110px; border-top:1px solid var(--line); }.portfolio-cta h2 { margin:0; }
.contact { color:var(--ink); background:var(--white); border-top:1px solid var(--ink); }.contact .eyebrow { color:var(--muted); }.contact h2 em { color:var(--orange); }.contact-copy > p:not(.eyebrow) { color:#4c4a47; }.contact-links a { border-color:var(--ink); }.contact-form label { color:var(--ink); }.contact-form input, .contact-form select, .contact-form textarea { border-color:#aaa8a1; color:var(--ink); }.contact-form select { color:var(--ink); }.contact-form input::placeholder, .contact-form textarea::placeholder { color:#88867f; }.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--blue); }.contact-form .button { background:var(--ink); color:var(--white); }.contact-form .button:hover { background:var(--blue); }.form-note { color:var(--muted); }.site-footer { background:var(--ink); color:#cdd0d3; }.site-footer > a:last-child { border-color:#cdd0d3; }
@media (max-width: 720px) { .order-button { min-height:60px; padding:0 24px; }.portfolio-page-hero { padding-top:82px; padding-bottom:66px; }.portfolio-page-hero-grid { grid-template-columns:1fr; gap:23px; }.portfolio-page-hero-grid > p { margin:0; }.portfolio-cta { align-items:flex-start; flex-direction:column; padding-top:75px; padding-bottom:78px; }.contact { border-top-width:1px; } }
