/*! 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)))){*,::backdrop,:after,:before{--tw-space-y-reverse:0}}}@layer theme{:host,:root{--font-sans:-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-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--container-2xl:42rem;--container-7xl:80rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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]){-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,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-5{height:calc(var(--spacing) * 5)}.h-16{height:calc(var(--spacing) * 16)}.min-h-\[calc\(100svh-4rem\)\]{min-height:calc(100svh - 4rem)}.w-5{width:calc(var(--spacing) * 5)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-xl{max-width:var(--container-xl)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-7{gap:calc(var(--spacing) * 7)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * 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)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-end{align-self:flex-end}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-9{padding-block:calc(var(--spacing) * 9)}.py-24{padding-block:calc(var(--spacing) * 24)}.text-center{text-align:center}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:py-10{padding-block:calc(var(--spacing) * 10)}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-\[19rem\]{width:19rem}.lg\:max-w-none{max-width:none}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[\.76fr_1\.24fr\]{grid-template-columns:.76fr 1.24fr}.lg\:grid-cols-\[\.78fr_1\.22fr\]{grid-template-columns:.78fr 1.22fr}.lg\:grid-cols-\[1\.1fr_\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[1\.08fr_\.92fr\]{grid-template-columns:1.08fr .92fr}.lg\:items-end{align-items:flex-end}.lg\:gap-20{gap:calc(var(--spacing) * 20)}.lg\:px-10{padding-inline:calc(var(--spacing) * 10)}.lg\:py-28{padding-block:calc(var(--spacing) * 28)}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--background:#090c0a;--background-elevated:#0e1310;--foreground:#edf6ef;--foreground-soft:#b6c2b8;--foreground-faint:#758078;--primary:#71e78f;--primary-strong:#9af3b0;--primary-ink:#0b160e;--card:#121914c7;--card-solid:#121a15;--card-muted:#101611;--border:#acc7b224;--border-strong:#71e78f57;--header:#090c0ab3;--shadow:#00000047;--grid:#9af3b00e;--glow:#59d77a1f;--mono:ui-monospace,"SFMono-Regular",Menlo,Monaco,Consolas,monospace;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}:root[data-theme=light]{--background:#f6f8f5;--background-elevated:#fff;--foreground:#17201a;--foreground-soft:#47564b;--foreground-faint:#6d7b70;--primary:#147a32;--primary-strong:#0f6128;--primary-ink:#f7fff8;--card:#ffffffc7;--card-solid:#fff;--card-muted:#f1f5f1;--border:#21452a24;--border-strong:#147a3261;--header:#f6f8f5c7;--shadow:#152b1a1a;--grid:#147a3213;--glow:#147a3217}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 87% 4%,var(--glow),transparent 26rem),var(--background);min-width:320px;color:var(--foreground);font-family:var(--sans);text-rendering:optimizelegibility;overflow-x:hidden}::selection{background:var(--primary);color:var(--primary-ink)}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.site-header{z-index:50;background:0 0;border-bottom:1px solid #0000;transition:background-color .18s,border-color .18s,box-shadow .18s;position:sticky;top:0}.site-header-scrolled{border-color:var(--border);background:var(--header);box-shadow:0 7px 28px var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{color:var(--foreground);align-items:center;gap:.65rem;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--border-strong);background:var(--card);width:1.72rem;height:1.72rem;color:var(--primary);border-radius:.45rem;place-items:center;font-size:.78rem;display:grid}.brand-mark,.brand-name{font-family:var(--mono);font-weight:700}.brand-name{letter-spacing:.08em;font-size:.71rem}.nav-link{color:var(--foreground-soft);font-size:.75rem;text-decoration:none;transition:color .16s}.nav-link:hover{color:var(--primary)}.icon-button{border:1px solid var(--border);background:var(--card);width:2rem;height:2rem;color:var(--foreground-soft);cursor:pointer;border-radius:.5rem;place-items:center;transition:color .16s,border-color .16s,background-color .16s;display:inline-grid}.icon-button:hover{border-color:var(--border-strong);background:var(--card-solid);color:var(--primary)}.mobile-menu{background:var(--header);opacity:0;border-bottom:1px solid #0000;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .18s,border-color .18s;display:grid;overflow:hidden}.mobile-menu>nav{min-height:0;overflow:hidden}.mobile-menu-open{border-color:var(--border);opacity:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-rows:1fr}.mobile-nav-link{color:var(--foreground-soft);padding:.72rem 0;font-size:.94rem;text-decoration:none}.mobile-nav-link:hover{color:var(--primary)}.section-shell{padding:clamp(4.5rem,9vw,8rem) 0;scroll-margin-top:4rem}.section-tinted{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--background-elevated)}.eyebrow{color:var(--primary);font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;font-size:.66rem;font-weight:700;line-height:1.5}.section-title{max-width:42rem;color:var(--foreground);letter-spacing:-.05em;font-size:clamp(2rem,4.4vw,3.25rem);font-weight:650;line-height:1.08}.section-intro{color:var(--foreground-soft);font-size:1rem;line-height:1.75}.feature-title{color:var(--foreground);letter-spacing:-.045em;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:620;line-height:1.17}.prose-copy{color:var(--foreground-soft);font-size:1rem;line-height:1.78}.about-portrait{aspect-ratio:4/5;border:1px solid var(--border-strong);background:var(--card-solid);box-shadow:0 20px 50px var(--shadow);border-radius:.8rem;align-self:start;position:relative;overflow:hidden}.about-portrait:after{border-radius:inherit;content:"";pointer-events:none;border:1px solid #ffffff0d;position:absolute;inset:0}.about-portrait-image{object-fit:cover;width:100%;height:100%}.about-portrait-fallback{background:radial-gradient(circle at 78% 18%,var(--glow),transparent 38%),linear-gradient(145deg,var(--card-muted),var(--card-solid));flex-direction:column;justify-content:end;width:100%;height:100%;padding:1.5rem;display:flex}.about-portrait-initials{border:1px solid var(--border-strong);background:var(--glow);width:4.3rem;height:4.3rem;color:var(--primary);font-family:var(--mono);letter-spacing:.08em;border-radius:.8rem;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.about-portrait-name{color:var(--foreground);font-family:var(--mono);letter-spacing:.1em;margin-top:1.1rem;font-size:.72rem;font-weight:700}.about-portrait-role{color:var(--foreground-soft);margin-top:.35rem;font-size:.8rem;line-height:1.45}.about-list-intro{color:var(--foreground);font-weight:560}.about-list li{color:var(--foreground-soft);gap:.6rem;font-size:.91rem;line-height:1.4;display:flex}.about-list svg{color:var(--primary);flex:none;margin-top:.04rem}.quote-block{border-left:2px solid var(--primary);max-width:44rem;color:var(--foreground);padding-left:1rem;font-size:1.01rem;font-style:italic;line-height:1.7}.hero-section{isolation:isolate;border-bottom:1px solid var(--border);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-position:50%;background-size:3rem 3rem;position:relative;overflow:hidden}.hero-section:before{z-index:-1;background:radial-gradient(circle at 65% 48%,var(--glow),transparent 25rem);content:"";position:absolute;inset:0}.hero-copy{animation:rise-in .65s both}.hero-eyebrow{align-items:center;gap:.7rem;display:flex}.hero-eyebrow:before{background:var(--primary);content:"";width:1.9rem;height:1px}.hero-title{max-width:54rem;color:var(--foreground);letter-spacing:-.065em;flex-direction:column;gap:.5rem;font-size:clamp(2.6rem,6.2vw,5.2rem);font-weight:650;line-height:1.02;display:flex}.hero-name{color:var(--primary);font-family:var(--mono);letter-spacing:.14em;font-size:clamp(.95rem,2vw,1.24rem);font-weight:700;line-height:1.5}.hero-summary{color:var(--foreground-soft);font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.75}.hero-scroll{color:var(--foreground-faint);font-family:var(--mono);letter-spacing:.03em;font-size:.65rem;line-height:1.5;text-decoration:none}.hero-scroll:hover{color:var(--primary)}.button{border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;min-height:2.75rem;padding:.65rem 1rem;font-size:.84rem;font-weight:650;text-decoration:none;transition:transform .16s,background-color .16s,color .16s,border-color .16s,box-shadow .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--primary);color:var(--primary-ink);box-shadow:0 8px 20px var(--shadow)}.button-primary:hover{background:var(--primary-strong)}.button-secondary{border-color:var(--border);background:var(--card);color:var(--foreground)}.button-secondary:hover{border-color:var(--border-strong);background:var(--card-solid)}.button-quiet{color:var(--foreground-soft)}.button-small{min-height:2.25rem;padding:.46rem .72rem;font-size:.71rem}.button-disabled{cursor:not-allowed;opacity:.52}.button-disabled:hover{transform:none}.hero-orbit{border:1px solid var(--border);width:19rem;height:19rem;box-shadow:inset 0 0 0 2.3rem var(--glow);border-radius:999px;position:absolute;top:-11%;right:-6%}.hero-orbit:after{background:var(--primary);width:.5rem;height:.5rem;box-shadow:0 0 0 .32rem var(--glow);content:"";border-radius:50%;position:absolute;top:2.2rem;left:1.2rem}.code-card{border:1px solid var(--border-strong);background:var(--card-solid);box-shadow:0 25px 65px var(--shadow);border-radius:.8rem;animation:rise-in .72s 90ms both;position:relative;overflow:hidden}.code-card:after{background:linear-gradient(120deg,transparent,var(--glow));content:"";pointer-events:none;width:35%;height:100%;position:absolute;top:0;right:0}.code-card-topbar{border-bottom:1px solid var(--border);background:var(--card-muted);height:2.85rem;color:var(--foreground-faint);font-family:var(--mono);justify-content:space-between;align-items:center;padding:0 .95rem;font-size:.66rem;display:flex}.window-dot{background:var(--foreground-faint);opacity:.55;border-radius:50%;width:.54rem;height:.54rem}.window-dot:first-child{background:var(--primary);opacity:1}.code-status{background:var(--primary);width:.44rem;height:.44rem;box-shadow:0 0 .5rem var(--primary);border-radius:50%}.code-content{color:var(--foreground);font-family:var(--mono);padding:clamp(1.15rem,4vw,2rem);font-size:clamp(.67rem,1.7vw,.85rem);line-height:2;overflow-x:auto}.code-line{grid-template-columns:1.65rem minmax(max-content,1fr);gap:.8rem;display:grid}.code-number{color:var(--foreground-faint);-webkit-user-select:none;user-select:none}.code-card-footer{border-top:1px solid var(--border);color:var(--foreground-faint);font-family:var(--mono);letter-spacing:.08em;justify-content:space-between;padding:.75rem .95rem;font-size:.58rem;display:flex}.approach-card,.capability-card,.education-card,.language-card,.project-card,.skill-group{border:1px solid var(--border);background:var(--card);transition:transform .18s,border-color .18s,box-shadow .18s,background-color .18s;box-shadow:0 12px 32px #0000}.approach-card:hover,.capability-card:hover,.education-card:hover,.project-card:hover,.skill-group:hover{border-color:var(--border-strong);background:var(--card-solid);box-shadow:0 15px 35px var(--shadow);transform:translateY(-3px)}.capability-card{border-radius:.72rem;min-height:16rem;padding:1.45rem}.capability-icon{border:1px solid var(--border-strong);background:var(--glow);width:2.45rem;height:2.45rem;color:var(--primary);border-radius:.55rem;place-items:center;display:grid}.approach-card h3,.capability-card h3,.education-card h3,.language-card h3,.skill-group h3{color:var(--foreground);font-size:1rem;font-weight:650}.capability-card h3{margin-top:1.55rem}.approach-card p,.capability-card p{color:var(--foreground-soft);margin-top:.7rem;font-size:.88rem;line-height:1.7}.skill-group{border-radius:.7rem;padding:1.25rem}.tag{border:1px solid var(--border);background:var(--card-muted);color:var(--foreground-soft);font-family:var(--mono);border-radius:999px;padding:.32rem .58rem;font-size:.66rem;line-height:1.35;display:inline-flex}.project-card{border-radius:.82rem;overflow:hidden}.project-card-featured{background:var(--card-solid)}.project-image-wrap{aspect-ratio:16/8.5;border-bottom:1px solid var(--border);background:var(--card-muted);position:relative;overflow:hidden}.project-image{object-fit:cover;transition:transform .42s}.project-card:hover .project-image,.project-detail-cover:hover .project-image,.project-image-wrap:hover .project-image{transform:scale(1.035)}.project-image-overlay{opacity:0;z-index:10;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:1rem;text-decoration:none;transition:opacity .22s;display:flex;position:absolute;inset:0}.project-detail-cover:focus-within .project-image-overlay,.project-detail-cover:hover .project-image-overlay,.project-image-wrap:focus-within .project-image-overlay,.project-image-wrap:hover .project-image-overlay{opacity:1}.project-hover-btn{white-space:nowrap;border-radius:.55rem;align-items:center;gap:.45rem;padding:.55rem 1rem;font-size:.8rem;font-weight:650;text-decoration:none;transition:transform .22s,background-color .16s,box-shadow .16s;display:inline-flex;transform:translateY(6px)}.project-detail-cover:hover .project-hover-btn,.project-image-wrap:hover .project-hover-btn{transform:translateY(0)}.project-hover-btn-primary{background:var(--primary);color:var(--primary-ink);border:1px solid var(--primary-strong);box-shadow:0 8px 24px #00000073}.project-hover-btn-primary:hover{background:var(--primary-strong);transform:scale(1.04)}.project-card-body{padding:clamp(1.15rem,3.5vw,1.55rem)}.project-eyebrow{font-size:.58rem}.project-title{color:var(--foreground);letter-spacing:-.04em;font-size:1.5rem;font-weight:670;line-height:1.1}.project-subtitle{color:var(--primary);font-family:var(--mono);font-size:.68rem;line-height:1.4}.project-icon{border:1px solid var(--border);width:2rem;height:2rem;color:var(--primary);border-radius:.5rem;flex:none;place-items:center;display:grid}.project-description{color:var(--foreground-soft);font-size:.89rem;line-height:1.72}.micro-label{color:var(--foreground-faint);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.61rem;font-weight:700}.architecture-diagram{border:1px solid var(--border);background:var(--card-muted);border-radius:.6rem;margin-top:.65rem;padding:.8rem}.architecture-name{color:var(--foreground);font-family:var(--mono);font-size:.72rem;font-weight:650}.architecture-description{color:var(--foreground-soft);margin-top:.38rem;font-size:.77rem;line-height:1.5}.architecture-flow{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.75rem;display:flex}.architecture-flow li{color:var(--foreground-soft);font-family:var(--mono);align-items:center;gap:.45rem;font-size:.6rem;line-height:1.4;display:inline-flex}.architecture-flow li>span{border:1px solid var(--border);background:var(--card);border-radius:.25rem;padding:.3rem .4rem}.architecture-flow i{background:var(--primary);opacity:.7;width:.95rem;height:1px;display:block}.text-link{color:var(--primary);align-items:center;gap:.32rem;font-size:.78rem;font-weight:650;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--primary-strong);text-underline-offset:.22rem;text-decoration:underline}.approach-card{border-radius:.72rem;min-height:15.5rem;padding:1.35rem}.approach-card-top{color:var(--primary);justify-content:space-between;align-items:center;display:flex}.approach-index{color:var(--foreground-faint);font-family:var(--mono);font-size:.64rem}.approach-card h3{margin-top:2rem}.education-card{border-radius:.68rem;gap:.85rem;padding:1.2rem;display:flex}.education-icon{color:var(--primary);flex:none}.education-card>div>p{color:var(--foreground-soft);margin-top:.4rem;font-size:.88rem;line-height:1.5}.education-meta{color:var(--foreground-faint);font-family:var(--mono);flex-wrap:wrap;gap:.55rem 1rem;margin-top:.8rem;font-size:.65rem;display:flex}.education-meta span{align-items:center;gap:.3rem;display:inline-flex}.language-card{border-radius:.75rem;min-height:14rem;padding:1.5rem}.language-card>svg{color:var(--primary)}.language-card h3{margin-top:1.8rem}.language-card ul{flex-wrap:wrap;gap:.55rem;margin-top:1rem;display:flex}.language-card li{border:1px solid var(--border);color:var(--foreground-soft);font-family:var(--mono);border-radius:999px;padding:.42rem .7rem;font-size:.68rem}.focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.focus-grid li{border:1px solid var(--border);background:var(--card);min-height:4.8rem;color:var(--foreground);border-radius:.6rem;align-items:center;gap:.85rem;padding:.9rem;font-size:.86rem;font-weight:550;line-height:1.35;transition:border-color .18s,transform .18s;display:flex}.focus-grid li:hover{border-color:var(--border-strong);transform:translateY(-2px)}.focus-grid span{color:var(--primary);font-family:var(--mono);font-size:.63rem}.contact-section{padding:0 0 clamp(4.5rem,9vw,8rem);scroll-margin-top:4rem}.contact-panel{border:1px solid var(--border-strong);background:var(--card-solid);border-radius:.9rem;flex-direction:column;justify-content:space-between;padding:clamp(1.5rem,5vw,3.5rem);display:flex;position:relative;overflow:hidden}.contact-panel:before{border:1px solid var(--border);width:20rem;height:20rem;box-shadow:inset 0 0 0 3rem var(--glow);content:"";border-radius:50%;position:absolute;top:-8rem;right:-8rem}.contact-title{color:var(--foreground);letter-spacing:-.06em;font-size:clamp(2.2rem,5vw,3.7rem);font-weight:650;line-height:1}.contact-message{color:var(--foreground-soft);font-size:1rem;line-height:1.75}.contact-social{border:1px solid var(--border);background:var(--card);color:var(--foreground-soft);font-family:var(--mono);border-radius:.5rem;align-items:center;gap:.6rem;padding:.73rem .8rem;font-size:.7rem;text-decoration:none;transition:color .16s,border-color .16s,background-color .16s;display:flex}a.contact-social:hover{border-color:var(--border-strong);background:var(--background-elevated);color:var(--primary)}.contact-social-disabled{opacity:.52}.site-footer{border-top:1px solid var(--border);background:var(--background-elevated)}.footer-name{color:var(--foreground);font-family:var(--mono);letter-spacing:.1em;font-size:.77rem;font-weight:700}.footer-role{font-size:.72rem}.footer-role,.footer-social{color:var(--foreground-faint)}.footer-social{font-family:var(--mono);align-items:center;gap:.35rem;font-size:.66rem;text-decoration:none;display:inline-flex}.footer-social:hover{color:var(--primary)}.project-detail-page{background:var(--background);min-height:80vh}.back-link{color:var(--foreground-soft);align-items:center;gap:.45rem;font-size:.8rem;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--primary)}.project-detail-hero{max-width:52rem;padding:clamp(3.5rem,8vw,6.5rem) 0 2.5rem}.project-detail-hero h1{color:var(--foreground);letter-spacing:-.065em;margin-top:.8rem;font-size:clamp(3rem,7vw,5.6rem);font-weight:660;line-height:1}.project-detail-hero>p:last-of-type{color:var(--foreground-soft);margin-top:1.3rem;font-size:clamp(1rem,2vw,1.2rem);line-height:1.75}.project-detail-cover{aspect-ratio:16/7;border:1px solid var(--border);background:var(--card-muted);border-radius:.82rem;position:relative;overflow:hidden}.project-detail-grid{gap:3rem;padding-top:clamp(3rem,7vw,6rem);display:grid}.project-detail-copy{max-width:48rem}.project-detail-section+.project-detail-section{margin-top:3.7rem}.project-detail-section h2{color:var(--foreground);letter-spacing:-.04em;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:650}.project-detail-section>p{color:var(--foreground-soft);margin-top:1rem;line-height:1.8}.detail-feature-list{gap:.5rem;margin-top:1.15rem;display:grid}.detail-feature-list li{color:var(--foreground-soft);padding-left:1rem;font-size:.92rem;line-height:1.6;position:relative}.detail-feature-list li:before{background:var(--primary);content:"";border-radius:50%;width:.3rem;height:.3rem;position:absolute;top:.67rem;left:0}.project-detail-sidebar{border:1px solid var(--border);background:var(--card);border-radius:.7rem;height:fit-content;padding:1.25rem}.screenshot-grid{gap:1rem;margin-top:1.2rem;display:grid}.screenshot{border:1px solid var(--border);border-radius:.6rem;width:100%;height:auto}@media (min-width:1024px){.menu-toggle{display:none}.contact-panel{flex-direction:row;align-items:center}.project-detail-grid{grid-template-columns:minmax(0,1fr) 16rem;align-items:start}.project-detail-sidebar{position:sticky;top:6rem}}@media (max-width:639px){.brand-name{display:none}.hero-section{background-size:2.2rem 2.2rem}.code-card-footer{gap:1rem;font-size:.52rem}.focus-grid{grid-template-columns:1fr}.project-detail-cover{aspect-ratio:4/3}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}