:root{--ink:#0c1018;--ink-soft:#2a3344;--fog:#e8edf5;--paper:#f4f6fa;--line:rgba(12, 16, 24, 0.12);--accent:#1457d9;--accent-deep:#0d3fad;--accent-soft:rgba(20, 87, 217, 0.12);--highlight:rgba(20, 87, 217, 0.14);--blue-line:#1a56e8;--font-display:"Syne", "Segoe UI", sans-serif;--font-body:"Manrope", "Segoe UI", sans-serif}body.colorscheme-dark{--ink:#eef2f8;--ink-soft:#a8b3c7;--fog:#10141c;--paper:#0a0d14;--line:rgba(238, 242, 248, 0.1);--accent:#2f6fff;--accent-deep:#7aa4ff;--accent-soft:rgba(47, 111, 255, 0.16);--highlight:rgba(47, 111, 255, 0.18);--blue-line:#2f6fff}@media(prefers-color-scheme:dark){body.colorscheme-auto{--ink:#eef2f8;--ink-soft:#a8b3c7;--fog:#10141c;--paper:#0a0d14;--line:rgba(238, 242, 248, 0.1);--accent:#2f6fff;--accent-deep:#7aa4ff;--accent-soft:rgba(47, 111, 255, 0.16);--highlight:rgba(47, 111, 255, 0.18);--blue-line:#2f6fff}}body{font-family:var(--font-body);letter-spacing:-.01em;background-color:var(--paper);color:var(--ink-soft)}body::before{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:1000;background:var(--blue-line);box-shadow:0 0 18px color-mix(in srgb,var(--blue-line) 45%,transparent)}h1,h2,h3,h4,h5,h6,.navigation-title,.portfolio-brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink)}a{color:var(--accent-deep);transition:color .25s ease,opacity .2s ease,transform .2s ease}.navigation{background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.navigation .navigation-title{font-weight:700}.navigation a{transition:color .25s ease}pre{border-radius:.6rem}code{border-radius:.3rem}hr{border:none;height:2px;background:linear-gradient(90deg,var(--blue-line),transparent 70%);opacity:1}.content:has(.portfolio-home){animation:none;max-width:none;padding:0}.portfolio-home{width:100%;color:var(--ink-soft)}.portfolio-hero{position:relative;min-height:calc(100vh - 6.5rem);display:flex;align-items:center;justify-content:center;padding:4rem 2rem 5rem;overflow:hidden;isolation:isolate}.portfolio-hero__atmosphere{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 65% 50% at 85% 8%,var(--highlight),transparent 58%),radial-gradient(ellipse 45% 40% at 8% 90%,var(--accent-soft),transparent 55%),linear-gradient(180deg,#070a10 0%,var(--paper) 72%);animation:atmosphereDrift 14s ease-in-out infinite alternate}.portfolio-hero__atmosphere::before{content:"";position:absolute;top:12%;bottom:18%;left:max(2rem,calc(50% - 38rem));width:2px;background:linear-gradient(180deg,transparent,var(--blue-line) 20%,var(--blue-line) 80%,transparent);opacity:.85}.portfolio-hero__atmosphere::after{content:"";position:absolute;inset:0;opacity:.28;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:4.8rem 4.8rem;mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black,transparent 85%)}.portfolio-hero__inner{width:min(72rem,100%);text-align:left;animation:heroIn .8s cubic-bezier(.22,1,.36,1)both;padding-left:1.6rem}.portfolio-title-row{display:flex;align-items:center;gap:2rem;margin:0 0 2.2rem}.portfolio-hero .avatar{margin:0;flex:none}.portfolio-hero .avatar img{display:block;width:10rem!important;height:10rem!important;max-width:none;border-radius:28%;object-fit:cover;border:2px solid color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 1rem 2.4rem rgba(0,0,0,.45);transition:transform .4s ease}.portfolio-hero .avatar:hover img{transform:translateY(-.2rem)scale(1.02)}.portfolio-title-copy{flex:auto;min-width:0;display:flex;flex-direction:column;justify-content:center}.portfolio-kicker{margin:0 0 .6rem;font-size:1.3rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}.portfolio-brand{margin:0;font-size:clamp(3.6rem,7vw,6.4rem);line-height:.95;font-weight:800;position:relative}.portfolio-brand::after{content:"";display:block;width:5.6rem;height:3px;margin-top:1rem;background:var(--blue-line);box-shadow:0 0 12px color-mix(in srgb,var(--blue-line) 50%,transparent)}.portfolio-lede{max-width:42rem;margin:0 0 2.4rem;font-size:clamp(1.8rem,2.4vw,2.2rem);line-height:1.45;color:var(--ink-soft)}.portfolio-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 1.6rem;border-radius:.5rem;font-weight:700;font-size:1.5rem;line-height:1;text-decoration:none!important;border:1px solid transparent;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.btn:hover,.btn:focus{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff!important}.btn-primary:hover,.btn-primary:focus{background:color-mix(in srgb,var(--accent) 80%,#fff);color:#fff!important}.btn-ghost{background:0 0;color:var(--ink)!important;border-color:var(--line)}.btn-ghost:hover,.btn-ghost:focus{border-color:var(--accent);color:var(--accent-deep)!important}.portfolio-hero .about ul,.portfolio-hero ul{display:flex;flex-wrap:wrap;gap:1.2rem;list-style:none;margin:0;padding:0;justify-content:flex-start}.portfolio-hero .about ul a,.portfolio-hero ul a{color:var(--ink-soft);opacity:.85}.portfolio-hero .about ul a:hover,.portfolio-hero ul a:hover{color:var(--accent-deep);opacity:1}.portfolio-section{padding:7rem 2rem;border-top:1px solid var(--line);position:relative}.portfolio-section::before{content:"";position:absolute;top:-1px;left:max(2rem,calc(50% - 46rem));width:4.8rem;height:2px;background:var(--blue-line)}.portfolio-wrap{width:min(92rem,100%);margin:0 auto}.portfolio-label{margin:0 0 1rem;font-size:1.2rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep)}.portfolio-section h2{margin:0 0 1.6rem;max-width:34ch;font-size:clamp(2.8rem,4vw,3.8rem);line-height:1.15}.portfolio-copy{max-width:62rem;margin:0;font-size:1.85rem;line-height:1.65}.impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4rem;margin-top:3rem}.impact-item{padding:0;border:0;background:0 0;box-shadow:none}.impact-item h3{margin:0 0 1rem;font-size:2.1rem;line-height:1.25}.impact-item p{margin:0;font-size:1.65rem;line-height:1.6}.impact-item::before{content:"";display:block;width:3.2rem;height:2px;margin-bottom:1.4rem;background:var(--blue-line);transform-origin:left center;transition:transform .35s ease}.impact-item:hover::before{transform:scaleX(1.6)}.now-list{margin:2rem 0;padding-left:1.4rem;max-width:64rem}.now-list li{margin-bottom:1.1rem;font-size:1.75rem;line-height:1.55}.text-link{font-weight:700;font-size:1.6rem;text-decoration:none!important;color:var(--accent-deep)}.text-link:hover{text-decoration:underline!important}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem;margin-top:2.4rem}.voice-quote{margin:0;padding:0 0 0 1.6rem;border-left:2px solid var(--blue-line);background:0 0;box-shadow:none}.voice-quote p{margin:0 0 1.2rem;font-size:1.8rem;line-height:1.5;color:var(--ink);font-weight:500}.voice-quote cite{font-style:normal;font-size:1.4rem;color:var(--ink-soft);opacity:.85}.portfolio-note{margin:2rem 0 0;font-size:1.35rem;opacity:.7}.portfolio-connect{background:radial-gradient(ellipse 60% 80% at 100% 0%,var(--accent-soft),transparent 55%),var(--fog)}.portfolio-lab h2 a{color:inherit;text-decoration:none!important;border-bottom:2px solid color-mix(in srgb,var(--blue-line) 55%,transparent);transition:border-color .2s ease,color .2s ease}.portfolio-lab h2 a:hover{color:var(--accent-deep);border-bottom-color:var(--blue-line)}.lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.8rem;margin:3rem 0 2rem}.lab-item{display:block;padding:0 0 0 1.4rem;border-left:2px solid var(--blue-line);text-decoration:none!important;color:inherit;transition:transform .2s ease,border-color .2s ease}.lab-item:hover{transform:translateX(3px);border-left-color:var(--accent-deep)}.lab-item:hover h3{color:var(--accent-deep)}.lab-item h3{margin:.4rem 0 .7rem;font-size:1.9rem;line-height:1.25;transition:color .2s ease}.lab-item p{margin:0;font-size:1.5rem;line-height:1.5;color:var(--ink-soft)}.lab-item__kind{display:inline-block;font-size:1.15rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep)}.content{animation:fadeIn .45s ease-out}.company-header{display:flex;align-items:center;gap:1.2rem;margin-bottom:.5rem}.company-header .company-logo{width:4rem;height:4rem;border-radius:50%;object-fit:cover;background:#fff;padding:.4rem;box-shadow:0 .2rem .8rem rgba(0,0,0,.1);flex-shrink:0}.company-header h3{margin:0;flex:1}@media(prefers-color-scheme:dark){body.colorscheme-dark .company-header .company-logo,body.colorscheme-auto .company-header .company-logo{background:#1a1f2a;box-shadow:0 .2rem .8rem rgba(0,0,0,.4)}}body.colorscheme-dark .company-header .company-logo{background:#1a1f2a;box-shadow:0 .2rem .8rem rgba(0,0,0,.4)}.project-block{margin:3.5rem 0;padding-top:.5rem;border-top:1px solid var(--line)}.project-block h2{margin-top:2rem}.project-block .meta{margin:.6rem 0 1.2rem;font-size:1.45rem;color:var(--ink-soft);opacity:.85}.reveal{opacity:0;transform:translateY(1.6rem);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}.impact-item.reveal{transition-delay:.05s}.impact-item+.impact-item.reveal{transition-delay:.12s}.impact-item+.impact-item+.impact-item.reveal{transition-delay:.2s}@keyframes heroIn{from{opacity:0;transform:translateY(1.8rem)}to{opacity:1;transform:none}}@keyframes atmosphereDrift{from{transform:scale(1)translate3d(0,0,0)}to{transform:scale(1.04)translate3d(-1%,1%,0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.impact-grid,.quote-grid,.lab-grid{grid-template-columns:1fr}.portfolio-section{padding:5rem 1.6rem}.portfolio-hero{min-height:auto;padding-top:3rem}.portfolio-hero__atmosphere::before{left:1.2rem}.portfolio-title-row{gap:1.4rem}.portfolio-hero .avatar img{width:7.6rem!important;height:7.6rem!important}}@media(prefers-reduced-motion:reduce){.portfolio-hero__atmosphere,.portfolio-hero__inner,.content,.reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}