:root{color:var(--text);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--radius:8px;--max-width:1180px;--page:#070a0f;--page-soft:#0d131c;--surface:#101620e6;--surface-strong:#111823;--surface-alt:#172131;--text:#f2f6fb;--text-muted:#aeb9c8;--text-subtle:#9aa8bc;--line:#94a3b82e;--line-strong:#60a5fa75;--accent:#38bdf8;--accent-strong:#60a5fa;--accent-warm:#d9b66f;--danger:#fb7185;--shadow:0 20px 64px #0000005c;--hero-sheen:radial-gradient(circle at 20% 18%, #38bdf821, transparent 32%), radial-gradient(circle at 82% 70%, #60a5fa1a, transparent 28%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--hero-sheen), linear-gradient(180deg, var(--page) 0%, color-mix(in srgb, var(--page-soft) 92%, var(--accent-strong) 8%) 44%, var(--page) 100%);min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}a{color:inherit;text-decoration:none}button{border:0}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--accent-warm);outline-offset:3px}.app-shell{min-height:100vh;overflow:hidden}.portfolio-boot-loader{z-index:100;background:#050b10;position:fixed;inset:0}.topbar{z-index:30;width:min(calc(100% - 32px), var(--max-width));border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 88%, transparent), var(--surface)), var(--surface);min-height:58px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:auto 1fr auto;align-items:center;padding:8px;display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%)}.brand-mark,.icon-button{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);width:42px;height:42px;color:var(--text);cursor:pointer;place-items:center;transition:transform .18s,border-color .18s,background .18s;display:inline-grid}.brand-mark span{color:var(--accent);font-size:.82rem;font-weight:800}.icon-button:hover,.brand-mark:hover{border-color:var(--line-strong);transform:translateY(-1px)}.nav-links{justify-content:center;gap:6px;display:flex}.nav-links a{border-radius:var(--radius);min-height:38px;color:var(--text-muted);padding:9px 14px;font-size:.92rem;font-weight:700}.nav-links a:hover{background:var(--surface-alt);color:var(--text)}.topbar-actions,.hero-actions,.footer-links,.graph-panel__actions,.project-detail__footer{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hero-section{min-height:100svh;padding:96px max(24px, calc((100vw - var(--max-width)) / 2)) 56px;align-items:center;display:grid;position:relative;overflow:hidden}.hero-section:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--page-soft) 74%, transparent));pointer-events:none;height:34vh;position:absolute;inset:auto 0 0}.hero-graph{min-height:100svh;position:absolute;inset:0}.hero-graph--fallback{background:linear-gradient(115deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 45%), linear-gradient(245deg, color-mix(in srgb, var(--accent-strong) 9%, transparent), transparent 48%)}.blueprint-hero{--blueprint-safe-left:max(24px, calc((100vw - var(--max-width)) / 2));color:var(--text)}.blueprint-hero:before{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--page) 90%, transparent) 0 34%, transparent 62%), radial-gradient(circle at 82% 50%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 35%);pointer-events:none;position:absolute;inset:0}.blueprint-hero__canvas{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;inset:0}.blueprint-hero__overlay{pointer-events:none;position:absolute;inset:0}.blueprint-hero__lane,.blueprint-hero__project,.blueprint-hero__hint{border:1px solid color-mix(in srgb, var(--blueprint-tone,var(--accent)) 38%, var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 76%, transparent);color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;pointer-events:auto;transition:border-color .18s,background .18s,box-shadow .18s,color .18s,opacity .18s,transform .18s;position:absolute;box-shadow:0 12px 34px #00000047}.blueprint-hero__lane{left:calc(var(--blueprint-x) * 100%);top:calc(var(--blueprint-y) * 100%);text-align:left;opacity:.58;gap:2px;min-width:142px;min-height:46px;padding:8px 11px;display:grid;transform:translate(-50%,-50%)}.blueprint-hero__lane span,.blueprint-hero__project span{font-weight:850;line-height:1.05}.blueprint-hero__lane small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.2;overflow:hidden}.blueprint-hero__lane:hover,.blueprint-hero__lane:focus-visible,.blueprint-hero__lane[aria-pressed=true],.blueprint-hero__lane[data-active=true]{border-color:color-mix(in srgb, var(--blueprint-tone) 82%, #fff 12%);background:color-mix(in srgb, var(--blueprint-tone) 14%, var(--surface-strong));box-shadow:0 16px 42px #00000057, 0 0 34px color-mix(in srgb, var(--blueprint-tone) 34%, transparent);opacity:1;transform:translate(-50%,-50%)}.blueprint-hero__project{left:calc(var(--blueprint-x) * 100%);top:calc(var(--blueprint-y) * 100%);min-width:106px;min-height:36px;color:var(--text-muted);opacity:.72;justify-content:center;align-items:center;padding:8px 12px;font-size:.75rem;display:inline-flex;transform:translate(-50%,-50%)}.blueprint-hero__project:before{content:"";background:var(--blueprint-tone);width:9px;height:9px;box-shadow:0 0 18px color-mix(in srgb, var(--blueprint-tone) 72%, transparent);border-radius:999px;margin-right:8px}.blueprint-hero__project:hover,.blueprint-hero__project:focus-visible,.blueprint-hero__project[data-active=true]{border-color:color-mix(in srgb, var(--blueprint-tone) 84%, #fff 12%);background:color-mix(in srgb, var(--blueprint-tone) 13%, var(--surface-strong));color:var(--text);opacity:1;transform:translate(-50%,-50%)}.blueprint-hero__hint{right:max(24px, calc((100vw - var(--max-width)) / 2));z-index:7;border-color:color-mix(in srgb, var(--accent) 34%, var(--line));min-height:34px;color:var(--text-muted);padding:7px 10px;font-size:.78rem;font-weight:800;bottom:42px}.blueprint-hero__hint:hover,.blueprint-hero__hint:focus-visible{border-color:var(--line-strong);color:var(--text)}@media (width>=981px){.blueprint-hero__lane{width:142px}}.hero-copy{z-index:3;isolation:isolate;pointer-events:none;width:min(680px,100%);padding-top:7vh;position:relative;transform:translate(clamp(-52px,-3.2vw,-28px))}.hero-copy>*{z-index:1;pointer-events:auto;position:relative}.hero-copy:before{z-index:0;content:"";background:radial-gradient(ellipse at 28% 46%, color-mix(in srgb, var(--page) 92%, transparent) 0%, color-mix(in srgb, var(--page) 68%, transparent) 40%, transparent 66%);filter:blur(10px);pointer-events:none;position:absolute;inset:6vh -18px -52px -90px}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;align-items:center;font-size:.78rem;font-weight:850;display:inline-flex}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:0;max-width:10ch;margin-bottom:16px;font-size:clamp(4rem,9.5vw,7.4rem);line-height:.9}h2{letter-spacing:0;margin-bottom:14px;font-size:clamp(2rem,4.5vw,4.8rem);line-height:.98}h3{margin-bottom:12px;font-size:clamp(1.3rem,2.4vw,2.1rem);line-height:1.05}h4{margin-bottom:8px;font-size:1rem}p{color:var(--text-muted)}.hero-copy p{max-width:640px;color:var(--text);text-shadow:0 2px 18px color-mix(in srgb, var(--page) 78%, transparent);margin-bottom:16px;font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.35}.hero-capability{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 82%, transparent), var(--surface)), var(--surface);width:min(540px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);gap:7px;margin-top:16px;padding:14px;display:grid}.hero-capability h2{margin-bottom:0;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.05}.hero-capability p{color:var(--text-muted);text-shadow:none;margin-bottom:2px;font-size:.92rem;line-height:1.42}.hero-meta{color:var(--text-muted);flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.hero-meta span{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:8px;min-height:36px;padding:7px 10px;display:inline-flex}.button-link,.chip-button,.project-tab{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:42px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.button-link{padding:11px 15px;font-weight:800}.button-link--primary{border-color:color-mix(in srgb, var(--accent) 56%, var(--line));background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 28%, var(--text)), var(--text));color:var(--page);box-shadow:0 12px 34px color-mix(in srgb, var(--accent) 18%, transparent)}.button-link--secondary,.chip-button{background:var(--surface);color:var(--text)}.button-link:hover,.chip-button:hover,.project-tab:hover{border-color:var(--line-strong);transform:translateY(-1px)}.graph-panel{right:max(24px, calc((100vw - var(--max-width)) / 2));z-index:4;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 76%, transparent);width:min(390px,100% - 48px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);padding:18px;position:absolute;bottom:70px}.graph-panel--orbit{border-color:color-mix(in srgb, var(--accent) 24%, var(--line))}.graph-panel h2{margin-bottom:8px;font-size:1.55rem;line-height:1.1}.graph-panel p{margin-bottom:14px;font-size:.95rem}.chip-button{min-height:34px;color:var(--text-muted);padding:7px 10px}.chip-button[aria-pressed=true],.project-tab[aria-pressed=true]{border-color:var(--line-strong);background:color-mix(in srgb, var(--accent) 14%, var(--surface-strong));color:var(--text)}.hero-controls{z-index:6;pointer-events:none;justify-items:end;gap:16px;width:190px;display:grid;position:absolute;top:42%;right:32px;transform:translateY(-50%)}.hero-controls:before{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 36%, transparent), transparent);pointer-events:none;width:1px;position:absolute;top:14px;bottom:14px;right:11.5px}.hero-controls button{width:24px;min-height:24px;color:var(--text);text-align:right;cursor:pointer;pointer-events:auto;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-weight:800;transition:transform .18s;display:flex;position:relative}.hero-controls button:before{border:1px solid color-mix(in srgb, var(--capability-tone) 72%, #fff 20%);content:"";background:color-mix(in srgb, var(--capability-tone) 62%, var(--page));width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--page) 72%, transparent), 0 0 18px color-mix(in srgb, var(--capability-tone) 34%, transparent);border-radius:999px;flex:none;transition:background .18s,box-shadow .18s,transform .18s}.hero-controls button:after{display:none}.hero-controls button:hover,.hero-controls button:focus-visible{transform:none}.hero-controls button:hover:before,.hero-controls button:focus-visible:before,.hero-controls button[aria-pressed=true]:before{background:var(--capability-tone);box-shadow:0 0 0 5px color-mix(in srgb, var(--page) 76%, transparent), 0 0 28px color-mix(in srgb, var(--capability-tone) 72%, transparent);transform:scale(1.18)}.hero-controls span{border-radius:var(--radius);color:#0000;white-space:nowrap;background:0 0;border:1px solid #0000;max-width:0;padding:8px 0;font-size:.74rem;line-height:1;transition:max-width .18s,padding .18s,border-color .18s,background .18s,color .18s,transform .18s;position:absolute;top:50%;right:28px;overflow:hidden;transform:translate(8px,-50%)}.hero-controls small{display:none}.hero-controls button:hover span,.hero-controls button:focus-visible span{border-color:color-mix(in srgb, var(--capability-tone) 34%, var(--line));background:color-mix(in srgb, var(--surface-strong) 88%, transparent);max-width:148px;color:var(--text);padding:8px 10px;transform:translateY(-50%);box-shadow:0 10px 28px #00000047}.stack-list--compact{gap:6px;margin:14px 0}.stack-list--compact span{min-height:26px;font-size:.78rem}.section{width:min(calc(100% - 48px), var(--max-width));margin:0 auto;padding:56px 0 0;scroll-margin-top:96px}.section-header{gap:6px;max-width:100%;margin-bottom:12px;padding-top:12px;display:grid;position:relative}.section-header:before{content:"";background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent-strong) 52%, transparent));width:84px;height:1px;position:absolute;top:0;left:0}.section-header p{max-width:820px;margin-bottom:0;font-size:.98rem;line-height:1.45}.section-header h2{max-width:920px;margin-bottom:6px;font-size:clamp(1.9rem,2.25vw,2.55rem);line-height:1}.project-layout{grid-template-columns:280px minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.project-selector{grid-auto-rows:minmax(82px,max-content);align-content:start;gap:8px;display:grid}.project-tab{border-color:color-mix(in srgb, var(--line) 86%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 74%, transparent), var(--surface)), var(--surface);min-height:82px;color:var(--text);text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:14px;position:relative;overflow:hidden}.project-tab span{color:var(--text-subtle);text-transform:uppercase;font-size:.7rem;font-weight:800;line-height:1.25}.project-tab strong{font-size:1.1rem}.project-tab:before{content:"";background:0 0;width:3px;transition:background .18s;position:absolute;inset:0 auto 0 0}.project-tab[aria-pressed=true]:before{background:var(--accent)}.project-detail{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 82%, transparent), var(--surface)), var(--surface);min-height:560px;box-shadow:var(--shadow);display:grid;overflow:hidden}.project-detail__card{background:var(--surface);opacity:0;pointer-events:none;visibility:hidden;grid-area:1/1;grid-template-columns:minmax(260px,.92fr) minmax(320px,1fr);min-width:0;display:grid}.project-detail__card[hidden]{display:none}.project-detail__card[data-active=true]{opacity:1;pointer-events:auto;visibility:visible}.project-detail__media{background:radial-gradient(circle at 46% 38%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 42%), linear-gradient(135deg, color-mix(in srgb, var(--accent-strong) 8%, transparent), transparent), var(--surface-alt);place-items:center;min-height:0;padding:20px;display:grid}.project-detail__media img{object-fit:contain;border-radius:var(--radius);filter:drop-shadow(0 24px 38px #00000038);width:100%;max-height:390px}.project-detail__body{align-content:center;padding:clamp(20px,2.35vw,30px);display:grid}.lede{color:var(--text);font-size:1.02rem;line-height:1.42}.stack-list,.mini-stack{flex-wrap:wrap;gap:8px;display:flex}.stack-list{margin:14px 0}.stack-list span,.mini-stack span{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);min-height:27px;color:var(--text-muted);align-items:center;padding:4px 8px;font-size:.8rem;font-weight:700;display:inline-flex}.highlight-list,.plain-list{color:var(--text-muted);padding-left:18px}.highlight-list li,.plain-list li{margin-bottom:7px;font-size:.94rem;line-height:1.42}.highlight-list li::marker{color:var(--accent)}.plain-list li::marker{color:var(--accent)}.highlight-list li:last-child,.plain-list li:last-child{margin-bottom:0}.inline-link{color:var(--accent);align-items:center;gap:8px;font-weight:800;display:inline-flex}.inline-link:hover{color:color-mix(in srgb, var(--accent) 78%, var(--text))}.inline-link svg,.footer-links svg{transition:transform .18s}.inline-link:hover svg,.footer-links a:hover svg{transform:translate(2px)}.source-note{max-width:46ch;color:var(--text-subtle);font-size:.92rem}.project-detail__footer{justify-content:space-between;margin-top:2px}.project-detail__footer .inline-link{white-space:nowrap}.case-study-page{width:100%;padding:96px 0 40px;overflow:hidden}.back-link{width:min(calc(100% - 48px), var(--max-width));min-height:42px;color:var(--text-muted);align-items:center;gap:8px;margin:0 auto 12px;font-weight:800;display:flex}.back-link:hover{color:var(--text)}.case-study-hero{isolation:isolate;width:min(calc(100% - 48px), var(--max-width));border:1px solid color-mix(in srgb, var(--line) 88%, var(--accent));border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--page) 84%, transparent), color-mix(in srgb, var(--page-soft) 76%, transparent)), var(--surface);min-height:min(620px,100svh - 178px);box-shadow:var(--shadow);grid-template-columns:minmax(0,.86fr) minmax(390px,1fr);align-items:center;gap:clamp(20px,4vw,54px);margin:0 auto 18px;padding:clamp(28px,4vw,54px);display:grid;position:relative;overflow:hidden}.case-study-hero:after{z-index:-1;content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent-strong) 7%, var(--page)));pointer-events:none;height:44%;position:absolute;inset:auto 0 0}.case-study-hero__ambient{z-index:-2;opacity:.13;position:absolute;inset:-12%}.case-study-hero__ambient img{object-fit:cover;filter:blur(26px)saturate(1.18);width:100%;height:100%;transform:scale(1.08)}.case-study-hero__content{z-index:1;gap:20px;display:grid;position:relative}.case-study-hero__copy h1{max-width:9ch;margin-bottom:16px;font-size:clamp(3.4rem,6vw,5.8rem)}.case-study-page--removebg .case-study-hero__copy h1{overflow-wrap:normal;max-width:12ch}.case-study-hero__copy p{max-width:660px}.case-study-hero__actions{flex-wrap:wrap;gap:14px;display:flex}.case-study-stats{width:min(calc(100% - 48px), var(--max-width));grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 auto 18px;display:grid}.case-study-stats div{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 90%, transparent), var(--surface)), var(--surface);min-height:82px;padding:14px}.case-study-stats dt{color:var(--text-subtle);text-transform:uppercase;font-size:.74rem;font-weight:850}.case-study-stats dd{color:var(--text);margin:6px 0 0;font-size:1.05rem;font-weight:850}.case-study-product-shot{z-index:1;border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent-strong) 6%, transparent)), color-mix(in srgb, var(--surface-alt) 84%, transparent);margin:0;padding:clamp(12px,2vw,22px);position:relative;transform:perspective(1100px)rotateY(-7deg)rotateX(2deg);box-shadow:0 28px 80px #00000070,inset 0 1px #ffffff0d}.case-study-product-shot img{object-fit:contain;border-radius:calc(var(--radius) - 2px);filter:drop-shadow(0 20px 34px #00000047);width:100%;max-height:360px}.image-preview-button{border-radius:inherit;width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.image-preview-button img{transition:transform .18s,border-color .18s,filter .18s}.image-preview-button:hover img,.image-preview-button:focus-visible img{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));filter:drop-shadow(0 20px 34px #00000047) drop-shadow(0 0 18px color-mix(in srgb, var(--accent) 14%, transparent));transform:scale(1.01)}.image-lightbox{z-index:80;isolation:isolate;place-items:center;padding:clamp(16px,3vw,34px);display:grid;position:fixed;inset:0}.image-lightbox__backdrop{background:radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 34%), #03070cd6;cursor:zoom-out;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:absolute;inset:0}.image-lightbox__dialog{--lightbox-dialog-padding:clamp(10px, 1.6vw, 16px);z-index:1;width:fit-content;max-width:min(100%,1180px);max-height:min(88svh,920px);padding:var(--lightbox-dialog-padding);border:1px solid color-mix(in srgb, var(--line) 82%, var(--accent));border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 90%, transparent), var(--surface)), var(--surface);display:grid;position:relative;overflow:hidden;box-shadow:0 32px 110px #0000008f}.image-lightbox__dialog figure{gap:var(--lightbox-dialog-padding);grid-template-rows:minmax(0,1fr) auto;place-items:center;max-width:100%;min-height:0;margin:0;display:grid}.image-lightbox__dialog img{width:auto;max-width:100%;height:auto;max-height:calc(min(88svh, 920px) - (var(--lightbox-dialog-padding) * 3) - 24px);object-fit:contain;border-radius:calc(var(--radius) - 2px);background:var(--page)}.image-lightbox__dialog figcaption{color:var(--text-muted);text-align:center;font-size:.92rem;font-weight:800}.image-lightbox__close{z-index:2;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);width:42px;height:42px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);place-items:center;display:grid;position:absolute;top:14px;right:14px}.image-lightbox__close:hover,.image-lightbox__close:focus-visible{border-color:var(--line-strong);background:color-mix(in srgb, var(--accent) 12%, var(--surface-strong))}.case-study-strip,.case-study-system,.case-study-grid,.case-study-nav,.project-gallery,.case-study-proof{width:min(calc(100% - 48px), var(--max-width));margin-left:auto;margin-right:auto}.project-gallery,.case-study-proof{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 48%), var(--surface);box-shadow:var(--shadow);margin-bottom:18px;padding:clamp(24px,4vw,40px);scroll-margin-top:96px;overflow:hidden}.project-gallery__images{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:16px;display:grid}.project-gallery__images--2{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery__images--3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.project-gallery__images figure{gap:10px;margin:0;display:grid}.project-gallery__images img{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--line));border-radius:var(--radius);background:var(--surface-strong);width:100%;box-shadow:0 22px 44px #00000052}.project-gallery__images--3 img{aspect-ratio:2;object-fit:cover;object-position:top left;height:100%}.project-gallery__images--2 img{aspect-ratio:2;object-fit:cover;object-position:top left}.project-gallery__images figcaption{color:var(--text-muted);text-align:center;font-size:.82rem;font-weight:850}.case-study-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.case-study-strip article,.case-study-panel,.case-study-system,.architecture-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 82%, transparent), var(--surface)), var(--surface);box-shadow:var(--shadow)}.case-study-strip article{align-content:start;gap:10px;min-height:220px;padding:22px;display:grid}.case-study-strip svg,.case-study-panel svg{color:var(--accent)}.case-study-strip p{margin-bottom:0}.case-study-system{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent 48%), var(--surface);margin-bottom:18px;padding:clamp(24px,4vw,40px);scroll-margin-top:96px}.case-study-section-heading{gap:8px;max-width:760px;margin-bottom:24px;display:grid}.case-study-section-heading h2,.case-study-panel h2{max-width:18ch;font-size:clamp(1.8rem,3vw,3.2rem);line-height:1.02}.case-study-section-heading p{margin-bottom:0}.architecture-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.architecture-card{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent), var(--surface-strong);gap:28px;min-height:270px;padding:22px;display:grid;position:relative}.architecture-card span{color:color-mix(in srgb, var(--accent) 72%, var(--text));font-size:clamp(2.5rem,5vw,4.8rem);font-weight:900;line-height:.85}.architecture-card h3{margin:0 0 10px;font-size:clamp(1.15rem,1.6vw,1.55rem);line-height:1.12}.architecture-card p{margin-bottom:0}.case-study-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.case-study-proof__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.case-study-proof__grid article{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);min-height:190px;padding:20px}.case-study-proof__grid h3{margin-top:0;font-size:clamp(1.12rem,1.6vw,1.5rem);line-height:1.14}.case-study-proof__grid p{margin-bottom:0}.case-study-page h1,.case-study-page h2,.case-study-page h3,.case-study-page p,.case-study-page li,.case-study-page dd{overflow-wrap:break-word}.case-study-panel{padding:clamp(22px,4vw,34px)}.case-study-panel__header{align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.case-study-panel__header h2{margin-bottom:0}.case-study-checklist{color:var(--text-muted);gap:14px;margin:0;padding:0;list-style:none;display:grid}.case-study-checklist li{padding-left:24px;position:relative}.case-study-checklist li:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 18px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:999px;position:absolute;top:.68em;left:0}.case-study-nav{justify-content:space-between;gap:16px;padding-top:26px;display:flex}.deep-dive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.deep-dive,.info-panel,.skill-group{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 82%, transparent), var(--surface)), var(--surface);box-shadow:var(--shadow)}.deep-dive{align-content:start;gap:14px;min-height:300px;padding:20px;display:grid}.profile-grid{grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr));gap:12px;display:grid}.profile-grid .info-panel:first-child{grid-column:auto}.info-panel,.skill-group{padding:18px}.info-panel h3{margin-bottom:10px;font-size:1.35rem}.info-panel>svg{color:var(--accent);margin-bottom:12px}.timeline{gap:12px;display:grid}.timeline-item{border-left:2px solid var(--line-strong);padding-left:16px}.timeline-item p{margin-bottom:8px;font-size:.94rem;line-height:1.42}.timeline-item>span,.compact-row small{color:var(--accent-warm);font-size:.84rem;font-weight:800}.compact-row{border-bottom:1px solid var(--line);gap:3px;padding:9px 0;display:grid}.plain-list{margin-top:0;margin-bottom:0}.compact-row:last-child{border-bottom:0}.skill-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.skill-group{align-content:start;gap:14px;min-height:430px;display:grid;position:relative;overflow:hidden}.skill-group:before{content:"";background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent-strong) 62%, transparent), transparent);opacity:.74;height:4px;position:absolute;inset:0 0 auto}.skill-group__header{gap:8px;display:grid}.skill-group__header h3{max-width:13ch;margin-bottom:0;font-size:clamp(1.32rem,1.8vw,1.85rem);line-height:1}.skill-group__header p{max-width:56ch;color:var(--text-muted);margin:0;font-size:.94rem;line-height:1.42}.skill-group__evidence{border:1px solid color-mix(in srgb, var(--line) 78%, var(--accent));border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 82%, transparent);gap:8px;padding:12px;display:grid}.skill-group__evidence>span{color:var(--text-subtle);text-transform:uppercase;font-size:.72rem;font-weight:850}.skill-group__evidence div{flex-wrap:wrap;gap:8px;display:flex}.skill-group__evidence strong{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 10%, var(--surface-strong));min-height:26px;color:var(--text);align-items:center;padding:4px 8px;font-size:.78rem;display:inline-flex}.skill-group__primary{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;display:grid}.skill-group__primary span{border:1px solid color-mix(in srgb, var(--accent) 34%, var(--line));border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent), color-mix(in srgb, var(--surface-strong) 88%, transparent);min-height:44px;color:var(--text);text-align:center;overflow-wrap:anywhere;place-items:center;padding:7px;font-size:.84rem;font-weight:850;line-height:1.15;display:grid}.skill-group__stack{margin:0}.site-footer{width:min(calc(100% - 48px), var(--max-width));color:var(--text-muted);justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:84px 0 38px;display:flex}.site-footer>div:first-child{display:grid}.footer-links a{align-items:center;gap:8px;font-weight:800;display:inline-flex}@media (width>=981px) and (width<=1180px) and (orientation:landscape){.hero-section{padding-left:24px;padding-right:20px}.hero-copy{width:min(620px,62vw);transform:none}h1{font-size:clamp(4.5rem,8.2vw,6.1rem)}.hero-copy p{max-width:600px}.hero-capability{width:min(530px,100%)}.hero-controls{right:4px}.blueprint-hero__lane{min-width:126px;font-size:.86rem}.blueprint-hero__project{min-width:96px}}@media (width>=721px) and (width<=980px) and (orientation:portrait){.hero-section{min-height:112svh}.hero-copy{width:min(640px,100% - 40px)}.hero-copy:before{display:none}.hero-copy p{max-width:58ch}.hero-actions:after{content:"";pointer-events:none;flex-basis:100%;height:clamp(230px,27svh,300px);display:block}.hero-actions{pointer-events:none}.hero-actions .button-link{pointer-events:auto}.hero-capability{width:min(560px,100%)}.hero-controls{top:59%;right:16px}.blueprint-hero:before{background:linear-gradient(180deg, color-mix(in srgb, var(--page) 94%, transparent) 0 30%, transparent 64%), linear-gradient(90deg, color-mix(in srgb, var(--page) 86%, transparent) 0 33%, transparent 68%), radial-gradient(circle at 70% 58%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 34%)}.blueprint-hero__lane{min-width:112px;min-height:40px;padding:7px 9px;font-size:.76rem}.blueprint-hero .blueprint-hero__lane{opacity:.66}.blueprint-hero .blueprint-hero__lane:hover,.blueprint-hero .blueprint-hero__lane:focus-visible,.blueprint-hero .blueprint-hero__lane[aria-pressed=true],.blueprint-hero .blueprint-hero__lane[data-active=true]{opacity:1}.blueprint-hero__lane[data-capability-id=architecture]{top:43%;left:62%;right:auto}.blueprint-hero__lane[data-capability-id=interfaces]{top:49%;left:54%;right:auto}.blueprint-hero__lane[data-capability-id=platforms]{top:55%;left:66%;right:auto}.blueprint-hero__lane[data-capability-id=ai-ops]{top:61%;left:55%;right:auto}.blueprint-hero__lane small{display:none}.blueprint-hero__project{min-width:94px;min-height:34px;padding:7px 9px;font-size:.7rem}.blueprint-hero__project[data-project-id=foosball]{top:47%;left:82%;right:auto}.blueprint-hero__project[data-project-id=org-memory]{top:58%;left:76%;right:auto}.blueprint-hero__project[data-project-id=removebg]{top:65%;left:84%;right:auto}.blueprint-hero__hint{display:none}}@media (width<=980px){.hero-section{align-items:start;min-height:108svh}.hero-copy{padding-top:9vh;transform:none}.hero-capability{width:min(520px,100%)}.graph-panel{display:none;bottom:24px;right:24px}.project-layout,.project-detail__card,.profile-grid,.skill-grid,.deep-dive-grid,.case-study-hero,.case-study-strip,.architecture-rail,.case-study-grid,.case-study-proof__grid{grid-template-columns:1fr}.project-gallery__images{scroll-snap-type:x proximity;grid-template-columns:repeat(5,minmax(150px,1fr));padding-bottom:10px;overflow-x:auto}.project-gallery__images--3{grid-template-columns:repeat(3,minmax(280px,1fr))}.project-gallery__images--2{grid-template-columns:repeat(2,minmax(360px,1fr))}.project-gallery__images figure{scroll-snap-align:center}.case-study-hero{min-height:0}.case-study-product-shot{transform:none}.hero-controls{width:168px;top:56%;right:12px}.blueprint-hero__lane{opacity:.34}.blueprint-hero__project{opacity:.82}.project-selector{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.topbar{width:min(calc(100% - 20px), var(--max-width));grid-template-columns:auto auto;top:10px}.nav-links{display:none}.topbar-actions{justify-content:end}.hero-section{min-height:126svh;padding:76px 20px 38px}.hero-copy{padding-top:3.5vh}.hero-copy:before,.hero-section:after{display:none}h1{margin-bottom:14px;font-size:clamp(3.15rem,17vw,4.55rem)}.hero-copy p{margin-bottom:14px;font-size:1.01rem}.hero-meta{flex-wrap:nowrap;gap:8px}.hero-meta span{white-space:nowrap;min-height:34px;padding:6px 9px;font-size:.92rem}.hero-actions{pointer-events:none}.hero-actions .button-link{pointer-events:auto}.hero-actions:after{content:"";pointer-events:none;flex-basis:100%;height:clamp(196px,25svh,250px);display:block}.hero-capability{gap:5px;margin-top:0;padding:11px 12px}.hero-capability h2{font-size:1.34rem}.hero-capability p{font-size:.87rem;line-height:1.34}.graph-panel{width:auto;padding:14px;bottom:20px;left:20px;right:20px}.graph-panel h2{font-size:1.28rem}.section,.site-footer{width:min(calc(100% - 32px), var(--max-width))}.hero-controls{gap:12px;width:148px;top:53%;right:10px}.blueprint-hero:before{background:linear-gradient(180deg, color-mix(in srgb, var(--page) 96%, transparent) 0 34%, transparent 72%), radial-gradient(circle at 58% 60%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 38%)}.blueprint-hero__canvas{opacity:.88}.blueprint-hero__lane{border-color:color-mix(in srgb, var(--blueprint-tone) 62%, var(--line));background:color-mix(in srgb, var(--surface-strong) 88%, transparent);min-width:76px;min-height:32px;box-shadow:0 12px 28px #0000004d, 0 0 26px color-mix(in srgb, var(--blueprint-tone) 22%, transparent);color:var(--text);opacity:.96;justify-content:center;align-items:center;padding:7px 10px;font-size:.7rem;display:inline-flex}.blueprint-hero__lane small{display:none}.blueprint-hero__lane span{line-height:1}.blueprint-hero__project{border-color:color-mix(in srgb, var(--blueprint-tone) 56%, var(--line));background:color-mix(in srgb, var(--surface-strong) 90%, transparent);min-width:92px;min-height:34px;box-shadow:0 12px 28px #00000057, 0 0 28px color-mix(in srgb, var(--blueprint-tone) 16%, transparent);color:var(--text);opacity:1;font-size:.69rem}.blueprint-hero__project[data-project-id=foosball]{top:clamp(492px,61svh,524px);left:82px;right:auto}.blueprint-hero__project[data-project-id=org-memory]{top:clamp(548px,68svh,582px);left:auto;right:36px}.blueprint-hero__project[data-project-id=removebg]{top:clamp(594px,73.5svh,626px);left:103px;right:auto}.blueprint-hero__lane[data-capability-id=architecture]{top:82.5%;left:46%;right:auto}.blueprint-hero__lane[data-capability-id=interfaces]{top:87%;left:64%;right:auto}.blueprint-hero__lane[data-capability-id=platforms]{top:93%;left:42%;right:auto}.blueprint-hero__lane[data-capability-id=ai-ops]{top:97%;left:60%;right:auto}.blueprint-hero__hint{display:none}.mini-stack{gap:6px}.mini-stack span{min-height:24px;padding:3px 7px;font-size:.73rem}.hero-capability .mini-stack span:nth-child(n+4){display:none}.hero-controls button{width:24px;min-height:24px}.hero-controls span{font-size:.68rem}.hero-controls button:hover,.hero-controls button:focus-visible,.hero-controls button[aria-pressed=true]{width:24px}.hero-controls button[aria-pressed=true] span{border-color:color-mix(in srgb, var(--capability-tone) 34%, var(--line));background:color-mix(in srgb, var(--surface-strong) 88%, transparent);max-width:148px;color:var(--text);padding:8px 10px;transform:translateY(-50%);box-shadow:0 10px 28px #00000047}.section{padding-top:74px}.project-selector{grid-template-columns:1fr}.project-tab{min-height:78px}.project-detail{min-height:0}.project-detail__media{min-height:260px;padding:18px}.case-study-page{padding-top:110px}.back-link,.case-study-hero,.case-study-strip,.case-study-system,.case-study-grid,.case-study-nav,.case-study-stats,.project-gallery,.case-study-proof{width:min(calc(100% - 32px), var(--max-width))}.case-study-hero,.case-study-panel,.case-study-system,.case-study-strip article,.project-gallery,.case-study-proof{padding:20px}.project-gallery__images{grid-template-columns:repeat(5,minmax(174px,1fr));margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.project-gallery__images--3{grid-template-columns:repeat(3,minmax(280px,1fr))}.project-gallery__images--2{grid-template-columns:repeat(2,minmax(280px,1fr))}.project-gallery__images figure:nth-child(n){transform:none}.case-study-hero__copy h1{font-size:clamp(3.2rem,15vw,4.8rem)}.case-study-stats{grid-template-columns:1fr}.case-study-product-shot{padding:12px}.case-study-nav{flex-direction:column;align-items:flex-start}.deep-dive,.info-panel,.skill-group{padding:18px}.site-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
