:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Onest", "Noto Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", monospace;--bg:#fcfbf9;--bg-accent:transparent;--surface:#fff;--surface-hover:#f3f2ef;--chip-bg:#f3f2ef;--border:#8a8a8a;--text:#141414;--text-strong:#0a0a0a;--text-muted:#555;--text-faint:#888;--brand:#9a3412;--brand-soft:#fff7ed;--brand-border:#c2410c;--accent:var(--brand);--accent-soft:var(--brand-soft);--link:#2c5282;--link-spot:#9a3412;--accent-link:var(--link);--accent-link-hover:var(--brand);--ok:#166534;--ok-bg:#ecfdf5;--ok-border:#166534;--open-bg:var(--ok-bg);--open-border:color-mix(in srgb, var(--ok) 28%, transparent);--open-text:var(--ok);--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#dc2626;--primary-bg:#0a0a0a;--primary-border:#0a0a0a;--primary-fg:#fff;--header-bg:#fcfbf9f5;--shadow:0 6px 18px #00000012;--radius:10px;--control-radius:8px;--gap:.55rem;--pad:.65rem}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-body:"Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Onest", "Noto Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", monospace;--bg:#1a1a1a;--bg-accent:transparent;--surface:#242424;--surface-hover:#2e2e2e;--chip-bg:#1f1f1f;--border:#8a8a8a;--text:#f2f2f2;--text-strong:#fafafa;--text-muted:#a3a3a3;--text-faint:#707070;--brand:#fb923c;--brand-soft:#3d2818;--brand-border:#fb923c;--accent:var(--brand);--accent-soft:var(--brand-soft);--link:#8ab4c8;--link-spot:#fb923c;--accent-link:var(--link);--accent-link-hover:var(--brand);--ok:#86efac;--ok-bg:#86efac1f;--ok-border:#86efac;--open-bg:var(--ok-bg);--open-border:#86efac52;--open-text:var(--ok);--danger:#ff7b72;--danger-bg:#ff7b7224;--danger-border:#ff7b72;--primary-bg:#fafafa;--primary-border:#fafafa;--primary-fg:#111;--header-bg:#1a1a1af5;--shadow:0 8px 24px #0006;--radius:10px;--control-radius:8px;--gap:.55rem;--pad:.65rem}a:link,a:visited{color:var(--link);text-underline-offset:3px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s,text-decoration-thickness .15s}a:hover{color:var(--accent-link-hover);-webkit-text-decoration-color:var(--accent-link-hover);text-decoration-color:var(--accent-link-hover)}a:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:2px}a.link-spot:link,a.link-spot:visited{font-family:var(--font-display);letter-spacing:.01em;color:var(--link-spot);text-underline-offset:3px;font-style:italic;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}a.link-spot:hover{color:var(--brand);-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand);text-decoration-thickness:2.5px}@media (prefers-reduced-motion:reduce){a:link,a:visited,.contact-list a,.project-card,.theme-toggle,.experience-toggle,.project-card-themed:before{transition:none}.project-card-themed:hover:before{transform:none}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-width:320px;margin:0;padding:1.75rem clamp(1rem,4vw,2rem) 3rem;line-height:1.65}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.section{scroll-margin-top:4rem}.section+.section{margin-top:2.75rem}.section-heading{justify-content:space-between;align-items:baseline;gap:var(--gap);border-top:1px solid var(--border);margin:0 0 .85rem;padding-top:1rem;display:flex}.section-heading h2{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.72rem;font-weight:600}.contact-list{gap:var(--gap);margin:0;padding:0;list-style:none;display:grid}@media (width>=36rem){.contact-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-list a,.contact-list a.link-spot:link,.contact-list a.link-spot:visited{padding:var(--pad);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);font-family:inherit;font-weight:inherit;letter-spacing:normal;color:inherit;flex-direction:column;gap:.15rem;font-style:normal;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.contact-list a:hover,.contact-list a.link-spot:hover{background:var(--surface-hover);border-color:var(--brand);color:inherit;text-decoration:none}.contact-list a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.contact-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.7rem;font-style:normal;font-weight:600;text-decoration:none}.contact-value{font-family:var(--font-display);letter-spacing:.01em;color:var(--link-spot);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--link-spot);text-decoration-color:var(--link-spot);font-size:.88rem;font-style:italic;font-weight:700}.contact-list a:hover .contact-value,.contact-list a.link-spot:hover .contact-value{color:var(--link);-webkit-text-decoration-color:var(--link);text-decoration-color:var(--link);text-decoration-thickness:2.5px}.skill-group+.skill-group,.education-group+.education-group{margin-top:1.35rem}.skill-group h3,.education-group h3{color:var(--text);margin:0 0 .65rem;font-size:.92rem;font-weight:600}.timeline{border-left:2px solid var(--border);margin:0 0 0 .4rem;padding:0 0 0 1.25rem;list-style:none}.timeline-item{padding:0 0 1.1rem;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:var(--surface);border:2px solid var(--border);border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.4rem;left:calc(-1.25rem - 1px);transform:translate(-50%)}.timeline-item-current:before{background:var(--brand);border-color:var(--brand)}.timeline-meta{font-family:var(--font-mono);color:var(--text-faint);margin-bottom:.25rem;font-size:.75rem}.timeline-item h3{color:var(--text);margin:0 0 .2rem;font-size:1rem;line-height:1.35}.timeline-stack{font-family:var(--font-mono);color:var(--text-muted);margin:0 0 .35rem;font-size:.78rem}.timeline-project{color:var(--text-muted);margin:0 0 .35rem;font-size:.82rem;font-style:italic;line-height:1.45}.timeline-desc{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.55}.timeline-links{margin:.35rem 0 0;font-size:.82rem}.timeline-item-secondary h3,.timeline-item-secondary .timeline-stack,.timeline-item-secondary .timeline-project,.timeline-item-secondary .timeline-desc,.timeline-item-secondary .timeline-meta,.timeline-item-secondary .timeline-stack{color:var(--text-faint)}.experience-toggle{font-family:var(--font-mono);padding:.35rem var(--pad);border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface);color:var(--text-strong);cursor:pointer;font-size:.72rem;line-height:1.35;transition:background .15s,border-color .15s,color .15s}.experience-toggle:hover{background:var(--surface-hover);border-color:var(--text-strong);color:var(--text-strong)}.experience-toggle[aria-pressed=true]{border-color:var(--text-strong);color:var(--text-strong);background:var(--surface-hover)}.experience-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){.experience-toggle{transition:none}}.showcase{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1.75rem;padding:.85rem 1rem 1rem}.showcase-top{gap:var(--gap);flex-direction:column;margin-bottom:1rem;display:flex}@media (width>=40rem){.showcase-top{flex-direction:row;align-items:flex-start;gap:0}}.showcase-intro{min-width:0}@media (width>=40rem){.showcase-intro{flex:1;padding-right:1.25rem}}.showcase-top-divider{border-top:1px solid var(--border)}@media (width>=40rem){.showcase-top-divider{border-top:none;border-left:1px solid var(--border);align-self:stretch;width:0}}.showcase-heading{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.35rem;display:flex}.showcase-heading h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--brand);margin:0;font-size:clamp(1.65rem,5vw,2.15rem);font-weight:700;line-height:1.15}.showcase-role{font-family:var(--font-mono);color:var(--brand);margin:0 0 .65rem;font-size:.92rem}.showcase-bio{color:var(--text-muted);max-width:42rem;margin:0;font-size:.94rem;line-height:1.6}.showcase-facts{gap:var(--gap);border-top:1px solid var(--border);margin:0;padding:1rem 0 0;display:grid}@media (width>=36rem){.showcase-facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem}}.showcase-fact{min-width:0;margin:0}.showcase-fact dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .15rem;font-size:.68rem;font-weight:600}.showcase-fact dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.86rem;line-height:1.45}.showcase-fact-emphasis dd{color:var(--open-text);font-weight:600}.showcase-fact-emphasis{padding:var(--gap) var(--pad);border-radius:var(--radius);background:var(--open-bg);border:1px solid var(--ok-border)}@media (width>=36rem){.showcase-fact-emphasis{grid-column:1/-1}}.showcase-footer{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.showcase-stack,.showcase-links{gap:var(--gap);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.showcase-stack li{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--control-radius);background:var(--chip-bg);padding:.22rem .55rem;font-size:.72rem;line-height:1.35}.showcase-links{gap:.35rem .85rem}@media (width>=40rem){.showcase-links{flex-direction:column;align-items:flex-start;gap:.35rem;padding-top:.15rem;padding-left:1.25rem}}.showcase-links a{align-items:center;gap:.45rem;max-width:100%;font-size:.78rem;display:inline-flex}.showcase-links a span{overflow-wrap:anywhere}.showcase-contact-icon{flex-shrink:0}.showcase-fact-link{display:block}.showcase-fact-link:hover{color:var(--accent-link-hover)}.project-grid{gap:var(--gap);margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid>:last-child:nth-child(odd){grid-column:1/-1}}.project-card{padding:var(--pad) .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;gap:.35rem;transition:border-color .15s,background .15s;display:flex}.project-card:hover{border-color:var(--brand);background:var(--surface-hover)}.project-card-themed{isolation:isolate;background-color:var(--surface);transition:border-color .15s,background-color .15s;position:relative;overflow:hidden}.project-card-themed:before{content:"";z-index:0;border-radius:inherit;background-image:var(--project-screenshot);opacity:.32;transform-origin:50%;background-position:top;background-repeat:no-repeat;background-size:cover;transition:opacity .15s,transform .15s;position:absolute;inset:0;transform:rotate(0)scale(1.05)}.project-card-themed:after{content:"";z-index:0;border-radius:inherit;background:linear-gradient(to bottom, color-mix(in srgb, var(--surface) 35%, transparent) 0%, var(--surface) 58%);transition:background .15s;position:absolute;inset:0}.project-card-themed:hover:before{opacity:.4;transform:rotate(-1.5deg)scale(1.12)}.project-card-themed:hover:after{background:linear-gradient(to bottom, color-mix(in srgb, var(--surface-hover) 35%, transparent) 0%, var(--surface-hover) 58%)}.project-card-themed:hover{background-color:var(--surface-hover)}.project-card-themed>*{z-index:1;position:relative}.project-heading{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.project-title{color:var(--brand);margin:0;font-size:1rem;line-height:1.3}.project-link{align-items:center;gap:.35rem;min-width:0;font-size:.78rem;display:inline-flex}.project-link span{overflow-wrap:anywhere}.project-icon{flex-shrink:0}.project-stack{font-family:var(--font-mono);color:var(--text-muted);margin:0;font-size:.75rem}.project-desc{color:var(--text-muted);flex:1;margin:0;font-size:.88rem;line-height:1.55}.site-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--gap);padding:var(--pad) .75rem;background:var(--header-bg);border-bottom:1px solid var(--border);margin:-.5rem -.75rem 1.5rem;display:flex;position:sticky;top:0}.site-header-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.site-nav{flex-wrap:wrap;gap:.35rem .75rem;display:flex}.site-nav a,.site-header-actions a{font-family:var(--font-mono);letter-spacing:.02em;font-size:.78rem}.site-header-actions a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.theme-toggle{border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface);color:var(--text-strong);cursor:pointer;flex-shrink:0;padding:.35rem .55rem;font-size:1rem;line-height:1;transition:background .15s,border-color .15s,color .15s}.theme-toggle:hover{background:var(--surface-hover);border-color:var(--text-strong);color:var(--text-strong)}.theme-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.site-version{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-size:.72rem;line-height:1}.skill-group-subtitle{margin:-.15rem 0 var(--pad);color:var(--text-muted);font-size:.84rem;line-height:1.5}.skill-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.skill-list li{padding:var(--pad) .75rem;border-top:1px solid var(--border);gap:.25rem;display:grid}.skill-list li:first-child{border-top:none}.skill-name{color:var(--text);font-size:.88rem;font-weight:600;line-height:1.35}.skill-desc{color:var(--text-muted);font-size:.84rem;line-height:1.5}.skill-secondary .skill-name,.skill-secondary .skill-desc{color:var(--text-faint)}@media (width>=40rem){.skill-list li{grid-template-columns:11rem 1fr;align-items:baseline;gap:1rem}}.tag-list{gap:var(--gap);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag-list li{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--control-radius);background:var(--chip-bg);padding:.3rem .75rem;font-size:.78rem;line-height:1.4}.page{max-width:52rem;margin:0 auto}
/*$vite$:1*/