@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700;1,900&family=Syne:wght@400;500;600;700;800&family=DM+Mono:wght@300;400;500&display=swap";:root{--paper: #f1ede4;--paper-2: #e8e2d5;--paper-3: #ded7c7;--card: #fbf9f4;--ink: #16140f;--ink-2: #3b372f;--ink-soft: rgba(22, 20, 15, .64);--ink-mute: rgba(22, 20, 15, .42);--line: rgba(22, 20, 15, .13);--line-soft: rgba(22, 20, 15, .07);--accent: #16140f;--accent-deep: #16140f;--accent-soft: rgba(22, 20, 15, .07);--font-display: "Syne", sans-serif;--font-serif: "Playfair Display", Georgia, serif;--font-ui: "Syne", sans-serif;--font-mono: "DM Mono", monospace;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.76, 0, .24, 1);--shadow-sm: 0 1px 2px rgba(22,20,15,.04), 0 4px 14px rgba(22,20,15,.06);--shadow-md: 0 6px 22px rgba(22,20,15,.08), 0 18px 50px rgba(22,20,15,.1);--shadow-lg: 0 14px 38px rgba(22,20,15,.12), 0 40px 90px rgba(22,20,15,.16);--maxw: 1280px;--gutter: clamp(20px, 5vw, 72px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-weight:400;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;cursor:none}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}button{border:none;background:none;cursor:none;font-family:inherit;color:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;display:block}ul{list-style:none}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--paper-3);border:3px solid var(--paper);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--ink-mute)}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.section{position:relative;padding:clamp(80px,12vh,160px) 0}.display{font-family:var(--font-display);font-weight:800;line-height:.92;letter-spacing:-.03em}.serif-it{font-family:var(--font-serif);font-style:italic;font-weight:500;letter-spacing:-.01em}.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.eyebrow:before{content:"";width:30px;height:2px;background:var(--accent);display:block}.eyebrow.center:after{content:"";width:30px;height:2px;background:var(--accent);display:block}.section-head{font-family:var(--font-display);font-weight:800;line-height:.9;letter-spacing:-.03em;font-size:clamp(2.6rem,7vw,6rem)}.line-mask{display:block;overflow:hidden}.marquee{display:flex;width:max-content;will-change:transform}.marquee-track{display:flex;gap:0;align-items:center}.grid-bg{position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(to right,var(--line-soft) 1px,transparent 1px),linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 100%)}.noise-overlay{pointer-events:none;position:fixed;inset:-150%;width:400%;height:400%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.035;mix-blend-mode:multiply;z-index:9000;animation:grain 8s steps(10) infinite}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-2%,-3%)}30%{transform:translate(1%,2%)}50%{transform:translate(-1%,1%)}70%{transform:translate(2%,-1%)}90%{transform:translate(-2%,2%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.chip{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;padding:7px 13px;border:1px solid var(--line);border-radius:100px;color:var(--ink-soft);background:var(--card);white-space:nowrap}.btn{position:relative;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;padding:16px 26px;border-radius:100px;overflow:hidden;isolation:isolate;transition:color .45s var(--ease-out-expo)}.btn-fill{background:var(--ink);color:var(--paper)}.btn-fill:after{content:"";position:absolute;inset:0;z-index:-1;background:var(--accent);transform:translateY(101%);transition:transform .5s var(--ease-out-expo)}.btn-fill:hover{color:#fff}.btn-fill:hover:after{transform:translateY(0)}.btn-ghost{border:1px solid var(--line);color:var(--ink)}.btn-ghost:after{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .5s var(--ease-out-expo)}.btn-ghost:hover{color:var(--paper);border-color:var(--ink)}.btn-ghost:hover:after{transform:translateY(0)}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm)}@media(max-width:768px){body{cursor:auto}.cursor-dot,.cursor-ring{display:none!important}}.on-dark{--accent: var(--paper);--accent-deep: var(--paper);--accent-soft: rgba(241,237,228,.12)}.hero-portrait img,#projects .feat img,#projects article img,#testimonials img{filter:grayscale(1) contrast(1.03);transition:filter .7s var(--ease-out-expo)}.hero-portrait:hover img,#projects .feat:hover img,#projects article:hover img,#testimonials img:hover{filter:grayscale(0) contrast(1)}
