@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_9710934b-module__-vnxFq__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_9710934b-module__-vnxFq__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--bg-base:#fcfbf9;--bg-surface:#fff;--bg-elevated:#f5f3ef;--text-primary:#1c1b18;--text-secondary:#4e4b42;--text-muted:#8b877a;--border:#e8e5dc;--bg-accent:#f3efe6;--accent:#01c950;--accent-text:#007a32;--accent-hover:#02e05a;--accent-volt:#d4b800;--border-accent:#d5cfbd;--hero-grid:#d5cfbd;--grid-max:1440px;--grid-gutter:clamp(20px, 4vw, 48px);--card-shadow:0 20px 40px #00000005, 0 8px 16px #00000003;--card-overlay:linear-gradient(to top, #ffffffeb 0%, #fff6 22%, transparent 48%);--card-text-title:var(--text-primary);--card-text-body:var(--text-secondary);--card-text-shadow:none;--card-tag-bg:#ffffffd9;--card-tag-text:var(--text-secondary);--card-tag-border:var(--border);--card-bg:var(--bg-surface);--scrollbar-thumb:#00000038;--scrollbar-thumb-hover:#0000006b;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1)}@media (prefers-color-scheme:dark){:root{--bg-base:#0a0a0a;--bg-surface:#121212;--bg-elevated:#1e1e1e;--text-primary:#e8f5e4;--text-secondary:#bfd5b7;--text-muted:#8aa07f;--border:#262626;--bg-accent:#143a1d;--accent:#01c950;--accent-text:#01c950;--accent-hover:#02e05a;--accent-volt:#f5e332;--border-accent:#009e3d;--hero-grid:#262626;--card-shadow:0 22px 60px #0009;--card-overlay:linear-gradient(to top, #0a0a0af2 0%, #0a0a0a99 35%, #0a0a0a1a 70%, transparent 100%), linear-gradient(to right, #0a0a0a4d 0%, transparent 20%, transparent 80%, #0a0a0a4d 100%);--card-text-title:#fff;--card-text-body:#ffffffd1;--card-text-shadow:0 2px 4px #0006;--card-tag-bg:#141414bf;--card-tag-text:#fff;--card-tag-border:#ffffff1f;--card-bg:color-mix(in srgb, var(--bg-base) 82%, #000);--scrollbar-thumb:#ffffff40;--scrollbar-thumb-hover:#ffffff7a}}:root[data-theme=light]{--bg-base:#fcfbf9;--bg-surface:#fff;--bg-elevated:#f5f3ef;--text-primary:#1c1b18;--text-secondary:#4e4b42;--text-muted:#8b877a;--border:#e8e5dc;--bg-accent:#f3efe6;--accent:#01c950;--accent-text:#007a32;--accent-hover:#02e05a;--accent-volt:#d4b800;--border-accent:#d5cfbd;--hero-grid:#d5cfbd;--card-shadow:0 20px 40px #00000005, 0 8px 16px #00000003;--card-overlay:linear-gradient(to top, #ffffffeb 0%, #fff6 22%, transparent 48%);--card-text-title:var(--text-primary);--card-text-body:var(--text-secondary);--card-text-shadow:none;--card-tag-bg:#ffffffd9;--card-tag-text:var(--text-secondary);--card-tag-border:var(--border);--card-bg:var(--bg-surface);--scrollbar-thumb:#00000038;--scrollbar-thumb-hover:#0000006b}:root[data-theme=dark]{--bg-base:#0a0a0a;--bg-surface:#121212;--bg-elevated:#1e1e1e;--text-primary:#e8f5e4;--text-secondary:#bfd5b7;--text-muted:#8aa07f;--border:#262626;--bg-accent:#143a1d;--accent:#01c950;--accent-text:#01c950;--accent-hover:#02e05a;--accent-volt:#f5e332;--border-accent:#009e3d;--hero-grid:#262626;--card-shadow:0 22px 60px #0009;--card-overlay:linear-gradient(to top, #0a0a0af2 0%, #0a0a0a99 35%, #0a0a0a1a 70%, transparent 100%), linear-gradient(to right, #0a0a0a4d 0%, transparent 20%, transparent 80%, #0a0a0a4d 100%);--card-text-title:#fff;--card-text-body:#ffffffd1;--card-text-shadow:0 2px 4px #0006;--card-tag-bg:#141414bf;--card-tag-text:#fff;--card-tag-border:#ffffff1f;--card-bg:color-mix(in srgb, var(--bg-base) 82%, #000);--scrollbar-thumb:#ffffff40;--scrollbar-thumb-hover:#ffffff7a}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}html{scroll-behavior:smooth;scroll-padding-top:72px;overflow-x:clip}.reveal-on-scroll{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){html.js .reveal-on-scroll:not(.is-visible){opacity:0;transform:translateY(18px)}.reveal-on-scroll{transition:opacity .45s var(--ease-out), transform .45s var(--ease-out)}.reveal-on-scroll.is-visible{opacity:1;transform:none}}body{background:linear-gradient(180deg, var(--bg-base), color-mix(in srgb, var(--bg-base) 88%, var(--bg-elevated))), var(--bg-base);color:var(--text-primary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;margin:0;transition:background-color .18s,color .18s;overflow-x:clip}a{color:inherit}.skip-link{z-index:100;border:2px solid var(--accent-text);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;border-radius:6px;padding:10px 14px;font-weight:800;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(calc(-100% - 12px))}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .18s,border-color .18s;position:sticky;top:0}.nav{width:min(100%, var(--grid-max));min-height:72px;padding:0 var(--grid-gutter);border-left:1px solid var(--border);border-right:1px solid var(--border);align-items:center;gap:clamp(18px,4vw,36px);margin:0 auto;display:flex}.nav-brand{font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;color:var(--text-primary);letter-spacing:-.02em;font-size:1.15rem;font-weight:800;text-decoration:none;transition:color .2s;display:none}.nav-brand:hover{color:var(--accent-text)}.nav-desktop-links{align-items:center;gap:clamp(18px,4vw,36px);display:flex}.nav a{color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;font-size:.96rem;font-weight:700;text-decoration:none;transition:color .2s}.nav a:hover,.nav a.active{color:var(--accent-text)}.nav-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.nav-icon-link,.theme-toggle,.nav-hamburger-toggle{border:1px solid var(--border);background:var(--bg-surface);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;border-radius:8px;place-items:center;line-height:1;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:inline-grid}.nav-hamburger-toggle{display:none}.nav-icon-link svg,.theme-toggle svg,.nav-hamburger-toggle svg{width:18px;height:18px}.theme-toggle svg{stroke-width:2px}.nav-icon-link:hover,.theme-toggle:hover,.nav-hamburger-toggle:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary)}.page-grid{width:min(100%, var(--grid-max));border-left:1px solid var(--border);border-right:1px solid var(--border);margin:0 auto}.grid-band{padding-left:var(--grid-gutter);padding-right:var(--grid-gutter)}.hero{isolation:isolate;box-sizing:border-box;grid-template-columns:minmax(0,55fr) minmax(300px,45fr);align-content:center;align-items:center;gap:clamp(24px,3vw,44px);min-height:calc(100vh - 72px);padding-top:clamp(24px,4vh,48px);padding-bottom:clamp(24px,4vh,48px);display:grid;position:relative}.hero:before,.error-page:before{content:"";z-index:-1;background-image:linear-gradient(color-mix(in srgb, var(--hero-grid) 88%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--hero-grid) 88%, transparent) 1px, transparent 1px);opacity:.34;pointer-events:none;background-position:0 0,0 0;background-size:100% 44px,6.25% 100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#0000008c 52%,#000 100%);mask-image:linear-gradient(90deg,#0000 0%,#0000008c 52%,#000 100%)}.hero-copy{justify-self:end;width:min(100%,620px)}.hero-image{width:min(100%,420px);height:auto;filter:drop-shadow(0 24px 40px color-mix(in srgb, var(--accent) 16%, transparent));justify-self:end}@media (min-width:768px) and (max-width:1199px){.hero{min-height:min(760px,100svh - 72px);overflow-x:clip}.hero-image{transform:translate(clamp(0px,8vw,76px))}}h1,h2,h3,p{margin-top:0}h1{max-width:860px;font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;letter-spacing:0;margin-bottom:10px;font-size:clamp(3rem,8vw,5.8rem);line-height:.96}.role{color:var(--text-secondary);margin-bottom:28px;font-size:clamp(1.3rem,3vw,2rem);line-height:1.25}.actions{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.contact-dropdown{width:180px;position:relative}.contact-dropdown:after{content:"";width:100%;height:12px;position:absolute;top:100%;left:0}.contact-dropdown .button{width:100%}.button{border:1px solid var(--accent);background:var(--accent);color:#06210d;min-width:min(100%,180px);min-height:48px;font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:6px;justify-content:center;align-items:center;font-size:1rem;font-weight:800;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex}.button:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--accent) 86%, var(--bg-surface));box-shadow:0 10px 22px color-mix(in srgb, var(--accent) 12%, transparent)}.actions>.button{border-color:var(--border);background:var(--bg-surface);color:var(--text-primary);box-shadow:none}.actions>.button:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent))}.contact-menu{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);opacity:0;pointer-events:none;border-radius:8px;width:180px;padding:6px;transition:opacity .12s,transform .12s,background-color .18s,border-color .18s;position:absolute;top:calc(100% + 10px);left:0;transform:translateY(-4px);box-shadow:0 18px 32px #0000002e}.contact-dropdown:hover .contact-menu,.contact-dropdown:focus-within .contact-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.contact-menu a{min-height:38px;color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;border-radius:6px;align-items:center;gap:10px;padding:0 12px;font-size:.95rem;font-weight:700;text-decoration:none;display:flex}.contact-menu svg{flex:none;width:17px;height:17px}.contact-menu a:hover,.contact-menu a:focus-visible{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary)}.section{border-top:1px solid var(--border);box-sizing:border-box;flex-direction:column;justify-content:center;min-height:calc(100vh - 72px);padding-top:clamp(24px,4vh,48px);padding-bottom:clamp(24px,4vh,48px);display:flex}.section h2{font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;margin-bottom:28px;font-size:clamp(2rem,5vw,4rem);line-height:1}.section p{max-width:700px;color:var(--text-secondary);font-size:1.05rem;line-height:1.7}.contact-layout{grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);align-items:start;gap:clamp(32px,7vw,96px);width:min(100%,960px);display:grid}.contact-copy{padding-top:10px}.contact-form{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 90%, var(--bg-accent));box-shadow:var(--card-shadow);border-radius:8px;gap:20px;padding:clamp(20px,4vw,32px);display:grid}.contact-field{color:var(--text-primary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;gap:9px;font-size:.92rem;font-weight:800;display:grid}.contact-field input,.contact-field textarea{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);font:inherit;border-radius:6px;outline:none;padding:12px 14px;font-weight:500;transition:border-color .18s,box-shadow .18s,background-color .18s}.contact-field textarea{resize:vertical;min-height:164px}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.contact-submit{cursor:pointer;width:100%}.about-layout{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:center;gap:clamp(32px,7vw,96px);display:grid}.tech-stack{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.tech-item{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 90%, var(--bg-accent));min-height:82px;color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;text-align:center;border-radius:8px;place-items:center;gap:7px;padding:12px 8px;font-size:.78rem;font-weight:700;transition:background-color .18s,border-color .18s,color .18s;display:grid}.tech-item svg{width:28px;height:28px;color:var(--accent)}.tech-item:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary)}.tech-marquee,.mobile-project-deck-wrap{display:none}.scroll-cue{z-index:2;color:var(--text-muted);opacity:.65;justify-content:center;align-items:center;padding:8px;text-decoration:none;transition:opacity .2s,color .2s;display:inline-flex;position:absolute;bottom:clamp(16px,3.5vh,36px);left:50%;transform:translate(-50%)}.scroll-cue svg{width:24px;height:24px;animation:scroll-cue 2.2s var(--ease-in-out) infinite}@media (hover:hover) and (pointer:fine){.scroll-cue:hover{color:var(--text-primary);opacity:1}}.project-carousel{z-index:0;grid-template-columns:minmax(0,1fr);align-items:center;gap:clamp(14px,3vw,32px);width:100%;max-width:968px;margin:0 auto;padding-bottom:18px;display:grid;position:relative}.project-slide-stack,.carousel-arrow,.project-controls{z-index:1;position:relative}.carousel-autoplay{width:30px;height:30px;color:var(--text-muted);cursor:pointer;opacity:.72;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;transition:background-color .18s,color .18s,opacity .18s;display:inline-grid}.carousel-autoplay svg{width:16px;height:16px}.carousel-autoplay:hover,.carousel-autoplay:focus-visible{background:var(--bg-elevated);color:var(--text-primary);opacity:1}.carousel-autoplay:disabled{cursor:default;opacity:.4}.project-slide-stack{min-width:0;margin:0 64px;display:grid;overflow:clip}.project-slide{grid-area:1/1;min-width:0;position:relative}.project-slide[data-project-theme=light]{--card-shadow:0 20px 40px #00000005, 0 8px 16px #00000003;--card-overlay:none;--card-text-title:#0d2e0a;--card-text-body:#2d5526;--card-text-shadow:none;--card-tag-bg:#f5faefe6;--card-tag-text:#2d5526;--card-tag-border:#d0eac4;--card-bg:#fff}.project-slide[data-project-theme=dark]{--card-shadow:0 22px 60px #0009;--card-overlay:linear-gradient(to top, #0a0a0af2 0%, #0a0a0a99 35%, #0a0a0a1a 70%, transparent 100%), linear-gradient(to right, #0a0a0a4d 0%, transparent 20%, transparent 80%, #0a0a0a4d 100%);--card-text-title:#fff;--card-text-body:#ffffffd1;--card-text-shadow:0 2px 4px #0006;--card-tag-bg:#141414bf;--card-tag-text:#fff;--card-tag-border:#ffffff1f;--card-bg:#080808}.project-slide-previous{pointer-events:none}.project-shot-link{aspect-ratio:16/8.2;background:radial-gradient(circle at 32% 24%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 24%), linear-gradient(135deg, color-mix(in srgb, var(--bg-surface) 92%, transparent), color-mix(in srgb, var(--bg-accent) 14%, transparent)), var(--card-bg);width:100%;box-shadow:var(--card-shadow);border-radius:12px;display:block;position:relative;overflow:hidden}.project-shot-link:after{content:"";background:var(--card-overlay);opacity:1;transition:opacity .25s;position:absolute;inset:0}.project-shot-link:focus-visible:after{opacity:.92}.project-shot{object-fit:cover;object-position:top center;opacity:0;width:100%;height:100%;transition:opacity .26s;position:absolute;inset:0}.project-shot.is-loaded{opacity:1}.project-open{z-index:1;color:var(--text-primary);opacity:0;place-items:center;transition:opacity .18s,transform .18s;display:grid;position:absolute;inset:0;transform:scale(.96)}.project-open svg{background:color-mix(in srgb, var(--bg-surface) 74%, transparent);border-radius:999px;width:44px;height:44px;padding:12px;box-shadow:0 18px 40px #00000042}.project-shot-link:focus-visible .project-open{opacity:1;transform:scale(1)}.project-meta{z-index:2;pointer-events:none;flex-wrap:wrap;align-items:flex-end;gap:16px clamp(18px,4vw,56px);padding:clamp(24px,4vw,40px);display:flex;position:absolute;bottom:0;left:0;right:0}.project-slide[data-project-theme=light] .project-meta{background:color-mix(in srgb, var(--bg-surface) 90%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);border-radius:14px;align-items:center;padding:clamp(16px,2vw,22px) clamp(20px,2.5vw,28px);bottom:clamp(12px,2vw,24px);left:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px);box-shadow:0 10px 30px #0000000f,0 2px 8px #00000008}.project-info{flex:1 1 max-content;flex-direction:column;gap:8px;min-width:0;display:flex}.project-meta h3{color:var(--card-text-title);text-shadow:var(--card-text-shadow);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;margin:0;font-size:clamp(1.5rem,3vw,2.6rem);font-weight:800;line-height:1.1}.project-meta p{max-width:52rem;color:var(--card-text-body);text-shadow:var(--card-text-shadow);margin:0;font-size:1.05rem;line-height:1.5}.project-tags{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.project-tags li{background:var(--card-tag-bg);color:var(--card-tag-text);border:1px solid var(--card-tag-border);-webkit-backdrop-filter:blur(12px);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;transition:background-color .2s ease, border-color .2s ease, transform .2s var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:700;display:flex;box-shadow:0 4px 12px #00000026}.project-tags span{line-height:1}@media (hover:hover) and (pointer:fine){.project-shot-link:hover:after{opacity:.92}.project-shot-link:hover .project-open{opacity:1;transform:scale(1)}.project-tags li:hover{background:#282828d9;border-color:#ffffff40;transform:translateY(-2px)}}.carousel-arrow{z-index:2;border:1px solid var(--border);background:var(--bg-surface);width:46px;height:46px;color:var(--text-secondary);cursor:pointer;opacity:.85;transition:opacity .16s ease, transform .2s var(--ease-out), background-color .2s ease, border-color .2s ease, color .2s ease;border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-58%);box-shadow:0 4px 12px #0000000d}.carousel-arrow-left{left:0}.carousel-arrow-right{right:0}.carousel-arrow svg{width:26px;height:26px}@media (hover:hover) and (pointer:fine){.carousel-arrow:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary);opacity:1;transform:translateY(-58%)scale(1.05)}}.project-controls{justify-content:center;align-items:center;gap:14px;display:flex}.project-dots{justify-content:center;gap:8px;display:flex}.project-dots button{background:var(--text-muted);cursor:pointer;opacity:.35;width:18px;height:8px;transition:opacity .18s ease, transform .2s var(--ease-out), background-color .18s ease;border:0;border-radius:999px;padding:0;transform:scaleX(.45)}@media (hover:hover) and (pointer:fine){.project-dots button:hover{opacity:.65;transform:scaleX(.65)}}.project-dots button[aria-pressed=true]{background:var(--text-primary);opacity:.85;transform:scaleX(1)}@media (max-width:700px){.hero{grid-template-columns:1fr;min-height:360px}.hero-image{justify-self:center;width:min(78vw,320px)}.about-layout,.contact-layout{grid-template-columns:1fr}.tech-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.project-carousel{gap:8px}.project-slide,.project-slide-stack{margin:0}.carousel-arrow{width:40px;height:40px}.carousel-arrow-left{left:8px}.carousel-arrow-right{right:8px}.carousel-arrow svg{width:24px;height:24px}.project-shot-link{aspect-ratio:16/10;height:auto}.project-meta{grid-template-columns:1fr;gap:12px;padding:20px}.project-tags{grid-column:auto;justify-content:flex-start}}.site-footer{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 30%, transparent);align-items:center;min-height:calc(100svh - 72px);padding-top:32px;padding-bottom:32px;display:grid;position:relative}.footer-container{grid-template-columns:max-content minmax(220px,1fr) max-content;align-items:center;gap:clamp(24px,4vw,56px);display:grid}.footer-left{display:contents}.footer-art{pointer-events:none;grid-area:1/2;justify-content:center;align-self:center;display:flex;transform:translate(54px)}.footer-box{width:min(100%,220px);height:auto;filter:drop-shadow(0 16px 20px color-mix(in srgb, var(--accent) 12%, transparent));margin-bottom:-32px}.footer-links{flex-direction:column;grid-area:1/1;align-self:center;gap:12px;display:flex}.footer-links a{color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;font-size:.92rem;font-weight:700;text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--accent-text)}.footer-right{flex-direction:column;grid-area:1/3;place-self:center end;align-items:flex-end;gap:18px;display:flex}.footer-socials{gap:14px;display:flex}.footer-back-to-top{border:1px solid var(--border);background:var(--bg-surface);width:44px;height:44px;color:var(--text-secondary);transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s var(--ease-out);border-radius:8px;place-items:center;text-decoration:none;display:grid;position:absolute;bottom:clamp(20px,4vw,48px);left:50%;transform:translate(-50%)}.footer-back-to-top svg{width:18px;height:18px}.footer-back-to-top:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary);transform:translate(-50%,-2px)}.footer-socials a{border:1px solid var(--border);background:var(--bg-surface);width:40px;height:40px;color:var(--text-secondary);transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s var(--ease-out);border-radius:8px;place-items:center;display:inline-grid}.footer-socials a svg{width:20px;height:20px}.footer-socials a:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg-accent));color:var(--text-primary);transform:translateY(-2px)}.site-footer .copyright{color:var(--text-muted);margin:0;font-size:.85rem;font-weight:500}.artist-credit{color:var(--text-muted);margin:-10px 0 0;font-size:.7rem;font-weight:500}.artist-credit a{color:inherit;-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:2px}.artist-credit a:hover{color:var(--text-secondary)}@media (max-width:700px){.footer-container{text-align:center;grid-template-rows:none;grid-template-columns:1fr;gap:28px;display:grid}.footer-left,.footer-right{align-items:center}.footer-right{grid-area:auto/1}.footer-left{flex-direction:column;gap:20px;width:100%;display:flex}.footer-art{justify-content:center;align-items:center;transform:none}.footer-box{width:min(48vw,180px);margin-bottom:-20px}}@keyframes marquee-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes scroll-cue{0%,to{transform:translateY(-2px)}50%{transform:translateY(3px)}}@keyframes mobileNavSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:767px){html{scroll-padding-top:60px}:root{--grid-gutter:16px}.site-header{z-index:100;background:var(--bg-surface);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0}.nav{justify-content:space-between;align-items:center;gap:12px;min-height:60px;display:flex}.nav-brand{align-items:center;display:flex}.nav-desktop-links{display:none}.nav-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.nav-icon-link,.theme-toggle,.nav-hamburger-toggle{z-index:1;touch-action:manipulation;width:38px;height:38px;margin-left:0;position:relative}.nav-hamburger-toggle{display:inline-grid}.nav-mobile-menu{width:min(100%, var(--grid-max));padding:10px var(--grid-gutter) 16px;background:var(--bg-surface);border-left:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:4px;margin:0 auto;animation:.18s ease-out mobileNavSlideDown;display:flex}.nav-mobile-link{min-height:44px;font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;color:var(--text-secondary);border-radius:8px;align-items:center;padding:0 14px;font-size:.95rem;font-weight:700;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.nav-mobile-link:hover,.nav-mobile-link.active{background:var(--bg-elevated);color:var(--accent-text)}.hero{height:auto;min-height:100svh;padding-top:88px;padding-bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:12px;display:flex;overflow:hidden}.hero:before,.error-page:before{background-size:100% 36px,16.6667% 100%;-webkit-mask-image:linear-gradient(#0000,#000 28% 76%,#0000);mask-image:linear-gradient(#0000,#000 28% 76%,#0000)}.hero-copy{display:contents}.hero-intro{flex:none;order:1;width:100%}.hero h1{margin-bottom:4px;font-size:clamp(2.45rem,12vw,3.4rem);line-height:.94}.hero .role{margin:0;font-size:clamp(1rem,4.8vw,1.25rem);line-height:1.2}.hero-image{object-fit:contain;filter:none;order:2;place-self:center;width:min(88vw,380px);min-height:0;max-height:min(38svh,330px);margin-block:4px}.actions{flex-direction:column;flex:none;order:3;align-self:center;gap:10px;width:min(100%,420px)}.mobile-scroll-cue{width:40px;height:40px;color:var(--text-muted);flex:none;order:4;place-items:center;margin:2px auto 0;text-decoration:none;display:grid}.mobile-scroll-cue svg{width:22px;height:22px;animation:scroll-cue 1.8s var(--ease-in-out) infinite}.contact-dropdown,.button{width:100%;min-width:0}.button{min-height:50px}.contact-menu{width:100%;top:auto;bottom:calc(100% + 8px)}.section{min-height:0;padding-top:72px;padding-bottom:72px}.section h2{margin-bottom:18px;font-size:clamp(2rem,10vw,3rem)}.section p{font-size:1rem;line-height:1.55}.about-layout{gap:28px}.tech-stack{display:none}.tech-marquee{width:calc(100% + (var(--grid-gutter) * 2));margin-left:calc(var(--grid-gutter) * -1);gap:10px;display:grid;overflow:hidden}.tech-marquee-row{overflow:hidden}.tech-marquee-track{width:max-content;animation:18s linear infinite marquee-left;display:flex}.tech-marquee-row:nth-child(2) .tech-marquee-track{animation-name:marquee-right;animation-duration:21s}.tech-marquee-group{flex:none;gap:10px;padding-right:10px;display:flex}.tech-marquee-item{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 90%, var(--bg-accent));min-height:48px;color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:0 14px;font-size:.84rem;font-weight:800;display:inline-flex}.tech-marquee-item svg{width:22px;height:22px;color:var(--accent)}#projects{overflow:hidden}#projects>h2{margin-bottom:22px}.project-carousel{display:none}.mobile-project-deck-wrap{gap:18px;display:grid}.mobile-project-deck{isolation:isolate;height:clamp(390px,60svh,520px);position:relative}.mobile-project-card{z-index:calc(3 - var(--stack-position));width:min(74vw,320px);height:100%;transform:translateY(calc(var(--stack-position) * 10px));transform-origin:50% 92%;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;margin:0 auto;position:absolute;inset:0}.mobile-project-card:active{cursor:grabbing}.mobile-project-link{border:1px solid var(--border);background:var(--bg-surface);height:100%;color:var(--text-primary);-webkit-user-drag:none;border-radius:8px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden;box-shadow:0 12px 28px #0000002e}.mobile-project-shot{background:var(--bg-elevated);flex:auto;min-height:0;display:block;position:relative;overflow:hidden}.mobile-project-shot img{object-fit:cover;object-position:top center;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .26s;display:block}.mobile-project-shot img.is-loaded{opacity:1}.mobile-project-shot-portrait img{object-fit:contain;object-position:center}.mobile-project-open{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:var(--bg-surface);border-radius:999px;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:12px;right:12px}.mobile-project-open svg{width:18px;height:18px}.mobile-project-meta{flex-direction:column;flex:none;justify-content:space-between;gap:18px;min-height:150px;padding:18px;display:flex}.mobile-project-copy{gap:6px;display:grid}.mobile-project-copy strong{font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;font-size:1.35rem;line-height:1.1}.mobile-project-copy>span{color:var(--text-secondary);font-size:.92rem;line-height:1.45}.mobile-project-tags{flex-wrap:wrap;gap:7px;display:flex}.mobile-project-tags>span{border:1px solid var(--border);background:var(--bg-elevated);min-height:30px;color:var(--text-secondary);font-family:var(--font-jakarta), Arial, Helvetica, sans-serif;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.mobile-project-dots{justify-content:center;align-items:center;gap:0;min-height:28px;display:flex}.mobile-project-dots button{cursor:pointer;background:0 0;border:0;width:28px;height:28px;padding:0;position:relative}.mobile-project-dots button:before{content:"";background:var(--text-muted);opacity:.35;width:8px;height:8px;transition:width .18s var(--ease-out), opacity .18s ease, background-color .18s ease;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-project-dots button[aria-pressed=true]:before{background:var(--accent);opacity:1;width:24px}.contact-section{padding-top:56px;padding-bottom:56px}.contact-layout{gap:22px}.contact-copy{padding-top:0}.contact-copy h2{margin-bottom:8px}.contact-copy p{margin-bottom:0}.contact-form{gap:14px;padding:16px}.contact-field{gap:7px;font-size:.85rem}.contact-field input,.contact-field textarea{min-height:50px;padding:13px 14px;font-size:16px}.contact-field textarea{height:116px;min-height:116px}.site-footer{height:auto;min-height:0;padding-top:52px;padding-bottom:max(24px, env(safe-area-inset-bottom));flex-direction:column;justify-content:flex-start;gap:24px;display:flex}.footer-container{text-align:left;flex:none;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(128px,auto);align-items:start;gap:28px 20px;width:100%;display:grid}.footer-left{display:contents}.footer-links{text-align:right;grid-area:1/2;align-self:start;align-items:flex-end;gap:14px}.footer-links a{align-items:center;min-height:30px;font-size:.95rem;display:flex}.artist-credit a{margin-block:-5px;padding-block:5px;display:inline-block}.footer-right{grid-area:1/1;place-self:start;align-items:flex-start;gap:12px}.footer-socials{justify-content:flex-start;gap:10px}.footer-art{grid-area:2/1/auto/-1;justify-content:center;align-self:start;margin-top:-96px;transform:none}.footer-box{width:min(52vw,210px);margin-bottom:-16px}.footer-back-to-top{border-radius:999px;flex:none;align-self:center;width:50px;height:50px;margin-top:0;position:static;transform:none}.footer-back-to-top:hover{transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}.tech-marquee-track{animation-play-state:paused}.mobile-scroll-cue svg{animation:none}}@media (max-width:767px){.error-header{min-height:60px}.error-page{min-height:calc(100svh - 60px);padding-top:80px;padding-bottom:max(24px, env(safe-area-inset-bottom));align-items:start}.error-layout{grid-template-columns:1fr;gap:4px}.error-visual{justify-self:center;width:min(80vw,320px)}.error-copy{text-align:center}.error-copy h1{font-size:clamp(2.15rem,11vw,3.1rem)}.error-copy>p:not(.error-code){margin-bottom:22px}.error-actions{justify-content:center}.error-actions .button{min-height:48px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}.tech-marquee-track{animation-play-state:paused}.mobile-scroll-cue svg{animation:none}}.error-shell{width:min(100%, var(--grid-max));border-inline:1px solid var(--border);background:var(--bg-base);min-height:100svh;color:var(--text-primary);margin:0 auto}.error-header{min-height:72px;padding-inline:var(--grid-gutter);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);justify-content:space-between;align-items:center;display:flex}.error-header>a{color:var(--text-primary);font-size:1.15rem;font-weight:800;text-decoration:none}.error-page{isolation:isolate;min-height:calc(100svh - 72px);padding:clamp(24px, 5vw, 64px) var(--grid-gutter);place-items:center;display:grid;position:relative}.error-layout{grid-template-columns:minmax(300px,420px) minmax(280px,1fr);align-items:center;gap:clamp(28px,5vw,60px);width:min(100%,920px);display:grid}.error-visual{width:min(100%,420px);position:relative;container-type:inline-size}.error-visual img{width:100%;height:auto;display:block}.error-visual>span{color:#70401f;letter-spacing:0;font-size:clamp(2rem,12cqw,4rem);line-height:1;position:absolute;top:73%;left:61%;transform:translate(-50%,-50%)rotate(-2deg)}.error-copy{max-width:520px}.error-code{color:var(--accent-text);letter-spacing:0;text-transform:uppercase;margin-bottom:10px;font-size:.82rem;font-weight:800}.error-copy h1{margin-bottom:14px;font-size:clamp(2.4rem,6vw,4rem)}.error-copy>p:not(.error-code){color:var(--text-secondary);margin-bottom:28px;font-size:clamp(1rem,2vw,1.2rem);line-height:1.6}.error-actions{flex-wrap:wrap;gap:12px;display:flex}.error-actions .button{width:auto;min-width:132px;box-shadow:none}.error-actions .button:hover{box-shadow:none}.error-actions button{font:inherit}@media (max-width:767px){.error-header{min-height:60px}.error-page{min-height:calc(100svh - 60px);padding-top:80px;padding-bottom:max(24px, env(safe-area-inset-bottom));align-items:start}.error-layout{grid-template-columns:1fr;gap:4px}.error-visual{justify-self:center;width:min(80vw,320px)}.error-copy{text-align:center}.error-copy h1{font-size:clamp(2.15rem,11vw,3.1rem)}.error-copy>p:not(.error-code){margin-bottom:22px}.error-actions{justify-content:center}.error-actions .button{min-height:48px}}.maintenance-wrapper{background:var(--bg-base);min-height:100vh;color:var(--text-primary);flex-direction:column;justify-content:space-between;display:flex}.maintenance-header{width:min(100%, var(--grid-max));padding:20px var(--grid-gutter);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.maintenance-badge{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);border-radius:9999px;align-items:center;gap:8px;padding:5px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.maintenance-badge .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.maintenance-main{width:min(100%,960px);padding:24px var(--grid-gutter);grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(24px,4vw,44px);margin:auto;display:grid}@media (max-width:868px){.maintenance-main{text-align:center;grid-template-columns:1fr;padding-top:16px;padding-bottom:40px}}.maintenance-content{flex-direction:column;gap:12px;display:flex}.maintenance-title{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;line-height:1.15}.maintenance-subtitle{color:var(--text-secondary);margin:0;font-size:clamp(.95rem,2vw,1.2rem);font-weight:600}.maintenance-typewriter-box{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 90%, var(--bg-elevated));font-family:var(--font-jakarta), monospace;color:var(--accent-text);border-radius:10px;align-self:flex-start;margin-top:4px;padding:10px 16px;font-size:clamp(.88rem,1.8vw,1.05rem);font-weight:600;display:inline-block}@media (max-width:868px){.maintenance-typewriter-box{align-self:center}}.typewriter-cursor{color:var(--accent);margin-left:2px;font-weight:800;display:inline-block}.typewriter-cursor.blinking{animation:1s step-end infinite blink-cursor}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.maintenance-socials{align-items:center;gap:10px;margin-top:10px;display:flex}@media (max-width:868px){.maintenance-socials{justify-content:center}}.social-icon-btn{border:1px solid var(--border);background:var(--bg-surface);width:42px;height:42px;color:var(--text-primary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.social-icon-btn:hover{border-color:var(--border-accent);background:color-mix(in srgb, var(--bg-surface) 80%, var(--bg-accent));color:var(--accent-text);transform:translateY(-2px)}.social-icon-btn svg{width:20px;height:20px;display:block}.maintenance-photo-wrapper{width:100%;max-width:320px;margin:0 auto;position:relative}.maintenance-photo-card{border:1px solid var(--border);box-shadow:var(--card-shadow);background:var(--bg-surface);border-radius:16px;transition:border-color .3s,transform .3s;position:relative;overflow:hidden}.maintenance-photo-card:hover{border-color:var(--border-accent);transform:scale(1.01)}.maintenance-photo-card img{object-fit:cover;width:100%;height:auto;display:block}.maintenance-footer{width:min(100%, var(--grid-max));padding:20px var(--grid-gutter);text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin:0 auto;font-size:.8rem}.split-stage{border-top:1px solid var(--border);box-sizing:border-box;grid-template-columns:clamp(272px,21vw,300px) minmax(0,1fr);align-items:start;width:100%;display:grid}.stage-sidebar{border-right:1px solid var(--border);box-sizing:border-box;flex-direction:column;gap:18px;height:auto;min-height:calc(100svh - 80px);padding:28px 24px;display:flex;position:sticky;top:80px}.sidebar-identity-header{align-items:center;gap:14px;display:flex}.sidebar-avatar{object-fit:contain;background:0 0;border:none;border-radius:0;width:44px;height:44px;padding:0;display:block}.sidebar-identity-text{flex-direction:column;gap:2px;display:flex}.sidebar-name{font-family:var(--font-jakarta), Arial, sans-serif;color:var(--text-primary);margin:0;font-size:1.15rem;font-weight:800;line-height:1.2}.sidebar-handle{color:var(--text-muted);margin:0;font-size:.86rem}.sidebar-headline{font-family:var(--font-jakarta), Arial, sans-serif;color:var(--text-primary);letter-spacing:-.015em;margin:0;font-size:clamp(1.3rem,1.8vw,1.6rem);font-weight:800;line-height:1.3}.sidebar-bio{color:var(--text-primary);margin:0;font-size:1.02rem;font-weight:600;line-height:1.5}.sidebar-actions{align-items:center;gap:10px;padding-top:4px;display:flex}.sidebar-actions .button{min-width:0;box-shadow:none;flex:1 1 0}.button-sidebar-primary{background:var(--accent);color:#000;border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:0 18px;font-size:.84rem;font-weight:700;text-decoration:none;transition:background-color .16s,transform .12s;display:inline-flex}.button-sidebar-primary:hover{background:var(--accent-hover)}.button-sidebar-primary:active{transform:scale(.97)}.button-sidebar-secondary{border:1px solid var(--border);background:var(--bg-surface);min-height:38px;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;padding:0 16px;font-size:.84rem;font-weight:700;text-decoration:none;transition:background-color .16s,border-color .16s,transform .12s;display:inline-flex}.button-sidebar-secondary:hover{background:var(--bg-elevated);border-color:var(--border-accent)}.button-sidebar-secondary:active{transform:scale(.97)}.sidebar-skills-block{flex-direction:column;gap:10px;margin-top:auto;padding-top:6px;display:flex}.sidebar-section-title{font-family:var(--font-jakarta), Arial, sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.72rem;font-weight:800}.sidebar-skills-quiet{flex-wrap:wrap;gap:6px 10px;display:flex}.sidebar-skill-quiet-item{font-family:var(--font-jakarta), Arial, sans-serif;color:var(--text-secondary);font-size:.82rem;font-weight:600}.sidebar-skill-quiet-item:not(:last-child):after{content:"·";color:var(--text-muted);margin-left:10px;font-weight:400}.sidebar-footer-chat{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:0;padding-top:24px;display:flex}.sidebar-footer-prompt{color:var(--text-muted);margin:0;font-size:.84rem;font-weight:600}.sidebar-social-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sidebar-social-link{border:1px solid var(--border);background:var(--bg-surface);width:44px;height:44px;color:var(--text-secondary);border-radius:8px;place-items:center;text-decoration:none;transition:color .16s,border-color .16s,background-color .16s;display:inline-grid}.sidebar-social-link:hover{color:var(--text-primary);border-color:var(--border-accent);background:var(--bg-elevated)}.sidebar-social-link svg{width:19px;height:19px}.stage-feed{flex-direction:column;gap:clamp(72px,9vh,112px);min-width:0;padding:36px clamp(24px,3.5vw,44px);display:flex}.stage-section{flex-direction:column;gap:24px;display:flex}.stage-contact{border-top:1px solid var(--border);padding-top:clamp(56px,8vh,88px);padding-bottom:clamp(64px,9vh,104px)}.stage-feed .contact-layout{grid-template-columns:minmax(180px,.72fr) minmax(340px,1.28fr);gap:clamp(28px,4vw,56px);width:100%;display:grid}.stage-feed .site-footer{border-top:1px solid var(--border);padding-top:36px;padding-bottom:24px}.showcase-section-wrap{flex-direction:column;gap:24px;width:100%;display:flex}.showcase-top-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.showcase-title-group{flex-direction:column;display:flex}.showcase-main-title{font-family:var(--font-jakarta), Arial, sans-serif;letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(1.75rem,2.6vw,2.4rem);font-weight:800;line-height:1.15}.showcase-main-subtitle{color:var(--text-secondary);margin:4px 0 0;font-size:.94rem}.showcase-controls-bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.showcase-tab-switcher{border:1px solid var(--border);background:var(--bg-surface);border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.tab-pill-btn{color:var(--text-muted);font-family:var(--font-jakarta), Arial, sans-serif;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:700;transition:background-color .16s,color .16s,transform .12s}.tab-pill-btn:hover{color:var(--text-primary)}.tab-pill-btn.active{background:var(--text-primary);color:var(--bg-base);box-shadow:0 2px 8px #00000026}.showcase-nav-arrows{align-items:center;gap:6px;display:flex}.arrow-nav-btn{border:1px solid var(--border);background:var(--bg-surface);width:34px;height:34px;color:var(--text-primary);cursor:pointer;border-radius:999px;place-items:center;transition:background-color .14s,border-color .14s,transform .12s;display:grid}.arrow-nav-btn:hover{background:var(--bg-elevated);border-color:var(--border-accent)}.arrow-nav-btn:active{transform:scale(.94)}.arrow-nav-btn svg{width:16px;height:16px}.arrow-counter{font-family:var(--font-jakarta), Arial, sans-serif;color:var(--text-muted);text-align:center;min-width:50px;padding:0 4px;font-size:.82rem;font-weight:700}.project-display-stage{flex-direction:column;gap:20px;width:100%;display:flex}.project-canvas-frame{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-base) 80%, #000);border-radius:14px;width:100%;position:relative;overflow:hidden}.project-canvas-link{aspect-ratio:16/9;background:color-mix(in srgb, var(--bg-base) 85%, #000);width:100%;text-decoration:none;display:block;position:relative;overflow:hidden}.project-canvas-img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .32s var(--ease-out);display:block}.project-canvas-link:hover .project-canvas-img{transform:scale(1.018)}.cursor-follow-pill{pointer-events:none;z-index:30;opacity:0;white-space:nowrap;color:#fff;font-family:var(--font-jakarta), Arial, sans-serif;letter-spacing:-.01em;-webkit-backdrop-filter:blur(8px);will-change:transform, opacity, scale;background:#1e242ce0;border:1px solid #ffffff29;border-radius:999px;padding:7px 16px;font-size:.8rem;font-weight:600;transition:opacity .16s,scale .16s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;scale:.8;box-shadow:0 10px 24px #0006}@media (hover:hover) and (pointer:fine){.project-canvas-link{cursor:none}.project-canvas-link.is-hovering .cursor-follow-pill{opacity:1;scale:1}}.project-canvas-link:focus-visible .cursor-follow-pill{opacity:1;top:50%;left:50%;scale:1;transform:translate(-50%,-50%)!important}.project-editorial-info{flex-direction:column;gap:12px;display:flex}.editorial-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.editorial-title-wrap{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.editorial-title{font-family:var(--font-jakarta), Arial, sans-serif;margin:0;font-size:clamp(1.4rem,2.2vw,1.85rem);font-weight:800;line-height:1.2}.editorial-title a{color:var(--text-primary);text-decoration:none;transition:color .14s}.badge-pill{font-family:var(--font-jakarta), Arial, sans-serif;letter-spacing:.02em;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.badge-award-first{color:var(--accent-volt);border:1px solid color-mix(in srgb, var(--accent-volt) 40%, transparent);background:#f5e3321f}.badge-award-third{color:#d99a4e;background:#f2cfa024;border:1px solid #d99a4e59}.badge-personal{color:var(--accent-text);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:#01c9501f}.badge-hackathon{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.editorial-year{color:var(--text-muted);font-size:.82rem;font-weight:600}.editorial-tagline{color:var(--text-secondary);margin:0;font-size:.98rem;line-height:1.6}.editorial-study-block{border:1px solid var(--border);background:var(--bg-surface);border-radius:8px;flex-direction:column;gap:12px;margin-top:4px;padding:16px 20px;display:flex}.study-item{flex-direction:column;gap:3px;display:flex}.study-key{font-family:var(--font-jakarta), Arial, sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--text-primary);font-size:.74rem;font-weight:800}.study-val{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.55}.study-list{color:var(--text-secondary);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:.9rem;line-height:1.55;display:flex}.editorial-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;display:flex}.editorial-stack-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.stack-pill{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-jakarta), Arial, sans-serif;border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.editorial-actions-wrap{align-items:center;gap:8px;margin-left:auto;display:flex}.editorial-action-icon{border:1px solid var(--border);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);border-radius:8px;place-items:center;text-decoration:none;transition:background-color .14s,color .14s,border-color .14s;display:grid}.editorial-action-icon:hover{color:var(--text-primary);border-color:var(--border-accent);background:var(--bg-elevated)}.editorial-action-icon svg{width:18px;height:18px}.editorial-title a{color:var(--text-primary);align-items:center;gap:6px;text-decoration:none;transition:color .14s;display:inline-flex}.editorial-title a:hover{color:var(--accent)}.editorial-title-icon{width:17px;height:17px;color:var(--text-muted);transition:color .14s,transform .14s}.editorial-title a:hover .editorial-title-icon{color:var(--accent);transform:translate(2px,-2px)}@media (max-width:919px){.split-stage{flex-direction:column;align-items:stretch;display:flex}.stage-sidebar{border-right:none;border-bottom:1px solid var(--border);min-height:auto;padding:32px 24px;position:static}.stage-feed{padding:32px 20px}}#projects{overflow:visible}.showcase-section-wrap{gap:clamp(18px,2.4vh,24px)}.project-list{flex-direction:column;gap:clamp(64px,9vh,96px);display:flex}.project-entry{--project-image-scale:1.03;--project-image-hover-scale:1.042;--project-image-origin:center;--project-image-position:top center;--project-image-offset-y:0%;flex-direction:column;gap:20px;min-width:0;display:flex}.project-media-link{aspect-ratio:16/9;background:color-mix(in srgb, var(--bg-base) 82%, #000);border:none;border-radius:10px;width:100%;text-decoration:none;display:block;position:relative;overflow:hidden}.project-view-label{z-index:1;color:#fff;font-family:var(--font-jakarta), Arial, sans-serif;opacity:0;pointer-events:none;white-space:nowrap;background:#1e242ce6;border:1px solid #ffffff29;border-radius:8px;padding:7px 14px;font-size:.78rem;font-weight:700;transition:opacity .14s;position:absolute;top:0;left:0}.project-media-image{object-fit:cover;object-position:var(--project-image-position);width:100%;height:100%;transform:translateY(var(--project-image-offset-y)) scale(var(--project-image-scale));transform-origin:var(--project-image-origin);transition:transform .22s var(--ease-out);display:block}.project-entry[data-project-id=ytm-desktop]{--project-image-scale:1.01;--project-image-hover-scale:1.022}.project-entry[data-project-id=purrward]{--project-image-scale:1;--project-image-hover-scale:1.012}.project-entry[data-project-id=konekpay]{--project-image-scale:1.025;--project-image-hover-scale:1.037;--project-image-origin:center top;--project-image-position:top center}.project-entry[data-project-id=konekpay] .project-media-link{aspect-ratio:1900/943}.project-entry[data-project-id=blep]{--project-image-scale:1.16;--project-image-hover-scale:1.172;--project-image-origin:center top}@media (hover:hover) and (pointer:fine){.project-media-link{cursor:none}.project-media-link:hover .project-media-image{transform:translateY(var(--project-image-offset-y)) scale(var(--project-image-hover-scale))}.project-media-link:hover .project-view-label{opacity:1}}.project-media-link:focus-visible .project-view-label{opacity:1;top:50%;left:50%;transform:translate(-50%,-50%)!important}@media (prefers-reduced-motion:no-preference){.project-reveal .project-media-link{clip-path:inset(0 round 10px);transform-origin:50%;transition:clip-path .62s var(--ease-in-out), transform .62s var(--ease-in-out);transform:scale(1)}.project-reveal .project-details{opacity:1;transition:opacity .3s var(--ease-out) .18s, transform .3s var(--ease-out) .18s;transform:translateY(0)}html.js .project-reveal:not(.is-visible) .project-media-link{clip-path:inset(9% 8% round 14px);transform:scale(.965)}html.js .project-reveal:not(.is-visible) .project-details{opacity:0;transform:translateY(10px)}}.project-details{flex-direction:column;gap:8px;display:flex}.project-heading-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.project-title{font-family:var(--font-jakarta), Arial, sans-serif;margin:0;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:800;line-height:1.2}.project-title a{color:var(--text-primary);align-items:center;gap:7px;text-decoration:none;transition:color .16s;display:inline-flex}.project-title a:hover{color:var(--accent-text)}.project-achievement{max-width:100%;color:var(--text-muted);text-align:right;margin:0 0 -2px auto;font-size:.78rem;font-weight:650;line-height:1.45}.project-tagline,.project-stack{margin:0}.project-tagline{max-width:720px;color:var(--text-secondary);font-size:.98rem;line-height:1.6}.project-stack{color:var(--text-muted);font-size:.82rem;font-weight:650;line-height:1.5}.project-links{flex:none;align-items:center;gap:8px;display:flex}.project-stars{color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;font-size:.82rem;font-weight:700;line-height:1;display:inline-flex}.project-stars svg{width:16px;height:16px}.project-links a{border:1px solid var(--border);background:var(--bg-surface);width:44px;height:44px;color:var(--text-secondary);border-radius:8px;place-items:center;text-decoration:none;transition:color .16s,border-color .16s,background-color .16s;display:inline-grid}.project-links a:hover{color:var(--text-primary);border-color:var(--border-accent);background:var(--bg-elevated)}.project-links svg{width:19px;height:19px}.stage-contact h2{font-family:var(--font-jakarta), Arial, sans-serif;margin:0 0 18px;font-size:clamp(2rem,4vw,3.5rem);line-height:1}.stage-contact .contact-copy p{color:var(--text-secondary);margin:0;font-size:1rem;line-height:1.6}@media (min-width:1200px){.project-list{gap:clamp(72px,9vh,112px)}.project-entry,.stage-contact{justify-content:center;min-height:calc(100svh - 80px)}.project-entry:first-child{justify-content:flex-start}}@media (max-width:919px){.stage-sidebar{gap:16px;min-height:auto;padding:28px 24px}.sidebar-skills-block{margin-top:0}.stage-feed{gap:72px}}@media (max-width:1199px){.stage-feed .contact-layout{grid-template-columns:minmax(0,1fr);gap:28px}.stage-feed .contact-copy,.stage-feed .contact-form{min-width:0}}@media (max-width:767px){.stage-sidebar{gap:0;padding:24px 16px}.stage-sidebar>:not(.sidebar-mobile-stack){display:none}.sidebar-bio{max-width:34rem;font-size:.96rem}.sidebar-footer-chat{padding-top:18px}.stage-feed{gap:64px;padding:28px 16px 0}.project-list{gap:56px}.project-entry{gap:16px}.project-media-link{border-radius:8px}.project-heading-row{align-items:flex-start;gap:12px}.project-title{padding-top:6px}.project-links a{width:44px;height:44px}.stage-contact{padding-top:48px;padding-bottom:64px}.stage-feed .contact-layout{grid-template-columns:1fr;gap:28px}.stage-contact h2{font-size:clamp(2rem,10vw,3rem)}.contact-form{padding:18px}}
