@layer components{@property --separator-width{syntax: "<length>"; inherits: true; initial-value: 2px;}[is-~=separator]{--separator-bg-fallback: var(--separator-background, transparent);display:inline-flex;position:relative}[is-~=separator][direction-=x],[is-~=separator][direction-=horizontal],[is-~=separator]:not([direction-]){height:1lh;background-image:linear-gradient(0deg,var(--separator-bg-fallback) 0,var(--separator-bg-fallback) calc(.5lh - var(--separator-width) / 2),var(--separator-color) calc(.5lh - (var(--separator-width) / 2)),var(--separator-color) calc(.5lh + (var(--separator-width) / 2)),var(--separator-bg-fallback) calc(.5lh + (var(--separator-width) / 2)),var(--separator-bg-fallback))}[is-~=separator][direction-=x][cap-^=bisect]:before,[is-~=separator][direction-=horizontal][cap-^=bisect]:before,[is-~=separator]:not([direction-])[cap-^=bisect]:before{left:-.5ch}[is-~=separator][direction-=x][cap-$=bisect]:after,[is-~=separator][direction-=horizontal][cap-$=bisect]:after,[is-~=separator]:not([direction-])[cap-$=bisect]:after{right:-.5ch}[is-~=separator][direction-=x][cap-^=edge]:not([cap-=edge]),[is-~=separator][direction-=horizontal][cap-^=edge]:not([cap-=edge]),[is-~=separator]:not([direction-])[cap-^=edge]:not([cap-=edge]){clip-path:inset(0 -.5ch 0 .5ch)}[is-~=separator][direction-=x][cap-$=edge]:not([cap-=edge]),[is-~=separator][direction-=horizontal][cap-$=edge]:not([cap-=edge]),[is-~=separator]:not([direction-])[cap-$=edge]:not([cap-=edge]){clip-path:inset(0 .5ch 0 -.5ch)}[is-~=separator][direction-=x][cap-=edge],[is-~=separator][direction-=horizontal][cap-=edge],[is-~=separator]:not([direction-])[cap-=edge]{clip-path:inset(0 .5ch)}[is-~=separator][direction-=y],[is-~=separator][direction-=vertical]{width:1ch;background-image:linear-gradient(to right,var(--separator-bg-fallback) 0,var(--separator-bg-fallback) calc(.5ch - (var(--separator-width) / 2)),var(--separator-color) calc(.5ch - (var(--separator-width) / 2)),var(--separator-color) calc(.5ch + (var(--separator-width) / 2)),var(--separator-bg-fallback) calc(.5ch + (var(--separator-width) / 2)),var(--separator-bg-fallback))}[is-~=separator][direction-=y][cap-^=bisect]:before,[is-~=separator][direction-=vertical][cap-^=bisect]:before{top:-.5lh}[is-~=separator][direction-=y][cap-$=bisect]:after,[is-~=separator][direction-=vertical][cap-$=bisect]:after{bottom:-.5lh}[is-~=separator][direction-=y][cap-^=edge]:not([cap-=edge]),[is-~=separator][direction-=vertical][cap-^=edge]:not([cap-=edge]){clip-path:inset(.5lh 0 -.5lh 0)}[is-~=separator][direction-=y][cap-$=edge]:not([cap-=edge]),[is-~=separator][direction-=vertical][cap-$=edge]:not([cap-=edge]){clip-path:inset(-.5lh 0 .5lh 0)}[is-~=separator][direction-=y][cap-=edge],[is-~=separator][direction-=vertical][cap-=edge]{clip-path:inset(.5lh 0)}[is-~=separator][cap-]:before,[is-~=separator][cap-]:after{content:"";position:absolute;width:1ch;height:1lh;background-image:inherit}}.portfolio-main[data-astro-cid-j7pv25f6]{width:100%;padding:2lh 2ch}.portfolio-grid[data-astro-cid-j7pv25f6]{columns:3;column-gap:2ch}.portfolio-grid[data-astro-cid-j7pv25f6]>[data-astro-cid-j7pv25f6]{break-inside:avoid;margin-bottom:2ch;display:inline-block;width:100%}.about-section[data-astro-cid-j7pv25f6]{width:100%;margin-bottom:2ch}@media (max-width: 1200px){.portfolio-grid[data-astro-cid-j7pv25f6]{columns:2}}@media (max-width: 768px){.portfolio-grid[data-astro-cid-j7pv25f6]{columns:1}.portfolio-main[data-astro-cid-j7pv25f6]{padding:1lh 1ch}}.about-section[data-astro-cid-j7pv25f6]{min-height:8lh}.hero[data-astro-cid-j7pv25f6]{margin-bottom:2lh;padding-bottom:1.5lh;border-bottom:1px solid var(--surface2)}.hero-name[data-astro-cid-j7pv25f6]{font-size:calc(var(--font-size) * 2.5);font-weight:700;color:var(--green);margin-bottom:.5lh;line-height:1.2}.hero-title[data-astro-cid-j7pv25f6]{font-size:calc(var(--font-size) * 1.2);color:var(--blue);margin:0}.intro[data-astro-cid-j7pv25f6]{margin-bottom:1.5lh;line-height:1.6;color:var(--text);font-size:calc(var(--font-size) * 1.05)}.skills-showcase[data-astro-cid-j7pv25f6]{display:flex;flex-wrap:wrap;gap:1ch}.project-list[data-astro-cid-j7pv25f6]{margin-bottom:1lh}.project-item[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:20ch 1fr auto;gap:1ch;align-items:center;margin-bottom:.5lh}.project-title[data-astro-cid-j7pv25f6]{grid-column:1}.project-link[data-astro-cid-j7pv25f6]{color:var(--blue);text-decoration:none;font-weight:700}.project-link[data-astro-cid-j7pv25f6]:not(.disabled):hover{color:var(--sky);text-decoration:underline}.project-link[data-astro-cid-j7pv25f6].disabled{color:var(--subtext0);cursor:not-allowed;opacity:.7}.project-desc[data-astro-cid-j7pv25f6]{grid-column:2;color:var(--subtext1);font-style:italic}.project-meta[data-astro-cid-j7pv25f6]{grid-column:3;display:flex;align-items:center;gap:1ch}.project-status[data-astro-cid-j7pv25f6]{flex-shrink:0}.project-github[data-astro-cid-j7pv25f6]{color:var(--subtext0);text-decoration:none;display:inline-flex;align-items:center}.project-github[data-astro-cid-j7pv25f6]:hover{color:var(--foreground0)}@media (max-width: 768px){.project-item[data-astro-cid-j7pv25f6]{grid-template-columns:1fr;gap:.5lh}.project-title[data-astro-cid-j7pv25f6],.project-desc[data-astro-cid-j7pv25f6],.project-meta[data-astro-cid-j7pv25f6]{grid-column:1}}.project-actions[data-astro-cid-j7pv25f6]{display:flex;gap:1ch}.view-all-btn[data-astro-cid-j7pv25f6]{cursor:pointer}.view-all-btn[data-astro-cid-j7pv25f6]:hover{opacity:.8}.contact-item[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:1ch;margin-bottom:.5lh}.label[data-astro-cid-j7pv25f6]{color:var(--yellow);font-weight:700;min-width:8ch}.value[data-astro-cid-j7pv25f6]{color:var(--text)}.value-link[data-astro-cid-j7pv25f6]{color:var(--blue);text-decoration:none;transition:color .2s ease}.value-link[data-astro-cid-j7pv25f6]:hover{color:var(--sky);text-decoration:underline}.experience-list[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;gap:1lh}.experience-item[data-astro-cid-j7pv25f6]{border-bottom:1px solid var(--surface2);padding-bottom:.5lh}.experience-item[data-astro-cid-j7pv25f6]:last-child{border-bottom:none;padding-bottom:0}.job-header[data-astro-cid-j7pv25f6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5lh}.company[data-astro-cid-j7pv25f6]{color:var(--peach);font-weight:700}.duration[data-astro-cid-j7pv25f6]{color:var(--subtext0);font-size:calc(var(--font-size) * .9)}.duration-calc[data-astro-cid-j7pv25f6]{color:var(--subtext1);font-size:calc(var(--font-size) * .85)}.role[data-astro-cid-j7pv25f6]{color:var(--text);margin-bottom:.5lh}.tech-used[data-astro-cid-j7pv25f6]{display:flex;gap:.5ch;flex-wrap:wrap}.techstack-section[data-astro-cid-j7pv25f6] ul[data-astro-cid-j7pv25f6][marker-=tree]>li[data-astro-cid-j7pv25f6]{color:var(--blue);font-weight:700}.techstack-section[data-astro-cid-j7pv25f6] ul[data-astro-cid-j7pv25f6][marker-=tree]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]{margin-left:2ch}.techstack-section[data-astro-cid-j7pv25f6] ul[data-astro-cid-j7pv25f6][marker-=tree]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]>li[data-astro-cid-j7pv25f6]{color:var(--text);font-weight:400}.techstack-section[data-astro-cid-j7pv25f6] ul[data-astro-cid-j7pv25f6][marker-=tree]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]{margin-left:2ch}.techstack-section[data-astro-cid-j7pv25f6] ul[data-astro-cid-j7pv25f6][marker-=tree]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]>li[data-astro-cid-j7pv25f6]>ul[data-astro-cid-j7pv25f6]>li[data-astro-cid-j7pv25f6]{color:var(--subtext1)}.music-section[data-astro-cid-j7pv25f6]{min-height:8lh}.education-list[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;gap:1.5lh}.education-item[data-astro-cid-j7pv25f6]{border-bottom:1px solid var(--surface2);padding-bottom:1lh}.education-item[data-astro-cid-j7pv25f6]:last-child{border-bottom:none;padding-bottom:0}.degree-header[data-astro-cid-j7pv25f6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5lh}.degree[data-astro-cid-j7pv25f6]{color:var(--green);font-weight:700}.year[data-astro-cid-j7pv25f6]{color:var(--subtext0);font-size:calc(var(--font-size) * .9)}.institution[data-astro-cid-j7pv25f6]{color:var(--blue);font-weight:700;margin-bottom:.5lh}.details[data-astro-cid-j7pv25f6]{display:flex;gap:2ch;margin-bottom:.5lh;flex-wrap:wrap}.gpa[data-astro-cid-j7pv25f6]{color:var(--yellow);font-weight:700}.focus[data-astro-cid-j7pv25f6]{color:var(--subtext1);font-style:italic}.achievements[data-astro-cid-j7pv25f6]{display:flex;gap:1ch;flex-wrap:wrap}@media (max-width: 480px){.degree-header[data-astro-cid-j7pv25f6]{flex-direction:column;align-items:flex-start;gap:.25lh}.details[data-astro-cid-j7pv25f6]{flex-direction:column;gap:.25lh}}
