:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#19202a;background:#f7f7f3;font-synthesis:none;text-rendering:optimizeLegibility;--bg-color: #f7f7f3;--surface-color: #ffffff;--surface-muted: #eeefe9;--text-color: #19202a;--text-muted: #66707d;--border-color: #dfe1da;--border-strong: #c9cdc4;--accent-color: #3157d5;--accent-hover: #2446bc;--accent-soft: #e8edff;--accent-contrast: #ffffff;--warm-accent: #d96c3b;--success-color: #227b5a;--error-color: #b44343;--shadow-sm: 0 1px 2px rgba(25, 32, 42, .04), 0 8px 24px rgba(25, 32, 42, .04);--shadow-lg: 0 24px 70px rgba(25, 32, 42, .1);--header-text-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--normal-text-font: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--content-width: 1180px}body[data-theme=dark]{color-scheme:dark;--bg-color: #11151b;--surface-color: #181e26;--surface-muted: #202731;--text-color: #f2f3ef;--text-muted: #a5adba;--border-color: #2d3540;--border-strong: #414b58;--accent-color: #86a0ff;--accent-hover: #a5b7ff;--accent-soft: #222f59;--accent-contrast: #111827;--warm-accent: #f09869;--success-color: #6ec8a3;--error-color: #ff9898;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .12);--shadow-lg: 0 24px 70px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:88px}body{min-width:320px;min-height:100vh;overflow-x:hidden;color:var(--text-color);background:var(--bg-color);font-size:16px;line-height:1.6;transition:color .18s ease,background-color .18s ease}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}img,svg{display:block}h1,h2,h3,h4,h5,h6{font-family:var(--header-text-font);font-weight:650;line-height:1.08;letter-spacing:-.04em}::selection{color:var(--accent-contrast);background:var(--accent-color)}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent-color) 50%,transparent);outline-offset:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid var(--bg-color);border-radius:99px;background:var(--border-strong)}.shell{width:min(calc(100% - 40px),var(--content-width));margin-inline:auto}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;color:var(--accent-color);font-size:.76rem;font-weight:700;letter-spacing:.14em;line-height:1;text-transform:uppercase}.eyebrow:before{width:18px;height:1px;background:currentColor;content:""}.button-primary,.button-secondary,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:46px;border-radius:8px;font-size:.9rem;font-weight:650;letter-spacing:-.01em;transition:transform .16s ease,color .16s ease,background-color .16s ease,border-color .16s ease}.button-primary{padding:.75rem 1.15rem;color:#fff;background:#19202a}body[data-theme=dark] .button-primary{color:#19202a;background:#f2f3ef}.button-secondary{padding:.7rem 1.1rem;border:1px solid var(--border-strong);background:transparent}.button-primary:hover,.button-secondary:hover{transform:translateY(-1px)}.button-secondary:hover{border-color:var(--text-color);background:var(--surface-color)}.text-link{min-height:auto;justify-content:flex-start;border-radius:0;color:var(--accent-color)}.text-link:hover{color:var(--accent-hover)}.button-primary svg,.button-secondary svg,.text-link svg{width:17px;height:17px}.loading-state,.error-state,.empty-state{display:grid;min-height:240px;place-items:center;border:1px solid var(--border-color);border-radius:10px;color:var(--text-muted);background:var(--surface-color);text-align:center}.loading-state span{display:inline-block;width:22px;height:22px;margin-bottom:.8rem;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.shell{width:min(calc(100% - 28px),var(--content-width))}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-header{position:sticky;z-index:1000;top:0;width:100%;border-bottom:1px solid transparent;background:color-mix(in srgb,var(--bg-color) 97%,transparent);transition:border-color .18s ease,background-color .18s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.site-header.is-scrolled{border-bottom-color:var(--border-color)}.header-shell{position:relative;display:flex;width:min(calc(100% - 40px),var(--content-width));height:68px;margin-inline:auto;align-items:center}.brand{display:inline-flex;z-index:1002;align-items:center;gap:.65rem;font-weight:680;letter-spacing:-.025em}.brand-name{font-size:.92rem}.brand-role{padding-left:.65rem;border-left:1px solid var(--border-strong);color:var(--text-muted);font-size:.7rem;font-weight:520;letter-spacing:.02em}.nav-wrap,.site-nav,.header-actions,.header-controls{display:flex;align-items:center}.nav-wrap{position:absolute;left:50%;transform:translate(-50%)}.site-nav{gap:2rem}.site-nav a{position:relative;padding:.35rem 0;color:var(--text-muted);font-size:.81rem;font-weight:560;transition:color .16s ease}.site-nav a:after{position:absolute;right:0;bottom:-4px;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.site-nav a:hover,.site-nav a.active{color:var(--text-color)}.site-nav a:hover:after,.site-nav a.active:after{transform:scaleX(1);transform-origin:left}.header-actions{margin-left:auto;gap:1.1rem}.header-contact,.mobile-contact{display:inline-flex;align-items:center;border-bottom:1px solid var(--border-strong);color:var(--text-color);font-size:.81rem;font-weight:600;transition:border-color .16s ease}.header-contact:hover,.mobile-contact:hover{border-color:var(--text-color)}.mobile-contact{display:none}.header-controls{z-index:1002;gap:.35rem}.theme-toggle,.menu-toggle{display:grid;width:34px;height:34px;padding:0;place-items:center;border:0;border-radius:6px;color:var(--text-color);background:transparent;cursor:pointer;transition:background-color .16s ease}.theme-toggle:hover,.menu-toggle:hover{background:var(--surface-muted)}.theme-toggle svg{width:17px;height:17px}.menu-toggle{display:none;align-content:center;gap:5px}.menu-toggle span{width:16px;height:1.5px;background:currentColor;transition:transform .18s ease}.menu-toggle.is-open span:first-child{transform:translateY(3.25px) rotate(45deg)}.menu-toggle.is-open span:last-child{transform:translateY(-3.25px) rotate(-45deg)}@media (max-width: 760px){.site-header{background:var(--bg-color);backdrop-filter:none;-webkit-backdrop-filter:none}.header-shell{width:min(calc(100% - 28px),var(--content-width));height:64px;justify-content:space-between}.brand-role,.header-contact{display:none}.menu-toggle{display:grid}.nav-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;display:flex;visibility:hidden;min-height:100dvh;flex-direction:column;padding:112px 28px 44px;align-items:stretch;justify-content:space-between;opacity:0;background:var(--bg-color);transform:none;transition:opacity .18s ease,visibility .18s ease}.nav-wrap.is-open{visibility:visible;opacity:1}.site-nav{gap:0;flex-direction:column;align-items:stretch}.site-nav a{padding:1rem 0;border-bottom:1px solid var(--border-color);border-radius:0;color:var(--text-color);font-size:clamp(2rem,10vw,3rem);font-weight:560;letter-spacing:-.05em}.site-nav a:after{display:none}.mobile-contact{display:inline-flex;align-self:flex-start;font-size:1rem}}.site-footer{margin-top:auto;padding:88px 0 28px;border-top:1px solid var(--border-color);background:var(--surface-muted)}.footer-shell{display:grid;width:min(calc(100% - 40px),var(--content-width));margin-inline:auto;grid-template-columns:1fr auto;gap:64px 80px}.footer-kicker{margin-bottom:.8rem;color:var(--text-muted);font-size:.82rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.site-footer h2{max-width:680px;margin-bottom:1.6rem;font-size:clamp(2.2rem,6vw,4.8rem)}.footer-email{display:inline-block;border-bottom:1px solid var(--border-strong);color:var(--text-muted);font-size:clamp(.95rem,2vw,1.15rem);transition:color .16s ease,border-color .16s ease}.footer-email:hover{color:var(--text-color);border-color:var(--text-color)}.footer-links{display:flex;min-width:120px;flex-direction:column;align-items:flex-start;gap:.75rem;padding-top:2rem;color:var(--text-muted);font-size:.9rem}.footer-links a:hover{color:var(--text-color)}.footer-meta{display:flex;padding-top:1.4rem;border-top:1px solid var(--border-color);grid-column:1 / -1;justify-content:space-between;color:var(--text-muted);font-size:.78rem}@media (max-width: 700px){.site-footer{padding-top:64px}.footer-shell{width:min(calc(100% - 28px),var(--content-width));grid-template-columns:1fr;gap:36px}.footer-links{display:grid;grid-template-columns:repeat(2,1fr);padding-top:0}.footer-meta{flex-direction:column;grid-column:auto;gap:.4rem}}.api-debugger-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.api-debugger{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0000004d;width:90%;max-width:1200px;height:80vh;display:flex;flex-direction:column;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.debugger-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid #eee;background:#f8f9fa;border-radius:8px 8px 0 0}.debugger-header h3{margin:0;color:#2c3e50}.debugger-stats{display:flex;gap:15px}.stat{background:#3498db;color:#fff;padding:4px 8px;border-radius:4px;font-size:.8em}.close-btn{background:#e74c3c;color:#fff;border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#c0392b}.debugger-controls{display:flex;align-items:center;gap:20px;padding:15px 20px;border-bottom:1px solid #eee;background:#f8f9fa}.filter-group,.search-group{display:flex;align-items:center;gap:8px}.filter-group label{font-weight:700;color:#555}.filter-group select,.search-group input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:.9em}.search-group input{min-width:200px}.clear-btn{background:#e67e22;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.9em}.clear-btn:hover{background:#d35400}.logs-container{flex:1;overflow-y:auto;padding:10px;background:#fafafa}.no-logs{text-align:center;color:#7f8c8d;padding:40px;font-style:italic}.log-entry{background:#fff;margin-bottom:8px;border-radius:4px;padding:10px;box-shadow:0 1px 3px #0000001a}.log-header{display:flex;align-items:center;gap:10px;margin-bottom:5px;font-weight:700;font-size:.9em}.log-icon{font-size:1.2em}.log-time{color:#7f8c8d;font-size:.8em}.log-type{background:#34495e;color:#fff;padding:2px 6px;border-radius:3px;font-size:.7em}.log-method{background:#9b59b6;color:#fff;padding:2px 6px;border-radius:3px;font-size:.7em}.log-status{background:#27ae60;color:#fff;padding:2px 6px;border-radius:3px;font-size:.7em}.log-duration{background:#f39c12;color:#fff;padding:2px 6px;border-radius:3px;font-size:.7em}.log-details{font-size:.8em;color:#555;line-height:1.4}.log-details>div{margin-bottom:2px}.log-url{color:#3498db;font-weight:700}.log-caller{color:#9b59b6;font-style:italic}.log-error{color:#e74c3c;font-weight:700}.log-data-size{color:#27ae60}@media (prefers-color-scheme: dark){.api-debugger{background:#2c3e50;color:#fff}.debugger-header,.debugger-controls{background:#34495e;border-color:#3c4c5e}.logs-container{background:#2c3e50}.log-entry{background:#34495e;color:#fff}.filter-group select,.search-group input{background:#2c3e50;color:#fff;border-color:#4a5f7a}}.home-page{overflow:hidden}.home-hero{display:grid;min-height:calc(100vh - 68px);padding-block:clamp(76px,11vw,142px) 88px;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);align-items:center;gap:clamp(48px,8vw,120px)}.hero-copy h1{max-width:880px;margin:1.35rem 0 1.6rem;font-size:clamp(3.3rem,7.2vw,7.2rem);font-weight:590;letter-spacing:-.075em}.hero-copy h1 em{color:var(--accent-color);font-family:Georgia,Times New Roman,serif;font-weight:400}.hero-description{max-width:650px;color:var(--text-muted);font-size:clamp(1.02rem,1.6vw,1.22rem);letter-spacing:-.015em}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.hero-aside{position:relative}.availability-pill{display:inline-flex;margin-bottom:1.1rem;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.73rem;font-weight:620}.availability-pill>span{width:7px;height:7px;border-radius:50%;background:var(--success-color)}.focus-card{position:relative;display:flex;min-height:360px;padding:clamp(26px,3vw,40px);flex-direction:column;border:1px solid var(--border-color);border-top:3px solid var(--text-color);border-radius:10px;background:var(--surface-color)}.focus-card:before,.focus-card:after{display:none}.focus-card>p{color:var(--text-muted);font-size:.75rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.focus-card h2{max-width:330px;margin:auto 0 2rem;overflow-wrap:break-word;font-size:clamp(1.65rem,2.1vw,2.1rem);font-weight:570;line-height:1.06;word-break:normal;-webkit-hyphens:none;hyphens:none}.focus-meta{display:flex;padding-top:1rem;border-top:1px solid var(--border-color);flex-wrap:wrap;gap:.7rem;color:var(--text-muted);font-size:.72rem}.hero-coordinate{display:flex;margin-top:.75rem;justify-content:space-between;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.67rem}.timeline-section{padding-block:clamp(88px,11vw,150px);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--surface-color)}.section-heading-row{display:grid;margin-bottom:4.5rem;grid-template-columns:1.5fr .7fr;align-items:end;gap:3rem}.section-heading-row h2,.capabilities-intro h2{max-width:780px;margin-top:1rem;font-size:clamp(2.7rem,5.4vw,5.1rem);font-weight:580}.section-heading-row>p{max-width:390px;padding-bottom:.55rem;color:var(--text-muted);font-size:.97rem}.timeline-workspace{display:grid;grid-template-columns:minmax(340px,.92fr) minmax(0,1.25fr);gap:clamp(48px,7vw,100px)}.timeline-list{display:flex;flex-direction:column}.timeline-item{position:relative;display:grid;width:100%;min-height:82px;padding:0;border:0;align-items:center;grid-template-columns:32px 88px 1fr 24px;color:var(--text-muted);background:transparent;text-align:left;cursor:pointer}.timeline-rail{position:relative;align-self:stretch}.timeline-node{position:absolute;z-index:2;top:36px;left:4px;width:10px;height:10px;border:2px solid var(--surface-color);border-radius:50%;background:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong);transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.timeline-line{position:absolute;top:41px;bottom:-41px;left:8.5px;width:1px;background:var(--border-color)}.timeline-date{display:flex;flex-direction:column;line-height:1.35}.timeline-date strong{color:var(--text-color);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:550}.timeline-date small{overflow:hidden;max-width:78px;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem}.timeline-title{padding-right:1rem;font-size:.96rem;font-weight:590;letter-spacing:-.02em;transition:color .16s ease,transform .16s ease}.timeline-arrow{opacity:0;transition:opacity .16s ease,transform .16s ease}.timeline-arrow svg{width:17px;height:17px}.timeline-item:hover .timeline-title,.timeline-item.is-active .timeline-title{color:var(--text-color);transform:translate(3px)}.timeline-item:hover .timeline-arrow,.timeline-item.is-active .timeline-arrow{opacity:1}.timeline-item.is-active .timeline-node{background:var(--accent-color);box-shadow:0 0 0 5px var(--accent-soft);transform:scale(1.08)}.timeline-detail{position:sticky;top:106px;min-height:540px;padding:clamp(30px,5vw,64px);align-self:start;overflow:hidden;border-radius:12px;color:#f8f8f4;background:#19202a;box-shadow:0 16px 45px #19202a1f;animation:detail-in .26s ease both}body[data-theme=dark] .timeline-detail{color:#19202a;background:#f2f3ef}@keyframes detail-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.timeline-detail:after{display:none}.project-index{position:absolute;right:32px;top:18px;color:#ffffff0f;font-size:clamp(6rem,13vw,10rem);font-weight:700;line-height:1;letter-spacing:-.08em}body[data-theme=dark] .project-index{color:#19202a0f}.detail-topline{position:relative;z-index:1;display:flex;justify-content:space-between;color:#ffffff94;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}body[data-theme=dark] .detail-topline{color:#19202a94}.timeline-detail h3{position:relative;z-index:1;max-width:570px;margin:clamp(90px,12vw,140px) 0 1.25rem;color:inherit;font-size:clamp(2.5rem,5vw,4.8rem);font-weight:580}.detail-summary{position:relative;z-index:1;max-width:610px;color:#ffffffad;font-size:.98rem}body[data-theme=dark] .detail-summary{color:#19202aad}.detail-tech,.detail-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.55rem}.detail-tech{margin-top:1.7rem}.detail-tech span{padding:.4rem .65rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffffb8;font-size:.7rem}body[data-theme=dark] .detail-tech span{border-color:#19202a26;color:#19202ab8}.detail-actions{margin-top:2rem}.timeline-detail .button-primary{color:#19202a;background:#f8f8f4}body[data-theme=dark] .timeline-detail .button-primary{color:#f8f8f4;background:#19202a}.timeline-detail .button-secondary{border-color:#ffffff40}body[data-theme=dark] .timeline-detail .button-secondary{border-color:#19202a40}.timeline-detail .button-secondary:hover{background:#ffffff14}.timeline-detail .text-link{color:inherit}.timeline-footer{display:flex;margin-top:3.5rem;padding-top:1.3rem;border-top:1px solid var(--border-color);align-items:center;justify-content:space-between;color:var(--text-muted);font-size:.8rem}.capabilities-section{display:grid;padding-block:clamp(88px,12vw,160px);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(70px,11vw,150px)}.capabilities-intro h2{font-size:clamp(2.6rem,5vw,4.8rem)}.capability-list{border-top:1px solid var(--border-strong)}.capability-list article{display:grid;padding:1.7rem 0;border-bottom:1px solid var(--border-color);grid-template-columns:44px minmax(150px,.7fr) minmax(180px,1fr);gap:1rem}.capability-list article>span{color:var(--accent-color);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem}.capability-list h3{font-size:1rem;font-weight:650;letter-spacing:-.02em}.capability-list p{color:var(--text-muted);font-size:.86rem}@media (max-width: 920px){.home-hero{min-height:auto;grid-template-columns:1fr}.hero-aside{max-width:560px}.section-heading-row,.capabilities-section,.timeline-workspace{grid-template-columns:1fr}.timeline-list{display:grid;overflow-x:auto;grid-auto-columns:minmax(220px,70%);grid-auto-flow:column;overscroll-behavior-inline:contain;scrollbar-width:none}.timeline-list::-webkit-scrollbar{display:none}.timeline-item{min-height:110px;padding:1rem;border:1px solid var(--border-color);border-radius:14px;grid-template-columns:70px 1fr 20px}.timeline-item+.timeline-item{border-left:0}.timeline-rail{display:none}.timeline-date small{white-space:normal}.timeline-item.is-active{border-color:var(--accent-color);background:var(--accent-soft)}.timeline-detail{position:relative;top:auto}}@media (max-width: 680px){.home-hero{padding-block:72px 64px}.hero-copy h1{margin-top:1rem;font-size:clamp(3rem,15vw,4.7rem)}.focus-card{min-height:310px}.section-heading-row{margin-bottom:2.8rem;gap:1.4rem}.timeline-list{grid-auto-columns:82%}.timeline-detail{min-height:500px;border-radius:22px}.detail-topline span:last-child{display:none}.timeline-footer{align-items:flex-start;flex-direction:column;gap:.9rem}.capability-list article{grid-template-columns:34px 1fr}.capability-list p{grid-column:2}}.project-card{display:flex;min-height:430px;padding:clamp(24px,3vw,38px);flex-direction:column;overflow:hidden;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-color);transition:border-color .18s ease,background-color .18s ease}.project-card:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface-color) 88%,var(--surface-muted))}.project-card--2,.project-card--3{background:var(--surface-color)}.project-card-topline{display:flex;justify-content:space-between;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.project-card-body{margin:clamp(58px,8vw,95px) 0 1.5rem}.project-card-body h2{max-width:560px;margin-bottom:1.15rem;font-size:clamp(2rem,3.6vw,3.4rem);font-weight:580}.project-card-body p{display:-webkit-box;max-width:650px;overflow:hidden;color:var(--text-muted);font-size:.93rem;line-height:1.7;-webkit-box-orient:vertical;-webkit-line-clamp:5}.project-card.is-expanded .project-card-body p{display:block;overflow:visible}.project-card-tech{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto}.project-card-tech span{padding:.38rem .64rem;border:1px solid color-mix(in srgb,var(--border-strong) 80%,transparent);border-radius:4px;color:var(--text-muted);font-size:.67rem;font-weight:550}.project-card-footer{display:flex;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid color-mix(in srgb,var(--border-color) 78%,transparent);align-items:center;justify-content:space-between;gap:1rem}.project-card-links{display:flex;flex-wrap:wrap;gap:1rem}.project-card-links a,.project-card-footer button{display:inline-flex;padding:0;border:0;align-items:center;gap:.4rem;color:var(--text-color);background:transparent;font-size:.78rem;font-weight:650;cursor:pointer}.project-card-links a svg,.project-card-footer button svg{width:15px;height:15px;transition:transform .16s ease}.project-card-links a:hover svg{transform:translate(2px,-2px)}.project-card-footer button:hover svg{transform:translateY(2px)}.project-card-footer button[aria-expanded=true] svg{transform:rotate(180deg)}@media (max-width: 620px){.project-card{min-height:390px;border-radius:10px}.project-card-footer{flex-direction:column;align-items:flex-start}}.projects-hero{padding-block:clamp(92px,13vw,170px) clamp(68px,9vw,110px)}.projects-hero h1{max-width:980px;margin:1.2rem 0 clamp(50px,8vw,92px);font-size:clamp(3.8rem,9.5vw,9rem);font-weight:570;letter-spacing:-.075em}.projects-hero-bottom{display:grid;padding-top:1.3rem;border-top:1px solid var(--border-strong);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2rem}.projects-hero-bottom p{max-width:650px;color:var(--text-muted);font-size:clamp(1rem,2vw,1.15rem)}.projects-hero-bottom span{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;text-transform:uppercase}.projects-archive{padding-bottom:clamp(90px,12vw,160px)}.project-filters{display:flex;margin-bottom:2rem;align-items:center;justify-content:space-between;gap:1rem}.project-filters>span{color:var(--text-muted);font-size:.75rem;font-weight:620;letter-spacing:.05em;text-transform:uppercase}.project-filters>div{display:flex;flex-wrap:wrap;gap:1.25rem}.project-filters button{min-width:auto;padding:.25rem 0;border:0;border-bottom:1px solid transparent;color:var(--text-muted);background:transparent;font-size:.72rem;cursor:pointer;transition:color .16s ease,border-color .16s ease,background-color .16s ease}.project-filters button:hover{color:var(--text-color);border-bottom-color:var(--border-strong)}.project-filters button.is-active,body[data-theme=dark] .project-filters button.is-active{color:var(--text-color);border-bottom-color:var(--text-color);background:transparent}.projects-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.projects-overview-grid>:nth-child(3n+1){grid-column:1 / -1}@media (max-width: 720px){.projects-hero h1{font-size:clamp(3.7rem,18vw,6rem)}.projects-hero-bottom,.projects-overview-grid{grid-template-columns:1fr}.projects-overview-grid>:nth-child(3n+1){grid-column:auto}.project-filters{align-items:flex-start;flex-direction:column}}.experiences-container{display:grid;width:100%;min-width:0;border-top:1px solid var(--border-strong);grid-template-columns:minmax(180px,.52fr) minmax(0,1fr)}.experience-tabs{display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--border-color)}.experience-tabs button{display:grid;min-width:0;padding:1.25rem 1.25rem 1.25rem 0;border:0;border-bottom:1px solid var(--border-color);grid-template-columns:30px 1fr;gap:.25rem .4rem;color:var(--text-muted);background:transparent;text-align:left;cursor:pointer;transition:color .16s ease,background-color .16s ease,padding .16s ease}.experience-tabs button:hover,.experience-tabs button.is-active{padding-left:.8rem;color:var(--text-color);background:var(--surface-color)}.experience-tabs button>span{color:var(--accent-color);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;grid-row:1 / span 2}.experience-tabs strong{min-width:0;overflow-wrap:anywhere;font-size:.88rem;font-weight:650;line-height:1.3}.experience-tabs small{min-width:0;overflow-wrap:anywhere;font-size:.72rem;line-height:1.35}.experience-panel{min-height:430px;min-width:0;padding:clamp(30px,5vw,64px);background:var(--surface-color);animation:experience-in .22s ease both}@keyframes experience-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.experience-period{color:var(--accent-color);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}.experience-panel h3{max-width:100%;margin:clamp(48px,6vw,72px) 0 .65rem;overflow-wrap:anywhere;font-size:clamp(1.9rem,3.2vw,3rem);font-weight:580;line-height:1.02}.experience-company{overflow-wrap:anywhere;color:var(--text-muted);font-size:.9rem}.experience-description{max-width:600px;margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.92rem;overflow-wrap:anywhere}.experience-state{display:grid;min-height:280px;place-items:center;border:1px solid var(--border-color);color:var(--text-muted);background:var(--surface-color);font-size:.9rem}@media (max-width: 620px){.experiences-container{grid-template-columns:1fr}.experience-tabs{overflow-x:auto;flex-direction:row;border-right:0}.experience-tabs button{min-width:190px;padding:1rem}.experience-tabs button:hover,.experience-tabs button.is-active{padding-left:1rem}.experience-panel{min-height:360px;padding:28px 22px 34px}.experience-panel h3{margin-top:2.75rem;font-size:clamp(1.8rem,9vw,2.5rem)}}.chatbox-container{display:flex;width:100%;height:600px;flex-direction:column;overflow:hidden;border:1px solid var(--border-color);border-radius:24px;background:var(--surface-color);box-shadow:var(--shadow-sm)}.chatbox-header{display:flex;padding:1.25rem 1.4rem;border-bottom:1px solid var(--border-color);align-items:center;justify-content:space-between}.chatbox-label{display:block;margin-bottom:.25rem;color:var(--accent-color);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.chatbox-header h2{font-size:1rem;font-weight:650;letter-spacing:-.02em}.chatbox-status{display:flex;align-items:center;color:var(--text-muted);font-size:.72rem}.status-indicator{width:7px;height:7px;margin-left:.5rem;border-radius:50%;background:var(--success-color)}.status-indicator.typing{background:var(--accent-color);animation:status-pulse 1.2s ease infinite}@keyframes status-pulse{50%{opacity:.35}}.chatbox-messages{display:flex;flex:1;flex-direction:column;gap:.8rem;overflow-y:auto;padding:1.5rem;scroll-behavior:smooth}.chat-empty-state{display:flex;height:100%;max-width:350px;margin:auto;align-items:center;justify-content:center;flex-direction:column;color:var(--text-muted);text-align:center}.empty-icon{display:grid;width:56px;height:56px;margin-bottom:1.1rem;place-items:center;border-radius:17px;color:var(--accent-color);background:var(--accent-soft)}.empty-icon svg{width:26px;height:26px}.chat-empty-state h3{margin-bottom:.4rem;color:var(--text-color);font-size:1.1rem;font-weight:630}.chat-empty-state p{font-size:.82rem}.chat-message{max-width:min(78%,520px);padding:.8rem 1rem;border-radius:16px;animation:message-in .18s ease both}@keyframes message-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end;border-bottom-right-radius:4px;color:#fff;background:#3157d5}.chat-message.assistant{align-self:flex-start;border:1px solid var(--border-color);border-bottom-left-radius:4px;background:var(--surface-muted)}.message-content{word-break:break-word;font-size:.86rem;line-height:1.55}.message-content p+p{margin-top:.55rem}.message-timestamp{margin-top:.35rem;opacity:.58;font-size:.6rem;text-align:right}.typing-indicator{display:flex;padding:.3rem;gap:.25rem}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typing 1s ease infinite alternate}.typing-indicator span:nth-child(2){animation-delay:.12s}.typing-indicator span:nth-child(3){animation-delay:.24s}@keyframes typing{to{opacity:.25;transform:translateY(-2px)}}.chatbox-input-container{display:flex;padding:.9rem 1rem;border-top:1px solid var(--border-color);align-items:flex-end;gap:.7rem}.chatbox-input-container textarea{flex:1;min-height:46px;max-height:120px;padding:.75rem 1rem;resize:none;border:1px solid var(--border-color);border-radius:14px;color:var(--text-color);outline:none;background:var(--bg-color);font-size:.87rem;line-height:1.4;transition:border-color .16s ease,box-shadow .16s ease}.chatbox-input-container textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-soft)}.chatbox-input-container button{display:grid;width:46px;height:46px;padding:0;place-items:center;border:0;border-radius:14px;color:#fff;background:#19202a;cursor:pointer;transition:opacity .16s ease,transform .16s ease}body[data-theme=dark] .chatbox-input-container button{color:#19202a;background:#f2f3ef}.chatbox-input-container button:hover:not(:disabled){transform:translateY(-2px)}.chatbox-input-container button:disabled{opacity:.3;cursor:not-allowed}.chatbox-input-container button svg{width:18px;height:18px}.chatbox-footer{padding:0 1rem .75rem;color:var(--text-muted);font-size:.62rem;text-align:center}@media (max-width: 620px){.chatbox-container{height:540px;border-radius:20px}.chatbox-messages{padding:1rem}.chat-message{max-width:88%}}.about-hero{display:grid;min-height:calc(100vh - 72px);padding-block:clamp(80px,11vw,140px);grid-template-columns:minmax(0,1.15fr) minmax(300px,.6fr);align-items:center;gap:clamp(50px,10vw,140px)}.about-hero-copy h1{max-width:850px;margin:1.25rem 0 1.7rem;font-size:clamp(3.5rem,8vw,7.6rem);font-weight:580;letter-spacing:-.075em}.about-hero-copy>p:not(.eyebrow){max-width:680px;color:var(--text-muted);font-size:clamp(1.02rem,1.8vw,1.2rem)}.about-hero-copy .text-link{margin-top:1.8rem}.portrait-frame{position:relative}.portrait-frame>img,.portrait-placeholder{width:100%;aspect-ratio:4 / 5;border-radius:26px;object-fit:cover;object-position:center;filter:saturate(.82) contrast(1.02)}.portrait-placeholder{display:grid;place-items:center;color:var(--accent-color);background:var(--accent-soft);font-size:clamp(4rem,10vw,8rem);font-weight:700;letter-spacing:-.08em}.portrait-caption{display:flex;padding-top:.8rem;justify-content:space-between;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem}.about-statement{padding-block:clamp(90px,12vw,160px);border-block:1px solid var(--border-color);background:var(--surface-color)}.about-statement-grid{display:grid;grid-template-columns:minmax(140px,.35fr) minmax(0,1.65fr);gap:clamp(50px,9vw,130px)}.about-statement h2,.about-section-heading h2,.chat-section-copy h2{max-width:900px;font-size:clamp(2.6rem,5.2vw,5rem);font-weight:580}.statement-columns{display:grid;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-color);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,70px);color:var(--text-muted);font-size:.94rem}.experience-section{display:grid;padding-block:clamp(90px,12vw,160px);grid-template-columns:minmax(240px,.58fr) minmax(0,1.42fr);align-items:start;gap:clamp(48px,7vw,100px)}.about-section-heading h2{margin-top:1rem;font-size:clamp(2.5rem,4.5vw,4.4rem)}.about-details{display:grid;padding-bottom:clamp(90px,12vw,160px);grid-template-columns:repeat(3,1fr);gap:1rem}.about-details article{min-height:260px;padding:clamp(24px,3vw,36px);border:1px solid var(--border-color);border-radius:10px;background:var(--surface-color)}.about-details article:nth-child(2){background:var(--accent-soft)}.about-details article>span{color:var(--accent-color);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.about-details h3{margin:4.5rem 0 .75rem;font-size:1.55rem;font-weight:600}.about-details p,.chat-section-copy>p:last-child{color:var(--text-muted);font-size:.88rem}.chat-section{display:grid;padding-block:clamp(80px,10vw,130px);border-top:1px solid var(--border-color);grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);align-items:start;gap:clamp(50px,9vw,120px)}.chat-section-copy{position:sticky;top:110px}.chat-section-copy h2{margin:1rem 0 1.2rem;font-size:clamp(2.5rem,4.5vw,4.3rem)}@media (max-width: 900px){.about-hero,.about-statement-grid,.experience-section,.chat-section{grid-template-columns:1fr}.portrait-frame{max-width:500px}.chat-section-copy{position:relative;top:auto}}@media (max-width: 680px){.about-hero{padding-block:72px}.about-hero-copy h1{font-size:clamp(3.2rem,17vw,5.2rem)}.statement-columns,.about-details{grid-template-columns:1fr}.about-details article{min-height:230px}}.page-container{display:flex;min-height:100vh;flex-direction:column}.main-content{display:flex;flex:1;flex-direction:column}.route-loading{display:grid;min-height:70vh;place-items:center;color:var(--text-muted);font-size:.9rem}
