.dt-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.dt-theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent-soft-border);background:var(--color-accent-soft)}.dt-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--color-bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color var(--dur-base) var(--ease-out)}.dt-header[data-scrolled=true]{border-bottom-color:var(--color-border)}.dt-header-inner{display:flex;align-items:center;gap:var(--space-6);min-height:4rem}.dt-wordmark{display:inline-flex;align-items:center;gap:var(--space-3);margin-right:auto;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--color-text);text-decoration:none}.dt-wordmark svg{color:var(--color-accent);transition:rotate var(--dur-slow) var(--ease-out)}.dt-wordmark:hover{color:var(--color-text)}.dt-wordmark:hover svg{rotate:90deg}.dt-nav{display:flex;gap:var(--space-6);font-size:var(--text-sm);font-weight:500}.dt-nav a{color:var(--color-text-muted);text-decoration:none;transition:color var(--dur-base) var(--ease-out)}.dt-nav a:hover{color:var(--color-accent)}@media(max-width:34rem){.dt-nav{display:none}}.dt-ripple-host{position:relative;isolation:isolate}.dt-ripple-layer{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.dt-ripple-still{position:absolute;left:50%;top:46%;translate:-50% -50%;display:grid;place-items:center}.dt-ripple-still span{grid-area:1 / 1;width:calc(var(--ring) * 19vmax);aspect-ratio:1;max-width:calc(var(--ring) * 15rem);border:1px solid rgb(var(--color-ripple) / calc(.22 - var(--ring) * .035));border-radius:50%;animation:dt-settle 1.4s var(--ease-out) backwards;animation-delay:calc(var(--ring) * .09s)}@keyframes dt-settle{0%{scale:.82;opacity:0}to{scale:1;opacity:1}}.dt-ripple-drop{position:absolute;display:grid;place-items:center;translate:-50% -50%}.dt-ripple-drop span{grid-area:1 / 1;width:1.5rem;aspect-ratio:1;border:1.5px solid rgb(var(--color-ripple) / var(--ripple-alpha));border-radius:50%;animation:dt-spread 1.5s var(--ease-out) forwards}@keyframes dt-spread{0%{scale:.4;opacity:var(--ripple-alpha)}60%{opacity:calc(var(--ripple-alpha) * .45)}to{scale:26;opacity:0}}@media(prefers-reduced-motion:reduce){.dt-ripple-still span{animation:none}}.dt-hero{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:min(88svh,54rem);padding-block:var(--space-24) var(--space-16)}.dt-hero-inner{display:flex;flex-direction:column;align-items:flex-start}.dt-hero-title{display:flex;flex-direction:column;font-family:var(--font-display);font-size:var(--text-hero);font-weight:800;line-height:.86;letter-spacing:var(--tracking-hero);font-variation-settings:"opsz" 96;text-wrap:balance}.dt-hero-title span:last-child{color:var(--color-accent);margin-left:.09em}.dt-hero-tagline{margin-top:var(--space-6);font-family:var(--font-display);font-size:clamp(1.25rem,3.2vw,var(--text-2xl));font-weight:500;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 28;color:var(--color-text)}.dt-hero-body{margin-top:var(--space-5);max-width:46ch;font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--color-text-muted);text-wrap:pretty}.dt-hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}.dt-hero-hint{position:absolute;left:50%;bottom:var(--space-8);translate:-50% 0;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-quiet);opacity:0;animation:dt-hint-in .9s var(--ease-out) 1.6s forwards}@keyframes dt-hint-in{to{opacity:1}}@media(max-width:48rem){.dt-hero{min-height:auto;padding-block:var(--space-16) var(--space-24)}}@media(prefers-reduced-motion:reduce){.dt-hero-hint{display:none}}.dt-work-title{margin-top:var(--space-5);max-width:20ch}.dt-cards{display:flex;flex-direction:column;gap:var(--space-5);margin-top:var(--space-12)}.dt-card{--project-accent: var(--color-accent);display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:var(--space-8);padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.dt-card[data-accent=clay]{--project-accent: var(--clay-600)}[data-theme=dark] .dt-card[data-accent=clay]{--project-accent: var(--clay-300)}.dt-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--project-accent) 40%,var(--color-border))}.dt-card-logo{display:block;width:10rem;height:10rem;place-self:center}.dt-card-logo img{width:100%;height:100%;object-fit:contain}.dt-card-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 32}.dt-card-tagline{margin-top:var(--space-2);font-size:var(--text-base);color:var(--color-text-muted)}.dt-card-body{display:flex;flex-direction:column;align-items:flex-start}.dt-card-desc{margin-top:var(--space-4);max-width:60ch;color:var(--color-text-muted);text-wrap:pretty}.dt-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5);padding:0;list-style:none}.dt-card-tags li{padding:.2rem var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-quiet);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-full)}.dt-card-link{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--project-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--dur-base) var(--ease-out)}.dt-card-link:hover{color:var(--project-accent);border-bottom-color:currentColor}.dt-card-link svg{transition:translate var(--dur-base) var(--ease-out)}.dt-card-link:hover svg{translate:2px -2px}.dt-visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:52rem){.dt-card{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6)}.dt-card-logo{width:7rem;height:7rem;place-self:start}}.dt-contact{border-top:1px solid var(--color-border)}.dt-contact-title{margin-top:var(--space-5);max-width:22ch}.dt-contact-body{margin-top:var(--space-5);max-width:48ch;font-size:var(--text-lg);color:var(--color-text-muted);text-wrap:pretty}.dt-contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);margin-top:var(--space-10)}.dt-contact-email{font-family:var(--font-display);font-size:clamp(1.5rem,5.4vw,3rem);font-weight:600;letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 48;color:var(--color-accent);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;transition:background-size var(--dur-slow) var(--ease-out);word-break:break-word}.dt-contact-email:hover,.dt-contact-email:focus-visible{background-size:100% 2px}.dt-contact-copy{padding:var(--space-2) var(--space-4);min-height:2.25rem;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.dt-contact-copy:hover{color:var(--color-accent);border-color:var(--color-accent-soft-border);background:var(--color-accent-soft)}.dt-contact-copy[data-copied=true]{color:var(--color-positive);border-color:color-mix(in srgb,var(--color-positive) 40%,transparent);background:var(--color-positive-soft)}.dt-contact-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dt-footer{border-top:1px solid var(--color-border);padding-block:var(--space-8)}.dt-footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-quiet)}.dt-footer-mark{display:inline-flex;align-items:center;gap:var(--space-2)}.dt-footer-mark svg{color:var(--color-border-strong)}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/bricolage-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sand-25: #fdfaf6;--sand-50: #f9f3eb;--sand-100: #f2e9dc;--sand-200: #e7d9c6;--sand-300: #d6c2a8;--sand-400: #bca486;--sand-500: #9c8468;--sand-600: #7a654d;--sand-700: #5b4a38;--sand-800: #3d3227;--sand-900: #262019;--sand-950: #171310;--teal-50: #e9f4f3;--teal-100: #cbe6e4;--teal-200: #9ccfcc;--teal-300: #6bb5b1;--teal-400: #3f9995;--teal-500: #1f7d79;--teal-600: #146562;--teal-700: #0f504e;--teal-800: #0b3b39;--teal-900: #072826;--clay-100: #f8e3dc;--clay-300: #e8ae99;--clay-500: #c9603f;--clay-600: #a94b2d;--clay-700: #85391f;--moss-100: #ddeee1;--moss-300: #8fc7a2;--moss-500: #3e8c5e;--moss-600: #2f7049;--moss-700: #235736;--amber-100: #fbebcf;--amber-400: #e0a94a;--amber-600: #a9761e;--ink-950: #15120f;--ink-900: #1f1b17;--ink-800: #2a241e;--ink-700: #362e26;--ink-600: #4a4036;--font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-hero: clamp(3.25rem, 13vw, 9.5rem);--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.55;--tracking-tight: -.015em;--tracking-hero: -.045em;--tracking-wide: .04em;--tracking-eyebrow: .18em;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-sm: 8px;--radius-xl: 24px;--radius-full: 999px;--page-max: 68rem;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-out: cubic-bezier(.2, .8, .3, 1)}[data-theme=light]{color-scheme:light;--color-bg: var(--sand-50);--color-bg-wash: linear-gradient( 170deg, var(--sand-100) 0%, var(--sand-50) 45%, var(--sand-25) 100% );--color-surface: #ffffff;--color-surface-sunken: var(--sand-100);--color-border: var(--sand-200);--color-border-strong: var(--sand-300);--color-text: var(--sand-900);--color-text-muted: var(--sand-600);--color-text-quiet: var(--sand-600);--color-accent: var(--teal-600);--color-accent-hover: var(--teal-700);--color-accent-soft: var(--teal-50);--color-accent-soft-border: var(--teal-100);--color-accent-contrast: #ffffff;--color-positive: var(--moss-600);--color-positive-soft: var(--moss-100);--color-focus-ring: var(--teal-500);--color-ripple: 31 125 121;--ripple-alpha: .38;--grain-alpha: .055;--shadow-xs: 0 1px 2px rgb(60 45 32 / .06);--shadow-sm: 0 2px 8px rgb(60 45 32 / .08);--shadow-md: 0 8px 24px -8px rgb(60 45 32 / .14);--shadow-lg: 0 20px 40px -16px rgb(60 45 32 / .22)}[data-theme=dark]{color-scheme:dark;--color-bg: var(--ink-950);--color-bg-wash: linear-gradient( 170deg, var(--ink-900) 0%, var(--ink-950) 55%, #100e0c 100% );--color-surface: var(--ink-900);--color-surface-sunken: #100e0c;--color-border: var(--ink-700);--color-border-strong: var(--ink-600);--color-text: #f3ece3;--color-text-muted: #bdb0a2;--color-text-quiet: #8c8175;--color-accent: var(--teal-300);--color-accent-hover: var(--teal-200);--color-accent-soft: rgb(107 181 177 / .16);--color-accent-soft-border: rgb(107 181 177 / .3);--color-accent-contrast: var(--teal-900);--color-positive: #7cd3a0;--color-positive-soft: rgb(124 211 160 / .14);--color-focus-ring: var(--teal-200);--color-ripple: 107 181 177;--ripple-alpha: .34;--grain-alpha: .07;--shadow-xs: 0 1px 2px rgb(0 0 0 / .4);--shadow-sm: 0 2px 8px rgb(0 0 0 / .45);--shadow-md: 0 8px 24px -8px rgb(0 0 0 / .55);--shadow-lg: 0 20px 40px -16px rgb(0 0 0 / .65)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}body{min-height:100svh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);background-image:var(--color-bg-wash);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:var(--grain-alpha);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}#root{position:relative;z-index:1}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}a{color:var(--color-accent);text-decoration-color:var(--color-accent-soft-border);text-underline-offset:.2em}a:hover{color:var(--color-accent-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--color-accent-soft);color:var(--color-text)}.dt-shell{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--space-6)}@media(max-width:34rem){.dt-shell{padding-inline:var(--space-5)}}.dt-eyebrow{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-text-quiet)}.dt-eyebrow:after{content:"";flex:1;height:1px;background:var(--color-border)}.dt-section{padding-block:var(--space-24)}@media(max-width:48rem){.dt-section{padding-block:var(--space-16)}}.dt-section-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 40}.dt-skip-link{position:absolute;left:var(--space-4);top:var(--space-4);z-index:100;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--color-accent-contrast);background:var(--color-accent);border-radius:var(--radius-sm);text-decoration:none;transform:translateY(-150%);transition:transform var(--dur-base) var(--ease-out)}.dt-skip-link:focus-visible{transform:translateY(0);color:var(--color-accent-contrast)}.dt-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);min-height:2.75rem;font-size:var(--text-base);font-weight:600;text-decoration:none;border-radius:var(--radius-full);border:1px solid transparent;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.dt-btn:active{transform:translateY(1px)}.dt-btn--primary{background:var(--color-accent);color:var(--color-accent-contrast)}.dt-btn--primary:hover{background:var(--color-accent-hover);color:var(--color-accent-contrast)}.dt-btn--ghost{border-color:var(--color-border-strong);color:var(--color-text)}.dt-btn--ghost:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
