*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.isolate{isolation:isolate}.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)}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#08111f;--bg-soft:#0d1a2a;--surface:#101f31;--surface-soft:#14263a;--surface-light:#e8edf2;--text:#f4f7fb;--text-soft:#c6d1de;--text-muted:#8ea0b4;--ink:#101827;--line:#d5e0ee29;--line-strong:#d5e0ee47;--accent:#8fd5ff;--accent-soft:#c7eee4;--max-width:1180px;background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(180deg, #8fd5ff14, transparent 34rem), linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 48%, #08111f 100%);min-width:0;color:var(--text);font-feature-settings:"cv02", "cv03", "cv04", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}body,button,input,textarea{font:inherit}img{max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}#root,main{overflow-x:hidden}.site-header,.hero-layout,.section,.site-footer{width:min(var(--max-width), calc(100% - 2rem));margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.25rem;display:flex}.brand-link{letter-spacing:0;font-size:.98rem;font-weight:700}.site-nav{color:var(--text-soft);align-items:center;gap:clamp(1rem,3vw,2.25rem);font-size:.95rem;display:flex}.site-nav a,.quiet-links a,.project-links a,.contact-links a{border-bottom:1px solid #0000;transition:color .18s,border-color .18s}.site-nav a:hover,.quiet-links a:hover,.project-links a:hover,.contact-links a:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.hero-section{min-height:auto;padding-bottom:clamp(.75rem,2vw,1.5rem)}.hero-layout{grid-template-columns:minmax(0,1.12fr) minmax(16rem,.58fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);padding-top:clamp(1rem,2.8vw,2.25rem);display:grid}.intro-line,.section-kicker,.project-meta{color:var(--accent);font-size:.9rem;font-weight:650}.hero-copy h1{letter-spacing:-.045em;max-width:10ch;margin:.7rem 0 0;font-size:clamp(4.1rem,9.4vw,7.25rem);line-height:.9}.hero-title{color:var(--text);margin-top:clamp(.75rem,1.7vw,1.15rem);font-size:clamp(1.35rem,3.2vw,2.25rem);font-weight:650;line-height:1.1}.hero-text{max-width:42rem;color:var(--text-soft);margin-top:1rem;font-size:clamp(1rem,1.45vw,1.2rem);line-height:1.65}.hero-actions,.quiet-links,.project-links{flex-wrap:wrap;align-items:center;gap:.9rem 1.25rem;display:flex}.hero-actions{margin-top:1.45rem}.primary-action,.secondary-action{border-radius:999px;justify-content:center;align-items:center;min-height:2.9rem;padding:.78rem 1.2rem;font-weight:700;transition:transform .18s,background-color .18s,border-color .18s;display:inline-flex}.primary-action{background:var(--surface-light);color:var(--ink)}.secondary-action{border:1px solid var(--line-strong);color:var(--text)}.primary-action:hover,.secondary-action:hover{transform:translateY(-1px)}.secondary-action:hover{border-color:var(--accent)}.quiet-links{color:var(--text-muted);margin-top:1rem;font-size:.95rem}.hero-portrait-wrap{justify-self:end;width:min(100%,21rem)}.hero-portrait{aspect-ratio:4/5;border:1px solid var(--line);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;filter:saturate(.95)contrast(1.02);border-radius:1.15rem;width:100%}.hero-note{color:var(--text-muted);gap:.55rem;margin-top:1rem;font-size:.95rem;display:grid}.hero-note p{margin:0}.section{padding-block:clamp(3.25rem,6vw,5.25rem)}.section-heading{max-width:48rem}.split-heading{grid-template-columns:minmax(0,.75fr) minmax(0,1.35fr);align-items:start;gap:1.25rem 2rem;max-width:none;display:grid}.split-heading>*{margin-top:0}.split-heading p:last-child{max-width:32rem;margin-top:.45rem}.section-heading h2,.contact-shell h2{letter-spacing:-.045em;margin:.65rem 0 0;font-size:clamp(2.35rem,6vw,5rem);line-height:.98}.section-heading p:not(.section-kicker),.contact-shell p,.about-copy p,.skill-line p,.principle p,.project-copy{color:var(--text-soft);line-height:1.75}.work-section{padding-top:clamp(.75rem,1.8vw,1.35rem)}.work-section .split-heading{grid-template-columns:minmax(8rem,.36fr) minmax(0,1fr)}.work-section .split-heading p:last-child{grid-column:2}.work-section .section-heading h2{letter-spacing:-.04em;max-width:720px;font-size:clamp(1.65rem,2.65vw,3.2rem);line-height:.96}.project-list{border-bottom:1px solid var(--line);gap:0;margin-top:clamp(1rem,2vw,1.75rem);display:grid}.project-row{border-top:1px solid var(--line);grid-template-columns:minmax(8.5rem,.42fr) minmax(0,1.9fr);align-items:center;gap:clamp(1rem,2.5vw,2.2rem);padding-block:clamp(.75rem,1.35vw,1.05rem);display:grid}.project-row[data-reverse=true] .project-preview,.project-row[data-reverse=true] .project-content{order:initial}.project-preview{border:1px solid var(--line);background:linear-gradient(135deg,#ffffff14,#0000 42%),linear-gradient(160deg,#132338,#0c1727);border-radius:.7rem;padding:clamp(.42rem,.9vw,.65rem);transition:transform .22s,border-color .22s}.project-row:hover .project-preview{border-color:color-mix(in srgb, var(--accent) 36%, var(--line));transform:translateY(-2px)}.preview-window{border:1px solid var(--line);background:#07101d;border-radius:.45rem;overflow:hidden}.preview-bar{border-bottom:1px solid var(--line);gap:.28rem;padding:.34rem;display:flex}.preview-bar span{background:var(--text-muted);border-radius:50%;width:.32rem;height:.32rem}.preview-body{min-height:clamp(4.6rem,6.2vw,5.8rem);padding:clamp(.62rem,1.15vw,.85rem)}.preview-body p{max-width:9ch;color:var(--text);letter-spacing:-.05em;margin:0;font-size:clamp(1.08rem,1.65vw,1.45rem);font-weight:760;line-height:.9}.preview-lines{gap:.25rem;max-width:7rem;margin-top:.58rem;display:grid}.preview-lines span{background:var(--line);height:1px}.preview-lines span:nth-child(2){width:72%}.preview-lines span:nth-child(3){width:44%}.preview-stack{color:var(--text-muted);flex-wrap:wrap;gap:.25rem .35rem;margin-top:.52rem;font-size:.6rem;display:flex}.preview-stack span{border-top:1px solid var(--line);padding-top:.2rem}.project-content{grid-template-columns:minmax(0,1fr) minmax(9rem,.48fr) minmax(6.5rem,max-content);align-items:center;gap:.75rem clamp(1rem,2vw,1.8rem);display:grid}.project-content h3{letter-spacing:-.045em;grid-column:1;margin:.22rem 0 0;font-size:clamp(1.35rem,2.2vw,2rem);line-height:.98}.project-meta{grid-column:1}.project-copy{grid-column:1;max-width:42rem;margin-top:.15rem;font-size:.9rem;line-height:1.55}.project-tech-plain{color:var(--text-muted);flex-wrap:wrap;grid-area:1/2/4;gap:.3rem .7rem;margin:0;padding:0;font-size:.78rem;line-height:1.45;list-style:none;display:flex}.project-tech-plain li:not(:last-child):after{content:","}.project-links{color:var(--text);flex-direction:column;grid-area:1/3/4;align-items:flex-start;gap:.45rem;margin-top:0;font-size:.82rem;font-weight:700}.project-links span{color:var(--text-muted);font-weight:500}@media (width<=1080px){.project-content{grid-template-columns:minmax(0,1fr) minmax(8rem,.52fr)}.project-links{flex-direction:row;grid-area:auto/1/auto/-1}}.about-section{background:var(--surface-light);width:100%;max-width:none;color:var(--ink)}.about-grid{width:min(var(--max-width), calc(100% - 2rem));grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,7vw,6rem);margin-inline:auto;display:grid}.about-section .section-kicker,.about-section .about-copy p,.about-section .about-facts span{color:#4b5b6e}.about-section h2{color:var(--ink)}.about-section .section-heading h2,.skills-section .section-heading h2,.work-method-section .section-heading h2{letter-spacing:-.04em;max-width:100%;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1}.about-copy{gap:1.2rem;font-size:1.05rem;display:grid}.about-copy p{margin:0}.about-facts{border-top:1px solid #10182729;gap:1rem;margin-top:1.2rem;padding-top:1.2rem;display:grid}.about-facts div{grid-template-columns:9rem minmax(0,1fr);gap:1rem;display:grid}.about-facts strong{font-size:.95rem}.skills-section,.work-method-section{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(2.5rem,7vw,5rem);display:grid}.skill-list,.principle-list{gap:1.2rem;display:grid}.skill-line,.principle{border-top:1px solid var(--line);padding-top:1.2rem}.skill-line h3,.principle h3{letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,2.4vw,2rem)}.skill-line p,.principle p{margin:.55rem 0 0}.contact-section{padding-bottom:clamp(4rem,8vw,6rem)}.contact-shell{border-block:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(16rem,.44fr);align-items:end;gap:2rem;padding-block:clamp(2rem,5vw,4rem);display:grid}.contact-shell p{max-width:46rem;margin-top:1.1rem}.contact-links{color:var(--text);justify-items:start;gap:.85rem;font-weight:700;display:grid}.site-footer{border-top:1px solid var(--line);color:var(--text-muted);justify-content:space-between;gap:1rem;padding-block:2rem;font-size:.95rem;display:flex}.site-footer p{margin:0}@media (width<=760px){.site-header{flex-direction:column;align-items:flex-start}.site-nav{justify-content:space-between;width:100%}.hero-layout,.split-heading,.about-grid,.skills-section,.work-method-section,.contact-shell{grid-template-columns:1fr}.hero-layout{align-items:start;padding-top:3rem}.hero-portrait-wrap{justify-self:start;width:min(100%,24rem)}.project-row,.project-row[data-reverse=true]{grid-template-columns:1fr}.project-row[data-reverse=true] .project-preview,.project-row[data-reverse=true] .project-content{order:initial}.project-content{grid-template-columns:1fr}.project-tech-plain,.project-links{grid-area:auto/1}.project-links{flex-direction:row}.about-facts div{grid-template-columns:1fr;gap:.3rem}}@media (width<=520px){.site-header,.hero-layout,.section,.site-footer{width:min(var(--max-width), calc(100% - 1.5rem))}.site-nav{gap:.85rem;padding-bottom:.25rem;overflow-x:auto}.hero-copy h1{font-size:clamp(4rem,24vw,6.2rem)}.hero-actions{flex-direction:column;align-items:stretch}.primary-action,.secondary-action{width:100%}.project-content h3,.section-heading h2,.contact-shell h2{overflow-wrap:normal;word-break:normal}.preview-body{min-height:8rem}.preview-body p{font-size:clamp(1.45rem,9vw,2.25rem)}.contact-links a{overflow-wrap:anywhere}.site-footer{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
