:root{--bg: #EDE9D0;--fg: #3A001E;--accent: #8E1400;--muted: #9c7a68;--wine: var(--bg);--wine-lift: color-mix(in srgb, var(--bg) 90%, var(--fg));--wine-deep: color-mix(in srgb, var(--bg) 82%, var(--fg));--wine-black: color-mix(in srgb, var(--bg) 74%, var(--fg));--ember: var(--accent);--ember-soft: color-mix(in srgb, var(--accent) 78%, #000);--clay: var(--muted);--cream: var(--fg);--font-display: "Fraunces", "Playfair Display", Georgia, serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--wrap: 1180px;--ease: cubic-bezier(.2, .8, .2, 1)}:root[data-theme=grey]{--bg: #EEF0F2;--fg: #353B3C;--accent: #846A6A;--muted: #A2999E}:root[data-theme=violet]{--bg: #2E0219;--fg: #97EFE9;--accent: #6A0F49;--muted: #A7C4C2}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg);cursor:url(/assets/cursor-CNl_1r2K.png) 9 2,auto}a,button,[role=button],input[type=button],input[type=submit],label,summary,.btn,.swatch,.nav-toggle,.contact-email,.socials a,.corner-photo,[data-cursor=hover]{cursor:url(/assets/cursor-hover-BWhRAL8K.png) 18 1,pointer}body{font-family:var(--font-body);color:var(--fg);background-color:var(--bg);background-image:radial-gradient(circle at 12% 8%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 55%),radial-gradient(circle at 88% 92%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 52%),repeating-linear-gradient(45deg,color-mix(in srgb,var(--fg) 5%,transparent) 0 2px,transparent 2px 5px),repeating-linear-gradient(-45deg,color-mix(in srgb,var(--fg) 4%,transparent) 0 2px,transparent 2px 5px);background-attachment:fixed;line-height:1.6;overflow-x:hidden;transition:background-color .55s var(--ease),color .55s var(--ease)}html:not(.intro-done) body{overflow:hidden;height:100vh}img{max-width:100%;display:block}::selection{background:var(--ember);color:var(--cream)}a{color:inherit}:focus-visible{outline:2px solid var(--clay);outline-offset:3px;border-radius:2px}#intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#000}.intro-done #intro{display:none}.intro-dissolve{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:var(--wine);opacity:0;pointer-events:none}#intro.fade{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}.intro-card{position:relative;width:min(78vw,312px);padding:13px 13px 0;background:var(--cream);border-radius:3px;box-shadow:0 44px 90px -34px #000000d9,0 0 0 1px #00000014;animation:settle .95s var(--ease) both}.intro-punch{position:absolute;top:-8px;left:50%;width:15px;height:15px;transform:translate(-50%);background:#000;border-radius:50%;box-shadow:inset 0 1px 2px #ffffff2e}.intro-patch{position:relative;display:block;width:100%;aspect-ratio:4 / 5;min-height:180px;border:0;border-radius:0;background:var(--wine);cursor:pointer;overflow:hidden;isolation:isolate;transform-origin:var(--zoom-x, 58%) var(--zoom-y, 70%);transition:filter .3s ease}.intro-photo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:70% 16%;filter:contrast(1.05)}.intro-patch:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:var(--wine);mix-blend-mode:color;opacity:.55}.intro-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:linear-gradient(178deg,#3a001e00 32%,#3a001e80 78%,#3a001ed1),radial-gradient(120% 80% at 58% 88%,rgba(26,6,12,.55),transparent 70%)}.intro-patch:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background:radial-gradient(130% 90% at 28% 18%,rgba(237,233,208,.13),transparent 62%);animation:patchPulse 3.8s ease-in-out infinite}.intro-patch:hover .intro-photo{filter:contrast(1.06) brightness(1)}.intro-shine{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;z-index:4;background:linear-gradient(115deg,transparent 32%,rgba(237,233,208,.22) 47%,rgba(237,233,208,.04) 56%,transparent 72%);transform:translate(-60%);animation:sheen 3.6s ease-in-out infinite}.intro-footer{padding:15px 4px 17px;color:#1c1114;text-align:left}.intro-brand{font-family:var(--font-body);font-weight:700;font-size:1.16rem;letter-spacing:-.018em;line-height:1;color:#1c1114}.intro-brand sup{font-size:.5em;font-weight:600;top:-.7em}.intro-code{margin-top:7px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:#4c4044}.intro-name{margin-top:2px;font-family:var(--font-body);font-weight:600;font-size:.92rem;color:#1c1114}.intro-cta{display:block;margin-top:11px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ember);animation:blink 2.1s ease-in-out infinite}.intro-skip{position:fixed;bottom:30px;left:50%;transform:translate(-50%);padding:8px 14px;font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#ede9d080;background:none;border:1px solid rgba(237,233,208,.16);border-radius:40px;cursor:pointer;transition:color .25s,border-color .25s}.intro-skip:hover{color:var(--cream);border-color:#ede9d066}#intro.expanding{pointer-events:none}#intro.expanding .intro-card>:not(.intro-patch),#intro.expanding .intro-skip{opacity:0;transition:opacity .22s ease}#intro.expanding .intro-patch:after{opacity:0}#intro.expanding .intro-card{border-color:transparent;background:transparent;box-shadow:none;animation:none}#intro.expanding .intro-patch{z-index:2;animation:zoomIn 1s cubic-bezier(.55,0,.85,.25) forwards}#intro.expanding .intro-shine{animation-duration:.9s}#intro.expanding .intro-dissolve{opacity:1;transition:opacity .55s ease .38s}@keyframes settle{0%{opacity:0;transform:translateY(-40px) rotate(-3deg)}62%{opacity:1;transform:translateY(6px) rotate(1.2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes sheen{0%{transform:translate(-60%)}50%{transform:translate(60%)}to{transform:translate(-60%)}}@keyframes patchPulse{0%,to{opacity:.4}50%{opacity:.85}}@keyframes blink{0%,to{opacity:.4}50%{opacity:1}}@keyframes zoomIn{0%{transform:scale(1)}to{transform:scale(var(--intro-scale, 30))}}.corner-photo{position:fixed;top:22px;left:22px;z-index:60;width:72px;height:72px;border-radius:50% 50% 48% 52%/52% 50% 50% 48%;overflow:hidden;isolation:isolate;box-shadow:0 14px 30px -12px #000000b3;transition:transform .4s var(--ease)}.corner-photo img{width:100%;height:100%;object-fit:cover;object-position:64% 18%;filter:brightness(1.08) contrast(1.03)}.corner-photo__ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1px dashed rgba(237,233,208,.4);border-radius:inherit}.corner-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 40%,rgba(237,233,208,.45) 50%,transparent 60%);transform:translate(-120%);transition:transform .7s var(--ease)}.corner-photo:hover{transform:scale(1.06) rotate(-2deg)}.corner-photo:hover:after{transform:translate(120%)}.swatch-nav{position:fixed;top:22px;right:22px;z-index:60}.swatch-nav ul{list-style:none;display:flex;flex-direction:column;gap:10px}.swatch{--chip: var(--wine);position:relative;display:flex;align-items:center;gap:10px;padding:0;background:none;border:none;cursor:pointer;color:var(--clay)}.swatch__chip{position:relative;width:34px;height:34px;border-radius:8px;background:var(--chip);border:1px solid rgba(237,233,208,.18);box-shadow:0 6px 14px -6px #0009;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.swatch__chip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 40%,rgba(237,233,208,.7) 50%,transparent 60%);transform:translate(-130%);transition:transform .65s var(--ease)}.swatch__label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:0;transform:translate(6px);transition:opacity .3s,transform .3s;pointer-events:none}.swatch--wine{--chip: #3A001E}.swatch--ember{--chip: #8E1400}.swatch--clay{--chip: #C48A74}.swatch--cream{--chip: #EDE9D0}.swatch:hover .swatch__chip,.swatch:focus-visible .swatch__chip{transform:translateY(-3px) scale(1.06);box-shadow:0 12px 22px -8px #000000b3,0 0 18px #ede9d047}.swatch:hover .swatch__chip:after{transform:translate(130%)}.swatch:hover .swatch__label,.swatch:focus-visible .swatch__label{opacity:.85;transform:translate(0)}.swatch.is-active .swatch__chip{outline:1px solid var(--cream);outline-offset:2px;transform:translateY(-2px) scale(1.04)}.swatch.is-active .swatch__label{opacity:.85;transform:translate(0)}.nav-toggle{position:fixed;top:22px;right:20px;z-index:70;width:44px;height:44px;display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:var(--wine-black);border:1px solid var(--ember);border-radius:10px;cursor:pointer}.nav-toggle span{width:18px;height:1.5px;background:var(--cream);transition:transform .3s var(--ease),opacity .2s}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:32px;background:var(--wine-deep);background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.06) 0 2px,transparent 2px 6px)}.mobile-menu[hidden]{display:none}.mobile-menu.is-open{animation:menuIn .35s var(--ease) both}@keyframes menuIn{0%{opacity:0}to{opacity:1}}.mobile-menu__eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--clay);margin-bottom:18px}.mobile-menu ul{list-style:none;display:flex;flex-direction:column;gap:4px}.mobile-menu button{display:flex;align-items:center;gap:16px;width:100%;padding:18px 4px;background:none;border:none;border-bottom:1px solid rgba(196,138,116,.25);font-family:var(--font-display);font-size:30px;color:var(--cream);cursor:pointer}.mobile-menu button em{margin-left:auto;font-family:var(--font-mono);font-style:normal;font-size:11px;letter-spacing:.1em;color:var(--clay)}.m-chip{width:22px;height:22px;border-radius:5px;border:1px solid rgba(237,233,208,.2);flex:none}.m-chip--wine{background:#3a001e}.m-chip--ember{background:#8e1400}.m-chip--clay{background:#c48a74}.m-chip--cream{background:#ede9d0}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}main{position:relative;z-index:2}.wrap{width:min(100% - 48px,var(--wrap));margin-inline:auto}.section{padding-block:clamp(78px,10vw,130px);position:relative;scroll-margin-top:90px}.section--home{padding-top:clamp(104px,13vw,150px);padding-bottom:clamp(64px,9vw,110px);min-height:100svh;display:flex;flex-direction:column;justify-content:center}.seam{width:min(100% - 48px,var(--wrap));margin:0 auto;height:1px;background-image:linear-gradient(90deg,var(--ember) 0 8px,transparent 8px 16px);background-size:16px 1px;position:relative}.seam:before,.seam:after{content:"";position:absolute;top:-3px;width:7px;height:7px;border:1px solid var(--ember);transform:rotate(45deg);background:var(--wine)}.seam:before{left:0}.seam:after{right:0}.marker{display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--clay);margin-bottom:26px}.marker span:first-child{color:var(--cream)}.marker__line{flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--clay) 0 5px,transparent 5px 10px);opacity:.5}.section-head{margin-bottom:clamp(44px,7vw,80px)}.section-head h2{font-family:var(--font-display);font-weight:300;font-size:clamp(2.6rem,8vw,5rem);line-height:1;letter-spacing:-.02em}.section-head__note{margin-top:18px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--clay)}.hero-name{font-family:var(--font-display);font-weight:300;font-size:clamp(2.8rem,9.5vw,6.5rem);line-height:.94;letter-spacing:-.035em}.hero-name span{display:block}.hero-name span:last-child{font-style:italic;color:var(--clay);padding-left:.08em}.hero-tagline{margin-top:22px;font-family:var(--font-mono);font-size:clamp(.78rem,2vw,.95rem);letter-spacing:.34em;text-transform:uppercase;color:var(--clay)}.hero-statement{margin-top:24px;max-width:54ch;font-size:clamp(1.02rem,2.4vw,1.28rem);line-height:1.6;color:var(--cream)}.hero-statement strong{color:var(--clay);font-weight:600;letter-spacing:.02em}.hero-cta{margin-top:36px;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.grain-line{display:inline-flex;align-items:center;gap:10px;color:var(--clay);opacity:.6}.grain-line em{font-family:var(--font-mono);font-style:normal;font-size:10px;letter-spacing:.2em;text-transform:uppercase}.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:16px 30px;font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream);background:var(--ember);border:1px solid var(--ember);border-radius:3px;cursor:pointer;overflow:hidden;transition:transform .25s var(--ease),background .3s,box-shadow .3s;will-change:transform}.btn:hover{background:var(--ember-soft);box-shadow:0 0 26px -4px #ede9d04d}.btn__arrow{transition:transform .3s var(--ease)}.btn:hover .btn__arrow{transform:translateY(3px)}.btn__shimmer{position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(115deg,transparent,rgba(237,233,208,.55),transparent);transform:translate(-160%) skew(-18deg);transition:transform .8s var(--ease);pointer-events:none}.btn:hover .btn__shimmer,.contact-email:hover .btn__shimmer{transform:translate(320%) skew(-18deg)}.work-list{display:flex;flex-direction:column;gap:clamp(28px,5vw,56px)}.work-card{position:relative;padding:clamp(24px,4vw,44px);background:linear-gradient(160deg,#4a06268c,#1b0710a6);border:1px solid var(--ember);border-radius:5px;overflow:hidden;transform:perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transform-style:preserve-3d;transition:transform .4s var(--ease),border-color .3s}.work-card:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px dashed rgba(196,138,116,.3);border-radius:3px;pointer-events:none}.work-card:hover{border-color:var(--clay)}.work-card:after{content:"";position:absolute;top:18px;right:18px;width:14px;height:14px;border-top:1px solid var(--clay);border-right:1px solid var(--clay);opacity:.45;pointer-events:none}.work-card__shine{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(400px circle at var(--shine-x, 50%) var(--shine-y, 50%),rgba(237,233,208,.16),transparent 45%)}.work-card:hover .work-card__shine{opacity:1}.work-card__top{display:flex;align-items:center;gap:16px;margin-bottom:24px}.work-card__index{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;color:var(--clay)}.work-card__body{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,52px)}.work-card__lead h3{font-family:var(--font-display);font-weight:300;font-size:clamp(2rem,5vw,3.2rem);line-height:1;letter-spacing:-.02em}.work-card__cat{margin-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--clay)}.work-card__desc{margin-top:18px;max-width:42ch;color:var(--cream);opacity:.92}.work-card__case{display:flex;flex-direction:column;gap:18px;align-self:start;padding-left:clamp(20px,3vw,40px);border-left:1px dashed rgba(196,138,116,.32)}.work-card__case dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--clay);margin-bottom:4px}.work-card__case dd{font-size:.95rem;line-height:1.55;color:var(--cream);opacity:.88}.chip-row{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border:1px solid rgba(196,138,116,.45);border-radius:40px;color:var(--clay)}.tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;border-radius:3px}.tag--ember{background:var(--ember);color:var(--cream)}.tag--clay{background:transparent;color:var(--clay);border:1px solid var(--clay)}.about-lead{max-width:60ch;font-family:var(--font-display);font-weight:300;font-size:clamp(1.3rem,3.4vw,2rem);line-height:1.5;letter-spacing:-.01em}.about-lead strong{font-style:italic;color:var(--clay);font-weight:400}.process{margin-top:clamp(50px,8vw,88px)}.process__eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--clay);margin-bottom:26px}.process__steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.process__steps li{position:relative;padding:28px 22px;background:#1b071066;border:1px solid rgba(142,20,0,.5)}.process__steps li+li{border-left:1px dashed rgba(196,138,116,.35)}.process__num{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--ember);filter:brightness(1.7)}.process__steps h3{margin-top:12px;font-family:var(--font-display);font-weight:300;font-size:1.7rem;line-height:1.1}.process__steps h3 span{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);margin-top:6px}.process__steps p{margin-top:14px;font-size:.92rem;line-height:1.55;opacity:.85}.skills{margin-top:clamp(44px,7vw,72px);display:grid;grid-template-columns:repeat(2,1fr);gap:36px}.skills__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--clay);padding-bottom:12px;border-bottom:1px solid rgba(196,138,116,.3)}.skills .chip-row{margin-top:16px}.contact-statement{max-width:46ch;font-family:var(--font-display);font-weight:300;font-size:clamp(1.6rem,5vw,2.8rem);line-height:1.35;letter-spacing:-.02em}.contact-email{position:relative;display:inline-block;margin-top:40px;padding:4px 2px;font-family:var(--font-display);font-size:clamp(1.4rem,5vw,2.6rem);font-style:italic;color:var(--cream);text-decoration:none;overflow:hidden}.contact-email:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.contact-email:hover:after{transform:scaleX(1)}.socials{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:48px}.socials a{display:inline-block;padding:12px 22px;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);text-decoration:none;border:1px solid var(--ember);border-radius:3px;transition:transform .25s var(--ease),background .3s,color .3s;will-change:transform}.socials a:hover{background:var(--ember);color:var(--cream)}.footer{border-top:1px solid rgba(142,20,0,.6);padding-block:34px}.footer .wrap{display:flex;flex-wrap:wrap;gap:8px 28px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay)}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.is-in{opacity:1;transform:none}@media (max-width: 900px){.work-card__body{grid-template-columns:1fr}.work-card__case{border-left:none;padding-left:0;padding-top:20px;border-top:1px dashed rgba(196,138,116,.32)}.process__steps{grid-template-columns:1fr}.process__steps li+li{border-left:1px solid rgba(142,20,0,.5)}.skills{grid-template-columns:1fr}}@media (max-width: 720px){.swatch-nav{display:none}.nav-toggle{display:flex}.corner-photo{width:54px;height:54px;top:16px;left:16px}.hero-cta{gap:20px}.grain-line svg{display:none}}@media (max-width: 420px){.work-card__top{flex-wrap:wrap;gap:10px}.mobile-menu button{font-size:24px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}.intro-card{animation:none}.intro-shine{animation:none;opacity:.35;transform:none}.intro-patch{animation:none}.intro-patch:after{animation:none;opacity:.5}.intro-cta{animation:none;opacity:1}#intro.expanding .intro-patch{animation:none;transform:none}#intro.expanding .intro-dissolve{opacity:1}#intro.expanding{opacity:0;visibility:hidden;transition:opacity .4s ease!important;transition-duration:.4s!important}.corner-photo:after{display:none}.btn__shimmer,.swatch__chip:after{display:none}}
