@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{color-scheme:dark;--bg:#0d1117;--bg-soft:#111821;--surface:#161b22e0;--surface-solid:#161b22;--surface-highlight:#ffffff0b;--text:#f0f6fc;--muted:#8b949e;--line:#3b4757;--blue:#58a6ff;--blue-strong:#1f6feb;--teal:#3fb950;--violet:#a371f7;--shadow:0 18px 48px #01040957;--card-shadow:0 1px 0 var(--surface-highlight) inset, 0 8px 24px #01040933;--card-shadow-hover:0 1px 0 #ffffff14 inset, 0 12px 30px #01040947;--radius:12px;--max:1180px;--mono:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace}:root[data-theme=light]{color-scheme:light;--bg:#dfe7f0;--bg-soft:#d2dde8;--surface:#f0f5fae0;--surface-solid:#edf2f7;--surface-highlight:#ffffff7a;--text:#17253a;--muted:#52677f;--line:#2d48693d;--blue:#2b67b5;--blue-strong:#245da5;--teal:#177d76;--violet:#6959b4;--shadow:0 1px 0 #ffffff94 inset, 0 18px 48px #263a521f;--card-shadow:0 1px 0 #ffffff94 inset, 0 8px 24px #2e445e1a;--card-shadow-hover:0 1px 0 #ffffffb8 inset, 0 12px 30px #253e5c24;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip}body{background:radial-gradient(circle at 78% 8%, color-mix(in srgb, var(--blue) 9%, transparent), transparent 34rem), radial-gradient(circle at 5% 38%, color-mix(in srgb, var(--violet) 5%, transparent), transparent 30rem), var(--bg);color:var(--text);text-rendering:optimizelegibility;margin:0;font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:clip}body:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.16;background-size:64px 64px;position:fixed;inset:0;mask-image:linear-gradient(#00000059,#0000 72%)}:root[data-theme=dark] body:before{background-image:radial-gradient(circle, color-mix(in srgb, var(--line) 78%, transparent) 1px, transparent 1.2px);opacity:.28;background-size:26px 26px;mask-image:linear-gradient(#000000b8,#0000 78%)}:root[data-theme=light] body{background:radial-gradient(circle at 80% 7%, #4679be2e, transparent 34rem), radial-gradient(circle at 8% 38%, #4496911a, transparent 29rem), linear-gradient(155deg, #e5ebf2 0%, var(--bg) 48%, #d8e2ec 100%)}:root[data-theme=light] .skill-card,:root[data-theme=light] .project-card,:root[data-theme=light] .brand-card,:root[data-theme=light] .learning-card,:root[data-theme=light] .case-study-step{border-color:color-mix(in srgb, var(--blue) 12%, var(--line));background:color-mix(in srgb, var(--surface) 94%, transparent);backdrop-filter:blur(12px)}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:1000;background:var(--text);color:var(--bg);border-radius:10px;padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.section-shell{width:min(calc(100% - 40px), var(--max));margin-inline:auto}.eyebrow{color:var(--blue);letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-size:.78rem;font-weight:750}:root[data-theme=dark] .eyebrow{font-family:var(--mono);letter-spacing:.13em;font-weight:700}.eyebrow:before{content:"// ";color:var(--teal)}.site-header{z-index:100;padding:max(14px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 14px max(20px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 78%, transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);position:sticky;top:0}:root[data-theme=dark] .site-header{background:color-mix(in srgb, var(--surface-solid) 88%, transparent);backdrop-filter:blur(18px);box-shadow:0 8px 24px #01040933}.nav-shell{max-width:var(--max);align-items:center;gap:36px;margin:auto;display:flex}.brand{align-items:center;gap:12px;min-width:0;margin-right:auto;text-decoration:none;display:inline-flex}.brand-mark{flex:none;place-items:center;width:60px;height:60px;display:grid}.brand-mark img{object-fit:contain;transform-origin:50%;width:100%;height:100%;display:block;transform:scale(1.22)}.brand-copy{white-space:nowrap;flex-direction:column;min-width:0;font-size:.92rem;font-weight:800;line-height:1.25;display:flex}.brand-copy small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:.64rem;font-weight:600}.site-header nav{align-items:center;gap:28px;display:flex}.site-header nav a{color:var(--muted);font-size:.84rem;font-weight:650;text-decoration:none;position:relative}.site-header nav a:after{content:"";background:var(--blue);height:2px;transition:transform .2s;position:absolute;bottom:-8px;left:0;right:0;transform:scaleX(0)}.site-header nav a:hover,.site-header nav a:focus-visible,.site-header nav a.is-active{color:var(--text)}.site-header nav a:hover:after,.site-header nav a:focus-visible:after,.site-header nav a.is-active:after{transform:scaleX(1)}.header-actions{align-items:center;gap:10px;display:flex}.theme-picker{position:relative}.theme-control{grid-template-columns:44px 44px;gap:6px;min-height:44px;display:grid}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:11px;place-items:center;display:grid}.theme-menu-toggle{border:1px solid color-mix(in srgb, var(--blue) 76%, white);background:var(--blue-strong);color:#fff;width:44px;min-height:44px;box-shadow:0 6px 16px color-mix(in srgb, var(--blue) 24%, transparent);cursor:pointer;border-radius:11px;place-items:center;padding:0;transition:transform .2s,filter .2s;display:grid}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:color-mix(in srgb, var(--blue) 48%, var(--line));background:color-mix(in srgb, var(--blue) 10%, var(--surface));color:var(--text)}.theme-menu-toggle:hover,.theme-menu-toggle:focus-visible{filter:brightness(1.08);transform:translateY(-1px)}.theme-icon,.material-symbol-rounded{place-items:center;line-height:1;display:grid}.theme-icon{animation:.2s both theme-icon-in}.theme-icon svg,.theme-menu-toggle svg,.theme-menu button svg{fill:currentColor;width:20px;height:20px;display:block}@keyframes theme-icon-in{0%{opacity:.25;transform:rotate(-28deg)scale(.8)}to{opacity:1;transform:rotate(0)scale(1)}}.theme-menu{z-index:120;border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 92%, transparent);width:172px;box-shadow:var(--shadow);backdrop-filter:blur(20px);border-radius:14px;padding:7px;position:absolute;top:calc(100% + 10px);right:0}.theme-menu button{width:100%;min-height:44px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:22px 1fr 18px;align-items:center;gap:8px;padding:8px 10px;display:grid}.theme-menu button:hover,.theme-menu button:focus-visible,.theme-menu button.is-active{background:color-mix(in srgb, var(--blue) 12%, transparent);color:var(--text)}.theme-menu button>span:last-child{color:var(--blue);text-align:right;font-weight:850}.mobile-menu{display:none;position:relative}.mobile-menu summary{cursor:pointer;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.hero{grid-template-rows:auto auto;grid-template-columns:minmax(0,1.12fr) minmax(330px,.68fr);align-content:center;column-gap:clamp(48px,8vw,110px);min-height:760px;padding-block:92px 70px;display:grid}.hero-lead,.hero-body{grid-column:1;min-width:0}.hero-lead{grid-area:1/1}.hero-body{grid-row:2}.hero-status-feed{z-index:3;align-self:stretch;gap:8px;margin:clamp(70px,7.5vw,92px) 0 0;padding:0;list-style:none;display:grid;position:relative}.hero-status-item{min-width:0}.hero-status-item>a,.hero-status-item>span{border:1px solid var(--line);min-height:46px;color:var(--muted);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--card-shadow);backdrop-filter:blur(16px)saturate(125%);border-radius:16px;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:11px;padding:8px 13px;text-decoration:none;transition:color .2s,border-color .2s,background .2s,box-shadow .2s,transform .2s;display:grid}.hero-status-item>a:hover,.hero-status-item>a:focus-visible{color:var(--text);border-color:color-mix(in srgb, var(--blue) 56%, var(--line));background:color-mix(in srgb, var(--blue) 8%, var(--surface));box-shadow:var(--card-shadow-hover);transform:translate(-3px)}.hero-status-item i{background:var(--teal);width:8px;height:8px;box-shadow:0 0 0 5px color-mix(in srgb, var(--teal) 15%, transparent);border-radius:50%}.hero-status-item.is-live i{background:#3fb950;box-shadow:0 0 0 5px #3fb95026}.hero-status-item.is-released i{background:var(--blue);box-shadow:0 0 0 5px color-mix(in srgb, var(--blue) 15%, transparent)}.hero-status-item>a>span,.hero-status-item>span>span{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.hero-status-item strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;line-height:1.3;overflow:hidden}.hero-status-item small{color:var(--muted);font-family:var(--mono);letter-spacing:.025em;text-transform:uppercase;flex:none;font-size:.57rem;line-height:1.3}.hero-diagnostics{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 76%, transparent);width:fit-content;max-width:100%;box-shadow:var(--card-shadow);font-family:var(--mono);border-radius:8px;flex-wrap:wrap;align-items:center;gap:0;margin:-14px 0 30px;display:flex;overflow:hidden}.hero-diagnostics span{border-right:1px solid var(--line);min-height:32px;color:var(--muted);letter-spacing:.075em;text-transform:uppercase;align-items:center;gap:7px;padding:0 11px;font-size:.62rem;font-weight:700;display:inline-flex}.hero-diagnostics span:last-child{border-right:0}.hero-diagnostics .is-online{color:var(--text)}.hero-diagnostics i{background:var(--teal);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--teal) 14%, transparent), 0 0 14px color-mix(in srgb, var(--teal) 64%, transparent);border-radius:50%}.hero-name{align-items:baseline;gap:12px;margin:0 0 12px;font-size:1.05rem;font-weight:850;display:flex}.hero-name span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:650}.hero h1{letter-spacing:-.065em;margin:0;font-size:clamp(3.1rem,7vw,6.5rem);line-height:.97}.hero h1 span{color:var(--muted)}:root[data-theme=dark] .hero h1 span{background:linear-gradient(95deg, #8b949e 5%, var(--blue) 58%, var(--violet));color:#0000;background-clip:text}.hero-intro{max-width:680px;color:var(--muted);margin:30px 0 34px;font-size:clamp(1rem,1.6vw,1.22rem)}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:14px;min-height:52px;padding:0 20px;font-size:.86rem;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.ui-icon>svg{width:100%;height:100%;display:block;fill:currentColor!important}.button .ui-icon{color:inherit;font-size:1.2rem}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--blue-strong);color:#fff;box-shadow:0 16px 40px color-mix(in srgb, var(--blue) 22%, transparent)}.button-secondary{border-color:var(--line);background:var(--surface)}:root[data-theme=dark] .button{border-radius:8px}:root[data-theme=dark] .button-primary{border-color:color-mix(in srgb, var(--blue) 62%, white 8%);background:linear-gradient(180deg, color-mix(in srgb, var(--blue-strong) 84%, white 6%), var(--blue-strong));box-shadow:0 0 0 1px #58a6ff14,0 10px 28px #1f6feb3d}:root[data-theme=dark] .button-secondary:hover{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 8%, var(--surface))}.hero-tech{flex-wrap:wrap;gap:9px;margin-top:38px;display:flex}.hero-tech span,.learning-tags span{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:.7rem;font-weight:650}:root[data-theme=dark] .hero-tech span,:root[data-theme=dark] .learning-tags span,:root[data-theme=dark] .technology-list span{background:color-mix(in srgb, var(--surface) 84%, transparent);font-family:var(--mono);border-radius:6px}.hero-socials{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.hero-socials a{border:1px solid color-mix(in srgb, var(--blue) 26%, var(--line));background:linear-gradient(145deg, var(--surface-highlight), var(--surface));min-width:108px;min-height:48px;color:var(--muted);box-shadow:var(--card-shadow);backdrop-filter:blur(16px)saturate(125%);border-radius:14px;justify-content:center;align-items:center;gap:9px;padding:0 14px;text-decoration:none;transition:color .22s,border-color .22s,background .22s,box-shadow .22s,transform .22s;display:inline-flex;position:relative}.hero-socials a:hover,.hero-socials a:focus-visible{border-color:color-mix(in srgb, var(--blue) 72%, var(--line));background:color-mix(in srgb, var(--blue) 12%, var(--surface));color:var(--blue);box-shadow:var(--card-shadow-hover);transform:translateY(-3px)}.hero-socials a>span:last-child{font-size:.72rem;font-weight:780}.social-icon{fill:currentColor;width:21px;height:21px}.social-icon-stroke{fill:none}.social-icon-linkedin{letter-spacing:-.08em;place-items:center;font-size:.98rem;font-weight:900;line-height:1;display:grid}.hero-visual{flex-direction:column;grid-area:1/2/span 2;align-self:center;min-width:0;display:flex;position:relative}.portrait-frame{z-index:2;aspect-ratio:4/5.15;border:1px solid var(--line);background:var(--surface-solid);box-shadow:var(--shadow);border-radius:34px;position:relative;overflow:hidden}.portrait-frame:after{content:"";background:linear-gradient(#0000 58%,#050c18d1);position:absolute;inset:0}:root[data-theme=dark] .portrait-frame{border-color:color-mix(in srgb, var(--blue) 34%, var(--line));box-shadow:0 0 0 1px #58a6ff0f,0 34px 90px #01040994,0 0 70px #1f6feb17}.portrait-frame picture{width:100%;height:100%;display:block}.portrait-frame img{object-fit:cover;object-position:center 30%;filter:saturate(.84)contrast(1.04);width:100%;height:100%}.portrait-label{z-index:2;color:#fff;justify-content:space-between;align-items:end;gap:20px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.portrait-label span{color:#ffffffa6;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.portrait-label strong{text-align:right;max-width:120px;font-size:.9rem;line-height:1.3}.orbit{z-index:1;border:1px solid var(--line);border-radius:50%;position:absolute}.orbit-one{width:230px;height:230px;top:-55px;right:-10px}.orbit-two{border-color:color-mix(in srgb, var(--teal) 28%, var(--line));width:130px;height:130px;bottom:-38px;left:-44px}.brand-icon{fill:currentColor;width:1em;height:1em;color:var(--brand-color);flex:none;display:block}.brand-icon--github{color:var(--text)}.icon-tile{width:var(--icon-shell-size,64px);height:var(--icon-shell-size,64px);flex:0 0 var(--icon-shell-size,64px);border:1px solid color-mix(in srgb, var(--blue) 34%, var(--line));border-radius:var(--icon-shell-radius,18px);background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--blue) 16%, transparent), transparent 68%), color-mix(in srgb, var(--surface-solid) 78%, transparent);box-shadow:inset 0 1px 0 #ffffff12, 0 12px 24px color-mix(in srgb, var(--bg) 24%, transparent);place-items:center;display:grid}.icon-tile .brand-icon,.icon-tile .system-icon{width:var(--icon-size,38px);height:var(--icon-size,38px);display:block}.icon-tile .system-icon{color:var(--blue)}.tech-marquee{border-block:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 58%, transparent);backdrop-filter:blur(18px);padding-block:15px;position:relative;overflow:hidden}.tech-marquee:before,.tech-marquee:after{content:"";z-index:2;pointer-events:none;width:min(12vw,150px);position:absolute;top:0;bottom:0}.tech-marquee:before{background:linear-gradient(90deg, var(--bg), transparent);left:0}.tech-marquee:after{background:linear-gradient(-90deg, var(--bg), transparent);right:0}.tech-marquee-track{width:max-content;animation:42s linear infinite technology-rail;display:flex}.tech-marquee:hover .tech-marquee-track,.tech-marquee:focus-within .tech-marquee-track,.tech-marquee.is-paused .tech-marquee-track{animation-play-state:paused}.tech-marquee-group{box-sizing:border-box;flex:none;justify-content:space-around;align-items:center;gap:38px;min-width:100vw;padding:0 48px;display:flex}.tech-marquee-group>span{color:var(--muted);letter-spacing:.045em;white-space:nowrap;align-items:center;gap:11px;font-size:.76rem;font-weight:780;display:inline-flex}.tech-marquee-group .brand-icon{width:21px;height:21px}@keyframes technology-rail{to{transform:translate(-50%)}}.content-section{padding-block:130px}.section-heading{max-width:780px;margin-bottom:56px}.section-heading h2,.about-copy h2,.contact-section h2{letter-spacing:-.055em;margin:0;font-size:clamp(2.2rem,4.4vw,4.25rem);line-height:1.05}.section-heading>p:last-child{max-width:610px;color:var(--muted);margin:22px 0 0}.skill-grid{perspective:1200px;grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.skill-card{isolation:isolate;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 94%, transparent);min-height:340px;box-shadow:var(--card-shadow);backdrop-filter:blur(12px);padding:0 28px 28px;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s;position:relative;overflow:hidden}:root[data-theme=dark] .skill-card,:root[data-theme=dark] .project-card,:root[data-theme=dark] .brand-card,:root[data-theme=dark] .learning-card,:root[data-theme=dark] .case-study-step{border-color:color-mix(in srgb, var(--blue) 10%, var(--line));background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--card-shadow);backdrop-filter:blur(12px)}.skill-card:before{content:"";z-index:-1;background:color-mix(in srgb, var(--blue) 4%, transparent);opacity:0;transition:opacity .2s;position:absolute;inset:0}.skill-card summary{cursor:pointer;min-height:312px;margin-inline:-28px;padding:28px;list-style:none;display:block;position:relative}.skill-card summary::-webkit-details-marker{display:none}:root[data-theme=dark] .project-card-topline,:root[data-theme=dark] .skill-tags,:root[data-theme=dark] .project-brand,:root[data-theme=dark] .tag-list{font-family:var(--mono)}.skill-symbol{border:1px solid color-mix(in srgb, var(--blue) 34%, var(--line));background:color-mix(in srgb, var(--blue) 8%, var(--surface-solid));width:64px;height:64px;color:var(--blue);box-shadow:0 1px 0 var(--surface-highlight) inset;border-radius:12px;place-items:center;display:grid}.skill-icon{width:34px;height:34px}.skill-title{margin:32px 0 12px;font-size:1.16rem;font-weight:750;line-height:1.3;display:block}.skill-description{color:var(--muted);font-size:.86rem;display:block}.skill-card p{color:var(--muted);margin:0;font-size:.86rem}.skill-tags{flex-wrap:wrap;gap:6px;margin-top:24px;padding-bottom:48px;display:flex}.skill-tags span{background:color-mix(in srgb, var(--blue) 10%, transparent);color:var(--blue);border-radius:7px;padding:5px 8px;font-size:.68rem;font-weight:700}.skill-card-action{min-height:34px;color:var(--text);justify-content:space-between;align-items:center;font-size:.7rem;font-weight:780;display:flex;position:absolute;bottom:18px;left:28px;right:28px}.skill-card-action i{border:1px solid color-mix(in srgb, var(--blue) 42%, var(--line));width:30px;height:30px;color:var(--blue);border-radius:50%;place-items:center;font-size:1rem;font-style:normal;transition:transform .24s,background .24s;display:grid}.skill-card[open] .skill-card-action i{background:color-mix(in srgb, var(--blue) 14%, transparent);transform:rotate(45deg)}.skill-card-details{border-top:1px solid var(--line);margin-top:-2px;padding:20px 0 30px;animation:.22s both reveal}.skill-card-details p{max-width:46ch}.skill-card-details a{min-height:44px;color:var(--blue);align-items:center;gap:9px;margin-top:14px;font-size:.76rem;font-weight:800;text-decoration:none;display:inline-flex}.skill-line{background:var(--line);height:2px;position:absolute;bottom:24px;left:28px;right:28px;overflow:hidden}.skill-line:before{content:"";background:var(--blue);width:28%;height:100%;transition:width .3s;display:block}.skill-card:hover .skill-line:before,.skill-card[open] .skill-line:before{width:100%}.skill-card[open]{border-color:color-mix(in srgb, var(--blue) 54%, var(--line));background:color-mix(in srgb, var(--blue) 6%, var(--surface));box-shadow:var(--card-shadow-hover)}.brand-showcase{border:1px solid color-mix(in srgb, var(--teal) 18%, var(--line));border-radius:calc(var(--radius) + 8px);background:color-mix(in srgb, var(--surface) 68%, transparent);box-shadow:var(--card-shadow);backdrop-filter:blur(12px);margin-block:32px;padding:84px clamp(22px,4vw,56px) 92px;position:relative}.brand-showcase-heading{grid-template-columns:1.25fr .75fr;align-items:end;gap:72px;margin-bottom:42px;display:grid}.brand-showcase-heading h2{letter-spacing:-.052em;max-width:760px;margin:0;font-size:clamp(2.15rem,4vw,3.85rem);line-height:1.04}.brand-showcase-heading>p{max-width:430px;color:var(--muted);margin:0 0 5px}.brand-showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.brand-card{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);min-height:112px;box-shadow:var(--card-shadow);color:var(--text);backdrop-filter:blur(10px);grid-template-columns:70px 1fr auto;align-items:center;gap:18px;padding:20px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.brand-card:after{content:none}.brand-card-icon{--icon-shell-size:70px;--icon-size:42px;--icon-shell-radius:16px;z-index:1;position:relative}.brand-card-copy{z-index:1;flex-direction:column;min-width:0;display:flex;position:relative}.brand-card-copy strong{font-size:.96rem}.brand-card-copy small{color:var(--muted);margin-top:2px;font-size:.7rem}.brand-card-arrow{z-index:1;background:var(--blue-strong);color:#fff;width:36px;height:36px;box-shadow:0 8px 20px color-mix(in srgb, var(--blue) 20%, transparent);pointer-events:none;border:0;border-radius:50%;place-items:center;font-size:1.12rem;transition:transform .2s,filter .2s;display:grid;position:relative}.brand-card:hover .brand-card-arrow,.brand-card:focus-visible .brand-card-arrow{filter:brightness(1.08);transform:translate(2px,-2px)}.brand-card:hover,.brand-card:focus-visible{border-color:color-mix(in srgb, var(--blue) 48%, var(--line));box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}:root[data-theme=dark] .brand-card:hover,:root[data-theme=dark] .brand-card:focus-visible,:root[data-theme=dark] .project-card:hover,:root[data-theme=dark] .skill-card:hover{box-shadow:var(--card-shadow-hover)}.brand-showcase-note{color:var(--muted);margin:18px 0 0;font-size:.67rem}.learning-stack-section{padding-block:100px 116px}.learning-stack-heading{margin-bottom:34px}.learning-stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.learning-stack-card{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);min-height:286px;box-shadow:var(--card-shadow);color:var(--text);backdrop-filter:blur(12px);flex-direction:column;padding:26px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.learning-stack-card:hover,.learning-stack-card:focus-visible{border-color:color-mix(in srgb, var(--blue) 48%, var(--line));box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.learning-stack-eyebrow{color:var(--blue);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:760}.learning-stack-card>strong{letter-spacing:-.035em;margin-top:34px;font-size:1.42rem}.learning-stack-card>p{max-width:52ch;color:var(--muted);margin:10px 0 0;font-size:.82rem}.learning-stack-brands{flex-wrap:wrap;gap:7px;margin-top:22px;margin-bottom:18px;display:flex}.learning-stack-brands>span{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 62%, transparent);border-radius:10px;align-items:center;gap:8px;min-height:40px;padding:7px 10px;display:inline-flex}.learning-stack-brands .brand-icon{width:24px;height:24px}.learning-stack-brands small{color:var(--muted);font-size:.62rem;font-weight:720}.learning-stack-link{background:var(--blue-strong);color:#fff;width:max-content;min-height:44px;box-shadow:0 9px 22px color-mix(in srgb, var(--blue) 20%, transparent);border:0;border-radius:11px;justify-content:center;align-self:flex-end;align-items:center;gap:10px;margin-top:auto;padding:0 15px;font-size:.72rem;font-weight:800;display:flex}.learning-stack-link i{color:#fff;place-items:center;font-size:1.2rem;font-style:normal;transition:transform .2s;display:grid}.learning-stack-card:hover .learning-stack-link i,.learning-stack-card:focus-visible .learning-stack-link i{transform:translate(3px)}.projects-section{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-soft) 74%, transparent), color-mix(in srgb, var(--bg-soft) 52%, transparent));border-block:1px solid var(--line);padding-block:120px}.section-heading-split{grid-template-columns:1.45fr .55fr;align-items:end;gap:80px;max-width:none;display:grid}.section-heading-split>p{margin:0 0 6px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:16px;display:grid}.project-card{isolation:isolate;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);height:100%;min-height:520px;box-shadow:var(--card-shadow);backdrop-filter:blur(12px);transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.project-card.is-featured{border-color:color-mix(in srgb, var(--blue) 30%, var(--line));background:color-mix(in srgb, var(--blue) 5%, var(--surface))}.project-card-link{height:100%;min-height:520px;color:inherit;flex-direction:column;text-decoration:none;display:flex}.project-card-media{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg-soft) 72%, var(--surface));height:238px;position:relative;overflow:hidden}.project-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .3s}.project-card-media:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--surface-solid) 62%, transparent));pointer-events:none;height:46%;position:absolute;inset:auto 0 0}.project-card-media--support{background:radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--blue) 16%, transparent), transparent 58%), color-mix(in srgb, var(--bg-soft) 78%, var(--surface));place-items:center;display:grid}.project-card-media--support img{object-fit:contain;width:min(42%,174px);height:auto;filter:drop-shadow(0 18px 34px color-mix(in srgb, var(--blue) 24%, transparent))}.project-card-media--brands{background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--blue) 15%, transparent), transparent 58%), linear-gradient(135deg, color-mix(in srgb, var(--surface) 88%, transparent), color-mix(in srgb, var(--bg-soft) 76%, transparent));place-items:center;display:grid}.project-card-brand-cloud{align-items:center;gap:24px;display:flex}.project-card-brand-cloud .brand-icon{width:clamp(42px,6vw,66px);height:clamp(42px,6vw,66px);filter:drop-shadow(0 12px 24px color-mix(in srgb, var(--blue) 12%, transparent))}.project-card-status{z-index:2;color:#fff;width:fit-content;max-width:calc(100% - 28px);font-family:var(--mono);letter-spacing:.08em;text-shadow:0 1px 2px #00000080;text-transform:uppercase;backdrop-filter:blur(10px);background:#09111cd6;border:1px solid #ffffff3d;border-radius:9px;padding:7px 10px;font-size:.64rem;font-weight:800;line-height:1.25;position:absolute;bottom:14px;left:14px;box-shadow:0 8px 24px #00000042}.project-card-content{flex-direction:column;flex:1;padding:24px 28px 26px;display:flex}.project-card-topline{color:var(--blue);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;font-size:.68rem;font-weight:750;display:flex}.project-brand-list{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.project-brand{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 58%, transparent);min-height:38px;color:var(--brand-color);border-radius:10px;align-items:center;gap:8px;padding:7px 10px;display:inline-flex}.project-brand .brand-icon{width:23px;height:23px}.project-brand>span{color:var(--muted);font-size:.62rem;font-weight:720}.project-brand--github,.project-brand--linux{color:var(--text)}.project-card-heading{letter-spacing:-.038em;margin:22px 0 10px;font-size:1.62rem;font-weight:760;line-height:1.2;display:block}.project-card-summary{color:var(--muted);font-size:.9rem;display:block}.project-proof{flex-wrap:wrap;gap:6px;margin-top:20px;margin-bottom:24px;display:flex}.project-proof>span{border:1px solid color-mix(in srgb, var(--teal) 24%, var(--line));color:var(--muted);border-radius:8px;padding:5px 8px;font-size:.62rem;font-weight:720}.project-more{background:var(--blue-strong);color:#fff;width:max-content;min-height:46px;box-shadow:0 9px 22px color-mix(in srgb, var(--blue) 20%, transparent);border:0;border-radius:11px;justify-content:center;align-self:flex-end;align-items:center;gap:10px;margin-top:auto;padding:0 15px;font-size:.76rem;font-weight:800;display:flex}.project-more span:last-child{width:24px;height:24px;color:inherit;box-shadow:none;pointer-events:none;background:0 0;border:0;border-radius:0;place-items:center;font-size:1.3rem;transition:transform .2s;display:grid}.project-card-link:hover .project-card-media img,.project-card-link:focus-visible .project-card-media img{transform:scale(1.025)}.project-card-link:hover .project-more span:last-child,.project-card-link:focus-visible .project-more span:last-child{filter:brightness(1.08);transform:translate(2px)}.proof-list{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.proof-list span{border:1px solid color-mix(in srgb, var(--teal) 30%, var(--line));color:var(--teal);border-radius:8px;padding:6px 8px;font-size:.64rem;font-weight:750}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag-list span{background:color-mix(in srgb, var(--blue) 11%, transparent);color:var(--blue);border-radius:8px;padding:5px 8px;font-size:.65rem;font-weight:700}@keyframes reveal{0%{opacity:0;transform:translateY(-5px)}}.case-study-page{padding-bottom:40px}.case-study-hero{padding-block:78px 96px}.case-study-back{background:var(--blue-strong);min-height:46px;box-shadow:0 9px 22px color-mix(in srgb, var(--blue) 20%, transparent);color:#fff;border:0;border-radius:11px;align-items:center;gap:9px;padding:0 15px;font-size:.76rem;font-weight:800;text-decoration:none;transition:transform .16s,filter .16s,box-shadow .16s;display:inline-flex}.case-study-back:hover{filter:brightness(1.08);box-shadow:0 12px 26px color-mix(in srgb, var(--blue) 26%, transparent);transform:translateY(-1px)}.case-study-heading{grid-template-columns:minmax(0,1.18fr) minmax(280px,.62fr);align-items:end;gap:clamp(40px,9vw,120px);margin:64px 0 36px;display:grid}.case-study-heading h1{letter-spacing:-.065em;max-width:820px;margin:0;font-size:clamp(3.1rem,7vw,6.8rem);line-height:.94}.case-study-heading>p{color:var(--muted);margin:0 0 8px;font-size:clamp(1rem,1.45vw,1.18rem)}.case-study-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.case-study-meta>span{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 84%, transparent);border-radius:12px;gap:4px;min-height:68px;padding:14px 16px;display:grid}.case-study-meta small,.case-study-facts dt{color:var(--blue);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;font-size:.6rem;font-weight:760}.case-study-meta strong{align-self:end;font-size:.76rem;line-height:1.35}.case-study-brands{flex-wrap:wrap;gap:8px;display:flex}.case-study-brand{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 56%, transparent);border-radius:10px;align-items:center;gap:8px;min-height:38px;padding:8px 11px;display:inline-flex}.case-study-brand .brand-icon{width:25px;height:25px}.case-study-brand strong{color:var(--muted);font-size:.68rem}.case-study-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:48px 0 0;display:grid}.case-study-facts>div{border-top:1px solid color-mix(in srgb, var(--blue) 42%, var(--line));background:linear-gradient(180deg, color-mix(in srgb, var(--blue) 7%, transparent), transparent);padding:18px}.case-study-facts dd{margin:10px 0 0;font-size:.82rem;font-weight:760}.case-study-body{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-bottom:112px;display:grid}.case-study-step{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 88%, transparent);min-height:340px;box-shadow:0 18px 42px color-mix(in srgb, var(--bg) 28%, transparent);backdrop-filter:blur(16px);padding:28px;position:relative;overflow:hidden}.case-study-step-head{justify-content:center;align-items:center;display:flex}.case-study-step-brand{--icon-shell-size:88px;--icon-size:52px;--icon-shell-radius:24px}.case-study-step-copy{margin-top:36px}.case-study-step h2{letter-spacing:-.035em;margin:0 0 18px;font-size:1.45rem;line-height:1.15}.case-study-step p:not(.eyebrow){color:var(--muted);font-size:.88rem}.case-study-architecture{border-block:1px solid var(--line);padding-block:76px}.architecture-map{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:radial-gradient(circle at 50% 0, color-mix(in srgb, var(--blue) 12%, transparent), transparent 48%), linear-gradient(color-mix(in srgb, var(--line) 32%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 32%, transparent) 1px, transparent 1px), color-mix(in srgb, var(--surface) 88%, transparent);box-shadow:var(--card-shadow);background-size:auto,28px 28px,28px 28px,auto;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;margin:0;padding:24px;list-style:none;display:grid;position:relative;overflow:hidden}.architecture-map li{z-index:1;border:1px solid color-mix(in srgb, var(--blue) 36%, var(--line));background:color-mix(in srgb, var(--surface-solid) 84%, transparent);min-height:154px;box-shadow:0 14px 30px color-mix(in srgb, var(--bg) 26%, transparent);backdrop-filter:blur(16px);border-radius:14px;padding:16px;position:relative}.architecture-map li:not(:last-child):after{content:"";background:var(--blue);width:20px;height:20px;position:absolute;top:50%;right:-18px;transform:translateY(-50%);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M662.82-440.39H185.48q-16.96 0-28.28-11.33-11.33-11.32-11.33-28.28t11.33-28.28q11.32-11.33 28.28-11.33h477.34l-210.6-210.61q-11.83-11.82-12.11-28.06-.28-16.24 11.54-28.63 11.83-11.83 28.35-11.55 16.52.29 28.35 12.11l278 278q6.13 6.13 9.26 13.39 3.13 7.26 3.13 14.96 0 7.7-3.13 14.96-3.13 7.26-9.26 13.39l-278.57 278q-12.39 12.39-28.35 12.39-15.95 0-27.78-12.39-11.82-11.83-11.82-27.78 0-15.96 11.82-27.79l211.17-211.17Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.architecture-node-head{justify-content:center;align-items:center;min-height:58px;margin-bottom:12px;display:flex}.architecture-brand-mark{--icon-shell-size:58px;--icon-size:36px;--icon-shell-radius:17px}.architecture-node-copy{min-width:0}.architecture-map strong{font-size:.9rem;line-height:1.28;display:block}.architecture-map p{color:var(--muted);margin:7px 0 0;font-size:.72rem;line-height:1.48}.case-study-features,.case-study-gallery{padding-block:112px}.case-study-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.case-study-feature-grid article{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 90%, transparent);min-height:142px;box-shadow:var(--card-shadow);border-radius:16px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:17px;padding:20px;display:grid}.feature-index{min-width:0;color:var(--blue);place-items:center;display:grid}.feature-brand-mark{--icon-shell-size:64px;--icon-size:38px;--icon-shell-radius:18px}.feature-copy{min-width:0}.case-study-feature-grid h3{letter-spacing:-.025em;margin:0 0 10px;font-size:1.08rem}.case-study-feature-grid p{color:var(--muted);margin:0;font-size:.78rem}.case-study-gallery{border-top:1px solid var(--line)}.case-study-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.case-study-media{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--card-shadow);margin:0;overflow:hidden}.case-study-media--wide{grid-column:1/-1}.case-study-media-frame{border:0;border-bottom:1px solid var(--line);background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--blue) 12%, transparent), transparent 58%), color-mix(in srgb, var(--surface-solid) 72%, var(--bg-soft));width:100%;min-height:300px;color:var(--text);cursor:zoom-in;place-items:center;padding:26px;display:grid;position:relative;overflow:hidden}.case-study-media--wide .case-study-media-frame{min-height:460px}.case-study-media-frame picture,.case-study-media-frame img{width:100%;height:100%;display:block}.case-study-media-frame img{object-fit:contain;max-height:540px}.case-study-media-open{border:1px solid color-mix(in srgb, var(--blue) 45%, var(--line));background:color-mix(in srgb, var(--surface-solid) 90%, transparent);width:42px;height:42px;color:var(--blue);box-shadow:var(--card-shadow);opacity:.9;border-radius:13px;place-items:center;font-size:1.35rem;transition:transform .18s,opacity .18s;display:grid;position:absolute;bottom:14px;right:14px}.case-study-media-frame:hover .case-study-media-open,.case-study-media-frame:focus-visible .case-study-media-open{opacity:1;transform:scale(1.06)}.case-study-media figcaption{grid-template-columns:.55fr 1fr;gap:24px;padding:20px 24px;display:grid}.case-study-media figcaption strong{font-size:.88rem}.case-study-media figcaption span{color:var(--muted);font-size:.75rem}.case-study-video{border-top:1px solid var(--line);grid-template-columns:minmax(240px,.8fr) minmax(260px,320px);align-items:center;gap:clamp(30px,7vw,90px);width:min(100% - 40px,900px);padding-block:96px;display:grid}.case-study-video-copy{position:sticky;top:120px}.case-study-video-copy h2{letter-spacing:-.055em;margin:8px 0 18px;font-size:clamp(2rem,4vw,3.8rem);line-height:.96}.case-study-video-copy>p:last-child{color:var(--muted)}.case-study-video video{border:1px solid var(--line);width:min(100%,300px);max-height:570px;box-shadow:var(--card-shadow);background:#05080d;border-radius:18px;justify-self:center;display:block}.case-study-close{border-top:1px solid var(--line);grid-template-columns:1fr .8fr;gap:clamp(40px,9vw,120px);padding-block:112px;display:grid}.case-study-close h2{letter-spacing:-.05em;margin:8px 0 18px;font-size:clamp(2rem,4vw,3.6rem);line-height:1}.case-study-close>div>p:not(.eyebrow),.case-study-close li{color:var(--muted)}.case-study-close aside{border:1px dashed color-mix(in srgb, var(--blue) 46%, var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--blue) 6%, var(--surface));padding:28px}.case-study-close ul{gap:12px;margin:22px 0 0;padding-left:20px;display:grid}.case-study-close li{font-size:.8rem}.case-study-close--repository{align-items:stretch}.case-study-close--repository>div{align-self:center}.repository-proof{flex-wrap:wrap;gap:7px;margin-top:24px;display:flex}.repository-proof span{border:1px solid color-mix(in srgb, var(--teal) 28%, var(--line));color:var(--muted);border-radius:999px;padding:7px 10px;font-size:.66rem;font-weight:760}.repository-card{border:1px solid color-mix(in srgb, var(--blue) 44%, var(--line));border-radius:calc(var(--radius) + 4px);background:radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--blue) 20%, transparent), transparent 42%), color-mix(in srgb, var(--surface) 94%, transparent);min-height:280px;box-shadow:var(--card-shadow);color:var(--text);backdrop-filter:blur(16px);grid-template-columns:86px 1fr;align-content:center;gap:20px;padding:32px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.repository-card:after{border:1px solid color-mix(in srgb, var(--blue) 18%, transparent);content:"";border-radius:50%;width:220px;height:220px;position:absolute;bottom:-72px;right:-54px}.repository-icon{--icon-shell-size:86px;--icon-size:54px;--icon-shell-radius:24px}.repository-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.repository-copy small{color:var(--blue);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.63rem;font-weight:800}.repository-copy strong{letter-spacing:-.035em;margin-top:8px;font-size:1.55rem;line-height:1.08}.repository-copy em{color:var(--muted);margin-top:7px;font-size:.74rem;font-style:normal}.repository-action{background:var(--blue-strong);color:#fff;width:max-content;min-height:46px;box-shadow:0 9px 22px color-mix(in srgb, var(--blue) 20%, transparent);border:0;border-radius:11px;grid-column:1/-1;justify-content:center;align-items:center;gap:10px;margin-top:18px;padding:0 15px;font-size:.78rem;font-weight:800;display:flex}.repository-action .ui-icon{font-size:1.16rem;transition:transform .2s}.repository-card:hover,.repository-card:focus-visible{border-color:var(--blue);box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.repository-card:hover .repository-action .ui-icon,.repository-card:focus-visible .repository-action .ui-icon{transform:translate(2px,-2px)}.case-study-pagination{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto minmax(0,1fr);align-items:center;gap:10px;padding-block:26px 62px;display:grid}.case-study-pagination a,.case-study-pagination button{background:var(--blue-strong);width:max-content;min-height:46px;box-shadow:0 9px 22px color-mix(in srgb, var(--blue) 20%, transparent);color:#fff;cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-family:inherit;font-size:.76rem;font-weight:800;text-decoration:none;transition:transform .16s,filter .16s,box-shadow .16s;display:inline-flex}.case-study-pagination a:hover,.case-study-pagination button:hover{filter:brightness(1.08);box-shadow:0 12px 26px color-mix(in srgb, var(--blue) 26%, transparent);transform:translateY(-1px)}.case-study-pagination-link--previous{grid-column:1;justify-self:start}.case-study-pagination-link--next{grid-column:4;justify-self:end}.case-study-pagination .ui-icon,.case-study-back .ui-icon{flex:none;font-size:1.15rem}.case-study-pagination-link strong{white-space:nowrap}.case-study-pagination-all{grid-column:2;justify-self:center}.case-study-pagination-all strong{white-space:nowrap}.case-study-pagination-share{grid-column:3;justify-self:center}.reading-progress{z-index:240;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0}.reading-progress span{background:linear-gradient(90deg, var(--blue), var(--violet));width:100%;height:100%;box-shadow:0 0 12px color-mix(in srgb, var(--blue) 54%, transparent);transform-origin:0;will-change:transform;display:block;transform:scaleX(0)}.project-lightbox{background:color-mix(in srgb, var(--bg) 94%, transparent);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0}.project-lightbox::backdrop{backdrop-filter:blur(12px);background:#010409d1}.project-lightbox[open]{display:block}.project-lightbox-shell{width:100%;height:100%;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));grid-template-rows:auto minmax(0,1fr) auto;display:grid}.project-lightbox-toolbar{justify-content:space-between;align-items:center;gap:20px;padding-bottom:12px;display:flex}.project-lightbox-toolbar p{gap:2px;margin:0;display:grid}.project-lightbox-toolbar small{color:var(--blue);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;font-weight:800}.project-lightbox-toolbar strong{text-overflow:ellipsis;white-space:nowrap;max-width:min(60vw,760px);font-size:.92rem;overflow:hidden}.project-lightbox-toolbar>div{gap:8px;display:flex}.project-lightbox button{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 90%, transparent);min-width:46px;min-height:46px;color:var(--text);cursor:pointer;border-radius:13px;place-items:center;display:grid}.project-lightbox-toolbar button{font-size:1.4rem}.project-lightbox-viewport{grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:12px;min-height:0;display:grid;position:relative}.project-lightbox-stage{overscroll-behavior:contain;border:1px solid var(--line);background:radial-gradient(circle at center, color-mix(in srgb, var(--blue) 10%, transparent), transparent 64%), color-mix(in srgb, var(--surface-solid) 92%, transparent);touch-action:pan-y pinch-zoom;border-radius:20px;place-items:center;min-width:0;height:100%;display:grid;overflow:auto}.project-lightbox-stage img{object-fit:contain;transform-origin:50%;max-width:100%;max-height:100%;transition:transform .2s;display:block}.project-lightbox-stage.is-zoomed{cursor:zoom-out;touch-action:pan-x pan-y pinch-zoom}.project-lightbox-stage.is-zoomed img{cursor:move;max-width:none;max-height:none;transform:scale(1.8)}.project-lightbox-nav{font-size:1.5rem}.project-lightbox-caption{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:16px;padding-top:12px;display:grid}.project-lightbox-caption strong{font-size:.82rem}.project-lightbox-caption span,.project-lightbox-caption small{color:var(--muted);font-size:.72rem}.has-lightbox{overflow:hidden}.project-mobile-dock{display:none}.project-card,.learning-stack-card,.brand-card,.case-study-media,.case-study-feature-grid>article{container-type:inline-size}@container (width<=360px){.project-card-content{padding-inline:18px}.project-brand-list{gap:5px}.project-brand{padding-inline:8px}.learning-stack-card{padding:20px}}@view-transition{navigation:auto}::view-transition-old(root){animation:.16s both portfolio-fade-out}::view-transition-new(root){animation:.24s both portfolio-fade-in}@keyframes portfolio-fade-out{to{opacity:0;transform:translateY(-4px)}}@keyframes portfolio-fade-in{0%{opacity:0;transform:translateY(6px)}}.about-section{grid-template-columns:1fr .72fr;align-items:start;gap:clamp(46px,8vw,96px);padding-block:130px;display:grid;position:relative}.about-section:before{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--violet) 35%, var(--line)), transparent);height:1px;position:absolute;top:54px;left:0;right:0}.about-copy>p:not(.eyebrow){max-width:650px;color:var(--muted);font-size:1rem}.about-copy h2{margin-bottom:26px}.technology-list{flex-wrap:wrap;gap:7px;max-width:650px;margin-top:24px;display:flex}.technology-list span{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:.68rem;font-weight:700}.text-link{border:1px solid color-mix(in srgb, var(--blue) 76%, white);background:var(--blue-strong);color:#fff;min-height:46px;box-shadow:0 6px 16px color-mix(in srgb, var(--blue) 22%, transparent);border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-top:18px;padding:0 15px;font-size:.82rem;font-weight:800;text-decoration:none;transition:transform .2s,filter .2s;display:inline-flex}.text-link:hover,.text-link:focus-visible{filter:brightness(1.08);transform:translateY(-1px)}.text-link .brand-icon{color:#fff;width:20px;height:20px}.learning-card{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--card-shadow);backdrop-filter:blur(12px);padding:32px}.learning-card h3{letter-spacing:-.04em;margin:0 0 20px;font-size:1.6rem;line-height:1.12}.learning-card>p:not(.eyebrow){color:var(--muted);font-size:.86rem}.learning-tags{flex-wrap:wrap;gap:7px;margin-top:24px;display:flex}.contact-section{color:#fff;background:#1554ad;padding-block:110px}:root[data-theme=light] .contact-section{background:radial-gradient(circle at 84% 14%,#ffffff1c,#0000 30rem),linear-gradient(145deg,#2d679f,#245583 68%,#234d77)}:root[data-theme=dark] .contact-section{background:radial-gradient(circle at 82% 16%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 30rem), var(--bg-soft);border-block:1px solid var(--line)}:root[data-theme=dark] .contact-section .eyebrow{color:var(--blue)}:root[data-theme=dark] .contact-form,:root[data-theme=dark] .contact-channels{border-color:color-mix(in srgb, var(--blue) 16%, var(--line));box-shadow:var(--card-shadow);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--surface) 84%, transparent);border-radius:12px}:root[data-theme=dark] .contact-form input,:root[data-theme=dark] .contact-form textarea,:root[data-theme=dark] .contact-socials a{border-color:var(--line);background:color-mix(in srgb, var(--surface-solid) 64%, transparent);border-radius:8px}.contact-section .eyebrow{color:#ffffffe6}.contact-grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:80px;display:grid}.contact-intro{color:#ffffffe0;max-width:480px}.contact-panel{min-width:0}.contact-actions{padding-bottom:6px}.contact-mail{border-bottom:1px solid #fff6;flex-direction:column;gap:3px;padding:22px 50px 22px 0;text-decoration:none;display:flex;position:relative}.contact-mail span{color:#ffffffad;font-size:.72rem}.contact-mail strong{font-size:1rem}.contact-mail i{font-size:1.4rem;font-style:normal;position:absolute;bottom:22px;right:0}.contact-actions>p{color:#ffffffb3;margin:14px 0 0;font-size:.72rem}.contact-form{border-radius:var(--radius);backdrop-filter:blur(14px);background:#0925582e;border:1px solid #ffffff47;gap:16px;padding:46px 28px 28px;display:grid;position:relative}.contact-form:before{content:"contact.pipeline / ready";color:#ffffffc7;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:700;position:absolute;top:15px;left:28px}.contact-field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.contact-form label{color:#ffffffe0;letter-spacing:.04em;gap:7px;font-size:.75rem;font-weight:750;display:grid}.contact-form input,.contact-form textarea{color:#fff;width:100%;font:inherit;background:#081d443d;border:1px solid #ffffff47;border-radius:12px;outline:none;font-size:.86rem}.contact-form input{height:46px;padding:0 13px}.contact-form textarea{resize:vertical;min-height:118px;padding:12px 13px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#ffffff7a}.contact-form input:focus,.contact-form textarea:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff29}.contact-honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.contact-submit-row{align-items:center;gap:16px;display:flex}.contact-submit{background:var(--blue-strong);color:#fff;cursor:pointer;border-color:#ffffff57;box-shadow:0 7px 18px #05183c3d}.contact-submit:disabled{cursor:not-allowed;opacity:.7;transform:none}.contact-submit.is-submitting{cursor:wait}.form-note,.form-status{color:#ffffffe6;margin:0;font-size:.75rem}.form-status{color:#fff;min-height:1.2em;font-weight:700}.contact-channels{border-radius:var(--radius);backdrop-filter:blur(12px);background:#081d443d;border:1px solid #ffffff47;margin-top:16px;padding:20px;box-shadow:0 10px 28px #05183c29}.contact-channels-heading{justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px;display:flex}.contact-channels-heading strong{font-size:.88rem}.contact-channels-heading span{color:#ffffffb3;text-align:right;font-size:.7rem}.contact-socials{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.contact-socials a{color:#fff;background:#081d4438;border:1px solid #ffffff57;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:50px;padding:0 10px;text-decoration:none;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:0 10px 24px #0414321f}.contact-socials a.is-primary{background:#ffffff1c;border-color:#ffffff8a;box-shadow:0 13px 28px #04143233}.contact-socials a.is-secondary{opacity:.82}.contact-socials a:hover,.contact-socials a:focus-visible{background:#ffffff29;border-color:#ffffffdb;transform:translateY(-2px);box-shadow:0 15px 30px #04143233}.contact-socials a.is-secondary:hover,.contact-socials a.is-secondary:focus-visible{opacity:1}.contact-socials a>span:last-child{text-overflow:ellipsis;font-size:.7rem;font-weight:780;overflow:hidden}.reveal-ready .reveal{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(18px)}.reveal-ready .reveal.is-visible{opacity:1;transform:translateY(0)}.site-footer{padding:60px max(20px, env(safe-area-inset-right)) max(60px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--bg)}:root[data-theme=dark] .site-footer{background:color-mix(in srgb, var(--surface-solid) 38%, var(--bg))}.footer-support{margin-bottom:56px;scroll-margin-top:92px}.footer-grid{max-width:var(--max);grid-template-columns:1.2fr .7fr .8fr;align-items:end;gap:50px;margin:auto;display:grid}.footer-brand{color:var(--text);align-items:center;gap:11px;font-size:1.25rem;font-weight:850;text-decoration:none;display:inline-flex}.footer-brand>span:last-child{color:var(--text)}.footer-brand i{color:var(--blue);font-style:normal}.footer-brand-mark{flex:none;place-items:center;width:62px;height:62px;display:grid}.footer-brand-mark img{object-fit:contain;transform-origin:50%;width:100%;height:100%;transition:transform .25s;display:block;transform:scale(1.22)}.footer-brand:hover .footer-brand-mark img{transform:scale(1.28)}.footer-grid p{max-width:360px;color:var(--muted);margin:0;font-size:.78rem}.footer-built{color:var(--muted);font-family:var(--mono);letter-spacing:.045em;margin-top:12px;font-size:.6rem;display:block}.footer-links{flex-wrap:wrap;gap:14px;display:flex}.footer-legal{text-align:right;flex-direction:column;align-items:flex-end;gap:10px;display:flex}.footer-legal-links{flex-wrap:wrap;justify-content:flex-end;gap:14px;display:flex}.footer-links a,.footer-legal-links a,.footer-legal>span{color:var(--muted);font-size:.72rem;text-decoration:none}.footer-links a:hover,.footer-legal a:hover{color:var(--text)}.legal-shell{width:min(100% - 40px,840px);min-height:70vh;margin:0 auto;padding:90px 0 120px}.legal-shell h1{letter-spacing:-.06em;margin:0 0 54px;font-size:clamp(3rem,7vw,5.6rem)}.legal-shell section{border-bottom:1px solid var(--line);margin:0 0 38px;padding-bottom:30px}.legal-shell h2{font-size:1.15rem}.legal-shell h3{margin-top:26px;font-size:.94rem}.legal-shell p{color:var(--muted)}.legal-shell a{color:var(--blue)}.preview-note{border:1px solid color-mix(in srgb, var(--violet) 45%, var(--line));background:color-mix(in srgb, var(--violet) 9%, transparent);color:var(--muted);border-radius:12px;margin-bottom:44px;padding:12px 14px;font-size:.74rem}.not-found{place-content:center;justify-items:start;width:min(100% - 40px,720px);min-height:100vh;margin:auto;display:grid}.not-found h1{letter-spacing:-.06em;margin:0;font-size:clamp(3rem,8vw,6rem);line-height:.95}.not-found>p:not(.eyebrow){color:var(--muted);margin-bottom:28px}:focus-visible{outline:3px solid color-mix(in srgb, var(--blue) 70%, white);outline-offset:4px}@media (width<=980px){.site-header .desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu summary{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--text);border-radius:12px;align-items:center;gap:7px;padding:0 11px;font-size:.72rem;font-weight:800;display:flex}.mobile-menu-icon{place-items:center;width:20px;height:20px;font-size:20px;font-style:normal;transition:opacity .16s,transform .16s;display:grid}.mobile-menu-icon--close,.mobile-menu[open] .mobile-menu-icon--open{display:none}.mobile-menu[open] .mobile-menu-icon--close{display:grid}.mobile-menu nav{border:1px solid var(--line);background:var(--surface-solid);width:min(270px,100vw - 28px);box-shadow:var(--shadow);border-radius:16px;gap:0;padding:9px;display:grid;position:absolute;top:calc(100% + 10px);right:0}.mobile-menu nav a{border-radius:10px;padding:12px}.mobile-menu nav a:hover,.mobile-menu nav a.is-active{background:color-mix(in srgb, var(--blue) 10%, transparent)}.hero{grid-template-rows:auto auto auto;grid-template-columns:1fr;min-height:0;padding-block:76px 66px}.hero-lead{grid-area:1/1;display:block}.hero-diagnostics{margin:-14px 0 30px}.hero-name{display:flex}.hero-visual{grid-area:2/1;width:min(100%,430px);margin:24px auto 42px}.hero-status-feed{margin-top:24px}.hero-body{grid-area:3/1}.skill-grid{grid-template-columns:repeat(2,1fr)}.brand-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-map{grid-template-columns:1fr;gap:14px;padding:18px}.architecture-map li{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:0 16px;min-height:0;padding:15px 18px;display:grid}.architecture-map li:not(:last-child):after{top:auto;bottom:-15px;right:50%;transform:translate(50%)rotate(90deg)}.architecture-node-head{grid-area:1/1;min-height:0;margin:0}.architecture-node-copy{grid-area:1/2}.case-study-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-section{grid-template-columns:1fr}.learning-card{grid-column:auto}.contact-grid{gap:54px}}@media (width<=820px){html{scroll-padding-top:74px}.site-header{padding:10px 14px}.brand-mark{width:52px;height:52px}.hero{grid-template-columns:1fr;min-height:0;padding-block:70px 60px}.hero-visual{width:min(100%,430px);margin:24px auto 38px}.hero h1{font-size:clamp(3.2rem,15vw,5rem)}.hero-intro{font-size:1rem}.content-section,.projects-section,.about-section{padding-block:88px}.skill-grid,.project-grid{grid-template-columns:1fr}.project-grid{grid-auto-rows:auto}.learning-stack-section{padding-block:78px 84px}.learning-stack-grid{grid-template-columns:1fr}.learning-stack-card,.skill-card{min-height:250px}.skill-title{margin-top:30px}.brand-showcase{margin-block:22px;padding:68px 28px 74px}.brand-showcase-heading{grid-template-columns:1fr;gap:18px}.brand-showcase-heading>p{max-width:610px}.section-heading-split{grid-template-columns:1fr;gap:18px}.about-section{grid-template-columns:1fr;gap:30px}.learning-card{grid-column:auto}.contact-grid,.footer-grid{grid-template-columns:1fr;gap:44px}.footer-links{justify-content:center}.footer-copy{text-align:center}.footer-grid p{margin-inline:auto}.footer-legal{align-items:flex-end}.project-detail-grid{grid-template-columns:1fr}.case-study-heading,.case-study-video,.case-study-close{grid-template-columns:1fr;gap:28px}.case-study-heading{margin-top:42px}.case-study-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-body{grid-template-columns:1fr;padding-bottom:84px}.case-study-step{min-height:0}.case-study-step-brand{--icon-shell-size:78px;--icon-size:46px;--icon-shell-radius:22px}.case-study-step-copy{margin-top:30px}.architecture-map{grid-template-columns:1fr;gap:14px;padding:18px}.architecture-map li{min-height:0}.architecture-map li:not(:last-child):after{top:auto;bottom:-15px;right:50%;transform:translate(50%)rotate(90deg)}.case-study-media-grid{grid-template-columns:1fr}.case-study-media--wide{grid-column:auto}.case-study-media-frame,.case-study-media--wide .case-study-media-frame{min-height:320px}.case-study-video-copy{position:static}.contact-form input,.contact-form textarea{font-size:1rem}.contact-section{padding-block:82px}.skill-card,.brand-card,.project-card,.learning-card{backdrop-filter:blur(8px)saturate(112%)}.tech-marquee-group{gap:32px;padding-inline:32px}.tech-marquee-group>span{font-size:.72rem}}@media (width<=560px){.section-shell{width:min(calc(100% - 28px), var(--max))}.site-header{padding-inline:10px}.brand{gap:8px}.brand-mark{width:48px;height:48px}.brand-copy{font-size:.82rem}.brand-copy small{letter-spacing:.055em;margin-top:2px;font-size:.54rem}.header-actions{gap:6px}.theme-control{grid-template-columns:42px 42px;gap:5px}.theme-toggle,.theme-menu-toggle{width:42px}.mobile-menu summary span{display:none}.hero-status-feed{width:100%;max-width:100%;margin:24px 0 0}.hero-status-item>a,.hero-status-item>span{min-height:50px}.hero-status-item>a>span,.hero-status-item>span>span{flex-direction:column;align-items:flex-start;gap:2px}.hero-status-item strong{white-space:normal}.hero-name{flex-direction:column;align-items:flex-start;gap:2px}.hero{padding-block:48px}.hero-visual{width:min(100%,340px);margin:18px auto 26px}.hero h1{font-size:clamp(2.75rem,11.5vw,3.5rem)}.hero-intro{margin-block:22px 25px}.hero-actions .button{width:100%}.hero-socials{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.hero-socials a{min-width:0}.content-section,.projects-section,.about-section{padding-block:60px}.skill-card{min-height:0;padding:0 22px 22px}.skill-card summary{min-height:252px;margin-inline:-22px;padding:22px}.skill-title{margin-top:26px}.skill-tags{margin-top:18px}.skill-card-action{left:22px;right:22px}.brand-showcase{width:min(calc(100% - 20px), var(--max));margin-block:18px;padding:52px 16px 58px}.brand-showcase-heading{margin-bottom:28px}.brand-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.learning-stack-section{padding-block:66px 72px}.learning-stack-grid,.project-grid{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;gap:12px;padding-bottom:16px;display:flex;overflow-x:auto}.learning-stack-grid::-webkit-scrollbar{display:none}.project-grid::-webkit-scrollbar{display:none}.learning-stack-card{scroll-snap-align:center;flex:0 0 min(86vw,330px);min-height:0;padding:22px}.learning-stack-card>strong{margin-top:24px}.learning-stack-link{align-self:stretch;width:100%;margin-top:10px}.brand-card{grid-template-columns:42px minmax(0,1fr);gap:10px;min-height:88px;padding:12px}.brand-card-icon{--icon-shell-size:42px;--icon-size:25px;--icon-shell-radius:13px}.brand-card-copy strong{font-size:.82rem}.brand-card-copy small{font-size:.62rem}.brand-card-arrow{display:none}.learning-card{padding:22px}.project-card{scroll-snap-align:center;flex:0 0 min(88vw,350px);height:auto;min-height:0;padding:0}.project-card-link{min-height:0}.project-card-media{aspect-ratio:16/10;height:auto}.project-card-content{padding:19px}.project-card-heading{margin-top:17px;font-size:1.38rem}.project-card-summary{font-size:.82rem}.project-proof{margin-top:15px;margin-bottom:0}.project-more{align-self:stretch;width:100%;margin-top:18px}.contact-field-row{grid-template-columns:1fr}.contact-form{padding:40px 20px 20px}.contact-form:before{top:13px;left:20px}.contact-submit-row{flex-direction:column;align-items:stretch}.contact-submit{width:100%}.contact-channels{padding:18px}.contact-channels-heading{flex-direction:column;align-items:flex-start;gap:4px}.contact-channels-heading span{text-align:left}.footer-support{width:100%}.contact-socials{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-hero{padding-block:52px 66px}.case-study-heading h1{font-size:clamp(2.7rem,13vw,4rem)}.case-study-meta{grid-template-columns:1fr}.case-study-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:30px}.case-study-facts>div{padding:12px}.case-study-body,.architecture-map,.case-study-feature-grid,.case-study-media-grid{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;gap:12px;padding-bottom:16px;display:flex;overflow-x:auto}.case-study-body::-webkit-scrollbar{display:none}.architecture-map::-webkit-scrollbar{display:none}.case-study-feature-grid::-webkit-scrollbar{display:none}.case-study-media-grid::-webkit-scrollbar{display:none}.case-study-body{padding-bottom:54px}.case-study-step{scroll-snap-align:center;flex:0 0 min(86vw,330px);min-height:0;padding:20px}.case-study-step-brand{--icon-shell-size:72px;--icon-size:42px;--icon-shell-radius:20px}.architecture-map{padding:12px}.architecture-map li{scroll-snap-align:center;flex:0 0 min(82vw,310px);grid-template-columns:58px minmax(0,1fr);gap:0 14px;padding:14px 15px}.architecture-map li:not(:last-child):after{top:50%;bottom:auto;right:-17px;transform:translateY(-50%)}.architecture-brand-mark{--icon-shell-size:52px;--icon-size:32px;--icon-shell-radius:15px}.architecture-map strong{font-size:.86rem}.architecture-map p{margin-top:5px;font-size:.69rem;line-height:1.42}.case-study-feature-grid article{scroll-snap-align:center;flex:0 0 min(86vw,330px);grid-template-columns:64px minmax(0,1fr);gap:16px;min-height:124px;padding:17px}.feature-brand-mark{--icon-shell-size:64px;--icon-size:38px;--icon-shell-radius:18px}.case-study-architecture{padding-block:58px}.case-study-features,.case-study-gallery,.case-study-video,.case-study-close{padding-block:60px}.case-study-media{scroll-snap-align:center;flex:0 0 min(88vw,340px)}.case-study-media-frame,.case-study-media--wide .case-study-media-frame{height:min(105vw,380px);min-height:0;padding:14px}.case-study-media figcaption{grid-template-columns:1fr;gap:7px}.case-study-pagination{display:none}.project-mobile-dock{z-index:180;right:max(10px, env(safe-area-inset-right));bottom:max(10px, env(safe-area-inset-bottom));left:max(10px, env(safe-area-inset-left));border:1px solid color-mix(in srgb, var(--blue) 30%, var(--line));background:color-mix(in srgb, var(--surface-solid) 88%, transparent);backdrop-filter:blur(18px)saturate(125%);border-radius:17px;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px;display:grid;position:fixed;box-shadow:0 18px 45px #01040947}.project-mobile-dock a,.project-mobile-dock button,.project-mobile-dock>span{min-width:0;min-height:48px;color:var(--text);background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:5px;padding:0 7px;font-family:inherit;font-size:.62rem;font-weight:800;text-decoration:none;display:inline-flex}.project-mobile-dock button{color:#fff;background:var(--blue-strong);cursor:pointer}.project-mobile-dock .ui-icon{font-size:1.2rem}.project-mobile-dock .is-disabled{opacity:.28}.project-mobile-dock .is-confirmed{background:var(--teal)}.case-study-page{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.project-lightbox-viewport{grid-template-columns:1fr}.project-lightbox-nav{z-index:2;position:absolute;top:50%;transform:translateY(-50%);background:color-mix(in srgb, var(--surface-solid) 88%, transparent)!important}.project-lightbox-nav--previous{left:7px}.project-lightbox-nav--next{right:7px}.project-lightbox-caption{grid-template-columns:1fr auto}.project-lightbox-caption span{grid-area:2/1/auto/-1}.repository-card{grid-template-columns:68px 1fr;min-height:240px;padding:24px}.repository-icon{--icon-shell-size:68px;--icon-size:42px;--icon-shell-radius:19px}.repository-copy strong{font-size:1.2rem}}@media (width<=380px){.brand-showcase-grid{grid-template-columns:1fr}}@media (hover:hover) and (pointer:fine){.skill-card:hover{border-color:color-mix(in srgb, var(--blue) 48%, var(--line));box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.skill-card:hover:before{opacity:1}.project-card:hover{border-color:color-mix(in srgb, var(--blue) 44%, var(--line));box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.project-card.is-expanded:hover{transform:translateY(-1px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.tech-marquee{overflow:hidden}.tech-marquee:before,.tech-marquee:after{display:none}.tech-marquee-track{width:auto;animation:none!important}.tech-marquee-group{flex-wrap:wrap;width:auto;min-width:0;padding:0 20px}.tech-marquee-group[data-copy=true]{display:none}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
