:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:DM Sans,system-ui,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #8db7ff;outline-offset:3px}::selection{background:#619bf477}.app{--bg:#12141a;--panel:#191c24;--panel-2:#1e222c;--panel-3:#252a34;--border:#303541;--text:#edf0f5;--muted:#a0a9b9;--subtle:#929eaf;--accent:#8ab4ff;--lime:#a4d7a3;--warm:#e9bd91;min-height:100vh;background:var(--bg);color:var(--text)}:is(.app[data-theme=light],html[data-theme=light] .app),html[data-theme=light] .app{color-scheme:light;--bg:#f5f6f8;--panel:#fff;--panel-2:#f1f3f7;--panel-3:#e7ebf0;--border:#d9dfe8;--text:#202936;--muted:#4c596b;--subtle:#536274;--accent:#245dab;--lime:#317853;--warm:#975c22}.skip-link{position:fixed;z-index:30;top:-90px;left:16px;padding:10px 16px;background:var(--accent);color:var(--bg)}.skip-link:focus{top:8px}.topbar{height:56px;background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;padding:0 23px;position:-webkit-sticky;position:sticky;top:0;z-index:12}.brand{display:flex;gap:12px;font:500 13px JetBrains Mono,monospace;white-space:nowrap}.brand-mark{width:28px;height:28px;border:1px solid var(--accent);border-radius:7px;font:700 17px DM Sans,sans-serif}.accent,.brand-mark span{color:var(--accent)}.muted{color:var(--subtle)}.top-actions{align-items:center}.command-trigger,.icon-button,.return-button{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:7px}.command-trigger{display:flex;align-items:center;gap:10px;width:228px;text-align:left;padding:0 10px;font:11px JetBrains Mono,monospace}.command-trigger span{flex:1 1}.command-trigger kbd{border:1px solid var(--border);border-radius:3px;padding:2px 4px;font:10px JetBrains Mono,monospace}.icon-button{width:35px;font-size:17px}.return-button{padding:8px 12px;font:11px JetBrains Mono,monospace}.command-trigger:hover,.icon-button:hover,.return-button:hover{color:var(--text);border-color:var(--accent)}.icon-button.mobile-toggle{line-height:normal}.workspace{display:grid;grid-template-columns:242px minmax(0,1fr)}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:56px;align-self:start;height:calc(100vh - 84px);overflow-y:auto}.file-link,.folder,.sidebar-title{font:11px JetBrains Mono,monospace}.sidebar-title{color:var(--muted);padding:21px 20px;display:flex;justify-content:space-between;letter-spacing:.11em}.folder{padding:7px 18px 14px;color:var(--text);font-weight:600;white-space:nowrap}.sidebar nav{display:grid;grid-gap:3px;gap:3px}.file-link{padding:11px 14px 11px 30px;color:var(--muted);border-left:2px solid transparent;display:flex;align-items:center;gap:11px}.file-link:focus-visible,.file-link:hover{background:var(--panel-2);color:var(--text);border-left-color:var(--accent)}.file-symbol{color:var(--accent);font:600 12px JetBrains Mono,monospace;width:20px;flex:none}.file-link[href="#skills"] .file-symbol,.mobile-navigation a[href="#skills"] .file-symbol{color:var(--warm)}.sidebar-bottom{margin-top:auto;padding:18px 21px 27px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;line-height:2}.sidebar-bottom small{padding-left:15px;color:var(--subtle)}.online-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}.work-tree-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center}.work-tree-parent{min-width:0;overflow:hidden;white-space:nowrap}.work-tree-row button{width:30px;height:30px;padding:0;border:0;background:transparent;color:var(--muted);font-size:19px}.work-tree-row button:hover{color:var(--accent)}.work-tree-children{margin:1px 0 5px 38px;padding-left:10px;border-left:1px solid var(--border);display:grid}.work-tree-child{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);padding:7px 6px;border-radius:3px;font:10px JetBrains Mono,monospace}.work-tree-child.is-active,.work-tree-child:hover{background:var(--panel-2);color:var(--text)}.work-tree-child.is-active{box-shadow:inset 2px 0 var(--accent)}.tree-guide{color:var(--subtle);margin-right:8px}main{min-width:0}.tabs{height:40px;background:var(--panel);border-bottom:1px solid var(--border);font:11px JetBrains Mono,monospace;color:var(--subtle)}.tab,.tabs{display:flex;align-items:center}.tab{height:100%;padding:0 18px;gap:9px;color:var(--text);background:var(--bg);border-right:1px solid var(--border);border-top:1px solid var(--accent)}.md-icon{color:var(--accent)}.tab-close{margin-left:13px;color:var(--subtle)}.tabs-location{padding:0 20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{max-width:2560px;margin:auto;padding:0 clamp(24px,5vw,76px)}.section{padding:90px 0;border-bottom:1px solid var(--border);scroll-margin-top:85px}.breadcrumb{margin-bottom:56px;color:var(--subtle);font:11px JetBrains Mono,monospace}.breadcrumb span{margin:0 10px}.hero{padding-top:35px;padding-bottom:105px}.hero-grid{display:grid;grid-template-columns:1.13fr .87fr;align-items:center;grid-gap:clamp(35px,5vw,82px);gap:clamp(35px,5vw,82px)}.eyebrow,.overline{font:600 11px JetBrains Mono,monospace;letter-spacing:.11em}.eyebrow{color:var(--lime);margin:0 0 24px}.overline{color:var(--accent);margin:0 0 15px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,4.5vw,71px);line-height:1.13;letter-spacing:-.055em;max-width:700px;margin-bottom:25px}h1 em{font-style:normal;color:var(--accent)}.hero-lead{max-width:570px;font-size:clamp(16px,1.6vw,18px);line-height:1.7;color:var(--muted);margin-bottom:32px}.hero-lead strong{color:var(--text)}.case-actions,.hero-actions{display:flex;flex-wrap:wrap;gap:11px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:43px;padding:0 17px;border-radius:5px;font-size:13px;font-weight:700;transition:transform .16s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);color:var(--bg)}.button-secondary{background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.hero-footnote{margin:28px 0 0;font:11px JetBrains Mono,monospace;color:var(--subtle);line-height:1.9}.hero-footnote span{padding:0 8px}.hero-visual{position:relative;width:min(100%,460px);justify-self:end;padding:0 17px 23px 0}.portrait-card{width:70%;aspect-ratio:1/1.05;margin-left:auto;border:1px solid var(--border);background:var(--panel);border-radius:9px;overflow:hidden;position:relative;box-shadow:0 24px 70px #0004}.portrait-card>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 27%;filter:saturate(.85)}.portrait-card:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0b1124b9);pointer-events:none}.portrait-label{position:absolute;z-index:1;bottom:15px;left:16px;color:#f5f7fc;font:600 10px/1.7 JetBrains Mono,monospace}.portrait-label small{margin-left:14px;color:#e0e8f2;font:11px DM Sans,sans-serif}.hero-code{position:relative;width:94%;margin-top:-38px;transform:rotate(-2deg);border:1px solid var(--border);border-radius:8px;background:var(--panel);overflow:hidden;box-shadow:0 18px 50px #0005}.code-header{height:42px;padding:0 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:19px;color:var(--muted);font:11px JetBrains Mono,monospace}.code-header>span:last-child{margin-left:auto;color:var(--warm)}.window-dots{display:flex;gap:6px}.window-dots i{display:block;width:7px;height:7px;border-radius:50%;background:var(--subtle)}.window-dots i:first-child{background:#e99798}.window-dots i:nth-child(2){background:#ebc68a}.window-dots i:nth-child(3){background:var(--lime)}.code-lines{padding:14px 8px 15px;overflow-x:auto}.code-lines>div{display:flex;gap:20px;white-space:pre}.code-lines>div>span{width:19px;text-align:right;flex:none;color:var(--subtle)}.code-lines code,.code-lines>div>span{font:11px/1.9 JetBrains Mono,monospace}.code-lines b{color:var(--accent)}.code-lines em{color:var(--lime);font-style:normal}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:33px}h2{font-size:clamp(30px,3vw,43px);line-height:1.18;letter-spacing:-.04em;margin:0}.section-aside{color:var(--subtle);font:11px JetBrains Mono,monospace;padding-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.project{min-height:395px;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:25px;transition:border-color .2s ease,transform .2s ease}.project:hover{border-color:var(--accent);transform:translateY(-3px)}.project-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px;font:10px JetBrains Mono,monospace}.project-number{color:var(--accent)}.project-kind{color:var(--subtle);text-align:right}.project-visual{height:147px;border-radius:5px;border:1px solid var(--border);margin-bottom:20px;background:var(--panel-2)}.project-visual img{width:100%;height:100%;object-fit:cover;object-position:top center}.project h3{font-size:20px;letter-spacing:-.025em;margin-bottom:10px}.project p{color:var(--muted);font-size:13px;line-height:1.65;margin-bottom:14px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:12px}.tags span{color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:5px 7px;font:10px JetBrains Mono,monospace}.project-open{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:18px;padding:13px 0 0;border-top:1px solid var(--border);color:var(--accent);font-size:12px;font-weight:700}.project-open:hover{color:var(--text)}.timeline{border-top:1px solid var(--border)}.timeline-item{display:grid;grid-template-columns:180px 1fr;grid-gap:28px;gap:28px;padding:25px 0;border-bottom:1px solid var(--border)}.timeline-date{color:var(--accent);font:11px JetBrains Mono,monospace;padding-top:5px}.timeline-item h3{font-size:18px;margin-bottom:5px}.timeline-company{color:var(--lime)!important;margin-bottom:11px!important;font:11px JetBrains Mono,monospace!important}.timeline-item p{color:var(--muted);font-size:13px;line-height:1.6;max-width:650px;margin-bottom:0}.section-intro{color:var(--muted);font-size:15px;line-height:1.75;max-width:720px;margin-bottom:26px}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:13px;gap:13px}.skill-panel{padding:23px;border:1px solid var(--border);background:var(--panel);border-radius:8px}.skill-panel h3{font:600 12px JetBrains Mono,monospace;color:var(--accent);margin-bottom:17px}.skill-panel .tags{padding:0}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:13px;gap:13px}.review-card{margin:0;padding:24px;border:1px solid var(--border);border-radius:8px;background:var(--panel);display:flex;flex-direction:column;min-height:210px}.review-stars{color:var(--warm);letter-spacing:.08em;font-size:15px;white-space:nowrap}.review-stars span{color:var(--muted);letter-spacing:0;font:10px JetBrains Mono,monospace;padding-left:5px}.review-card blockquote{margin:25px 0;font-size:18px;line-height:1.5;letter-spacing:-.015em}.review-card figcaption{margin-top:auto;color:var(--muted);font-size:11px;line-height:1.5}.review-card figcaption span{color:var(--subtle)}.review-source{display:inline-flex;gap:10px;margin-top:20px;color:var(--accent);font-size:12px;font-weight:700}.review-source:hover{text-decoration:underline}.about-section{display:grid;grid-template-columns:.85fr 1.15fr;grid-gap:50px;gap:50px}.about-copy p{color:var(--muted);font-size:15px;line-height:1.8;margin-bottom:18px}.contact-section{background:radial-gradient(ellipse at 85% 50%,#8ab4ff18,transparent 65%);border:0}.contact-section h2{max-width:650px;margin-bottom:17px}.contact-section>p:not(.overline){color:var(--muted);font-size:15px;margin-bottom:27px}footer{border-top:1px solid var(--border);padding:25px 0 50px;color:var(--subtle);font:11px JetBrains Mono,monospace;gap:12px}.statusbar,footer{display:flex;justify-content:space-between}.statusbar{position:-webkit-sticky;position:sticky;bottom:0;z-index:15;align-items:center;padding:0 17px;height:28px;background:var(--accent);color:var(--bg);font:10px JetBrains Mono,monospace}.image-dialog,.quick-dialog{border:0;padding:0;background:var(--panel);color:var(--text);border-radius:10px;box-shadow:0 20px 70px #0008}.quick-dialog{width:min(480px,calc(100vw - 28px))}.image-dialog::-webkit-backdrop,.quick-dialog::-webkit-backdrop{background:#080b12dc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-dialog::backdrop,.quick-dialog::backdrop{background:#080b12dc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.quick-box{padding:12px}.quick-title{padding:12px 10px 16px;border-bottom:1px solid var(--border);font:12px JetBrains Mono,monospace;display:flex;justify-content:space-between}.quick-title button{border:0;background:transparent;color:var(--muted)}.quick-item{display:flex;align-items:center;gap:13px;width:100%;padding:12px 10px;border:0;background:transparent;text-align:left;color:var(--text);border-radius:5px;font:12px JetBrains Mono,monospace}.quick-item:hover{background:var(--panel-2)}.quick-item>span:last-child{margin-left:auto;color:var(--subtle)}.quick-hint{border-top:1px solid var(--border);padding:12px 10px 3px;color:var(--subtle);font:10px JetBrains Mono,monospace}.case-page{padding:32px 0 0}.case-breadcrumb{margin:0 0 48px}.case-breadcrumb a:hover{color:var(--accent)}.case-hero{display:grid;grid-template-columns:1.04fr .96fr;grid-gap:clamp(30px,5vw,70px);gap:clamp(30px,5vw,70px);align-items:center;padding-bottom:80px;border-bottom:1px solid var(--border)}.case-hero h1{font-size:clamp(42px,4vw,66px);margin:18px 0 20px}.case-intro{max-width:600px;font-size:17px;line-height:1.7;color:var(--muted)}.case-tags{margin:0;padding:8px 0 0}.case-actions{margin-top:31px}.case-cover{height:clamp(250px,31vw,405px);display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:0 30px 75px #0003}.case-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.case-body{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(28px,5vw,65px);gap:clamp(28px,5vw,65px);padding:75px 0;border-bottom:1px solid var(--border)}.case-block h2{font-size:clamp(26px,2.6vw,35px);margin:15px 0 17px}.case-block li,.case-block>p:not(.overline){font-size:15px;line-height:1.75;color:var(--muted)}.case-block ul{margin:24px 0 0;padding-left:20px}.case-block li+li{margin-top:12px}.case-block li::marker{color:var(--accent)}.project-gallery{padding:75px 0 65px}.project-gallery-heading{display:flex;justify-content:space-between;color:var(--subtle);font:11px JetBrains Mono,monospace}.project-gallery-heading .overline{margin:0 0 22px}.project-gallery-main{width:100%;max-height:680px;overflow:hidden;display:grid;place-items:center;padding:14px;border:1px solid var(--border);border-radius:8px;cursor:zoom-in}.project-gallery-main img{display:block;max-width:100%;max-height:640px;width:auto;height:auto;object-fit:contain}.project-gallery-main span{position:absolute;bottom:16px;right:16px;padding:9px 12px;background:#10151ded;color:#fff;border-radius:5px;font:11px JetBrains Mono,monospace}.project-gallery-controls{justify-content:space-between;margin-top:12px}.project-gallery-thumbs{flex-wrap:wrap}.project-gallery-thumbs button{width:82px;height:58px;padding:0;border:2px solid var(--border);background:var(--panel);border-radius:5px;overflow:hidden}.project-gallery-thumbs button.is-current,.project-gallery-thumbs button:hover{border-color:var(--accent)}.project-gallery-thumbs img{width:100%;height:100%;object-fit:cover;object-position:top}.gallery-arrows{display:flex;gap:7px}.gallery-arrows button{height:36px;width:38px;border:1px solid var(--border);border-radius:5px;background:var(--panel-2);color:var(--text)}.gallery-arrows button:hover{border-color:var(--accent)}.case-publication-note{margin:27px 0 0;color:var(--subtle);font-size:12px;line-height:1.7}.case-page .case-footer{display:flex;justify-content:space-between;gap:25px;padding:32px 0 75px;margin-top:25px;color:var(--accent);font:12px JetBrains Mono,monospace}.image-dialog{width:min(1260px,96vw);max-height:94vh;padding:12px;border:1px solid var(--border)}.image-dialog img{width:100%;max-height:calc(94vh - 100px);object-fit:contain;display:block}.image-dialog p{margin:10px 4px 0;font-size:12px;color:var(--muted)}.image-close{float:right;margin-bottom:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:7px 12px;border-radius:4px}.mobile-navigation{display:none}@media (max-width:1050px){.workspace{grid-template-columns:206px minmax(0,1fr)}.case-hero,.hero-grid{grid-template-columns:1fr}.hero-visual{width:min(100%,430px);justify-self:center}.case-cover{max-width:680px;width:100%}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.topbar{padding:0 16px}.command-trigger{width:35px;justify-content:center;font-size:18px}.command-trigger kbd,.command-trigger span,.sidebar,.tabs-location{display:none}.mobile-toggle,.workspace{display:block}.mobile-navigation{display:grid;position:fixed;top:56px;right:0;left:0;z-index:11;background:var(--panel);border-bottom:1px solid var(--border);padding:12px;box-shadow:0 20px 40px #0005;max-height:calc(100vh - 90px);overflow:auto}.mobile-navigation>a{padding:11px;display:flex;gap:10px;align-items:center;font:12px JetBrains Mono,monospace}.mobile-navigation .work-tree-row{grid-template-columns:minmax(0,1fr) 40px}.mobile-navigation .work-tree-row>a{padding:11px}.mobile-navigation .work-tree-children{margin:0 0 3px 22px}.mobile-navigation .work-tree-child{padding:9px 12px}.content{padding:0 21px}.breadcrumb{margin-bottom:40px}.section{padding:70px 0}.hero{padding-top:27px}.section-aside{display:none}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-section,.case-body{grid-template-columns:1fr;gap:24px}.project-gallery{padding:55px 0}.case-hero{padding-bottom:55px}}@media (max-width:520px){.brand .muted{display:none}.hero{padding-bottom:70px}.section{padding-top:65px;padding-bottom:65px}.hero-code{width:100%}.project-grid,.review-grid,.skill-grid,.timeline-item{grid-template-columns:1fr}.timeline-item{gap:8px}.case-page .case-footer,footer{flex-direction:column;align-items:flex-start}.project-gallery-thumbs button{width:55px;height:45px}.gallery-arrows{flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}.hero-code{transform:none}}.project{display:flex;flex-direction:column;text-decoration:none;cursor:pointer}.project-open:after{content:none!important}.project:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project:hover h3{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.image-dialog .lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:42px;padding:0 3px 10px;color:var(--muted);font:11px JetBrains Mono,monospace}.image-dialog .lightbox-controls{display:flex;gap:7px}.image-dialog .lightbox-controls button{width:36px;height:34px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:18px}.image-dialog .lightbox-controls button:hover{border-color:var(--accent)}.image-dialog img{max-height:calc(94vh - 110px)}.tech-intro{max-width:760px;margin:0 0 35px}.tech-intro p{color:var(--muted);font-size:15px;line-height:1.8;margin:0 0 14px}.tech-intro strong{color:var(--text);font-weight:600}.tech-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:11px;gap:11px}.tech-tile{min-height:116px;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:16px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;text-align:center;transition:border-color .16s ease,transform .16s ease}.tech-tile:hover{border-color:var(--accent);transform:translateY(-2px)}.tech-icon{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:9px;background:#f6f8fb;color:#26384f}.tech-icon img{position:absolute;inset:7px;width:30px;height:30px;object-fit:contain}.tech-fallback{font:700 13px JetBrains Mono,monospace}.tech-icon:has(img:not([hidden])) .tech-fallback{visibility:hidden}.tech-name{color:var(--text);font:600 12px DM Sans,system-ui,sans-serif;line-height:1.25}.mobile-only-tech{display:none}.tech-evolving{max-width:790px;margin:29px 0 0;color:var(--muted);font-size:14px;line-height:1.75;border-left:2px solid var(--accent);padding-left:16px}@media(max-width:1240px){.tech-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:850px){.tech-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-only-tech{display:flex}}@media(max-width:520px){.tech-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tech-tile{min-height:103px;padding:12px 5px}.tech-name{font-size:11px}}@media(prefers-reduced-motion:reduce){.tech-tile{transition:none}}.testimonial-subheading{font:600 13px JetBrains Mono,monospace;color:var(--text);margin:0 0 18px}.li-team-heading{margin-top:50px}.li-recommendation-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;width:100%;max-width:none}.li-recommendation-card{border:1px solid var(--border);border-radius:9px;background:var(--panel);padding:clamp(20px,2.5vw,30px);min-width:0}.li-source{color:var(--accent);font:600 10px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.07em}.li-recommendation-meta h4{font-size:19px;color:var(--text);margin:12px 0 4px}.li-recommendation-meta p{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 18px}.li-quote{margin:0;color:var(--text);font-size:14px;line-height:1.6}.li-quote p{margin:0 0 15px}.li-quote p:last-child{margin-bottom:0}.li-quote.is-collapsed{max-height:calc(1.8em * 3);overflow:hidden;mask-image:linear-gradient(180deg,#000 78%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent)}.li-quote.is-expanded{max-height:none;mask-image:none;-webkit-mask-image:none}.li-actions{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin-top:18px}.li-expand-button,.li-original-button{border:0;background:transparent;color:var(--accent);font:600 12px DM Sans,system-ui,sans-serif;padding:0;cursor:pointer}.li-expand-button:hover,.li-original-button:hover{text-decoration:underline}.li-recommendation-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:9px;max-width:min(96vw,820px);max-height:92vh;overflow:auto;padding:12px;box-shadow:0 25px 80px #0009}.li-recommendation-dialog::-webkit-backdrop{background:#070a12dc}.li-recommendation-dialog::backdrop{background:#070a12dc}.li-recommendation-dialog img{display:block;max-width:100%;height:auto;margin:auto}.li-recommendation-dialog p{font-size:11px;color:var(--muted);margin:10px 4px 0}.li-close{display:block;margin:0 0 10px auto;padding:8px 12px;border:1px solid var(--border);border-radius:4px;background:var(--panel-2);color:var(--text);cursor:pointer}@media(max-width:700px){.li-recommendation-card{padding:20px}.li-quote{font-size:13px}}.project-gallery-controls{display:flex;align-items:center;gap:12px;min-width:0}.project-gallery-thumbs{overflow-y:hidden;min-width:0;padding-bottom:8px}.gallery-arrows{flex:none}.gallery-current-alt{color:var(--muted);font-size:12px;line-height:1.55;margin:12px 0 4px}.original-image-dialog{max-height:94vh;overflow:auto}.original-image-dialog img{display:block;width:auto;max-width:100%;max-height:none;height:auto;object-fit:fill}.original-image-dialog p a{color:var(--accent);text-decoration:underline}@media(max-width:520px){.project-gallery-thumbs button{flex-basis:55px}.project-gallery-controls{align-items:center}}.project-gallery.is-mobile-gallery .project-gallery-main{max-height:500px;min-height:330px}.project-gallery.is-mobile-gallery .project-gallery-main img{max-height:440px;max-width:min(240px,75vw);width:auto;height:auto}.original-image-dialog.is-mobile img{max-height:75vh;max-width:min(360px,85vw);width:auto;height:auto;object-fit:contain;margin:auto}.original-image-dialog.is-mobile{overflow:auto}@media(max-width:520px){.project-gallery.is-mobile-gallery .project-gallery-main{min-height:300px}.project-gallery.is-mobile-gallery .project-gallery-main img{max-height:380px;max-width:65vw}}.project-visual{height:auto!important;max-height:none!important;aspect-ratio:16/9;overflow:hidden}.case-cover img,.case-cover>picture,.project-visual img,.project-visual>picture{display:block;width:100%;height:100%}.case-cover img,.project-visual img{object-fit:cover}.case-cover{height:auto!important;max-height:none!important;aspect-ratio:16/9}.case-cover,body.gallery-open{overflow:hidden}.gallery-stage,.lightbox-stage{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.gallery-overlay-button{position:absolute;z-index:3;width:42px;height:56px;border:1px solid var(--border);border-radius:8px;background:#111827d9;color:var(--text);font-size:25px;line-height:1;cursor:pointer;display:grid;place-items:center}.gallery-overlay-button:focus-visible,.gallery-overlay-button:hover{border-color:var(--accent);color:var(--accent)}.gallery-overlay-prev{left:10px}.gallery-overlay-next{right:10px}.gallery-stage .project-gallery-main{width:100%}.project-gallery-controls{display:block!important}.project-gallery-thumbs{overflow-x:auto;max-width:100%;display:flex;flex-wrap:nowrap;gap:9px;padding:8px 2px 12px;scrollbar-width:thin}.project-gallery-thumbs button{flex:0 0 82px}.original-image-dialog{width:min(96vw,1260px);max-height:85vh;padding:12px;overflow:hidden}.lightbox-inner{max-height:calc(85vh - 24px);display:flex;flex-direction:column}.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;flex:none;padding:0 2px 9px;color:var(--muted);font:11px JetBrains Mono,monospace}.lightbox-toolbar button{height:34px;width:38px;border:1px solid var(--border);border-radius:5px;background:var(--panel-2);color:var(--text);cursor:pointer}.lightbox-stage{min-height:0;overflow:auto;flex:1 1;align-items:flex-start}.lightbox-stage img{display:block;max-width:100%;height:auto;object-fit:contain;margin:auto}.lightbox-stage .gallery-overlay-button{position:-webkit-sticky;position:sticky;top:45%;flex:none}.lightbox-inner>p{flex:none;color:var(--muted);font-size:11px;margin:9px 2px 0}.lightbox-inner>p a{color:var(--accent);text-decoration:underline}.is-mobile-gallery .project-gallery-main{min-height:310px;max-height:520px}.is-mobile-gallery .project-gallery-main img{max-height:470px;width:auto;max-width:70vw}.original-image-dialog.is-mobile .lightbox-stage img{max-height:none;max-width:min(380px,86vw);width:auto}.original-image-dialog.is-mobile{width:min(96vw,600px)}@media (max-width:760px){.gallery-overlay-button{width:40px;height:52px;background:#111827ef}.gallery-overlay-prev{left:7px}.gallery-overlay-next{right:7px}.project-gallery-main span{display:none}.lightbox-stage .gallery-overlay-button{position:absolute;top:45%}.original-image-dialog{width:calc(100vw - 20px);max-height:85vh}.lightbox-inner{max-height:calc(85vh - 25px)}.brand,.top-actions,.topbar{align-items:center}.brand-mark{display:grid;place-items:center}.top-actions{height:100%}.top-actions .command-trigger,.top-actions .icon-button{display:grid;place-items:center}.gallery-overlay-button{display:none}}@media (max-width:520px){.project-gallery-thumbs button{flex-basis:55px}.project-gallery-main{padding:6px}.is-mobile-gallery .project-gallery-main{min-height:270px}}.topbar{display:flex;min-height:56px;height:auto}.brand,.topbar{align-items:center}.brand{height:32px;display:inline-flex;line-height:1}.brand-mark{display:grid;place-items:center;flex:0 0 28px}.brand-mark span{line-height:1}.top-actions{height:32px;display:flex;align-items:stretch;gap:10px}.top-actions>*{align-self:stretch;display:inline-flex;align-items:center;justify-content:center}.command-trigger,.icon-button{height:32px;line-height:1}.icon-button{padding:0;display:grid!important;place-items:center}.return-button{height:32px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.top-actions .icon-button img,.top-actions .icon-button svg{display:block}.brand-mark,.icon-button{vertical-align:middle}@media (max-width:760px){.topbar{min-height:56px}.top-actions{height:32px;align-items:center}.brand{height:32px}}@media (min-width:761px){.mobile-toggle{display:none!important}}.project-gallery-main{position:relative;background:var(--panel);border-color:var(--border)}.project-gallery-main>span{background:var(--panel-3);color:var(--text);border:1px solid var(--border);box-shadow:0 3px 12px #0002}.gallery-overlay-button,.project-gallery-thumbs button{background:var(--panel-2);color:var(--text);border-color:var(--border);box-shadow:0 2px 7px #0002}.gallery-overlay-button:focus-visible,.gallery-overlay-button:hover,.project-gallery-thumbs button.is-current,.project-gallery-thumbs button:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.gallery-overlay-button:focus-visible,.project-gallery-thumbs button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}:is(.app[data-theme=light],html[data-theme=light] .app) .project-gallery-main>span{background:#ffffffec;color:#202936;border-color:#aeb8c8;box-shadow:0 3px 12px #3440542b}:is(.app[data-theme=light],html[data-theme=light] .app) .gallery-overlay-button,:is(.app[data-theme=light],html[data-theme=light] .app) .project-gallery-thumbs button{background:#ffffff;color:#202936;border-color:#aeb8c8}:is(.app[data-theme=light],html[data-theme=light] .app) .gallery-overlay-button:focus-visible,:is(.app[data-theme=light],html[data-theme=light] .app) .gallery-overlay-button:hover,:is(.app[data-theme=light],html[data-theme=light] .app) .project-gallery-thumbs button.is-current,:is(.app[data-theme=light],html[data-theme=light] .app) .project-gallery-thumbs button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.vamtam-theme-strip{border-top:1px solid var(--border);padding:70px 0}.theme-strip-heading{display:flex;justify-content:space-between;align-items:end;gap:18px}.theme-strip-heading>span{color:var(--subtle);font:11px JetBrains Mono,monospace;padding-bottom:5px}.theme-strip-heading h2{margin:0 0 14px}.theme-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:3px 2px 15px;scrollbar-width:thin}.theme-card{flex:0 0 clamp(270px,27vw,360px);border:1px solid var(--border);border-radius:8px;background:var(--panel);overflow:hidden;scroll-snap-align:start;transition:transform .16s ease,border-color .16s ease}.theme-card:hover{transform:translateY(-3px);border-color:var(--accent)}.theme-card-image{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden}.theme-card-image img{object-fit:cover}.theme-card-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px}.theme-card-meta h3{font-size:15px;margin:0 0 5px}.theme-card-meta p{color:var(--muted);font:10px JetBrains Mono,monospace;margin:0}.theme-card-meta>span{color:var(--accent);font-size:18px}@media(max-width:760px){.theme-strip-heading{align-items:start;display:block}.theme-strip-heading>span{display:block;margin-top:8px}.vamtam-theme-strip{padding:50px 0}.theme-card{flex-basis:280px}}:root{--file-md:#a9c7ff;--file-work:#8fdda8;--file-json:#f5c889;--file-js:#ffe08a;--file-review:#e2b9fa;--file-shell:#91e5e3}:is(.app[data-theme=light],html[data-theme=light] .app){--file-md:#1559a6;--file-work:#126b3e;--file-json:#8a4d10;--file-js:#805f00;--file-review:#6f318d;--file-shell:#086769}.file-symbol,.mobile-navigation .file-symbol,.mobile-navigation .work-tree .file-symbol,.quick-item .file-symbol{color:var(--file-md)!important}.file-link[href*=selected-work] .file-symbol,.mobile-navigation .work-tree-parent .file-symbol,.quick-item[data-nav=work] .file-symbol,.work-tree-parent .file-symbol{color:var(--file-work)!important}.file-link[href*=experience] .file-symbol,.mobile-navigation a[href*=experience] .file-symbol,.quick-item[data-nav=experience] .file-symbol{color:var(--file-json)!important}.file-link[href*=skills] .file-symbol,.mobile-navigation a[href*=skills] .file-symbol,.quick-item[data-nav=skills] .file-symbol{color:var(--file-js)!important}.file-link[href*=reviews] .file-symbol,.mobile-navigation a[href*=reviews] .file-symbol,.quick-item[data-nav=reviews] .file-symbol{color:var(--file-review)!important}.file-link[href*=about] .file-symbol,.mobile-navigation a[href*=about] .file-symbol,.quick-item[data-nav=about] .file-symbol{color:var(--file-md)!important}.file-link[href*=contact] .file-symbol,.mobile-navigation a[href*=contact] .file-symbol,.quick-item[data-nav=contact] .file-symbol{color:var(--file-shell)!important}.file-link[href*=home] .file-symbol,.mobile-navigation a[href*=home] .file-symbol,.quick-item[data-nav=home] .file-symbol{color:var(--file-md)!important}.mobile-navigation .work-tree-child .tree-guide,.work-tree-child .tree-guide{color:var(--file-work)!important}.file-link,.mobile-navigation .work-tree-child,.mobile-navigation>a,.quick-item{color:var(--text)}.file-link:focus-visible,.file-link:hover,.mobile-navigation .work-tree-child:focus-visible,.mobile-navigation .work-tree-child:hover,.mobile-navigation>a:focus-visible,.mobile-navigation>a:hover,.quick-item:focus-visible,.quick-item:hover{color:var(--text);background:var(--panel-2)}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_231f96{font-family:DM Sans,DM Sans Fallback;font-style:normal}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}