:root{color-scheme:dark;--bg: #0F172A;--panel: #1E293B;--panel-strong: #5865F2;--text: #F8FAFC;--muted: #94A3B8;--line: rgba(148, 163, 184, .24);--blue: #5865F2;--cyan: #61DAFB;--green: #61DAFB;--rose: #ff6f9f;--glass: rgba(30, 41, 59, .72);--glass-strong: rgba(30, 41, 59, .9);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 82% 10%,rgba(88,101,242,.2),transparent 22rem),radial-gradient(circle at 18% 18%,rgba(30,41,59,.82),transparent 30rem),radial-gradient(circle at 82% 82%,rgba(97,218,251,.1),transparent 24rem),var(--bg);color:var(--text)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.12;background-image:linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 70%);mask-image:linear-gradient(to bottom,black,transparent 70%)}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(1240px,calc(100% - 32px));min-height:72px;margin:0 auto;padding:.75rem 0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.availability-banner{display:flex;justify-content:center;width:100%;padding:.55rem 1rem;border-bottom:1px solid rgba(148,163,184,.16);background:var(--bg)}.availability-banner .status-dot{max-width:min(1240px,calc(100% - 32px))}.brand{display:inline-flex;align-items:center;gap:.75rem;font-weight:800}.brand span{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;overflow:hidden;background:var(--panel)}.brand img{width:100%;height:100%;object-fit:cover;object-position:58% 32%}.site-nav{display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:.94rem}.site-nav a{transition:color .2s ease,transform .2s ease}.site-nav a:hover{color:var(--text);transform:translateY(-1px)}.site-nav .download-link:hover{color:var(--text)}.download-link,.primary-button,.secondary-button,.store-link,.contact-actions a,.doc-email{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;border-radius:8px;font-weight:700}.download-link{padding:.58rem .8rem;color:var(--text);background:var(--blue);border:1px solid rgba(88,101,242,.7)}.language-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem;border:1px solid var(--line);border-radius:8px;background:var(--glass)}.language-toggle button{min-width:34px;height:30px;border:0;border-radius:6px;color:var(--muted);background:transparent;cursor:pointer}.language-toggle button.active{color:var(--bg);background:var(--green)}.menu-toggle,.menu-button{display:none}.hero{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:clamp(1.5rem,4vw,3rem) 0 3rem}.hero-panel{position:relative;overflow:hidden;padding:clamp(1.4rem,3vw,2.2rem);border:1px solid rgba(148,163,184,.24);border-radius:22px;background:linear-gradient(135deg,#0f172afa,#1e293bf0 58%,#5865f242),var(--glass);box-shadow:inset 0 1px #f8fafc1a,0 28px 90px #0000006b;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.hero-panel:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 84% 28%,rgba(97,218,251,.18),transparent 17rem),radial-gradient(circle at 72% 16%,rgba(88,101,242,.28),transparent 20rem);opacity:.8;pointer-events:none}.status-dot{display:inline-flex;align-items:center;gap:.45rem;max-width:min(640px,75%);color:var(--text);font-size:.84rem;font-weight:800}.status-dot:before{content:"";width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--green);box-shadow:0 0 18px #61dafbe6}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.54fr);gap:clamp(1.6rem,4vw,3.4rem);align-items:center;margin-top:0}.hero-copy{max-width:760px}.eyebrow,.project-type,.published-row p{color:var(--green);font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.updated{color:var(--green);font-size:.82rem;font-weight:800;letter-spacing:0}.hero h1{max-width:780px;margin:.7rem 0 1rem;font-size:clamp(2.2rem,4vw,3.9rem);line-height:1.02;letter-spacing:0;text-wrap:balance}.hero-body{max-width:690px;color:var(--muted);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.7}.availability{color:var(--text);font-weight:700}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.7rem}.primary-button{padding:.85rem 1.1rem;color:var(--text);background:var(--blue);border:1px solid transparent}.secondary-button{padding:.85rem 1.1rem;color:var(--text);border:1px solid var(--line);background:var(--glass)}.hero-links{display:inline-flex;flex-wrap:wrap;gap:.8rem 1rem;max-width:720px;margin-top:1.25rem}.hero-links a{display:inline-flex;align-items:center;gap:.55rem;min-width:0;color:var(--text);font-size:.9rem;font-weight:700}.hero-links svg{flex:0 0 auto;color:var(--green)}.hero-links span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-photo-panel{position:relative;min-height:470px;overflow:hidden;align-self:stretch;border:1px solid rgba(148,163,184,.24);border-radius:18px;background:var(--panel);box-shadow:0 28px 90px #0000005c}.hero-photo-panel img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:54% 40%;filter:saturate(.9) contrast(1.04)}.photo-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f172a05,#0f172ac7),linear-gradient(90deg,#5865f224,#0f172a29)}.hero-card-caption{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#0f172ad1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.hero-card-caption span,.hero-card-caption small{color:var(--green);font-size:.78rem;font-weight:850}.hero-card-caption strong{display:block;margin:.28rem 0;font-size:1.6rem;line-height:1}.hero-card-caption small{display:block;color:var(--text)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;position:relative;z-index:1;margin-top:clamp(1.5rem,3vw,2.2rem);overflow:hidden}.metrics div{min-height:96px;padding:1rem;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.metrics strong{display:block;font-size:clamp(1.75rem,3.2vw,3rem);line-height:1}.metrics span{display:block;margin-top:.55rem;color:var(--muted)}.intro-grid,.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:min(1240px,calc(100% - 32px));margin:0 auto}.info-card,.project-card,.education-panel,.skill-list article,.app-card-work,.published-row,.app-doc{border:1px solid var(--line);border-radius:18px;background:var(--glass);box-shadow:inset 0 1px #f8fafc14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.info-card,.project-card{padding:1.2rem}.info-card svg{color:var(--green)}.info-card h3,.project-card h3,.timeline-content h3,.skill-list h3,.education-panel h3{margin:.7rem 0 .45rem;font-size:1.08rem}.info-card p,.project-card p,.timeline-content p,.skill-list p,.education-panel li,.section-intro,.app-doc p{color:var(--muted);line-height:1.65}.section{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:clamp(4rem,8vw,6.5rem) 0 0}.section-heading{display:flex;align-items:center;gap:1rem;margin-bottom:1.6rem}.section-heading span{width:42px;height:3px;border-radius:99px;background:var(--green)}.section-heading h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:0}.timeline{display:grid;gap:1rem}.timeline-item{display:grid;grid-template-columns:220px 1fr;gap:1rem}.timeline-meta{display:flex;gap:.55rem;align-items:flex-start;color:var(--green);font-weight:800}.timeline-content{padding:1.2rem;border:1px solid rgba(148,163,184,.22);border-left:3px solid var(--green);border-radius:18px;background:linear-gradient(90deg,#1e293be0,#5865f21a)}.timeline-content h3{font-size:1.3rem}.timeline-content ul{display:grid;gap:.65rem;margin:1rem 0 0;padding-left:1.1rem;color:var(--text)}.section-intro{max-width:780px;margin:-.4rem 0 1.4rem;font-size:1.05rem}.project-grid{width:100%;margin:0}.project-card,.app-card-work{min-height:360px;display:flex;flex-direction:column}.project-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;color:var(--bg);background:var(--green)}.project-icon svg{width:24px;height:24px}.project-icon.app-logo-icon{overflow:hidden;background:var(--text)}.project-icon.app-logo-icon img{width:100%;height:100%;object-fit:cover}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:1rem}.tag-list span{padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;color:var(--text);font-size:.78rem;font-weight:700}.tag-list.compact{margin-top:0;padding-top:.4rem}.project-links,.store-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.store-link{min-height:36px;padding:.45rem .65rem;color:var(--text);border:1px solid var(--line);background:#1e293bd6;font-size:.88rem}.portfolio-disclaimer{max-width:760px;margin:1rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.6}.work-switch{position:relative;display:inline-flex;gap:.35rem;padding:.35rem;margin:0 0 1rem;border:1px solid var(--line);border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.work-switch-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--green);box-shadow:0 12px 34px #61dafb2e}.work-switch button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.45rem;min-height:38px;padding:.55rem .85rem;border:0;border-radius:999px;color:var(--text);background:transparent;cursor:pointer;font-weight:850}.work-switch button svg,.work-switch-label{position:relative;z-index:1}.work-switch button.active{color:var(--bg)}.app-card-work{min-height:360px;padding:1.2rem}.app-mark{display:grid;place-items:center;width:62px;height:62px;flex:0 0 auto;border:1px solid rgba(97,218,251,.42);border-radius:16px;color:var(--bg);background:linear-gradient(135deg,#61dafbf5,#5865f2d1),var(--green);font-size:1.25rem;font-weight:950}.app-card-work h3,.app-card-work p{margin:0}.app-card-work .app-mark{margin-bottom:.95rem}.app-card-work .project-type{margin-bottom:.35rem}.app-card-work h3{margin-bottom:.55rem}.app-card-work>p:not(.project-type){color:var(--muted);line-height:1.65}.skills-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.skill-list{display:grid;gap:.8rem}.skill-list article,.education-panel{padding:1rem}.skill-list article h3,.skill-list article p{margin:0}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.55rem;margin:.95rem 0 0;padding:0;list-style:none}.tech-tile{display:grid;justify-items:center;align-content:start;gap:.45rem;min-height:64px;padding:.35rem .2rem;border:0;border-radius:0;color:var(--text);background:transparent;text-align:center;font-size:.78rem;font-weight:800;line-height:1.2}.tech-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(97,218,251,.5);border-radius:10px;color:var(--bg);background:var(--text);box-shadow:inset 0 1px #f8fafcdb;font-size:.74rem;font-weight:950}.tech-mark img{width:28px;height:28px;object-fit:contain}.tech-mark img.invert-logo{filter:invert(1)}.education-panel ul{display:grid;gap:.8rem;margin:1rem 0 0;padding-left:1.1rem}.contact-section{padding-bottom:6rem}.contact-band{display:grid;grid-template-columns:1fr .8fr;gap:1.5rem;align-items:center;padding:clamp(1.4rem,4vw,2.4rem);border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,#5865f294,#61dafb1f),var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.contact-band h2{max-width:680px;margin:0;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.08}.contact-band p{max-width:700px;color:var(--muted);line-height:1.7}.contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.contact-actions a,.doc-email{padding:.8rem;border:1px solid var(--line);border-radius:999px;background:var(--glass)}.app-page{min-height:100vh;padding:1rem;background:linear-gradient(135deg,rgba(88,101,242,.24),transparent 46rem),var(--bg)}.app-page-header{display:flex;align-items:center;justify-content:space-between;width:min(860px,100%);margin:0 auto 1rem}.back-link{color:var(--muted);font-weight:800}.app-doc{width:min(860px,100%);margin:0 auto;padding:clamp(1.4rem,5vw,3rem)}.app-doc-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:1rem;border-radius:8px;color:var(--bg);background:var(--green)}.app-doc h1{margin:0 0 1rem;font-size:clamp(2rem,6vw,4rem);line-height:1}.app-doc h2{margin-top:2rem;font-size:1.2rem}.doc-email{margin-top:.5rem;color:var(--green)}@media(max-width:920px){.menu-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:var(--glass);cursor:pointer}.menu-close{display:none}.menu-toggle:checked~.menu-button .menu-open{display:none}.menu-toggle:checked~.menu-button .menu-close{display:block}.site-nav{position:absolute;top:68px;right:0;display:none;width:min(360px,calc(100vw - 32px));padding:1rem;border:1px solid var(--line);border-radius:8px;background:#0f172af5;box-shadow:0 28px 80px #0000005c}.site-nav a,.site-nav .download-link,.site-nav .language-toggle{width:100%}.menu-toggle:checked~.site-nav{display:grid}.skills-layout,.contact-band{grid-template-columns:1fr}.hero h1{max-width:720px;font-size:clamp(2rem,4.2vw,2.75rem)}.hero-grid{min-height:auto;margin-top:2rem}.hero-photo-panel{min-height:460px}.timeline-item{grid-template-columns:1fr}.intro-grid,.project-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.hero-grid{grid-template-columns:1fr;min-height:auto;margin-top:2rem}.hero-photo-panel{min-height:360px}}@media(max-width:640px){.site-header,.hero,.intro-grid,.section{width:min(100% - 24px,1240px)}.hero{padding-top:1rem}.hero-panel{min-height:0;padding:1rem;border-radius:18px}.status-dot{max-width:100%;font-size:.78rem}.hero h1{font-size:clamp(1.85rem,6.6vw,2.45rem);line-height:1.04}.hero-body{font-size:.98rem;line-height:1.62}.hero-actions a{width:100%}.hero-links{display:grid;grid-template-columns:1fr}.hero-photo-panel{min-height:280px}.hero-card-caption{left:.85rem;right:.85rem;bottom:.85rem;padding:.85rem}.hero-card-caption strong{font-size:1.3rem}.metrics,.intro-grid,.project-grid,.contact-actions{grid-template-columns:1fr}.published-row,.app-card-work{align-items:flex-start;flex-direction:column}}
