:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#111512;--ink:#edf1e8;--muted:#a1aaa0;--line:#303832;--accent:#69b9ff;--accent-rgb:105 185 255;--surface:#191f1b;--body-muted:#c0c8be;--display:"Manrope", sans-serif;--body:"DM Sans", sans-serif;--mono:"DM Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.page-wrap{width:min(1160px,100% - 96px);margin-inline:auto}.skip-link{z-index:10;background:var(--ink);color:var(--paper);padding:12px 16px;position:absolute;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#111512eb;border-bottom:1px solid #edf1e817;justify-content:space-between;align-items:center;height:76px;padding-inline:max(48px,50vw - 580px);display:flex;position:sticky;top:0}.brand,.site-nav,.nav-contact{align-items:center;display:flex}.brand{font-family:var(--mono);letter-spacing:.11em;gap:12px;font-size:10px}.brand-mark{background:var(--ink);width:34px;height:34px;color:var(--accent);font-family:var(--display);letter-spacing:-.1em;border-radius:50%;place-items:center;font-size:20px;font-weight:800;display:grid}.site-nav{gap:38px;font-size:13px}.site-nav a:not(.nav-contact){transition:opacity .18s}.site-nav a:not(.nav-contact):hover{opacity:.58}.nav-contact{border:1px solid var(--ink);border-radius:2px;gap:13px;padding:12px 16px;transition:background .18s,color .18s}.nav-contact:hover{background:var(--ink);color:var(--paper)}.nav-cv{color:var(--accent)}.cv-link{color:var(--accent);border-bottom-color:var(--accent);margin-left:22px}.chatbot{z-index:60;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:22px;right:22px}.chat-launcher{border:1px solid var(--accent);color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 10px 30px #00000080, 0 0 22px rgb(var(--accent-rgb) / 25%);background:#0b1117;border-radius:999px;align-items:center;gap:10px;padding:13px 20px;font-size:13px;display:inline-flex}.chat-launcher-dot{background:var(--accent);width:9px;height:9px;box-shadow:0 0 10px var(--accent);border-radius:50%}.chat-panel{border:1px solid var(--line);background:#0d1218;border-radius:14px;flex-direction:column;width:min(380px,100vw - 32px);height:min(540px,100vh - 110px);display:flex;overflow:hidden;box-shadow:0 24px 60px #0009}.chat-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chat-header div{gap:3px;display:grid}.chat-header span{color:var(--muted);font-family:var(--mono);font-size:10px}.chat-header button{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:22px}.chat-log{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.chat-msg{border-radius:12px;max-width:88%;padding:10px 13px;font-size:13px;line-height:1.5}.chat-msg p{white-space:pre-wrap;margin:0}.chat-assistant{background:#18212b;align-self:flex-start}.chat-user{background:var(--accent);color:#08131d;align-self:flex-end}.chat-msg code{color:var(--accent);font-family:var(--mono);margin-top:7px;font-size:10px;display:block}.chat-typing{gap:5px;display:flex}.chat-typing i{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite chat-dot}.chat-typing i:nth-child(2){animation-delay:.15s}.chat-typing i:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.25}40%{opacity:1}}.chat-suggestions{flex-wrap:wrap;gap:7px;padding:0 16px 12px;display:flex}.chat-suggestions button{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:7px 11px;font-size:11px}.chat-suggestions button:hover{border-color:var(--accent)}.chat-form{border-top:1px solid var(--line);gap:8px;padding:12px;display:flex}.chat-form input{border:1px solid var(--line);min-width:0;color:var(--ink);font:inherit;background:#0b1117;border-radius:8px;flex:1;padding:10px 12px;font-size:13px}.chat-form button{background:var(--accent);color:#08131d;font:inherit;cursor:pointer;border:0;border-radius:8px;padding:0 16px;font-size:13px}.chat-form button:disabled{opacity:.45;cursor:default}.nav-contact span,.text-link span{font-size:16px}.menu-toggle{display:none}.hero{grid-template-columns:1.2fr .8fr;align-items:center;min-height:660px;padding-top:22px;display:grid;position:relative}.hero-copy{z-index:1;padding-bottom:32px;position:relative}.eyebrow,.hero-footer,.art-note,.art-index,.project-tags,.contact-note,.site-footer>span,.back-top{font-family:var(--mono);letter-spacing:.09em;font-size:10px}.eyebrow{color:var(--muted);margin:0 0 25px}.status-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px rgb(var(--accent-rgb) / 30%);border-radius:50%;margin-right:8px;display:inline-block}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--display);letter-spacing:-.075em;font-weight:500}h1{margin-bottom:24px;font-size:clamp(56px,6.4vw,88px);line-height:.99}h1 span{color:#89958a}.hero-intro{max-width:410px;color:var(--body-muted);margin-bottom:28px;font-size:16px;line-height:1.8}.text-link{border-bottom:1px solid var(--ink);align-items:center;gap:13px;padding-bottom:5px;font-size:13px;display:inline-flex}.hero-art{aspect-ratio:1;background:#1a2732;border-radius:50%;justify-self:end;width:min(100%,430px);position:relative;overflow:hidden}.hero-art:before,.hero-art:after{content:"";position:absolute;inset:0}.hero-art:before{opacity:.12;background-image:radial-gradient(#8ebfe7 .65px,#0000 .65px);background-size:8px 8px}.hero-art:after{border:1px solid #edf1e814;border-radius:50%;transform:scale(.89)}.art-ring{--start:-34deg;width:78%;height:32%;transform:translate(-50%, -50%) rotate(var(--start));border:1px solid #edf1e84d;border-radius:50%;animation:24s linear infinite ring-spin;position:absolute;top:50%;left:50%}.ring-two{--start:48deg;width:86%;height:44%;animation-duration:36s;animation-direction:reverse}.ring-three{--start:8deg;border-color:#edf1e82e;width:66%;height:66%;animation-duration:50s}@keyframes ring-spin{to{transform:translate(-50%, -50%) rotate(calc(var(--start) + 360deg))}}.art-sun{aspect-ratio:1;background:var(--accent);width:31%;box-shadow:0 0 75px rgb(var(--accent-rgb) / 50%);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.art-note{z-index:1;background:#111512fa;padding:8px 11px;font-size:9px;position:absolute}.note-top{--tilt:7deg;top:25%;right:11%}.note-bottom{--tilt:-8deg;bottom:27%;left:6%}.tech-pop{letter-spacing:.04em;opacity:0;border:0;border-radius:999px;align-items:center;gap:7px;padding:9px 14px;font-weight:700;animation:2.6s ease-in-out infinite tech-pop;display:inline-flex}@keyframes tech-pop{0%{opacity:0;transform:rotate(var(--tilt)) scale(.4)}14%{opacity:1;transform:rotate(var(--tilt)) scale(1.08)}22%,78%{opacity:1;transform:rotate(var(--tilt)) scale(1)}to{opacity:0;transform:rotate(var(--tilt)) scale(.4)}}.art-cross{z-index:1;color:var(--ink);font-size:24px;font-weight:400;position:absolute;top:17%;left:21%}.hero-footer{color:var(--muted);justify-content:space-between;font-size:9px;display:flex;position:absolute;bottom:25px;left:0;right:0}.hero-footer span:last-child span{color:var(--ink)}.section-pad{padding-block:116px}.about{border-top:1px solid var(--line)}.about-grid{grid-template-columns:1fr 2fr;gap:60px;display:grid}.section-label{margin-top:10px;font-size:10px}h2{margin-bottom:27px;font-size:clamp(38px,5vw,62px);line-height:1.08}h2 span{color:#89958a}.about-copy{max-width:600px;color:var(--body-muted);margin-bottom:30px;font-size:16px;line-height:1.85}.focus-list{flex-wrap:wrap;gap:9px;display:flex}.focus-list span{border:1px solid var(--line);color:var(--body-muted);border-radius:30px;padding:9px 12px;font-size:11px}.work{background:var(--surface)}.section-heading{justify-content:space-between;align-items:start;margin-bottom:32px;display:flex}.section-aside{color:var(--muted);margin-top:8px;font-size:13px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 26px;display:grid}.project-card{min-width:0}.project-card-wide{grid-column:1/-1}.project-art{place-items:center;height:330px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 34px #00000073}.project-card:hover .project-art{transform:translateY(-4px);box-shadow:0 20px 44px #0000008c}.project-card-wide .project-art{height:425px}.project-art-garden{background:#29352c}.garden-window{background:#202b22;border:11px solid #172019;width:58%;height:64%;position:relative;overflow:hidden;box-shadow:0 16px 40px #2c31271f}.garden-sun{aspect-ratio:1;background:#e9bf7a;border-radius:50%;width:16%;position:absolute;top:17%;right:20%}.garden-hill{background:#4d6950;border-radius:50% 50% 0 0;width:100%;height:76%;position:absolute;bottom:-33%;right:-10%;transform:rotate(-9deg)}.hill-two{background:#354b3a;width:100%;bottom:-44%;left:-27%;right:auto;transform:rotate(17deg)}.garden-plant{z-index:1;background:#b6cc9e;width:2px;height:40%;position:absolute;bottom:0;left:21%;transform:rotate(-8deg)}.garden-plant:before,.garden-plant:after{content:"";background:#8eae73;border-radius:100% 0;width:27px;height:13px;position:absolute}.garden-plant:before{top:27%;left:-23px;transform:rotate(14deg)}.garden-plant:after{top:48%;left:1px;transform:rotate(77deg)}.plant-two{height:32%;left:77%;transform:scale(.75)rotate(12deg)}.plant-two:before{transform:rotate(-10deg)}.project-art-editorial{background:#3b302a}.editorial-card{color:#edf1e8;background:#211d1a;flex-direction:column;justify-content:space-between;width:61%;height:76%;padding:22px 25px;display:flex;box-shadow:0 16px 40px #2c31271f}.editorial-kicker,.editorial-caption{font-family:var(--mono);letter-spacing:.12em;font-size:7px}.editorial-title{letter-spacing:-.08em;font-family:Georgia,serif;font-size:clamp(37px,5vw,61px);line-height:.9}.editorial-title i{color:#d99676;font-weight:400}.editorial-line{background:var(--ink);width:100%;height:1px}.project-art-product{background:#29343a}.product-phone{color:#edf1e8;background:#182126;border:6px solid #080d10;border-radius:28px;width:36%;height:82%;padding:33px 17px 16px;position:relative;overflow:hidden;box-shadow:0 17px 38px #212a2c3d}.phone-top{background:#080d10;border-radius:9px;width:32%;height:5px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.phone-greeting{z-index:1;font-size:10px;line-height:1.5;display:block;position:relative}.phone-greeting b{font-size:13px}.phone-orb{aspect-ratio:1;background:radial-gradient(circle at 35% 28%,#f2cc96,#d89172 48%,#855e68);border-radius:50%;width:67%;position:absolute;top:32%;left:17%;box-shadow:0 10px 28px #92615938}.phone-pill{color:#edf1e8;font-family:var(--mono);text-align:center;background:#35453c;border-radius:20px;padding:9px 5px;font-size:6px;position:absolute;bottom:15px;left:12px;right:12px}.art-index{color:#edf1e8b3;font-size:8px;position:absolute;bottom:16px;right:17px}.project-meta{justify-content:space-between;align-items:start;padding-top:18px;display:flex}.project-meta h3{font-family:var(--display);letter-spacing:-.04em;margin-bottom:7px;font-size:19px;font-weight:600}.project-meta p{color:var(--muted);margin-bottom:0;font-size:12px;line-height:1.6}.project-arrow{border:1px solid #465149;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;transition:background .18s,color .18s;display:grid}.project-card:hover .project-arrow{background:var(--ink);color:var(--paper)}.project-tags{color:var(--muted);gap:8px;margin-top:15px;font-size:8px;display:flex}.project-tags span{border:1px solid #3b453e;border-radius:20px;padding:6px 8px}.project-hint{color:var(--muted);text-align:center;margin:38px 0 0;font-size:11px}.contact{color:var(--ink);background:#0b0f0c;position:relative;overflow:hidden}.contact-inner{z-index:1;position:relative}.contact .section-label{color:#a1aaa0}.contact h2{margin-bottom:20px;font-size:clamp(56px,6.4vw,88px);line-height:.99}.contact h2 span{color:#89958a}.contact-inner>p:not(.section-label){color:#c0c8be;max-width:390px;margin-bottom:26px;font-size:14px;line-height:1.8}.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:start;gap:clamp(32px,6vw,88px);margin-top:12px;display:grid}.contact-copy>p{color:#c0c8be;max-width:500px;margin-bottom:26px;font-size:14px;line-height:1.8}.contact-button{background:var(--accent);min-height:49px;color:var(--paper);align-items:center;gap:32px;padding:0 17px;font-size:13px;transition:background .18s,transform .18s;display:inline-flex}.contact-button:hover{background:#8acbff;transform:translateY(-2px)}.contact-button span{font-size:17px}.contact-note{color:#a1aaa0;margin-top:13px;font-size:8px;display:block}.contact-orbit{aspect-ratio:1;border:1px solid #edf1e826;border-radius:50%;width:48vw;position:absolute;top:50%;right:-5%;transform:translateY(-50%)}.orbit-b{--pre:translateY(-50%);--start:40deg;border-color:rgb(var(--accent-rgb) / 38%);width:35vw;transform:var(--pre) rotate(var(--start)) scaleY(.55);animation:40s linear infinite orbit-spin;right:4%}.orbit-a:after{background:var(--accent);width:7px;height:7px;box-shadow:0 0 12px rgb(var(--accent-rgb) / 70%);content:"";border-radius:50%;position:absolute;top:-4px;left:50%}.orbit-a{animation:60s linear infinite orbit-spin-flat}@keyframes orbit-spin{to{transform:var(--pre) rotate(calc(var(--start) + 360deg)) scaleY(.55)}}@keyframes orbit-spin-flat{to{transform:translateY(-50%)rotate(360deg)}}.site-footer{min-height:94px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding-block:20px;display:flex}.site-footer>span{letter-spacing:.06em;font-size:8px}.footer-brand{color:var(--ink);font-size:8px}.footer-brand .brand-mark{width:28px;height:28px;font-size:17px}.site-footer>span,.back-top{font-size:8px}.back-top{border-bottom:1px solid var(--line);padding-bottom:4px}@media (max-width:760px){.page-wrap{width:min(100% - 44px,560px)}.site-header{height:67px;padding-inline:22px}.menu-toggle{z-index:2;border:1px solid var(--line);background:0 0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:42px;height:42px;display:flex}.menu-toggle span{background:var(--ink);width:15px;height:1px;transition:transform .18s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.site-nav{border-bottom:1px solid var(--line);background:var(--paper);align-items:stretch;gap:0;padding:10px 22px 20px;display:none;position:absolute;top:66px;left:0;right:0}.site-nav.is-open{flex-direction:column;display:flex}.site-nav>a:not(.nav-contact){border-bottom:1px solid var(--line);padding:14px 0}.nav-contact{align-self:flex-start;margin-top:14px}.hero{grid-template-columns:1fr;min-height:auto;padding-top:76px;padding-bottom:90px}.hero-copy{padding-bottom:30px}h1{font-size:clamp(52px,12vw,76px)}.hero-intro{max-width:370px;font-size:14px}.hero-art{justify-self:center;width:min(76vw,360px)}.hero-footer{font-size:7px;bottom:25px}.hero-footer span:first-child{display:none}.section-pad{padding-block:78px}.about-grid{grid-template-columns:1fr;gap:14px}.section-label{margin-top:0}h2{font-size:clamp(39px,9vw,56px)}.about-copy{font-size:14px}.section-heading{gap:20px}.section-aside{text-align:right;max-width:120px;margin-top:0;font-size:11px}.project-grid{grid-template-columns:1fr;gap:36px}.project-card-wide{grid-column:auto}.project-art,.project-card-wide .project-art{height:min(68vw,360px)}.garden-window{width:67%;height:62%}.editorial-card{width:68%;height:76%}.product-phone{width:39%;height:83%}.contact-orbit{width:70vw;top:auto;bottom:-22%;right:-22%;transform:none}.orbit-b{--pre:translateY(0);width:54vw;right:-7%}.orbit-a{animation-name:orbit-spin-flat-mobile}@keyframes orbit-spin-flat-mobile{to{transform:rotate(360deg)}}.site-footer{flex-wrap:wrap;justify-content:space-between;min-height:110px;padding-block:20px}.site-footer>span{text-align:center;order:1;width:100%}}.skills-block{border-top:1px solid var(--line);margin-top:78px;padding-top:28px}.skills-heading{justify-content:space-between;align-items:start;margin-bottom:12px;display:flex}.skills-heading .section-aside{margin-top:0}.skills-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.skill-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:132px;padding:20px}.skill-card h3{font-family:var(--display);letter-spacing:-.03em;margin-bottom:9px;font-size:14px;font-weight:700}.skill-card p{color:var(--muted);margin-bottom:0;font-size:11px;line-height:1.75}.project-thumb{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.project-art-site .project-thumb{object-position:top left}.project-title-link{color:inherit;text-decoration:none}:is(.project-title-link:hover,.project-title-link:focus-visible){color:var(--accent);text-underline-offset:4px;text-decoration:underline}.project-art .art-index,.project-art-site .art-index{z-index:1;background:#111512bf;padding:3px 7px}.project-art-site{background:#1d2c3a}.site-window{background:#111512cc;border:1px solid #edf1e84d;width:74%;overflow:hidden}.site-bar{border-bottom:1px solid #edf1e833;align-items:center;gap:5px;padding:7px 9px;display:flex}.site-bar i{background:#edf1e859;border-radius:50%;width:6px;height:6px}.site-bar span{color:var(--accent);font-family:var(--mono);letter-spacing:.06em;margin-left:8px;font-size:9px}.site-body{gap:8px;padding:12px;display:grid}.site-hero{background:rgb(var(--accent-rgb) / 30%);height:46px}.site-line{background:#edf1e838;height:6px}.site-line.short{width:60%}.project-visit{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-top:10px;font-size:10px;display:inline-block}.project-art-automation{background:#29352c}.project-art-portfolio{background:radial-gradient(circle at 78% 22%, rgb(var(--accent-rgb) / 18%), transparent 35%), linear-gradient(145deg, #18242c, #111512 75%)}.portfolio-preview{background:#111820;border:1px solid #edf1e833;width:76%;overflow:hidden;transform:perspective(900px)rotateY(-7deg)rotateX(2deg);box-shadow:0 20px 50px #00000073}.portfolio-preview-bar{height:30px;color:var(--muted);font-family:var(--mono);border-bottom:1px solid #edf1e81a;align-items:center;gap:5px;padding:0 10px;font-size:8px;display:flex}.portfolio-preview-bar i{background:#ef7180;border-radius:50%;width:5px;height:5px}.portfolio-preview-bar i:nth-child(2){background:#ecc45d}.portfolio-preview-bar i:nth-child(3){background:#6ed19a}.portfolio-preview-bar span{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:9px;overflow:hidden}.portfolio-preview-content{flex-direction:column;justify-content:center;align-items:flex-start;min-height:205px;padding:25px 9%;display:flex}.portfolio-preview-label{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;margin-bottom:10px;font-size:8px}.portfolio-preview-content strong{color:var(--ink);font-family:var(--display);letter-spacing:-.06em;font-size:clamp(20px,3vw,34px);line-height:1.05}.portfolio-preview-line{background:var(--accent);width:45%;height:3px;box-shadow:0 0 14px rgb(var(--accent-rgb) / 60%);margin-top:17px}.portfolio-preview-api{color:#c4d0d8;font-family:var(--mono);align-items:center;gap:7px;margin-top:17px;font-size:8px;display:flex}.portfolio-preview-api>span{color:#7ee1b5}.portfolio-preview-api i{color:var(--accent);margin-left:8px;font-style:normal}.workflow{justify-content:center;align-items:center;width:83%;display:flex}.workflow-node{min-height:54px;font-family:var(--mono);letter-spacing:.08em;text-align:center;background:#111512d6;border:1px solid #edf1e859;flex:auto;place-items:center;padding:8px;font-size:clamp(7px,.8vw,10px);display:grid}.workflow-node-accent{border-color:var(--ink);background:var(--ink);color:var(--accent)}.workflow-connector{background:var(--ink);flex:none;width:16px;height:1px}.project-art-admin{background:#29343a}.admin-window{background:#172126;border:6px solid #172126;border-radius:6px;width:66%;height:64%;display:flex;overflow:hidden;box-shadow:0 16px 40px #212a2c2b}.admin-sidebar{background:#0e1517;width:22%}.admin-content{flex-direction:column;flex:1;gap:12px;padding:20px;display:flex}.admin-title{background:#728c77;width:46%;height:10px;margin-bottom:4px}.admin-row{background:#26332a;border:1px solid #3b4940;width:100%;height:20%}.admin-row:nth-of-type(3){width:83%}.project-art-land{background:#38342a}.map-contours{aspect-ratio:1;border:1px solid #bed3a6b3;border-radius:46% 54% 39% 61%/48% 43% 57% 52%;width:62%;position:relative;transform:rotate(-15deg)}.map-contours span{border:1px solid #bed3a68c;border-radius:53% 47% 60% 40%/41% 56% 44% 59%;position:absolute;inset:12%}.map-contours span:nth-child(2){border-radius:39% 61% 47% 53%/58% 40% 60% 42%;inset:24%}.map-contours span:nth-child(3){border-radius:61% 39% 37% 63%/45% 54% 46% 55%;inset:36%}.map-contours span:nth-child(4){background:rgb(var(--accent-rgb) / 72%);border-radius:43% 57% 58% 42%/62% 39% 61% 38%;inset:47%}.project-art-forecast{background:#28342f}.forecast-panel{color:#edf1e8;background:#18221d;width:70%;padding:16px 18px 12px;box-shadow:0 16px 40px #212a2c26}.forecast-label{color:#a1aaa0;font-family:var(--mono);letter-spacing:.1em;font-size:7px;display:block}.forecast-panel svg{width:100%;margin-block:10px;display:block;overflow:visible}.chart-grid{fill:none;stroke:#3a483d;stroke-width:1px}.chart-line{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-width:4px}.forecast-panel circle{fill:var(--accent);stroke:var(--accent);stroke-width:3px}.project-outcome{color:var(--accent);margin:14px 0 0;font-size:11px;font-weight:700}.experience{border-top:1px solid var(--line)}.experience-grid,.education-grid{grid-template-columns:1fr 2fr;gap:60px;display:grid}.experience-heading{align-items:end;margin-bottom:45px}.experience-heading h2{margin:0}.experience-heading .section-aside{font-family:var(--mono);letter-spacing:.08em;flex:none;margin-bottom:8px;font-size:10px}.timeline{border-left:1px solid #465149;position:relative}.timeline:before{top:calc(var(--timeline-progress,0px) - 60px);background:linear-gradient(transparent, var(--accent) 50%, transparent);width:3px;height:120px;box-shadow:0 0 14px rgb(var(--accent-rgb) / 70%);opacity:var(--timeline-glow,0);pointer-events:none;content:"";border-radius:3px;transition:opacity .3s;position:absolute;left:-2px}.timeline-item{grid-template-columns:145px minmax(0,1fr);gap:25px;padding:0 0 37px 24px;display:grid;position:relative}.timeline:after{border:1px solid var(--paper);background:var(--accent);content:"";border-radius:50%;width:9px;height:9px;position:absolute;bottom:-4px;left:-5px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{border:1px solid var(--paper);background:var(--accent);width:9px;height:9px;box-shadow:0 0 calc(var(--flare,0) * 16px) calc(var(--flare,0) * 5px) rgb(var(--accent-rgb) / calc(var(--flare,0) * 85%));transform:scale(calc(1 + var(--flare,0) * .5));content:"";border-radius:50%;position:absolute;top:3px;left:-5px}.timeline-date{color:var(--muted);font-family:var(--mono);letter-spacing:.07em;margin:2px 0 0;font-size:9px;line-height:1.7}.timeline-item h3,.education-item h3{font-family:var(--display);letter-spacing:-.035em;margin-bottom:7px;font-size:16px;font-weight:700;line-height:1.4}.timeline-company,.education-item>div>p:first-of-type{color:#e0e7dd;margin-bottom:10px;font-size:12px;font-weight:600}.timeline-company span,.education-item>div>p:first-of-type span{color:var(--muted);font-weight:400}.timeline-item>div>p:not(.timeline-company):not(.timeline-highlight){color:var(--body-muted);margin-bottom:8px;font-size:12px;line-height:1.75}.steps-panel{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 3fr;gap:40px;margin-top:70px;padding:36px 0 8px;display:grid}.flow-panel{border-top:1px solid var(--line);text-align:center;margin-top:80px;padding-top:60px}.flow-panel .eyebrow{margin-bottom:14px;font-size:10px}.flow-panel>h3{font-family:var(--display);letter-spacing:-.04em;margin:0 0 56px;font-size:clamp(24px,3vw,34px);font-weight:600}.flow-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.flow-step{--tone:105 185 255;padding:0 14px;position:relative}.flow-tone-1{--tone:70 220 240}.flow-tone-2{--tone:150 130 255}.flow-tone-3{--tone:240 160 230}.flow-icon{background:linear-gradient(145deg, rgb(var(--tone) / 95%), rgb(var(--tone) / 60%));color:#0a1018;width:56px;height:56px;box-shadow:0 14px 28px rgb(var(--tone) / 30%);border-radius:16px;place-items:center;margin-bottom:22px;display:inline-grid}.flow-icon svg{width:24px;height:24px}.flow-step:not(:last-child):after{content:"";background:radial-gradient(circle, rgb(var(--tone)) 3px, transparent 3.5px) left center / 7px 7px no-repeat, radial-gradient(circle, var(--accent) 3px, transparent 3.5px) right center / 7px 7px no-repeat, linear-gradient(90deg, rgb(var(--accent-rgb) / 45%) 50%, transparent 50%) center / 8px 1px repeat-x;height:7px;position:absolute;top:25px;left:calc(50% + 44px);right:calc(44px - 50%)}.flow-step h4{font-family:var(--display);letter-spacing:-.02em;margin:0 0 10px;font-size:15px;font-weight:700}.flow-step p{max-width:230px;color:var(--muted);margin:0 auto;font-size:12px;line-height:1.7}@media (max-width:900px){.flow-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.flow-step:after{display:none}}@media (max-width:520px){.flow-grid{grid-template-columns:1fr}}.steps-intro h3{max-width:240px;font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:600;line-height:1.2}.steps-intro .eyebrow{margin-bottom:16px;font-size:10px}.steps-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.step{border-left:1px solid var(--line);padding:4px 20px 8px}.step:first-child{border-left:0;padding-left:0}.step-icon{color:var(--accent);margin-bottom:18px;display:inline-flex}.step h4{font-family:var(--display);letter-spacing:-.02em;margin:0 0 10px;font-size:15px;font-weight:700}.step p{color:var(--muted);margin:0 0 16px;font-size:12px;line-height:1.7}.step-tag{background:rgb(var(--accent-rgb) / 14%);color:var(--accent);font-family:var(--mono);letter-spacing:.1em;border-radius:4px;padding:4px 9px;font-size:9px;display:inline-block}@media (max-width:900px){.steps-panel{grid-template-columns:1fr;gap:28px}.steps-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:30px}.step:nth-child(odd){border-left:0;padding-left:0}}@media (max-width:520px){.steps-grid{grid-template-columns:1fr}.step{border-left:0;padding-left:0}}.contact-inner p strong,.skill-card p strong{color:var(--ink)}.timeline-bullets{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.timeline-bullets li{color:var(--body-muted);padding-left:18px;font-size:13px;line-height:1.7;position:relative}.timeline-bullets li:before{content:"";background:var(--accent);width:7px;height:1px;position:absolute;top:.75em;left:0}.timeline-bullets strong{color:var(--accent);font-weight:700}.experience-intro{margin-bottom:40px}.approach-block{margin-top:70px}.hero-name{color:var(--ink);font-family:var(--display);letter-spacing:.18em;margin-bottom:8px;font-size:15px;font-weight:800}.hero-role{color:var(--accent);font-family:var(--mono);letter-spacing:.08em;margin:0 0 24px;font-size:11px}.hero-actions{flex-wrap:wrap;align-items:center;gap:18px 28px;display:flex}.hero-actions .cv-link{margin-left:0}.education-grid h2{margin-bottom:36px}.education-capstone{border-left:2px solid var(--accent);background:rgb(var(--accent-rgb) / 6%);margin-top:16px;padding:14px 16px}.education-capstone .eyebrow{margin-bottom:6px;font-size:10px}.education-capstone p:last-child{color:var(--body-muted);margin:0;font-size:13px;line-height:1.7}.education-capstone strong{color:var(--ink)}.contact-details{gap:18px;margin:30px 0 28px;display:grid}.contact-details dt{color:var(--muted);font-family:var(--mono);letter-spacing:.12em;font-size:10px}.contact-details dd{margin:4px 0 0;font-size:15px}.contact-details a{border-bottom:1px solid #edf1e859}.contact-form-wrap{border:1px solid var(--line);background:#ffffff05;width:100%;max-width:640px;margin:0;padding:22px}.contact-form-wrap>.eyebrow{color:var(--accent);margin-bottom:18px;font-size:10px}.contact-form{gap:16px;display:grid}.contact-form-honeypot{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.contact-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.contact-form label{color:var(--ink);gap:7px;font-size:12px;display:grid}.contact-form label>span{color:var(--muted);display:inline}.contact-form input,.contact-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#0b1117;border-radius:0;outline:none;padding:11px 12px;font-size:13px}.contact-form textarea{resize:vertical;min-height:120px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgb(var(--accent-rgb) / 15%)}.contact-form .contact-button{cursor:pointer;border:0;justify-self:start}.contact-form .contact-button:disabled{opacity:.65;cursor:wait}.contact-form-status{margin:0;font-size:13px;line-height:1.6}.contact-form-success{color:var(--accent)}.contact-form-error{color:#ff9b91}.timeline-highlight{color:var(--accent);margin:0;font-size:11px;font-weight:700;line-height:1.6}.education{border-top:1px solid var(--line);background:var(--surface)}.education-list{gap:30px;display:grid}.education-item{grid-template-columns:145px minmax(0,1fr);gap:25px;display:grid}.education-item>div>p:first-of-type{margin-bottom:8px}.education-note{color:var(--body-muted);margin:0;font-size:12px;line-height:1.7}.contact-email{color:#c0c8be;border-bottom:1px solid #edf1e859;width:fit-content;margin-top:17px;padding-bottom:3px;font-size:12px;display:block}@media (max-width:760px){.contact-layout{grid-template-columns:1fr}.contact-form-wrap{max-width:590px}.contact-form-row{grid-template-columns:1fr}.skills-block{margin-top:54px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-card{min-height:145px;padding:15px}.skills-heading{gap:20px}.experience-grid,.education-grid{grid-template-columns:1fr;gap:22px}.experience-heading{margin-bottom:35px}.timeline-item,.education-item{grid-template-columns:1fr;gap:8px;padding-left:20px}.timeline-date{margin:0}.workflow{width:90%}.workflow-connector{width:8px}.workflow-node{min-height:44px;padding:5px;font-size:7px}}@media (max-width:420px){.skills-grid{grid-template-columns:1fr}.skill-card{min-height:auto}.skills-heading{display:block}.skills-heading .section-aside{text-align:left;max-width:180px;margin-top:0}}.project-filters{flex-wrap:wrap;gap:8px;margin-bottom:26px;display:flex}.project-filter{min-height:36px;color:var(--body-muted);cursor:pointer;background:0 0;border:1px solid #465149;border-radius:24px;padding:0 13px;font-size:11px;transition:background .18s,color .18s,border-color .18s}.project-filter:hover,.project-filter.is-active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.project-filter:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-details summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-details{border-top:1px solid var(--line);margin-top:18px}.project-details summary{min-height:42px;color:var(--body-muted);cursor:pointer;justify-content:space-between;align-items:center;font-size:11px;list-style:none;display:flex}.project-details summary::-webkit-details-marker{display:none}.project-details summary span{font-size:15px;transition:transform .18s}.project-details[open] summary span{transform:rotate(45deg)}.project-details>p{max-width:620px;color:var(--body-muted);margin:0 0 15px;font-size:12px;line-height:1.75}.project-detail-heading{color:var(--ink);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:18px 0 8px;font-size:10px}.project-detail-list{max-width:620px;color:var(--body-muted);gap:7px;margin:0 0 15px;padding-left:18px;font-size:12px;line-height:1.75;display:grid}.project-detail-links{flex-wrap:wrap;gap:14px 22px;display:flex}.project-count{color:var(--muted);font-family:var(--mono);margin:24px 0 0;font-size:9px}.case-study{padding-top:44px;padding-bottom:110px}.case-back{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:inline-flex}.case-back:hover{color:var(--accent)}.case-hero{max-width:900px;padding:clamp(64px,12vw,150px) 0 90px}.case-hero .eyebrow,.case-section>.eyebrow,.case-result>.eyebrow{color:var(--accent);font-size:10px}.case-hero h1{margin:0 0 25px;font-size:clamp(48px,7vw,88px);line-height:1}.case-hero h1 span{color:#89958a}.case-stack{color:var(--accent);font-family:var(--mono);letter-spacing:.07em;margin-bottom:28px;font-size:10px;line-height:1.8}.case-lede{max-width:750px;color:var(--body-muted);font-size:16px;line-height:1.85}.case-actions{flex-wrap:wrap;gap:14px 25px;margin-top:30px;display:flex}.case-actions a{border-bottom:1px solid var(--accent);color:var(--ink);padding-bottom:5px;font-size:13px}.case-actions a:hover{color:var(--accent)}.case-facts{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px 30px;margin:40px 0 0;padding-top:26px;display:grid}.case-facts dt{color:var(--body-muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.case-facts dd{color:var(--ink);margin:6px 0 0;font-size:14px}.case-section{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) 2fr;gap:50px;padding:55px 0;display:grid}.case-section>.eyebrow{margin-top:8px}.case-content{max-width:820px}.case-content h2,.case-result h2{margin-bottom:22px;font-size:clamp(32px,4vw,50px)}.case-content h3{font-family:var(--display);margin:30px 0 10px;font-size:15px}.case-content>p,.case-result>p:not(.eyebrow){color:var(--body-muted);font-size:14px;line-height:1.85}.case-content code{color:var(--accent);font-family:var(--mono);font-size:.9em}.case-flow{border:1px solid var(--line);color:var(--body-muted);background:#ffffff05;flex-wrap:wrap;align-items:center;gap:8px;padding:13px 15px;font-size:12px;line-height:1.6;display:flex}.case-flow span{color:var(--accent)}.arch{gap:18px;margin:8px 0 26px;display:grid}.arch-intro,.arch-note{color:var(--muted);margin:0;font-size:13px}.arch-note{font-size:12px;font-style:italic}.arch-canvas{border:1px solid var(--line);background:#ffffff05;align-items:stretch;gap:0;padding:18px;display:flex;overflow-x:auto}.arch-layer{flex:1 0 auto;align-items:center;display:flex}.arch-arrow{color:var(--accent);padding:0 12px;font-size:20px}.arch-column{align-content:center;gap:10px;min-width:150px;display:grid}.arch-node{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;gap:4px;padding:12px 14px;transition:border-color .2s,opacity .2s,box-shadow .2s;display:grid}.arch-node small{color:var(--accent);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.arch-node strong{font-size:13px;font-weight:600;line-height:1.3}:is(.arch-node:hover,.arch-node:focus-visible){border-color:var(--accent);outline:none}.arch-node.is-active{border-color:var(--accent);box-shadow:0 0 18px rgb(var(--accent-rgb) / 25%)}.arch-node.is-dim{opacity:.45}.arch-detail{border-left:2px solid var(--accent);background:#0b1117;padding:18px 20px}.arch-detail-tag{color:var(--accent);font-family:var(--mono);letter-spacing:.14em;margin:0 0 6px;font-size:10px}.arch-detail h3{margin:0 0 8px}.arch-detail p{color:var(--body-muted);margin:0 0 8px}.arch-links{gap:4px;font-size:12px;display:grid}.arch-links b{color:var(--ink);font-weight:600}@media (max-width:760px){.arch-canvas{flex-direction:column;padding:14px}.arch-layer{flex-direction:column;align-items:stretch}.arch-arrow{text-align:center;padding:8px 0;transform:rotate(90deg)}.arch-column{min-width:0}}.case-code{border-left:2px solid var(--accent);background:#0b1117;gap:10px;padding:16px;display:grid}.case-code code{font-size:12px}.case-decision-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.case-decision{background:var(--paper);min-height:190px;padding:22px}.case-decision>span{color:var(--accent);font-family:var(--mono);font-size:10px}.case-decision h3{margin:17px 0 9px;font-size:15px}.case-decision p,.case-list{color:var(--body-muted);font-size:13px;line-height:1.75}.case-list{gap:8px;padding-left:20px;display:grid}.case-list li::marker{color:var(--accent)}.case-result{border:1px solid var(--line);background:radial-gradient(circle at 100% 0, rgb(var(--accent-rgb) / 12%), transparent 40%), #0d1218;margin-top:35px;padding:clamp(28px,6vw,65px)}.case-result h2{max-width:700px}.case-result>p:not(.eyebrow){max-width:750px}@media (max-width:760px){.case-section{grid-template-columns:1fr;gap:8px;padding:40px 0}.case-decision-grid{grid-template-columns:1fr}.case-decision{min-height:unset}}.api-status-wrap{border-top:1px solid var(--line);background:var(--surface);justify-content:center;padding:19px 22px;display:flex}.api-status{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:8px;margin:0;font-size:9px;display:inline-flex}.api-status-dot{background:#96998f;border-radius:50%;width:7px;height:7px}.api-status-online .api-status-dot{background:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / 20%)}.api-status-offline .api-status-dot{background:#bb6555;box-shadow:0 0 0 3px #bb65552e}@media (prefers-reduced-motion:reduce){.project-filter,.project-details summary span{transition-duration:.01ms!important}}@media (max-width:380px){.page-wrap{width:calc(100% - 36px)}.brand{gap:8px;font-size:8px}.hero-footer{font-size:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
