@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap";@layer components;@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-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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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,ui-sans-serif, system-ui, 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;-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{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}}@layer utilities{.end{inset-inline-end:var(--spacing)}.table{display:table}.grow{flex-grow:1}.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{font-family:DM Sans,sans-serif;font-size:17px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{cursor:auto;margin:0}button,a,[role=button],.project-card{cursor:pointer}button,a{font:inherit}.theme-sunset{--bg:#160f18;--surface:#241927;--card:#2c1d2a;--text:#fff7f2;--muted:#c9b8bf;--line:#5b3947;--accent:#f97316;--accent2:#db2777;--accent-contrast:#160f18}.theme-light{--bg:#f7f4ed;--surface:#eee8dd;--card:#fffdf8;--text:#090909;--muted:#292929;--line:#958f85;--accent:#b74316;--accent2:#71314f;--accent-contrast:#fffdf8}main{background:var(--bg);color:var(--text);min-height:100vh;transition:background .3s,color .3s}header{border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;height:76px;padding:0 6vw;display:flex;position:relative}.logo{color:var(--text);background:0;border:0;font:500 1.3rem DM Mono,monospace;text-decoration:none}.logo span{color:var(--accent)}nav{gap:26px;display:flex}nav a{color:var(--muted);font:.74rem DM Mono,monospace;text-decoration:none}nav a:hover{color:var(--accent)}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--text);border-radius:50%;font-size:1.1rem}.theme-toggle:hover{border-color:var(--accent);box-shadow:0 0 18px var(--accent)}@supports (color:color-mix(in lab, red, red)){.theme-toggle:hover{box-shadow:0 0 18px color-mix(in srgb,var(--accent) 30%,transparent)}}.hero{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:6vw;max-width:1280px;margin:auto;padding:92px 6vw;display:grid}.eyebrow,.section-kicker,.section-head>p{color:var(--accent);letter-spacing:1.5px;font:.68rem DM Mono,monospace}.hero h1{margin:26px 0;font:400 clamp(44px,4.5vw,64px)/1 Instrument Serif,serif}.hero h1 em{color:var(--accent);font-weight:400}.lead{color:var(--muted);max-width:560px;font-size:1.05rem;line-height:1.75}.actions{gap:12px;margin:30px 0 22px;display:flex}.actions a{border:1px solid var(--line);color:var(--text);padding:14px 17px;font:.7rem DM Mono,monospace;text-decoration:none}.actions a:hover{color:var(--accent);border-color:var(--accent)}.hero>div>small{color:var(--muted);font:.68rem DM Mono,monospace}.pipeline{padding-bottom:60px;position:relative}.pipeline svg{width:100%;display:block;overflow:visible}.pipeline defs path{fill:none}.lane-labels text{fill:var(--muted);letter-spacing:1.5px;text-anchor:middle;font:9px DM Mono,monospace}.path-lines path{fill:none;stroke:var(--line);stroke-width:1.2px}.node rect{fill:var(--surface);stroke:var(--line)}.node text{fill:var(--text);text-anchor:middle;font:500 11px DM Mono,monospace}.packet{fill:var(--accent)}.p3,.p4{fill:var(--accent2)}.terminal{border:1px solid var(--line);background:var(--surface);color:var(--muted);padding:17px;font:.72rem DM Mono,monospace;position:absolute;bottom:0;left:0;right:0}.terminal span{color:var(--accent);margin-right:9px}.terminal b{color:var(--text)}.terminal i{background:var(--accent);vertical-align:middle;width:2px;height:14px;margin-left:3px;animation:.9s infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.about{grid-template-columns:280px 1fr;align-items:center;gap:8vw;max-width:1100px;margin:auto;padding:112px 6vw;display:grid}.about img{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:50%;width:235px}.about small{color:var(--muted);margin-top:16px;font:.63rem DM Mono,monospace;display:block}.about h2,.section-head h2{margin:0;font:400 2.15rem Instrument Serif,serif}.about>div:last-child p{color:var(--muted);font-size:1rem;line-height:1.85}.skills,.projects,.contact,.architecture,.project-visuals{max-width:1320px;margin:auto;padding:98px 6vw}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:42px;display:flex}.section-head h2{font-size:1.7rem}.skill-grid,.project-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.skill-card,.project-card{background:var(--card);border:1px solid var(--line);border-radius:5px;min-height:300px;padding:29px;transition:transform .28s,box-shadow .28s,border-color .28s;position:relative}.skill-card:hover,.project-card:hover,.project-card:focus-visible{border-color:var(--accent);box-shadow:0 18px 38px var(--accent);transform:translateY(-8px)}@supports (color:color-mix(in lab, red, red)){.skill-card:hover,.project-card:hover,.project-card:focus-visible{box-shadow:0 18px 38px color-mix(in srgb,var(--accent) 22%,transparent)}}.skill-card>span{color:var(--accent);font:.66rem DM Mono,monospace;position:absolute;top:22px;right:22px}.skill-card h3,.project-card h3{margin:6px 0 12px;font:400 1.72rem/1.12 Instrument Serif,serif}.skill-card>p,.project-card>p{color:var(--muted);font-size:.9rem;line-height:1.72}.skill-card>small,.project-card>small{color:var(--accent);letter-spacing:1px;margin:18px 0 8px;font:.63rem DM Mono,monospace;display:block}.skill-card>div,.project-card>div,.case-tools{flex-wrap:wrap;gap:7px;display:flex}.skill-card b,.project-card b,.case-tools b{border:1px solid var(--line);padding:7px 9px;font:500 .68rem DM Mono,monospace}.skill-card .secondary b{color:var(--muted)}.projects{background:var(--surface);max-width:none}.projects>.section-head,.projects>.project-grid{max-width:1160px;margin-left:auto;margin-right:auto}.project-card{min-height:350px;color:var(--text);flex-direction:column;text-decoration:none;display:flex}.project-card p{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card>div{margin-top:auto;padding-top:20px}.card-action{color:var(--accent);margin-top:20px;font:.68rem DM Mono,monospace}.contact{padding-bottom:125px}.contact-grid{grid-template-columns:1fr 1fr 1.15fr;gap:20px;display:grid}.contact-grid article{border:1px solid var(--line);background:var(--card);flex-direction:column;justify-content:center;min-height:132px;padding:26px;display:flex}.contact-grid small{color:var(--accent);letter-spacing:1px;margin-bottom:12px;font:.63rem DM Mono,monospace}.contact-grid article>a,.contact-grid article>b{color:var(--text);font-size:1rem;font-weight:700;text-decoration:none}.contact-grid article>a:hover{color:var(--accent)}.cv-card{align-items:center;flex-direction:row!important;justify-content:space-between!important}.cv-card div{flex-direction:column;display:flex}.cv-card>a{border:1px solid var(--accent);place-items:center;width:50px;height:50px;margin-left:auto;display:grid;color:var(--accent)!important;font-size:1.4rem!important}.case-study{padding-bottom:80px}.case-hero{max-width:1060px;margin:auto;padding:85px 6vw 75px}.back-link{color:var(--muted);margin-bottom:54px;font:.68rem DM Mono,monospace;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.case-hero h1{max-width:850px;margin:22px 0;font:400 clamp(46px,6vw,76px)/1.02 Instrument Serif,serif}.case-intro{max-width:760px;color:var(--muted);font-size:1.22rem;line-height:1.7}.case-tools{margin-top:30px}.case-overview{background:var(--surface);grid-template-columns:1fr 1fr;gap:7vw;padding:78px max(6vw,50vw - 530px);display:grid}.case-overview small{color:var(--accent);letter-spacing:1px;font:.65rem DM Mono,monospace}.case-overview h2,.contributions h2,.case-footer h2{margin:14px 0;font:400 2rem Instrument Serif,serif}.case-overview p{color:var(--muted);font-size:1rem;line-height:1.8}.architecture,.project-visuals{max-width:1160px}.architecture-flow{border:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid}.architecture-stage{border-right:1px solid var(--line);min-height:210px;padding:26px 22px;position:relative}.architecture-stage:last-child{border:0}.architecture-stage:not(:last-child):after{content:"→";z-index:1;color:var(--accent);background:var(--bg);padding:2px;position:absolute;top:48%;right:-10px}.architecture-stage>span{color:var(--accent);font:.63rem DM Mono,monospace}.architecture-stage h3{margin:35px 0 10px;font:400 1.32rem Instrument Serif,serif}.architecture-stage p{color:var(--muted);font-size:.79rem;line-height:1.6}.project-visuals{padding-top:45px}.visual-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.visual-grid figure{margin:0}.visual-frame{border:1px solid var(--line);background:linear-gradient(135deg,var(--card),var(--surface));height:310px;padding:25px;position:relative;overflow:hidden}.visual-frame>span{color:var(--accent);letter-spacing:1px;font:.65rem DM Mono,monospace}.visual-lines{border-left:1px solid var(--line);border-bottom:1px solid var(--line);align-items:flex-end;gap:12px;padding:0 12px;display:flex;position:absolute;inset:80px 30px 35px}.visual-lines i{background:linear-gradient(var(--accent),var(--accent2));opacity:.7;flex:1;height:38%;display:block}.visual-lines i:nth-child(2){height:68%}.visual-lines i:nth-child(3){height:51%}.visual-lines i:nth-child(4){height:86%}.visual-lines i:nth-child(5){height:72%}.visual-frame-2 .visual-lines{border:0;align-items:center}.visual-frame-2 .visual-lines i{border-radius:3px;height:6px!important}.visual-frame-2 .visual-lines i:nth-child(2n){transform:translateY(50px)}.visual-grid figcaption{color:var(--muted);padding:14px 4px;font-size:.84rem;line-height:1.6}.contributions{border-top:1px solid var(--line);grid-template-columns:1fr 1.5fr;gap:8vw;max-width:1060px;margin:30px auto 0;padding:80px 6vw;display:grid}.contributions ol{margin:0;padding:0;list-style:none}.contributions li{border-top:1px solid var(--line);grid-template-columns:44px 1fr;padding:20px 0;display:grid}.contributions li>span{color:var(--accent);font:.65rem DM Mono,monospace}.contributions li p{color:var(--muted);margin:0;line-height:1.65}.case-footer{border:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;max-width:1060px;margin:auto;padding:70px 6vw;display:flex}.case-footer>div:last-child{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.case-footer a{color:var(--text);border-bottom:1px solid var(--line);padding-bottom:7px;font:.68rem DM Mono,monospace;text-decoration:none}.case-footer a:hover{color:var(--accent);border-color:var(--accent)}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light p,.theme-light a,.theme-light b,.theme-light span{color:var(--text)}.theme-light .eyebrow,.theme-light .section-head>p,.theme-light .section-kicker,.theme-light .skill-card>span,.theme-light .skill-card>small,.theme-light .project-card>small,.theme-light .card-action,.theme-light .architecture-stage>span,.theme-light .case-overview small{color:var(--accent)}@media (width<=900px){nav{display:none}.hero,.about,.case-overview,.contributions{grid-template-columns:1fr}.hero{padding-top:65px}.skill-grid,.project-grid,.contact-grid,.visual-grid{grid-template-columns:1fr}.section-head{display:block}.section-head h2{margin-top:12px}.about img{width:210px}.architecture-flow{grid-template-columns:1fr}.architecture-stage{border-right:0;border-bottom:1px solid var(--line);min-height:0}.architecture-stage:not(:last-child):after{content:"↓";top:auto;bottom:-11px;right:50%}.case-footer{flex-direction:column;align-items:flex-start;margin-left:6vw;margin-right:6vw}.case-footer>div:last-child{align-items:flex-start}.visual-frame{height:250px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}nav{align-items:center}.social-links{align-items:center;gap:12px;display:flex}.social-links>a{align-items:center;gap:6px;display:flex}.social-links>a>span{border:1px solid var(--line);width:22px;height:22px;color:var(--text);border-radius:50%;place-items:center;font:500 .58rem DM Mono,monospace;transition:border-color .3s,color .3s,background-color .3s;display:grid}.social-links>a:hover>span{color:var(--accent);border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.social-links>a:hover>span{background:color-mix(in srgb,var(--accent) 9%,transparent)}}.skill-card,.project-card{cursor:pointer;transition:transform .3s,box-shadow .3s,border-color .3s,background-color .3s,color .3s}.skill-card:hover,.project-card:hover,.project-card:focus-visible{border-color:var(--accent);background:var(--card);transform:translateY(-6px)}@supports (color:color-mix(in lab, red, red)){.skill-card:hover,.project-card:hover,.project-card:focus-visible{background:color-mix(in srgb,var(--card) 91%,var(--accent))}}.skill-card:hover,.project-card:hover,.project-card:focus-visible{box-shadow:0 16px 34px var(--accent)}@supports (color:color-mix(in lab, red, red)){.skill-card:hover,.project-card:hover,.project-card:focus-visible{box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 18%,transparent)}}.contact-card{border:1px solid var(--line);background:var(--card);min-height:132px;color:var(--text);cursor:pointer;flex-direction:column;justify-content:center;padding:26px;text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s,background-color .3s,color .3s;display:flex}.contact-card:hover,.contact-card:focus-visible{border-color:var(--accent);background:var(--card);transform:translateY(-6px)}@supports (color:color-mix(in lab, red, red)){.contact-card:hover,.contact-card:focus-visible{background:color-mix(in srgb,var(--card) 91%,var(--accent))}}.contact-card:hover,.contact-card:focus-visible{box-shadow:0 16px 34px var(--accent)}@supports (color:color-mix(in lab, red, red)){.contact-card:hover,.contact-card:focus-visible{box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 18%,transparent)}}.contact-card>b{color:var(--text);font-size:1rem;font-weight:700}.contact-card:hover>b{color:var(--accent)}.contact-card.cv-card{align-items:center;flex-direction:row!important;justify-content:space-between!important}.contact-card.cv-card div{flex-direction:column;display:flex}.contact-card.cv-card div b{font-size:1rem}.contact-card.cv-card>span{border:1px solid var(--accent);place-items:center;width:50px;height:50px;margin-left:auto;display:grid;color:var(--accent)!important;font-size:1.4rem!important}.contact-card.cv-card:hover>span,.contact-card.cv-card:focus-visible>span{background:var(--accent);border-color:var(--accent);box-shadow:0 10px 22px var(--accent);transform:translateY(-2px)scale(1.05);color:var(--accent-contrast)!important}@supports (color:color-mix(in lab, red, red)){.contact-card.cv-card:hover>span,.contact-card.cv-card:focus-visible>span{box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 32%,transparent)}}.actions a{transform-origin:50%;justify-content:center;align-items:center;transition:transform .3s ease-in-out,background-color .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out;display:inline-flex}.actions a:hover,.actions a:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:0 14px 28px var(--accent);font-weight:700;transform:translateY(-5px)scale(1.03)}@supports (color:color-mix(in lab, red, red)){.actions a:hover,.actions a:focus-visible{box-shadow:0 14px 28px color-mix(in srgb,var(--accent) 30%,transparent)}}.actions a:hover,.actions a:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){.actions a:hover,.actions a:focus-visible{transform:none}}nav a{transform-origin:50%;border:1px solid #0000;justify-content:center;align-items:center;padding:8px 10px;transition:transform .3s ease-in-out,background-color .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out;display:inline-flex}nav a:hover,nav a:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:0 12px 24px var(--accent);font-weight:700;transform:translateY(-5px)scale(1.03)}@supports (color:color-mix(in lab, red, red)){nav a:hover,nav a:focus-visible{box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 26%,transparent)}}nav a:hover,nav a:focus-visible{outline:none}.theme-toggle{transform-origin:50%;transition:transform .3s ease-in-out,background-color .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out}.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:0 12px 24px var(--accent);font-weight:700;transform:translateY(-5px)scale(1.03)}@supports (color:color-mix(in lab, red, red)){.theme-toggle:hover,.theme-toggle:focus-visible{box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 26%,transparent)}}.theme-toggle:hover,.theme-toggle:focus-visible{outline:none}.skill-card b,.project-card b,.case-tools b{cursor:pointer;transform-origin:50%;justify-content:center;align-items:center;transition:transform .3s ease-in-out,background-color .3s ease-in-out,color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out;display:inline-flex}.skill-card b:hover,.skill-card b:focus-visible,.project-card b:hover,.project-card b:focus-visible,.case-tools b:hover,.case-tools b:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:0 12px 24px var(--accent);font-weight:700;transform:translateY(-5px)scale(1.03)}@supports (color:color-mix(in lab, red, red)){.skill-card b:hover,.skill-card b:focus-visible,.project-card b:hover,.project-card b:focus-visible,.case-tools b:hover,.case-tools b:focus-visible{box-shadow:0 12px 24px color-mix(in srgb,var(--accent) 26%,transparent)}}.skill-card b:hover,.skill-card b:focus-visible,.project-card b:hover,.project-card b:focus-visible,.case-tools b:hover,.case-tools b:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){nav a:hover,nav a:focus-visible,.theme-toggle:hover,.theme-toggle:focus-visible,.skill-card b:hover,.skill-card b:focus-visible,.project-card b:hover,.project-card b:focus-visible,.case-tools b:hover,.case-tools b:focus-visible{transform:none}}:root{--radius-card:14px;--radius-control:9px;--radius-tag:7px}.skill-card,.project-card,.contact-card,.principle-card,.visual-frame,.case-footer,.terminal,.approach-standard{border-radius:var(--radius-card)}.actions a,nav a,.skill-card b,.project-card b,.case-tools b,.contact-card.cv-card>span,.case-footer a{border-radius:var(--radius-control)}.architecture-flow,.approach-route{border-radius:var(--radius-card);overflow:hidden}.architecture-stage:first-child{border-top-left-radius:var(--radius-control);border-bottom-left-radius:var(--radius-control)}.architecture-stage:last-child{border-top-right-radius:var(--radius-control);border-bottom-right-radius:var(--radius-control)}.approach-route>div:first-child{border-top-left-radius:var(--radius-control);border-bottom-left-radius:var(--radius-control)}.approach-route>div:last-child{border-top-right-radius:var(--radius-control);border-bottom-right-radius:var(--radius-control)}.theme-toggle{border-radius:50%}.deferred-section[aria-busy=true]{min-height:inherit;place-items:center;display:grid}.section-loader{color:var(--muted);letter-spacing:1px;align-items:center;gap:10px;font:.66rem DM Mono,monospace;display:flex}.section-loader i{background:var(--accent);width:8px;height:8px;box-shadow:0 0 14px var(--accent);border-radius:50%;animation:1.1s ease-in-out infinite loaderPulse}@keyframes loaderPulse{50%{opacity:.4;transform:scale(1.7)}}.project-impact{border-top:1px solid var(--line);align-items:baseline!important;gap:9px!important;margin-top:14px!important;padding:11px 0 0!important;display:flex!important}.project-impact b{color:var(--accent)!important;border:0!important;padding:0!important;font-size:.76rem!important}.project-impact span{color:var(--muted);font:.68rem DM Mono,monospace}.outcome-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px;display:grid}.outcome-grid>div{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--card);min-height:78px;padding:14px}.outcome-grid strong{color:var(--accent);font:500 1rem DM Mono,monospace;display:block}.outcome-grid span{color:var(--muted);margin-top:6px;font-size:.72rem;line-height:1.45;display:block}.preview-flow{align-items:stretch;gap:0;display:flex;position:absolute;inset:74px 25px 28px}.preview-flow-item{border:1px solid var(--line);background:var(--surface);flex:1;min-width:0;padding:16px 13px;position:relative}@supports (color:color-mix(in lab, red, red)){.preview-flow-item{background:color-mix(in srgb,var(--surface) 80%,transparent)}}.preview-flow-item:first-child{border-radius:var(--radius-tag) 0 0 var(--radius-tag)}.preview-flow-item:last-child{border-radius:0 var(--radius-tag) var(--radius-tag) 0}.preview-flow-item b{color:var(--text);font:500 .68rem/1.5 DM Mono,monospace;display:block}.preview-flow-item small{color:var(--muted);margin-top:10px;font-size:.68rem;line-height:1.45;display:block}.preview-flow-item:not(:last-child):after{content:"";z-index:1;background:var(--accent);width:1px;height:34px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.preview-flow-item i{z-index:2;background:var(--accent);width:10px;height:10px;box-shadow:0 0 13px var(--accent);border-radius:50%;animation:2.8s ease-in-out infinite previewPacket;position:absolute;top:calc(50% - 5px);right:-5px}@keyframes previewPacket{0%,to{opacity:.3;transform:translate(-5px)}50%{opacity:1;transform:translate(6px)}}.output-list{gap:12px;display:grid;position:absolute;inset:78px 28px 28px}.output-list>div{border:1px solid var(--line);border-radius:var(--radius-tag);background:var(--surface);padding:14px 44px 14px 15px;position:relative}@supports (color:color-mix(in lab, red, red)){.output-list>div{background:color-mix(in srgb,var(--surface) 80%,transparent)}}.output-list b{color:var(--text);font:500 .88rem DM Mono,monospace;display:block}.output-list small{color:var(--muted);margin-top:5px;font-size:.7rem;display:block}.status-dot{background:var(--accent);width:9px;height:9px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:2.1s ease-in-out infinite statusSignal;position:absolute;top:50%;right:17px}.status-2{animation-delay:.45s}.status-3{animation-delay:.9s}@keyframes statusSignal{50%{opacity:.45;transform:scale(1.55)}}.live-architecture .architecture-stage{animation:7s ease-in-out infinite stageSignal}.live-architecture .architecture-stage:nth-child(2){animation-delay:1.1s}.live-architecture .architecture-stage:nth-child(3){animation-delay:2.2s}.live-architecture .architecture-stage:nth-child(4){animation-delay:3.3s}.live-architecture .architecture-stage:nth-child(5){animation-delay:4.4s}.live-architecture .architecture-stage:not(:last-child):after{animation:2.4s ease-in-out infinite flowArrow}.live-architecture .architecture-stage:nth-child(2):after{animation-delay:.45s}.live-architecture .architecture-stage:nth-child(3):after{animation-delay:.9s}.live-architecture .architecture-stage:nth-child(4):after{animation-delay:1.35s}@keyframes stageSignal{0%,to{background:0 0}15%,35%{background:color-mix(in srgb,var(--accent) 10%,transparent)}}@keyframes flowArrow{0%,to{opacity:.25;transform:translate(-5px)}50%{opacity:1;transform:translate(5px)}}@media (width<=900px){.outcome-grid{grid-template-columns:1fr}.visual-grid-explained .visual-frame{height:400px}.preview-flow{flex-direction:column;inset:64px 22px 24px}.preview-flow-item{min-height:70px;padding:10px 14px}.preview-flow-item:first-child{border-radius:var(--radius-tag) var(--radius-tag) 0 0}.preview-flow-item:last-child{border-radius:0 0 var(--radius-tag) var(--radius-tag)}.preview-flow-item small{margin-top:3px}.preview-flow-item:not(:last-child):after{width:34px;height:1px;inset:auto auto -1px 50%;transform:translate(-50%)}.preview-flow-item i{top:auto;bottom:-5px;right:calc(50% - 5px)}.live-architecture .architecture-stage:not(:last-child):after{animation:none}}@media (prefers-reduced-motion:reduce){.section-loader i,.preview-flow-item i,.status-dot,.live-architecture .architecture-stage,.live-architecture .architecture-stage:not(:last-child):after{animation:none!important}}.visual-grid-explained .visual-frame{height:370px}.preview-flow{grid-template-columns:1fr;gap:8px;display:grid;inset:72px 26px 28px}.preview-flow-item{flex:none;grid-template-columns:minmax(105px,.9fr) 1.6fr;align-items:center;gap:16px;min-height:54px;padding:12px 16px;display:grid;border-radius:var(--radius-tag)!important}.preview-flow-item b{line-height:1.35}.preview-flow-item small{margin:0;line-height:1.45}.preview-flow-item:not(:last-child):after{width:1px;height:9px;inset:auto auto -9px 26px;transform:none}.preview-flow-item i{animation:2.5s ease-in-out infinite previewPacketVertical;inset:auto auto -5px 22px}.preview-flow-item:nth-child(2) i{animation-delay:.55s}.preview-flow-item:nth-child(3) i{animation-delay:1.1s}@keyframes previewPacketVertical{0%,to{opacity:.3;transform:translateY(-4px)}50%{opacity:1;transform:translateY(5px)}}@media (width<=900px){.visual-grid-explained .visual-frame{height:390px}.preview-flow{inset:66px 20px 24px}.preview-flow-item{grid-template-columns:minmax(92px,.85fr) 1.45fr;gap:10px;padding:10px 12px}.preview-flow-item i{bottom:-5px;left:22px;right:auto}}.architecture-approach{border-bottom:1px solid var(--line);max-width:1320px;margin:auto;padding:108px 6vw}.approach-intro{grid-template-columns:.9fr 1.1fr;align-items:end;gap:9vw;margin-bottom:52px;display:grid}.approach-intro h2{max-width:500px;margin:16px 0 0;font:400 2.55rem/1.08 Instrument Serif,serif}.approach-intro>p{max-width:610px;color:var(--muted);margin:0;font-size:1rem;line-height:1.8}.approach-route{border:1px solid var(--line);background:var(--surface);align-items:stretch;margin-bottom:22px;display:flex}.approach-route>div{flex-direction:column;flex:1;gap:10px;min-width:0;padding:24px 20px;transition:background-color .3s,color .3s;display:flex}.approach-route>div:hover{background:var(--card)}@supports (color:color-mix(in lab, red, red)){.approach-route>div:hover{background:color-mix(in srgb,var(--card) 90%,var(--accent))}}.approach-route>div span{color:var(--accent);font:.62rem DM Mono,monospace}.approach-route>div b{letter-spacing:.6px;font:500 .72rem DM Mono,monospace}.approach-route>div small{color:var(--muted);letter-spacing:.7px;font:.58rem DM Mono,monospace}.approach-route>i{width:34px;color:var(--accent);border-left:1px solid var(--line);border-right:1px solid var(--line);place-items:center;font-style:normal;display:grid}.principle-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.principle-card{background:var(--card);border:1px solid var(--line);cursor:pointer;min-height:260px;padding:28px 24px;transition:transform .3s ease-in-out,background-color .3s ease-in-out,border-color .3s ease-in-out,box-shadow .3s ease-in-out;position:relative}.principle-card:hover{z-index:2;border-color:var(--accent);background:var(--card);transform:translateY(-6px)scale(1.02)}@supports (color:color-mix(in lab, red, red)){.principle-card:hover{background:color-mix(in srgb,var(--card) 90%,var(--accent))}}.principle-card:hover{box-shadow:0 16px 34px var(--accent)}@supports (color:color-mix(in lab, red, red)){.principle-card:hover{box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 18%,transparent)}}.principle-card>span{color:var(--accent);font:.64rem DM Mono,monospace;position:absolute;top:22px;right:22px}.principle-card>small{max-width:75%;color:var(--accent);letter-spacing:1px;font:.58rem DM Mono,monospace;display:block}.principle-card h3{margin:50px 0 12px;font:400 1.52rem/1.12 Instrument Serif,serif}.principle-card p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.7}.approach-standard{border:1px solid var(--line);grid-template-columns:.65fr 1.25fr 1.1fr;align-items:center;gap:30px;margin-top:22px;padding:25px 28px;display:grid}.approach-standard p{color:var(--accent);letter-spacing:1px;margin:0;font:.62rem DM Mono,monospace}.approach-standard strong{font:400 1.45rem Instrument Serif,serif}.approach-standard>span{color:var(--muted);font-size:.82rem;line-height:1.6}@media (width<=900px){.architecture-approach{padding-top:82px;padding-bottom:82px}.approach-intro{grid-template-columns:1fr;gap:24px}.approach-route{grid-template-columns:1fr;display:grid}.approach-route>i{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:auto;height:28px}.principle-grid{grid-template-columns:1fr}.principle-card{min-height:220px}.approach-standard{grid-template-columns:1fr;gap:12px}}html{scroll-snap-type:none}.hero,.about,.skills,.projects,.architecture-approach,.contact{min-height:calc(100svh - 76px)}.hero,.about,.contact{align-content:center}.skills,.projects,.architecture-approach{display:block}@media (width<=900px){.hero,.about,.skills,.projects,.architecture-approach,.contact{min-height:auto}}.about-journey{border-top:1px solid var(--line);max-width:690px;padding-top:20px;margin:22px 0 0!important;font-size:.91rem!important;line-height:1.72!important}.about-highlights{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;padding-top:22px;display:grid}.about-highlights>div{flex-direction:column;gap:6px;min-width:0;display:flex}.about-highlights strong{color:var(--text);font:400 1.35rem Instrument Serif,serif}.about-highlights span{color:var(--muted);font:.62rem/1.45 DM Mono,monospace}.contact{padding-top:70px;padding-bottom:70px;min-height:min(70svh,620px)!important}.contact-grid{grid-template-columns:repeat(3,1fr)}.contact-grid .contact-card{min-height:112px;padding:22px}.contact-grid .cv-card{grid-column:span 2}@media (width<=900px){.about-highlights{grid-template-columns:1fr;gap:15px}.contact{padding-top:70px;padding-bottom:70px;min-height:auto!important}.contact-grid .cv-card{grid-column:auto}}@media (width>=901px){.deferred-section.is-loaded{will-change:opacity,transform;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.deferred-section.is-loaded:not(.is-visible){opacity:.04;pointer-events:none;transform:translateY(34px)scale(.985)}.deferred-section.is-loaded.is-visible{opacity:1;transform:none}.deferred-section.is-loaded>.section-head,.deferred-section.is-loaded>.skill-grid,.deferred-section.is-loaded>.project-grid,.deferred-section.is-loaded>.approach-intro,.deferred-section.is-loaded>.approach-route,.deferred-section.is-loaded>.principle-grid,.deferred-section.is-loaded>.approach-standard,.deferred-section.is-loaded>.contact-grid{transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}.deferred-section.is-loaded:not(.is-visible)>.section-head,.deferred-section.is-loaded:not(.is-visible)>.skill-grid,.deferred-section.is-loaded:not(.is-visible)>.project-grid,.deferred-section.is-loaded:not(.is-visible)>.approach-intro,.deferred-section.is-loaded:not(.is-visible)>.approach-route,.deferred-section.is-loaded:not(.is-visible)>.principle-grid,.deferred-section.is-loaded:not(.is-visible)>.approach-standard,.deferred-section.is-loaded:not(.is-visible)>.contact-grid{opacity:0;transform:translateY(22px)}.deferred-section.is-loaded.is-visible>.skill-grid>.skill-card,.deferred-section.is-loaded.is-visible>.project-grid>.project-card,.deferred-section.is-loaded.is-visible>.contact-grid>.contact-card,.deferred-section.is-loaded.is-visible>.principle-grid>.principle-card{animation:.55s cubic-bezier(.16,1,.3,1) both scrollCardIn}.deferred-section.is-loaded.is-visible>.skill-grid>:nth-child(2),.deferred-section.is-loaded.is-visible>.project-grid>:nth-child(2),.deferred-section.is-loaded.is-visible>.contact-grid>:nth-child(2),.deferred-section.is-loaded.is-visible>.principle-grid>:nth-child(2){animation-delay:70ms}.deferred-section.is-loaded.is-visible>.skill-grid>:nth-child(3),.deferred-section.is-loaded.is-visible>.project-grid>:nth-child(3),.deferred-section.is-loaded.is-visible>.contact-grid>:nth-child(3),.deferred-section.is-loaded.is-visible>.principle-grid>:nth-child(3){animation-delay:.14s}.deferred-section.is-loaded.is-visible>.skill-grid>:nth-child(n+4),.deferred-section.is-loaded.is-visible>.project-grid>:nth-child(n+4),.deferred-section.is-loaded.is-visible>.contact-grid>:nth-child(n+4),.deferred-section.is-loaded.is-visible>.principle-grid>:nth-child(n+4){animation-delay:.21s}}@keyframes scrollCardIn{0%{opacity:0;transform:translateY(22px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.deferred-section.is-loaded,.deferred-section.is-loaded:not(.is-visible),.deferred-section.is-loaded>.section-head,.deferred-section.is-loaded>.skill-grid,.deferred-section.is-loaded>.project-grid,.deferred-section.is-loaded>.approach-intro,.deferred-section.is-loaded>.approach-route,.deferred-section.is-loaded>.principle-grid,.deferred-section.is-loaded>.approach-standard,.deferred-section.is-loaded>.contact-grid{opacity:1!important;transition:none!important;transform:none!important}.deferred-section.is-loaded.is-visible>.skill-grid>.skill-card,.deferred-section.is-loaded.is-visible>.project-grid>.project-card,.deferred-section.is-loaded.is-visible>.contact-grid>.contact-card,.deferred-section.is-loaded.is-visible>.principle-grid>.principle-card{animation:none!important}}@media (width>=901px){.hero,.about{opacity:.04;will-change:opacity,transform;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(34px)scale(.985)}.hero.is-visible,.about.is-visible{opacity:1;transform:none}.hero.is-visible>div,.about.is-visible>div{animation:.65s cubic-bezier(.16,1,.3,1) both scrollCardIn}.hero.is-visible>div:nth-child(2),.about.is-visible>div:nth-child(2){animation-delay:.1s}}@media (prefers-reduced-motion:reduce){.hero,.about{opacity:1!important;transition:none!important;transform:none!important}.hero.is-visible>div,.about.is-visible>div{animation:none!important}}@media (width>=901px){.architecture-approach.is-visible .approach-route>div{animation:.58s cubic-bezier(.16,1,.3,1) both architectureStepIn}.architecture-approach.is-visible .approach-route>div:nth-child(3){animation-delay:.12s}.architecture-approach.is-visible .approach-route>div:nth-child(5){animation-delay:.24s}.architecture-approach.is-visible .approach-route>div:nth-child(7){animation-delay:.36s}.architecture-approach.is-visible .approach-route>i{animation:.38s ease-out both architectureArrowIn}.architecture-approach.is-visible .approach-route>i:nth-child(2){animation-delay:80ms}.architecture-approach.is-visible .approach-route>i:nth-child(4){animation-delay:.2s}.architecture-approach.is-visible .approach-route>i:nth-child(6){animation-delay:.32s}}@keyframes architectureStepIn{0%{opacity:0;background:color-mix(in srgb,var(--accent) 12%,transparent);transform:translate(-16px)}to{opacity:1;background:0 0;transform:none}}@keyframes architectureArrowIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.architecture-approach.is-visible .approach-route>div,.architecture-approach.is-visible .approach-route>i{animation:none!important}}.case-note{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--card);max-width:760px;margin:18px 0 0;padding:13px 16px}@supports (color:color-mix(in lab, red, red)){.case-note{background:color-mix(in srgb,var(--card) 88%,var(--accent))}}.case-note{color:var(--muted);font:.72rem/1.65 DM Mono,monospace}.case-features{border-bottom:1px solid var(--line);grid-template-columns:.8fr 1.2fr;gap:8vw;max-width:1060px;margin:0 auto;padding:78px 6vw;display:grid}.case-features h2{margin:14px 0 0;font:400 2rem Instrument Serif,serif}.case-features ul{margin:0;padding:0;list-style:none}.case-features li{border-top:1px solid var(--line);grid-template-columns:42px 1fr;gap:14px;padding:16px 0;display:grid}.case-features li:last-child{border-bottom:1px solid var(--line)}.case-features li span{color:var(--accent);font:.65rem DM Mono,monospace}.case-features li p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.65}@media (width<=900px){.case-features{grid-template-columns:1fr;gap:28px;padding-top:64px;padding-bottom:64px}}.theme-toggle{text-align:center;place-items:center;padding:0;line-height:1;display:inline-grid}@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}
