:root{--color-paper: #fbf9f4;--color-bone: #f2eee6;--color-bone-deep: #e7e0d3;--color-ink: #131214;--color-ink-soft: #2c2a27;--color-muted: #6e675c;--color-line: rgba(19, 18, 20, .12);--color-line-soft: rgba(19, 18, 20, .07);--color-platinum: #9a9488;--color-platinum-bright: #c5bfb2;--color-platinum-deep: #807a6f;--font-display: "Fraunces", Georgia, serif;--font-body: "Hanken Grotesk", system-ui, sans-serif;--ease-lux: cubic-bezier(.16, 1, .3, 1);--dur: .7s;--dur-fast: .4s;--dur-slow: 1.1s;--gutter: clamp(20px, 5vw, 64px);--maxw: 1280px;--platinum-sheen: linear-gradient(100deg, #807a6f 0%, #9a9488 28%, #c5bfb2 50%, #ede8de 58%, #c5bfb2 66%, #9a9488 82%, #807a6f 100%);--platinum-sheen-soft: linear-gradient(100deg, #9a9488 0%, #c5bfb2 50%, #9a9488 100%)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-weight:380;line-height:1.6;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--color-ink);color:var(--color-paper)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}:focus-visible{outline:2px solid var(--color-platinum);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:-999px;top:0;z-index:10000;background:var(--color-ink);color:var(--color-paper);padding:12px 18px;border-radius:0 0 8px;font-size:.85rem}.skip:focus{left:0}.eyebrow{display:inline-flex;align-items:center;gap:.85rem;font-family:var(--font-body);font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--color-muted)}.eyebrow:before{content:"";display:block;width:28px;height:1px;background:var(--platinum-sheen-soft);flex-shrink:0}.sheen{background:linear-gradient(105deg,#564f45,#8a8276 30%,#aaa294,#8a8276 66%,#564f45);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;line-height:1.12;padding-bottom:.04em}.italic-emp{font-style:italic}.display-xl{font-family:var(--font-display);font-weight:360;font-optical-sizing:auto;font-size:clamp(2.7rem,7.4vw,6rem);line-height:1.07;letter-spacing:-.025em;padding-bottom:.04em}.display-lg{font-family:var(--font-display);font-weight:360;font-optical-sizing:auto;font-size:clamp(2.3rem,5.4vw,4.25rem);line-height:1.05;letter-spacing:-.02em}.display-md{font-family:var(--font-display);font-weight:380;font-optical-sizing:auto;font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.1;letter-spacing:-.015em}.display-sm{font-family:var(--font-display);font-weight:400;font-optical-sizing:auto;font-size:clamp(1.4rem,2.4vw,1.85rem);line-height:1.18;letter-spacing:-.01em}.lede{font-size:clamp(1.0625rem,1.5vw,1.25rem);font-weight:380;line-height:1.55;color:var(--color-ink-soft);max-width:42ch}.idx{font-family:var(--font-display);font-optical-sizing:auto;font-size:.95rem;font-style:italic;color:var(--color-platinum-deep);letter-spacing:.02em}.hairline{height:1px;width:100%;background:var(--color-line);border:0}.mp-mark{font-family:var(--font-display);font-optical-sizing:auto;font-weight:440;letter-spacing:-.005em;line-height:1.1;background:linear-gradient(120deg,#464138,#857f73 44%,#a9a294 60%,#464138);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;user-select:none;padding:0 .04em .04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-family:var(--font-body);font-size:.95rem;font-weight:500;line-height:1;padding:.95rem 1.7rem;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform var(--dur-fast) var(--ease-lux),background-color var(--dur-fast) var(--ease-lux),color var(--dur-fast) var(--ease-lux),border-color var(--dur-fast) var(--ease-lux),box-shadow var(--dur-fast) var(--ease-lux)}.btn--primary{background:var(--color-ink);color:var(--color-paper)}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px -10px #13121473}.btn--ghost{background:transparent;color:var(--color-ink);border-color:var(--color-line)}.btn--ghost:hover{transform:translateY(-2px);background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.btn .arrow{transition:transform var(--dur-fast) var(--ease-lux)}.btn:hover .arrow{transform:translate(3px)}.arr{display:inline-block;transition:transform .5s var(--ease-lux)}.visit-link:hover .arr{transform:translate(5px)}.ulink,.ul-link{position:relative;display:inline-block;padding-bottom:2px}.ulink:after,.ul-link:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width var(--dur) var(--ease-lux)}.ulink:hover:after,.ulink:focus-visible:after,.ul-link:hover:after,.ul-link:focus-visible:after{width:100%}.ul-link[aria-current=page]:after{width:100%;background:var(--color-platinum)}.navlink{position:relative;font-size:.95rem;color:var(--color-ink-soft);padding:.25rem 0;transition:color var(--dur-fast) var(--ease-lux)}.navlink:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--color-ink);transition:width var(--dur) var(--ease-lux)}.navlink:hover,.navlink:focus-visible,.navlink[aria-current=page]{color:var(--color-ink)}.navlink:hover:after,.navlink:focus-visible:after,.navlink[aria-current=page]:after{width:100%}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease-lux),transform var(--dur-slow) var(--ease-lux);transition-delay:var(--reveal-delay, 0s);will-change:opacity,transform}.js .reveal.is-in{opacity:1;transform:translateY(0)}.cascade>*{opacity:1;transform:none}.js .cascade>*{opacity:0;transform:translateY(18px)}.js .cascade.is-in>*{animation:cascade-in .9s var(--ease-lux) forwards}.js .cascade.is-in>*:nth-child(1){animation-delay:.05s}.js .cascade.is-in>*:nth-child(2){animation-delay:.15s}.js .cascade.is-in>*:nth-child(3){animation-delay:.27s}.js .cascade.is-in>*:nth-child(4){animation-delay:.39s}.js .cascade.is-in>*:nth-child(5){animation-delay:.51s}@keyframes cascade-in{to{opacity:1;transform:translateY(0)}}[data-reveal]{transition:opacity 1s var(--ease-lux),transform 1s var(--ease-lux)}.js [data-reveal]{opacity:0;transform:translateY(26px)}.js [data-reveal].in{opacity:1;transform:none}.light-graze{position:relative}.light-graze:before{content:"";position:absolute;inset:-20%;z-index:1;pointer-events:none;opacity:0;transition:opacity .6s var(--ease-lux);background:radial-gradient(280px 280px at var(--lx, 50%) var(--ly, 40%),rgba(237,232,222,.55) 0%,rgba(197,191,178,.18) 35%,rgba(197,191,178,0) 70%);mix-blend-mode:screen}.light-graze.is-lit:before{opacity:1}@media(pointer:coarse){.light-graze:before{opacity:.45;background:radial-gradient(360px 360px at 50% 38%,#ede8de80,#c5bfb229 40%,#c5bfb200 72%)}}.site-head{transition:padding .6s var(--ease-lux),background .6s var(--ease-lux),border-color .6s var(--ease-lux)}.site-head.scrolled{padding-top:14px;padding-bottom:14px;background:#fbf9f4d1;border-color:var(--color-line)}.platinum-dust{position:absolute;inset:0;z-index:1;pointer-events:none}.work-card .shot{transition:transform 1.1s var(--ease-lux)}.work-card:hover .shot{transform:scale(1.04)}.work-card .cs-chip{opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease-lux),transform .6s var(--ease-lux)}.work-card:hover .cs-chip{opacity:1;transform:none}.field{position:relative;border-bottom:1px solid var(--color-line);padding-top:30px}.field label{position:absolute;left:0;top:28px;color:var(--color-muted);font-size:1.05rem;pointer-events:none;transition:transform .45s var(--ease-lux),color .45s var(--ease-lux),font-size .45s var(--ease-lux);transform-origin:left}.field input,.field textarea{width:100%;border:0;background:transparent;font-family:var(--font-body);font-size:1.1rem;color:var(--color-ink);padding:6px 0 14px;outline:none;resize:none;line-height:1.5}.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-30px) scale(.72);color:var(--color-platinum)}.field:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--color-ink);transition:width .5s var(--ease-lux)}.field:focus-within:after{width:100%}.badge3d{position:relative;display:grid;place-items:center;flex-shrink:0;perspective:1200px;perspective-origin:50% 40%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.badge3d__rotor{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:badge3d-spin 28s linear infinite;transform:rotateX(8deg) rotateY(0)}@keyframes badge3d-spin{0%{transform:rotateX(8deg) rotateY(0)}to{transform:rotateX(8deg) rotateY(360deg)}}.badge3d__face{position:absolute;inset:0;border-radius:50%;clip-path:circle(50%);display:grid;place-items:center;backface-visibility:visible;background:radial-gradient(circle closest-side at 50% 50%,transparent 0 55%,rgba(45,41,33,.15) 56.5%,transparent 58%),radial-gradient(circle closest-side at 50% 50%,transparent 0 86%,rgba(45,41,33,.42) 89%,rgba(248,243,233,.7) 93%,rgba(45,41,33,.34) 96.5%,rgba(62,56,46,.55) 100%),radial-gradient(125% 105% at 34% 22%,#f2ede3,#ddd6c8 16%,#c5bfb2 36%,#9a9488 62%,#807a6f 86%,#6e675c);box-shadow:inset 0 2px 3px #ffffffbf,inset 0 4px 8px #ffffff59,inset 0 -18px 36px #2d292199,inset 0 -8px 18px #2d292166,inset 4px 0 8px #2d292126,inset -4px 0 8px #2d292126}.badge3d__bezel,.badge3d__inner-ring{display:none}.badge3d__ticks{position:absolute;inset:8%;border-radius:50%;pointer-events:none}.badge3d__engraving{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.15em}.badge3d__mark{font-family:var(--font-display);font-optical-sizing:auto;font-weight:460;letter-spacing:-.02em;line-height:1;color:#2c2a27;text-shadow:0 1px 0 rgba(255,255,255,.55),0 -1px 1px rgba(0,0,0,.25)}.badge3d__amp{font-style:italic}.badge3d__caption{font-family:var(--font-body);font-weight:600;letter-spacing:.3em;color:#2d292180;text-shadow:0 1px 0 rgba(255,255,255,.35);margin-top:.2em;text-transform:uppercase}.badge3d__back{position:absolute;inset:0;border-radius:50%;clip-path:circle(50%);backface-visibility:hidden;background:radial-gradient(circle closest-side at 50% 50%,transparent 0 87%,rgba(0,0,0,.4) 92%,rgba(0,0,0,.55) 100%),radial-gradient(120% 120% at 40% 30%,#807a6f,#6e675c 45%,#5c574e 80%,#4a463e);box-shadow:inset 0 2px 4px #fff3,inset 0 -10px 22px #0006}.badge3d__sheen{position:absolute;inset:0;border-radius:50%;clip-path:circle(50%);pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.55) 47%,rgba(255,255,255,.12) 52%,transparent 58%);mix-blend-mode:screen;opacity:.65}.badge3d__shadow{position:absolute;left:50%;bottom:-12%;width:92%;height:18%;transform:translate(-50%);background:radial-gradient(50% 50% at 50% 50%,rgba(19,18,20,.42) 0%,rgba(19,18,20,.18) 45%,transparent 75%);filter:blur(7px);z-index:-1;pointer-events:none}@media(prefers-reduced-motion:reduce){.badge3d__rotor{animation:none;transform:rotateX(8deg) rotateY(28deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .reveal,.js [data-reveal]{opacity:1!important;transform:none!important}.js .cascade>*{opacity:1!important;transform:none!important}.light-graze:before{opacity:.5!important}}@media(max-width:980px){.hero-grid{grid-template-columns:1fr!important}.hero-badge-wrap{justify-self:start!important}.badge-scale{transform:scale(.78);transform-origin:top left}}@media(max-width:860px){.caps-grid,.process-list,.principles-row,.contact-grid,.work-grid,.interlude-grid{grid-template-columns:1fr!important}}@media(max-width:820px){.about-grid,.lists-grid,.cs-grid,.cs-notes{grid-template-columns:1fr!important}}@media(max-width:760px){.two-up{grid-template-columns:1fr!important}}@media(max-width:540px){.badge-scale{transform:scale(.62)}}
