/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-bold:700;--leading-relaxed:1.625;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--terminal-surface:var(--color-surface);--terminal-surface-raised:var(--color-surface-alt);--terminal-ink:var(--color-text);--terminal-ink-muted:var(--color-text-secondary);--terminal-accent:var(--color-accent);--terminal-accent-hover:var(--color-accent-hover);--terminal-accent-active:var(--color-accent-active);--terminal-on-accent:var(--color-on-accent);--terminal-border:var(--color-border-strong);--terminal-focus:var(--color-focus);--terminal-scanline:var(--color-text);--color-surface:#000;--color-surface-alt:#0d0d10;--color-surface-elevated:#17171c;--color-surface-hover:#1e1e24;--color-surface-active:#26262e;--color-text:#ededeb;--color-text-secondary:#b7b8b3;--color-text-tertiary:#7f7f7a;--color-accent:#ff7a18;--color-accent-muted:#ff7a1814;--color-accent-hover:#ff8f42;--color-accent-active:#ffa25e;--color-on-accent:#0a0a0a;--color-border:#ffffff29;--color-border-strong:#ffffff47;--color-border-interactive:#fff6;--color-border-interactive-hover:#ffffff8f;--color-focus:#ff7a18;--color-on-focus:#0a0a0a;--color-danger:#ff6b6b;--color-on-danger:#0a0a0a;--space-section:clamp(4rem, 10vw, 8rem);--space-container:clamp(1.25rem, 4vw, 2.5rem);--text-h1:clamp(2.4rem, 6vw, 5rem);--text-h2:clamp(1.8rem, 3.5vw, 3rem);--text-h3:clamp(1.25rem, 2vw, 1.75rem);--radius-sharp:2px;--radius-thumb:3px;--radius-control:.5rem;--radius-panel:1rem;--radius-pill:999px;--radius-circle:50%;--radius-arch:48% 48% 8px 8px;--motion-none:0s;--motion-fast:.18s;--motion-image:.35s;--motion-reveal:.64s;--motion-ease:cubic-bezier(.16, 1, .3, 1);--motion-stagger:80ms;--motion-hero-step:90ms;--motion-transition:.44s;--shadow-edge:inset 0 1px 0 #ffffff0a;--shadow-profile:0 34px 80px #0003;--shadow-profile-dark:0 34px 80px #000000bf, inset 0 1px 0 #ffffff0d;--shadow-image:0 24px 48px #0006;--shadow-inset-ring:inset 0 0 0 1px #fff2}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{border-color:var(--color-border)}html{background-color:var(--color-surface);scroll-behavior:smooth}body{background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}::selection{background:#ff7a1852}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in srgb, var(--color-accent) 32%, transparent)}}::selection{color:var(--color-text)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:var(--radius-thumb)}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}h1{font-size:var(--text-h1);letter-spacing:-.03em;font-weight:700;line-height:1.1}h2{font-size:var(--text-h2);letter-spacing:-.02em;font-weight:700;line-height:1.15}h3{font-size:var(--text-h3);font-weight:600;line-height:1.2}h4{font-size:1.125rem;font-weight:600;line-height:1.3}p{line-height:1.8}code{font-family:var(--font-mono);font-size:.9em}strong{font-weight:600}a{color:var(--color-accent);transition:opacity var(--motion-fast) ease;text-decoration:none}a:hover{opacity:.8}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.row-3{grid-row:3}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-1{margin-top:var(--spacing)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-circle{border-radius:var(--radius-circle)}.rounded-panel{border-radius:var(--radius-panel)}.rounded-pill{border-radius:var(--radius-pill)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--color-border\)\],.border-border{border-color:var(--color-border)}.bg-\[var\(--color-surface-elevated\)\],.bg-surface-elevated{background-color:var(--color-surface-elevated)}.object-cover{object-fit:cover}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-\[var\(--color-accent\)\]{color:var(--color-accent)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-accent{color:var(--color-accent)}.text-text-secondary{color:var(--color-text-secondary)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-on-accent{accent-color:var(--color-on-accent)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_10px_\#fbb974\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#fbb974);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-edge{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff0a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:bg-\[\#a5bdd6\]:hover{background-color:#a5bdd6}.hover\:text-\[var\(--color-accent\)\]:hover{color:var(--color-accent)}.hover\:underline:hover{text-decoration-line:underline}}@media (width>=48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}.container-wide{width:100%;max-width:1200px;padding:0 var(--space-container);margin:0 auto}.section-padding{padding:var(--space-section) 0}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1.5rem;display:grid}.card{border-radius:var(--radius-panel);background:var(--color-surface-alt);border:1px solid var(--color-border);transition:border-color var(--motion-fast) ease, transform var(--motion-fast) ease;padding:clamp(1.25rem,3vw,2rem)}.card:hover{border-color:var(--color-border-strong)}.tag{font-size:.75rem;font-family:var(--font-mono);background:var(--color-accent-muted);color:var(--color-accent);border-radius:var(--radius-pill);padding:.25rem .75rem;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-control);transition:background-color var(--motion-fast);align-items:center;gap:.5rem;min-width:44px;min-height:44px;padding:.75rem 1.5rem;font-weight:600;display:inline-flex}.btn-primary:hover{background:var(--color-accent-hover)}.btn-primary:active{background:var(--color-accent-active)}.section-label{font-family:var(--font-mono);color:var(--color-accent);text-transform:uppercase;letter-spacing:.3em;margin-bottom:1rem;font-size:.75rem}.stat-number{color:var(--color-accent);font-size:clamp(1.8rem,4vw,3rem);font-weight:700;line-height:1}.stat-label{color:var(--color-text-secondary);margin-top:.25rem;font-size:.875rem}}[data-theme=light]{--terminal-surface:var(--color-surface-elevated);--color-surface:#f3eadc;--color-surface-alt:#fff7ea;--color-surface-elevated:#fffdf6;--color-surface-hover:#fbf6ec;--color-surface-active:#fffdf8;--color-text:#17120d;--color-text-secondary:#6b5947;--color-text-tertiary:#746555;--color-accent:#8a4e26;--color-accent-muted:#8a4e261a;--color-accent-hover:#7a4522;--color-accent-active:#6b3c1c;--color-on-accent:#fff7ea;--color-border:#0000001a;--color-border-strong:#00000038;--color-border-interactive:#0000002e;--color-border-interactive-hover:#0000004d;--color-focus:#8a4e26;--color-on-focus:#fff7ea;--color-danger:#b3261e;--color-on-danger:#fff7ea}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}@media (prefers-contrast:more){[data-theme=dark]{--color-text-secondary:#e2e2df;--color-border:#ffffff6b;--color-border-strong:#fff9}[data-theme=light]{--color-text-secondary:#4a3d30;--color-text-tertiary:#5c4a39;--color-border:#00000052;--color-border-strong:#0000006b;--color-border-interactive:#00000057;--color-border-interactive-hover:#00000080}[data-theme=light] .project-card--civic .project-number,[data-theme=light] .project-card--civic>p{color:var(--color-text-tertiary);opacity:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}[data-theme=dark] .project-card,[data-theme=dark] .compact-image,[data-theme=dark] .tags span{border-color:var(--color-border-strong)}[data-theme=dark] .project-card,[data-theme=dark] .compact-image{box-shadow:var(--shadow-edge)}[data-theme=dark] .profile-card{box-shadow:var(--shadow-profile-dark)}@media (prefers-contrast:more){[data-theme=dark] .tags span,[data-theme=dark] .module-row,[data-theme=dark] .principles article,[data-theme=dark] .compact-image{border-color:var(--color-border-strong)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.console-trigger{min-width:44px;min-height:44px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:0 0;align-items:center;gap:7px;padding-inline:12px;display:inline-flex}.console-trigger:hover{color:var(--color-text);border-color:var(--portfolio-yellow)}.console-trigger[hidden]{display:none}.console-trigger-hint{font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-thumb);color:var(--color-text-tertiary);padding:2px 6px;font-size:.68rem}@media (width<=900px){.console-trigger-hint{display:none}}.ship-console{border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);background:var(--color-surface-elevated);color:var(--color-text);width:min(560px,100vw - 32px);max-height:min(70vh,560px);box-shadow:var(--shadow-image), 0 0 0 1px color-mix(in srgb, var(--color-accent) 20%, transparent);margin:0 auto;padding:0;position:fixed;top:12vh}.ship-console::backdrop{background:color-mix(in srgb, var(--color-surface) 72%, transparent)}.ship-console-panel{flex-direction:column;max-height:min(70vh,560px);display:flex}.ship-console-field{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:16px 18px;display:flex}.ship-console-field-icon{color:var(--color-accent);flex:none}.ship-console-input{min-width:0;min-height:24px;color:var(--color-text);font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:auto;font-size:.95rem}.ship-console-input::placeholder{color:var(--color-text-tertiary)}.ship-console-esc{font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:var(--radius-thumb);color:var(--color-text-tertiary);flex:none;padding:2px 6px;font-size:.68rem}.ship-console-list{margin:0;padding:8px;list-style:none;overflow-y:auto}.ship-console-group{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);padding:10px 10px 4px;font-size:.68rem}.ship-console-option{border-radius:var(--radius-control);min-height:44px;color:var(--color-text-secondary);cursor:pointer;align-items:center;padding:0 12px;font-size:.9rem;display:flex}.ship-console-option mark{color:var(--color-accent);background:0 0;font-weight:700}.ship-console-option[aria-selected=true]{color:var(--color-text);background:var(--color-accent-muted);outline:1px solid var(--color-border-interactive);outline-offset:-1px}.ship-console-empty{color:var(--color-text-secondary);padding:20px 18px 26px;font-size:.88rem}.ship-console-copy-fallback{border-top:1px solid var(--color-border);padding:12px 18px 18px}.ship-console-copy-fallback label{font-family:var(--font-mono);color:var(--color-text-tertiary);margin-bottom:6px;font-size:.68rem;display:block}.ship-console-copy-fallback input{background:var(--color-surface);border:1px solid var(--color-border-interactive);border-radius:var(--radius-control);width:100%;min-height:40px;color:var(--color-text);font-family:var(--font-mono);padding:0 10px;font-size:.85rem}#console-load-status{z-index:60;border-radius:var(--radius-control);background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);max-width:360px;color:var(--color-text);font-family:var(--font-mono);text-align:center;margin:0 auto;padding:10px 14px;font-size:.8rem;position:fixed;inset-block-end:16px;inset-inline:16px}#console-load-status:empty{display:none}@media (prefers-reduced-motion:no-preference){.ship-console[open]{animation:ship-console-in var(--motion-fast) var(--motion-ease)}@keyframes ship-console-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}}@property --scroll-progress{syntax:"<integer>";inherits:true;initial-value:0}@counter-style scroll-progress-padded{system:numeric;symbols:"0" "1" "2" "3" "4" "5" "6" "7" "8" "9";pad:3 "0"}:root{--portfolio-yellow:var(--color-accent);--portfolio-yellow-ink:var(--color-on-accent);--portfolio-cream:var(--color-surface-alt)}html{scroll-padding-top:100px}body{background:var(--color-surface);overflow-x:clip}a{transition:color var(--motion-fast), background-color var(--motion-fast), border-color var(--motion-fast), opacity var(--motion-fast)}a:hover{opacity:1}.about-section a:focus-visible,.contact-section a:focus-visible{outline-color:var(--color-on-focus)}.wrap{width:min(1320px,100% - 96px);margin-inline:auto}.mono,.eyebrow{font-family:var(--font-mono);letter-spacing:.105em;font-size:.72rem}.eyebrow{color:var(--portfolio-yellow);margin-bottom:18px}.portfolio p{line-height:1.7}.icon{vertical-align:middle;flex:none;display:inline-block}.site-header{z-index:50;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 89%, transparent);backdrop-filter:blur(18px);position:fixed;inset:0 0 auto}.nav-wrap{justify-content:space-between;align-items:center;gap:20px;width:min(1320px,100% - 96px);height:82px;margin-inline:auto;display:flex}.wordmark{min-height:44px;color:var(--color-text);letter-spacing:-.045em;align-items:center;gap:11px;margin:-8px -10px;padding:8px 10px;font-size:1.12rem;font-weight:650;display:flex}.brand-seal{color:var(--portfolio-yellow);display:inline-flex}.wordmark .wordmark-dot{color:var(--portfolio-yellow);margin-left:-8px;font-size:1rem}.desktop-nav{align-items:center;gap:29px;display:flex}.desktop-nav a{min-height:44px;color:var(--color-text-secondary);align-items:center;font-size:.82rem;display:inline-flex}.desktop-nav .nav-contact{color:var(--color-text);border:1px solid var(--color-border-interactive);border-radius:var(--radius-pill);gap:10px;margin-left:6px;padding-inline:18px}.desktop-nav .nav-contact:hover{color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);border-color:var(--portfolio-yellow)}.nav-controls{align-items:center;gap:9px;display:flex}.theme-toggle,.menu-toggle{min-width:44px;min-height:44px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-circle);background:0 0;justify-content:center;align-items:center;padding:8px;display:inline-flex}.theme-toggle:hover,.menu-toggle:hover{color:var(--color-text);border-color:var(--portfolio-yellow)}.menu-toggle{display:none}.mobile-nav{background:var(--color-surface-alt);border-top:1px solid var(--color-border);padding:16px 24px 22px}.mobile-nav[hidden]{display:none}.mobile-nav a{min-height:48px;color:var(--color-text);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.solid-link{min-height:52px;color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);border:1px solid var(--portfolio-yellow);border-radius:var(--radius-sharp);justify-content:space-between;align-items:center;gap:14px;padding:12px 20px;font-size:.84rem;font-weight:700;display:inline-flex}.solid-link:hover{color:var(--color-text);background:0 0}.quiet-link{min-height:44px;color:var(--color-text);align-items:center;gap:9px;font-size:.84rem;font-weight:550;display:inline-flex}.quiet-link:hover,.project-links a:hover{color:var(--portfolio-yellow)}.solid-link .icon,.quiet-link .icon,.circle-link .icon,.project-links .icon,.module-row>.icon{transition:transform var(--motion-fast) var(--motion-ease)}.solid-link:hover>.icon:last-child,.quiet-link:hover>.icon:last-child,.circle-link:hover .icon,.project-links a:hover>.icon:last-child,.module-row:hover>.icon:last-child{transform:translate(3px,-3px)}.actions .solid-link:hover>.icon:last-child{transform:translateY(3px)}.hero{isolation:isolate;flex-direction:column;min-height:min(980px,100svh);padding-top:118px;display:flex;position:relative}.hero-content{z-index:1;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.hero-kicker{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-block:17px;display:flex}.location{align-items:center;gap:7px;font-size:.8rem;display:inline-flex}.location .icon{color:var(--portfolio-yellow)}.hero-stage{flex:1;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);align-items:center;gap:clamp(35px,6vw,100px);min-height:650px;padding-block:38px;display:grid;overflow-x:clip}.hero-copy{z-index:1;position:relative}.hero-intro{color:var(--color-text-secondary);margin-bottom:12px;font-size:.82rem}.hero h1{color:var(--color-text);letter-spacing:-.09em;margin-left:-.075em;font-size:clamp(5.4rem,10.7vw,10.4rem);font-weight:820;line-height:.77}.hero h1 span{z-index:0;color:var(--portfolio-yellow);letter-spacing:-.075em;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:400;position:relative}.hero h1 span:after{content:"";z-index:-1;opacity:.25;background:currentColor;height:.08em;position:absolute;bottom:.05em;left:.04em;right:-.02em;transform:rotate(-1deg)}.hero-brief{grid-template-columns:1fr auto;align-items:end;gap:32px;width:min(540px,78%);margin:36px 0 0 auto;display:grid}.hero-brief>p{color:var(--color-text-secondary);font-size:1rem}.actions{align-items:center;gap:22px;display:flex}.hero-brief .actions{grid-column:1/-1}.hero-portrait{align-self:stretch;align-items:center;display:flex;position:relative}.hero-portrait:before{content:"";background:var(--portfolio-yellow);border-radius:var(--radius-arch);position:absolute;inset:8% -22% 8% 16%;transform:rotate(4deg)}.hero-portrait:after{content:"+";border:1px solid color-mix(in srgb, var(--portfolio-yellow-ink) 35%, transparent);border-radius:var(--radius-circle);width:48px;height:48px;color:var(--portfolio-yellow-ink);font:1.8rem / 1 var(--font-mono);place-items:center;display:grid;position:absolute;top:7%;right:-8%}.portrait-orbit{z-index:3;width:66px;height:66px;color:var(--portfolio-yellow);background:var(--color-surface);border:1px solid var(--portfolio-yellow);border-radius:var(--radius-circle);font:.8rem var(--font-mono);place-items:center;display:grid;position:absolute;top:13%;left:-31px}.profile-card{z-index:2;background:var(--color-surface-alt);border:1px solid color-mix(in srgb, var(--portfolio-yellow) 45%, var(--color-border));width:100%;box-shadow:var(--shadow-profile);position:relative;transform:rotate(-2.5deg)}.profile-portrait{aspect-ratio:4/5;background:var(--color-surface-elevated);position:relative;overflow:hidden}.profile-portrait:after{content:"";box-shadow:var(--shadow-inset-ring);pointer-events:none;position:absolute;inset:0}.profile-portrait img{object-fit:cover;object-position:50% 28%;filter:saturate(.82)contrast(1.05);width:100%;height:100%}.portrait-caption{color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);font:.68rem var(--font-mono);letter-spacing:.06em;align-items:center;gap:7px;padding:6px 9px;display:inline-flex;position:absolute;bottom:14px;left:14px}.profile-bio{border-top:1px solid var(--color-border);padding:18px 19px 16px}.profile-name{color:var(--color-text);letter-spacing:-.045em;font-size:1.38rem;font-weight:700;line-height:1.2!important}.profile-signature{color:var(--portfolio-yellow);margin-left:9px;font-family:Georgia,serif;font-size:1rem;font-style:italic;font-weight:400}.profile-role{color:var(--color-text-secondary);margin-top:9px;font-size:.84rem}.profile-location{color:var(--color-text-secondary);align-items:center;gap:6px;margin-top:4px;font-size:.76rem;display:flex}.profile-project{color:var(--portfolio-yellow);background:color-mix(in srgb, var(--portfolio-yellow) 7%, var(--color-surface-alt));border-top:1px solid var(--color-border);grid-template-columns:34px 1fr 18px;align-items:center;gap:10px;padding:16px 18px;display:grid}.profile-project-label{color:var(--color-text-secondary);font:.65rem var(--font-mono);letter-spacing:.07em;display:block}.profile-project strong{color:var(--color-text);margin-top:3px;font-size:.94rem;display:block}.profile-project small{color:var(--color-text-secondary);font-size:.68rem;font-weight:400}.portrait-note{z-index:4;color:var(--color-text);background:var(--portfolio-cream);padding:10px 13px;position:absolute;bottom:5%;right:-12%;transform:rotate(2deg)}.portrait-note span{color:var(--color-accent)}.hero-ticker{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:66px;color:var(--color-text-secondary);font:.68rem var(--font-mono);letter-spacing:.06em;align-items:center;gap:30px;padding-block:16px;display:flex}.hero-ticker>span{align-items:center;gap:8px;display:inline-flex}.hero-ticker .icon{color:var(--portfolio-yellow)}.hero-index{margin-left:auto}.work-section,.principles-section{padding-block:clamp(90px,11vw,150px)}.section-flush-top{padding-bottom:clamp(90px,11vw,150px)}.section-heading{justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px;display:flex}.portfolio h2{color:var(--color-text);letter-spacing:-.07em;font-size:clamp(2.8rem,5vw,5.25rem);font-weight:720;line-height:.96}.portfolio h2 span{color:var(--color-text-secondary);font-family:Georgia,serif;font-style:italic;font-weight:400}.heading-note{color:var(--color-text-secondary);font-size:.84rem}.project-bento{grid-template-rows:auto auto;grid-template-columns:1.25fr .75fr;gap:18px;display:grid}.project-card{border:1px solid var(--color-border);background:var(--color-surface-alt);min-width:0;overflow:hidden}.project-card--lead{grid-row:1/3;grid-template-rows:auto 1fr;display:grid}.project-image{color:var(--color-text);background:var(--portfolio-yellow);padding:54px 28px 45px;display:block;position:relative;overflow:hidden}.project-image:before{content:"";border:1px solid color-mix(in srgb, var(--color-on-accent) 25%, transparent);border-radius:var(--radius-circle);width:240px;height:240px;position:absolute;top:-100px;right:-85px}.project-image img{z-index:1;border:1px solid color-mix(in srgb, var(--color-on-accent) 40%, transparent);width:100%;height:auto;box-shadow:var(--shadow-image);transition:transform var(--motion-image) var(--motion-ease);display:block;position:relative}.project-image:hover img{transform:translateY(-7px)rotate(.4deg)}.card-meta{z-index:2;color:var(--portfolio-yellow-ink);font:.64rem var(--font-mono);letter-spacing:.07em;justify-content:space-between;gap:15px;display:flex;position:absolute;inset:18px 22px auto}.image-caption{z-index:2;color:var(--portfolio-yellow-ink);font-size:.62rem;position:absolute;bottom:15px;left:28px}.project-story{padding:clamp(26px,4vw,48px)}.project-title-line,.compact-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.project-title-line .eyebrow,.compact-heading .eyebrow{margin:0}.project-number{color:var(--color-text-secondary);font:.7rem var(--font-mono)}.project-story h3{color:var(--color-text);letter-spacing:-.075em;margin-top:18px;font-size:clamp(3.3rem,6vw,6.2rem);font-weight:760;line-height:.9}.project-lead{color:var(--color-text);margin-block:24px 10px;font:italic 1.45rem/1.35 Georgia,serif}.project-story>p:not(.eyebrow):not(.project-lead){max-width:590px;color:var(--color-text-secondary);font-size:.95rem}.project-story blockquote{color:var(--portfolio-yellow);background:color-mix(in srgb, var(--portfolio-yellow) 7%, var(--color-surface));border-left:3px solid var(--portfolio-yellow);align-items:flex-start;gap:13px;margin-top:25px;padding:18px;font-size:.86rem;display:flex}.tags{flex-wrap:wrap;gap:7px;margin-top:22px;display:flex}.tags span{color:var(--color-text-secondary);border:1px solid var(--color-border);font:.68rem var(--font-mono);padding:5px 9px}.project-links{flex-wrap:wrap;gap:26px;margin-top:25px;display:flex}.project-links a{min-height:44px;color:var(--color-text);align-items:center;gap:8px;font-size:.82rem;display:inline-flex}.project-card--workbench,.project-card--civic{flex-direction:column;padding:clamp(24px,3vw,34px);display:flex}.compact-heading .eyebrow{align-items:center;gap:8px;display:inline-flex}.project-card--workbench h3,.project-card--civic h3{color:var(--color-text);letter-spacing:-.065em;font-size:clamp(2rem,3.2vw,3.4rem);font-weight:720;line-height:.92}.project-card--workbench h3{margin-top:25px}.project-card--workbench>p,.project-card--civic>p{color:var(--color-text-secondary);margin-top:17px;font-size:.88rem}.compact-image{border:1px solid var(--color-border);background:var(--color-surface-elevated);min-height:0;margin-block:25px 4px;display:block;overflow:hidden}.compact-image img{aspect-ratio:16/9;object-fit:cover;object-position:top;width:100%;transition:transform var(--motion-image) var(--motion-ease), filter var(--motion-image);display:block}.compact-image:hover img{transform:scale(1.04)}.project-card--workbench .compact-image{order:4}.project-card--workbench .compact-footer{order:5}.project-card--civic{background:var(--portfolio-cream);color:var(--color-text)}[data-theme=light] .project-card--civic{background:var(--color-surface-elevated);color:var(--color-text)}.project-card--civic .eyebrow{color:var(--color-accent)}[data-theme=light] .project-card--civic .eyebrow{color:var(--portfolio-yellow)}.project-card--civic .project-number,.project-card--civic>p{color:currentColor;opacity:.65}.project-card--civic h3{color:currentColor;margin-top:23px}.project-card--civic .tags span{color:currentColor;opacity:.62;border-color:currentColor}.project-card--civic .circle-link{color:currentColor;border-color:currentColor}.compact-footer{justify-content:space-between;align-items:end;gap:15px;margin-top:auto;display:flex}.circle-link{width:46px;height:46px;color:var(--color-text);border:1px solid var(--color-border-interactive);border-radius:var(--radius-circle);flex:0 0 46px;place-items:center;display:grid}.circle-link:hover{color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);border-color:var(--portfolio-yellow)}.about-section{color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);padding-block:clamp(90px,10vw,140px);overflow:clip}.about-section .eyebrow{color:currentColor}.about-grid{grid-template-columns:1.08fr .92fr;gap:clamp(55px,10vw,150px);display:grid}.about-title{position:relative}.about-section h2{color:currentColor;font-size:clamp(3.2rem,6vw,6.4rem)}.about-section h2 span{color:currentColor;opacity:.66}.about-mark{color:color-mix(in srgb, var(--color-on-accent) 7%, transparent);letter-spacing:-.12em;pointer-events:none;font-size:clamp(10rem,24vw,23rem);font-weight:900;line-height:1;position:absolute;bottom:-36%;right:-7%}.about-mark span{font-family:Georgia,serif;font-style:italic}.about-copy{z-index:1;padding-top:42px;position:relative}.about-copy p{color:currentColor;opacity:.8;margin-bottom:20px;font-size:.98rem}.about-copy .about-lead{opacity:1;margin-bottom:28px;font:italic clamp(1.5rem,2.4vw,2.15rem)/1.3 Georgia,serif}.about-copy strong,.about-copy a{color:currentColor}.about-copy a:not(.quiet-link){text-underline-offset:4px;text-decoration:underline}.about-copy .quiet-link{color:currentColor;border-bottom:1px solid;margin-top:8px}.principles{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);display:grid}.principles article{border-right:1px solid var(--color-border);min-width:0;padding:30px clamp(20px,3vw,38px) 38px}.principles article:first-child{padding-left:0}.principles article:last-child{border-right:0;padding-right:0}.principle-top{justify-content:space-between;align-items:center;display:flex}.principle-icon{width:50px;height:50px;color:var(--portfolio-yellow);border:1px solid color-mix(in srgb, var(--portfolio-yellow) 40%, var(--color-border));border-radius:var(--radius-circle);place-items:center;display:grid}.principle-number{color:var(--color-text-secondary);font:.72rem var(--font-mono)}.principles h3{color:var(--color-text);letter-spacing:-.035em;margin-block:32px 17px;font-size:1.3rem;font-weight:600}.principles p{color:var(--color-text-secondary);font-size:.9rem}.toolbelt{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);align-items:center;gap:60px;margin-top:50px;padding:22px 0;display:flex}.toolbelt>.mono{color:var(--portfolio-yellow)}.toolbelt p{color:var(--color-text-secondary);font-size:.88rem}.toolbelt p span{color:var(--portfolio-yellow);padding-inline:12px}.module-list{border-top:1px solid var(--color-border)}.module-row{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);grid-template-columns:34px 46px minmax(180px,1fr) 110px 1.4fr 20px;align-items:center;gap:20px;padding:22px 18px 22px 0;display:grid}.module-row:hover{color:var(--color-text);background:var(--color-surface-hover)}.module-index{color:var(--color-text-secondary)}.module-icon{width:44px;height:44px;color:var(--portfolio-yellow);border:1px solid var(--color-border);border-radius:var(--radius-circle);place-items:center;display:grid}.module-row h3{color:var(--color-text);letter-spacing:-.035em;font-size:1.14rem;font-weight:600}.module-label{width:max-content;color:var(--portfolio-yellow);border:1px solid color-mix(in srgb, var(--portfolio-yellow) 40%, var(--color-border));font:.67rem var(--font-mono);padding:5px 8px}.module-row p{font-size:.82rem}.contact-section{color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);margin-bottom:60px;padding:clamp(34px,5vw,64px);position:relative;overflow:clip}.contact-section:after{content:"↗";color:color-mix(in srgb, var(--color-on-accent) 7%, transparent);pointer-events:none;font-size:clamp(13rem,27vw,28rem);font-weight:800;line-height:1;position:absolute;bottom:-28%;right:-1%}.contact-top,.contact-bottom,.contact-social,.contact-section h2{z-index:1;position:relative}.contact-top{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.contact-top .eyebrow{color:currentColor}.contact-top>.mono{font-size:.68rem}.contact-section h2{color:currentColor;margin-block:27px 35px;font-size:clamp(4rem,8vw,8.2rem);line-height:.83}.contact-section h2 span{color:currentColor;font-family:Georgia,serif;font-style:italic;font-weight:400}.contact-bottom{justify-content:space-between;align-items:center;gap:30px;display:flex}.contact-bottom p{font-size:.92rem}.contact-section .solid-link{color:var(--color-surface);background:var(--color-text);border-color:var(--color-text)}.contact-section .solid-link:hover{color:currentColor;background:0 0;border-color:currentColor}.contact-social{border-top:1px solid color-mix(in srgb, var(--color-on-accent) 27%, transparent);gap:27px;margin-top:36px;padding-top:20px;display:flex}.contact-social a{color:currentColor;align-items:center;gap:8px;min-height:44px;font-size:.8rem;display:inline-flex}.site-footer{justify-content:space-between;align-items:center;gap:22px;padding-bottom:30px;display:flex}.site-footer>a{min-height:44px;color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.78rem;display:inline-flex}.site-footer>a:first-child{color:var(--color-text);font-size:1rem}.site-footer>a:first-child .icon{color:var(--portfolio-yellow)}.site-footer p{color:var(--color-text-secondary);font-size:.72rem}.skip-link{z-index:100;color:var(--portfolio-yellow-ink);background:var(--portfolio-yellow);padding:12px 18px;position:fixed;top:-100px;left:18px}.skip-link:focus{top:12px}.small-project{min-width:0}.small-project>p{color:var(--color-text-secondary)}.project-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}.projects-index{padding-top:145px;padding-bottom:90px}.projects-eyebrow{margin-top:35px}.projects-title{margin-bottom:25px;font-size:clamp(2.5rem,6vw,5rem)}.projects-intro{max-width:640px;color:var(--color-text-secondary);margin-bottom:40px}.projects-entry{border-top:1px solid var(--color-border);padding-top:24px}.projects-entry-title{margin-bottom:14px;font-size:1.6rem}.projects-entry-link{color:var(--color-text)}.motion-ready [data-reveal]{opacity:0;transition:opacity var(--motion-reveal) var(--motion-ease), transform var(--motion-reveal) var(--motion-ease);transform:translateY(24px)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}.motion-ready .principles article:nth-child(2){transition-delay:var(--motion-stagger)}.motion-ready .principles article:nth-child(3){transition-delay:calc(var(--motion-stagger) * 2)}@keyframes hero-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hero-kicker,.hero-copy,.hero-portrait,.hero-ticker{animation:hero-rise var(--motion-reveal) var(--motion-ease) both}.hero-copy{animation-delay:var(--motion-stagger)}.hero-portrait{animation-delay:calc(var(--motion-stagger) + var(--motion-hero-step))}.hero-ticker{animation-delay:calc(var(--motion-stagger) + var(--motion-hero-step) * 2)}@media (width<=1050px){.wrap,.nav-wrap{width:calc(100% - 56px)}.hero-stage{grid-template-columns:minmax(0,1.25fr) minmax(285px,.75fr);gap:45px}.hero h1{font-size:clamp(5rem,10.8vw,7.5rem)}.hero-brief{width:90%}.portrait-note{right:-4%}.hero-ticker{flex-wrap:wrap}.hero-index{display:none}.project-bento{grid-template-columns:1fr 1fr}.project-card--lead{grid-area:auto/1/auto/-1;grid-template-rows:none;grid-template-columns:1.08fr .92fr}.project-story h3{font-size:clamp(3.3rem,7vw,5.6rem)}.module-row{grid-template-columns:30px 44px minmax(150px,1fr) 100px 1fr 18px;gap:14px}}@media (width<=720px){.wrap,.nav-wrap{width:calc(100% - 36px)}.nav-wrap{height:70px}.desktop-nav{display:none}.menu-toggle{display:inline-flex}.hero{min-height:auto;padding-top:92px}.hero-kicker{flex-direction:column;align-items:flex-start;gap:8px}.hero-stage{grid-template-columns:minmax(0,1fr);gap:42px;min-height:0;padding-block:34px 46px}.hero h1{font-size:clamp(4rem,19vw,7rem);line-height:.8}.hero-brief{width:100%;margin-top:30px}.hero-brief>p{max-width:480px}.actions{flex-wrap:wrap;gap:14px}.hero-portrait{width:min(88%,390px);margin-inline:auto}.hero-portrait:before{inset:6% -10% 6% 15%}.hero-portrait:after{right:-7%}.portrait-orbit{width:55px;height:55px;left:-24px}.portrait-note{font-size:.6rem;bottom:4%;right:-8%}.profile-card{transform:rotate(-1.5deg)}.profile-portrait{aspect-ratio:5/5.5}.profile-bio{padding:15px}.profile-project{padding:14px 15px}.hero-ticker{gap:12px 22px;padding-block:18px}.hero-ticker>span{font-size:.62rem}.work-section,.principles-section{padding-block:78px}.section-flush-top{padding-bottom:78px}.section-heading{margin-bottom:32px;display:block}.section-heading .quiet-link,.heading-note{margin-top:20px}.portfolio h2{font-size:clamp(2.6rem,12vw,4.5rem)}.project-bento{grid-template-columns:minmax(0,1fr)}.project-card--lead{grid-column:auto;display:block}.project-image{padding:54px 16px 42px}.card-meta{inset-inline:14px}.image-caption{left:16px}.project-story{padding:26px 21px 30px}.project-story h3{font-size:3.8rem}.project-card--workbench,.project-card--civic{padding:24px 21px}.project-card--workbench h3,.project-card--civic h3{font-size:2.6rem}.about-grid{grid-template-columns:1fr;gap:32px}.about-section h2{font-size:clamp(3rem,13vw,5rem)}.about-copy{padding-top:0}.about-mark{bottom:-15%;right:-20%}.principles{grid-template-columns:1fr}.principles article,.principles article:first-child,.principles article:last-child{border-right:0;border-bottom:1px solid var(--color-border);padding:28px 0 32px}.principles article:last-child{border-bottom:0}.principles h3{margin-top:22px}.toolbelt{margin-top:35px;display:block}.toolbelt p{margin-top:12px;line-height:2}.toolbelt p span{padding-inline:6px}.module-row{grid-template-columns:28px 42px minmax(0,1fr) 18px;gap:10px 12px;padding-right:4px}.module-row .module-index,.module-row .module-icon{grid-row:1/3}.module-row h3{overflow-wrap:anywhere}.module-row .module-label{grid-area:2/3}.module-row p{grid-area:3/2/auto/5;padding-left:54px}.module-row>.icon:last-child{grid-area:1/4}.contact-section{width:calc(100% - 36px);padding:29px 22px}.contact-top{display:block}.contact-top .mono{margin-top:8px;display:block}.contact-section h2{margin-block:30px;font-size:clamp(2.75rem,12vw,5.5rem);line-height:1.05}.contact-bottom{display:block}.contact-bottom p br{display:none}.contact-bottom .solid-link{margin-top:24px}.contact-social{flex-wrap:wrap;gap:10px 20px}.site-footer{flex-wrap:wrap;gap:10px 18px}.site-footer p{order:3;width:100%}.site-footer>a:last-child{margin-left:auto}.project-pair{grid-template-columns:1fr}}@media (width<=380px){.wrap,.nav-wrap{width:calc(100% - 28px)}.hero h1{font-size:3.75rem}.hero-portrait{width:91%}.profile-signature{margin:3px 0 0;display:block}.profile-project small{display:block}.portrait-note{right:-4%}.solid-link{padding-inline:15px}.project-story h3{font-size:3.25rem}.contact-section{width:calc(100% - 28px)}.contact-bottom .solid-link{font-size:.78rem}}@media (prefers-reduced-motion:reduce){.motion-ready [data-reveal]{opacity:1;transform:none}.project-image:hover img,.compact-image:hover img,.module-row:hover,.solid-link:hover>.icon:last-child,.quiet-link:hover>.icon:last-child,.circle-link:hover .icon,.project-links a:hover>.icon:last-child,.module-row:hover>.icon:last-child{transform:none}.theme-toggle:active,.menu-toggle:active,.module-row:active,.quiet-link:active>.icon:last-child,.project-links a:active>.icon:last-child,.contact-social a:active,.nav-contact:active,.circle-link:active,.mobile-nav a:active{transform:none!important}}.desktop-nav a:hover{color:var(--color-text)}.quiet-link:hover,.project-links a:hover{color:inherit;text-underline-offset:4px;text-decoration:underline}.theme-toggle:hover,.menu-toggle:hover{background:var(--color-surface-hover);border-color:var(--color-border-interactive-hover)}.contact-section .solid-link:hover{background:var(--color-text);color:var(--color-surface);border-color:var(--color-surface-active);transform:translateY(1px)}.desktop-nav .nav-contact:hover,.circle-link:hover{color:var(--color-text);border-color:var(--color-border-interactive-hover);background:0 0}[data-theme=dark] .theme-toggle,[data-theme=dark] .menu-toggle{border-color:var(--color-border-interactive)}.theme-toggle:active,.menu-toggle:active{background:var(--color-surface-active);border-color:var(--color-border-interactive-hover);transform:translateY(1px)}.module-row:active{color:var(--color-text);background:var(--color-surface-active)}.solid-link:active{background:var(--color-accent-active);color:var(--color-on-accent)}.contact-section .solid-link:active{background:var(--color-text);color:var(--color-surface);border-color:var(--color-surface-active);outline-offset:2px;outline:2px solid;transform:translateY(2px)}.desktop-nav a:active{color:var(--color-text);text-underline-offset:4px;text-decoration:underline}.quiet-link:active,.project-links a:active{color:inherit;text-underline-offset:6px;text-decoration:underline}.quiet-link:active>.icon:last-child,.project-links a:active>.icon:last-child{transform:translate(3px,-3px)}.site-footer>a:active{color:var(--color-text);text-underline-offset:4px;text-decoration:underline}.contact-social a:active{text-underline-offset:4px;text-decoration:underline;transform:translateY(2px)}.nav-contact:active{transform:translateY(1px)}.circle-link:active{border-color:var(--color-border-interactive-hover);transform:scale(.94)}.mobile-nav a:active{border-color:var(--color-border-interactive);transform:translate(2px)}@media (forced-colors:active){.module-row:hover{outline-offset:-1px;outline:1px solid canvastext}.card:hover,.nav-contact:hover,.circle-link:hover,.theme-toggle:hover,.menu-toggle:hover,.solid-link:hover,.btn-primary:hover{outline-offset:2px;outline:1px solid canvastext}.quiet-link:hover,.project-links a:hover,.desktop-nav a:hover,.site-footer>a:hover{text-underline-offset:4px;text-decoration:underline}.module-row:active,.theme-toggle:active,.menu-toggle:active,.desktop-nav a:active,.quiet-link:active,.project-links a:active,.site-footer>a:active,.contact-social a:active,.nav-contact:active,.circle-link:active,.mobile-nav a:active,.btn-primary:active,.solid-link:active{outline:2px dashed canvastext}}.desktop-nav a,.quiet-link,.project-links a,.site-footer>a,.contact-social a,.nav-contact,.circle-link,.mobile-nav a,.theme-toggle,.menu-toggle,.solid-link,.btn-primary,.skip-link{transition:color var(--motion-fast), background-color var(--motion-fast), border-color var(--motion-fast), transform var(--motion-fast) var(--motion-ease), text-decoration-line var(--motion-fast), text-underline-offset var(--motion-fast)}.module-row,.motion-ready [data-reveal].module-row{transition:background-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast) var(--motion-ease), opacity var(--motion-reveal) var(--motion-ease)}.motion-ready [data-reveal].module-row:nth-child(2){transition-delay:var(--motion-none), var(--motion-none), var(--motion-none), var(--motion-stagger)}.motion-ready [data-reveal].module-row:nth-child(3){transition-delay:var(--motion-none), var(--motion-none), var(--motion-none), calc(var(--motion-stagger) * 2)}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){animation:vt-wipe-in var(--motion-transition) var(--motion-ease) both;mix-blend-mode:normal}@keyframes vt-wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.site-header{view-transition-name:site-header}.vt-art-drenyra{view-transition-name:project-art-drenyra}.vt-art-dreamcoder-workbench{view-transition-name:project-art-dreamcoder-workbench}.vt-art-digital-public-peru{view-transition-name:project-art-digital-public-peru}::view-transition-group(project-art-drenyra),::view-transition-group(project-art-dreamcoder-workbench),::view-transition-group(project-art-digital-public-peru){animation-duration:var(--motion-transition);animation-timing-function:var(--motion-ease)}}.scroll-rail{display:none}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.motion-ready [data-reveal].scene-card,.motion-ready #projects[data-reveal],.motion-ready #about[data-reveal],.motion-ready #architecture[data-reveal],.motion-ready #services[data-reveal],.motion-ready #process[data-reveal],.motion-ready #connect[data-reveal]{opacity:1;transition:none;transform:none}.motion-ready [data-reveal].module-row.scene-card{opacity:1;transition:background-color var(--motion-fast), color var(--motion-fast);transform:none}@keyframes scene-rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-scan{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.scene-kicker{animation-name:scene-rise;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 30%;position:relative}.scene-kicker:after{content:"";transform-origin:0;background:currentColor;height:1px;animation-name:scene-scan;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 30%;position:absolute;bottom:-4px;left:0;right:0}.scene-heading{animation-name:scene-rise;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry 5% entry 40%}.scene-card{animation-name:scene-rise;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 40%}.scene-card:nth-child(2){animation-range:entry 6% entry 46%}.scene-card:nth-child(3){animation-range:entry 12% entry 52%}@media (width>=900px){.scroll-rail{z-index:40;background:var(--color-border);pointer-events:none;width:2px;height:calc(100vh - 101px);display:block;position:fixed;top:83px;right:18px;container-type:size}.scroll-rail-fill{background:var(--color-accent);transform-origin:top;width:100%;height:100%;animation-name:scroll-rail-progress;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root)}@keyframes scroll-rail-progress{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.scroll-rail-readout{font-family:var(--font-mono);letter-spacing:.06em;color:var(--color-accent);font-variant-numeric:tabular-nums;white-space:nowrap;counter-reset:scroll-progress var(--scroll-progress);transform:translateY(calc(var(--scroll-progress) * (1cqh - .01lh)));font-size:.62rem;animation-name:scroll-progress-count;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root);position:absolute;top:0;right:calc(100% + 8px)}.scroll-rail-readout:after{content:counter(scroll-progress, scroll-progress-padded) "%"}@keyframes scroll-progress-count{0%{--scroll-progress:0}to{--scroll-progress:100}}}}}
