@import url(https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700;800&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--accent-200:#ddc39a;--accent-400:#c09a62;--accent-600:#8f6b3a;--radius-s:6px;--radius-m:14px;--shadow-1:0 10px 30px #0003;--shadow-2:0 24px 60px #00000052;--ease-smoke:cubic-bezier(0.4,0,0.2,1);--bg:#0d0d0d;--bg-rgb:13,13,13;--text:#e8e6e1;--text-rgb:232,230,225;--accent:var(--accent-200);--accent-rgb:221,195,154;--accent-strong:var(--accent-400);--a-muted:0.62;--a-faint:0.42;--a-hair:0.16;--smoothing:antialiased;--weight-body:300;--text-muted:rgba(var(--text-rgb),var(--a-muted));--text-faint:rgba(var(--text-rgb),var(--a-faint));--border:rgba(var(--text-rgb),var(--a-hair));--border-strong:rgba(var(--text-rgb),calc(var(--a-hair) + 0.14));--card-text:var(--text)}html[data-focus=Dawn]{--bg:#070707;--bg-rgb:7,7,7;--text:#f5f4f1;--text-rgb:245,244,241}html[data-focus=Morning]{--bg:#26282c;--bg-rgb:38,40,44;--text:#f2f2ef;--text-rgb:242,242,239}html[data-focus=Noon]{--bg:#d9c7ac;--bg-rgb:217,199,172;--text:#241a10;--text-rgb:36,26,16;--accent:var(--accent-600);--accent-rgb:143,107,58;--accent-strong:#6f5229;--a-muted:0.72;--a-faint:0.5;--a-hair:0.2;--smoothing:auto;--weight-body:400}html[data-focus=Dusk]{--bg:#f4f2ee;--bg-rgb:244,242,238;--text:#141210;--text-rgb:20,18,16;--accent:var(--accent-600);--accent-rgb:143,107,58;--accent-strong:#6f5229;--a-muted:0.68;--a-faint:0.46;--a-hair:0.16;--smoothing:auto;--weight-body:400}html[data-focus=Night]{--bg:#3a2c22;--bg-rgb:58,44,34;--text:#f4ede3;--text-rgb:244,237,227;--accent:var(--accent-200);--accent-rgb:236,217,184;--accent-strong:#ecd9b8}html[data-focus=Sleep]{--bg:#17100b;--bg-rgb:23,16,11;--text:#ded7cb;--text-rgb:222,215,203;--a-muted:0.66;--a-faint:0.46}body,html{-webkit-font-smoothing:antialiased;-webkit-font-smoothing:var(--smoothing);-moz-osx-font-smoothing:grayscale;background:#0d0d0d;background:var(--bg);color:#e8e6e1;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100%;margin:0;overflow-x:hidden;overscroll-behavior-y:none;padding:0;scroll-behavior:smooth;text-rendering:optimizeLegibility;transition:background-color 1.2s cubic-bezier(.4,0,.2,1),color 1.2s cubic-bezier(.4,0,.2,1);transition:background-color 1.2s var(--ease-smoke),color 1.2s var(--ease-smoke)}body{-ms-overflow-style:none;scroll-snap-type:y mandatory;scrollbar-width:none}@media (max-height:680px){body{scroll-snap-type:y proximity}}body::-webkit-scrollbar{display:none}.section{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:100vh;min-height:100svh;padding:6rem 2rem 4rem;position:relative;scroll-snap-align:start;scroll-snap-stop:always;z-index:1}.section-label{color:#e8e6e16b;color:var(--text-faint);font-size:.7rem;font-weight:600;letter-spacing:.35em;margin:0 0 2.5rem;text-transform:uppercase}::selection{background:#ddc39a;background:var(--accent);color:#0d0d0d;color:var(--bg)}a:focus-visible,button:focus-visible{border-radius:2px;outline:2px solid #c09a62;outline:2px solid var(--accent-strong);outline-offset:3px}:focus:not(:focus-visible){outline:none}.focus-backdrop{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.focus-backdrop .focus-layer{inset:0;opacity:0;position:absolute;transition:opacity 1.2s cubic-bezier(.4,0,.2,1);transition:opacity 1.2s var(--ease-smoke);will-change:opacity}.focus-backdrop .focus-layer.active{opacity:1}.focus-layer--sleep:after{animation:sleep-breathe 22s ease-in-out infinite alternate;background:#000;content:"";inset:0;opacity:0;position:absolute}@keyframes sleep-breathe{0%{opacity:0}to{opacity:1}}@keyframes gradient-drift{0%{background-position:0 0}55%{background-position:60% 100%}to{background-position:100% 40%}}.loading-screen{align-items:center;background:#0d0d0d;background:var(--bg);color:#e8e6e1;color:var(--text);display:flex;flex-direction:column;gap:1.1rem;inset:0;justify-content:center;position:fixed;transition:opacity .4s cubic-bezier(.4,0,.2,1),background-color 1.2s cubic-bezier(.4,0,.2,1);transition:opacity .4s var(--ease-smoke),background-color 1.2s var(--ease-smoke);z-index:1000}.loading-screen--leaving{opacity:0;pointer-events:none}.loading-mark{animation:loading-fade-in .3s cubic-bezier(.4,0,.2,1) backwards;animation:loading-fade-in .3s var(--ease-smoke) backwards;color:#ddc39a;color:var(--accent)}.loading-mark rect{stroke:currentColor;stroke-width:2;opacity:.45}.loading-name{animation:loading-fade-in .3s cubic-bezier(.4,0,.2,1) .1s backwards;animation:loading-fade-in .3s var(--ease-smoke) .1s backwards;color:#e8e6e19e;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.35em;margin:0;text-transform:uppercase}@keyframes loading-fade-in{0%{opacity:0;transform:translateY(6px)}}.nav-links{display:flex;gap:28px;left:50%;list-style:none;margin:0;padding:24px 32px;position:fixed;top:0;transform:translateX(-50%);transition:opacity .45s cubic-bezier(.4,0,.2,1),transform .45s cubic-bezier(.4,0,.2,1);transition:opacity .45s var(--ease-smoke),transform .45s var(--ease-smoke);z-index:100}.nav-links a{color:#e8e6e19e;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.18em;text-decoration:none;text-transform:uppercase;transition:color .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke)}.nav-links a:hover{color:#e8e6e1;color:var(--text)}.nav--burger .nav-links{opacity:0;pointer-events:none;transform:translate(-50%,-10px)}.nav-burger-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;gap:5px;height:44px;justify-content:center;position:fixed;right:22px;top:18px;transition:opacity .45s cubic-bezier(.4,0,.2,1);transition:opacity .45s var(--ease-smoke);width:44px;z-index:220}.nav-burger-btn span{background:#e8e6e1;background:var(--text);display:block;height:2px;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s ease,background-color 1.2s cubic-bezier(.4,0,.2,1);transition:transform .35s var(--ease-smoke),opacity .35s ease,background-color 1.2s var(--ease-smoke);width:22px}.nav--center .nav-burger-btn{opacity:0;pointer-events:none}.nav--open .nav-burger-btn{opacity:1;pointer-events:auto}.nav--open .nav-burger-btn span:first-child{transform:translateY(7px) rotate(45deg)}.nav--open .nav-burger-btn span:nth-child(2){opacity:0}.nav--open .nav-burger-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d0d0da6;background:rgba(var(--bg-rgb),.65);inset:0;opacity:0;overscroll-behavior:contain;pointer-events:none;position:fixed;touch-action:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);transition:opacity .4s var(--ease-smoke);z-index:200}.nav--open .nav-overlay{opacity:1;pointer-events:auto}.nav-drawer{align-items:center;background:#0d0d0d;background:var(--bg);border-left:1px solid #e8e6e129;border-left:1px solid var(--border);bottom:0;box-sizing:border-box;display:flex;padding:0 3rem;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .45s cubic-bezier(.4,0,.2,1),background-color 1.2s cubic-bezier(.4,0,.2,1);transition:transform .45s var(--ease-smoke),background-color 1.2s var(--ease-smoke);width:min(320px,80vw);z-index:210}.nav--open .nav-drawer{box-shadow:0 24px 60px #00000052;box-shadow:var(--shadow-2);transform:translateX(0)}.nav-drawer ul{display:flex;flex-direction:column;gap:2rem;list-style:none;margin:0;padding:0}.nav-drawer a{color:#e8e6e19e;color:var(--text-muted);font-size:.95rem;font-weight:500;letter-spacing:.25em;text-decoration:none;text-transform:uppercase;transition:color .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke)}.nav-drawer a:hover{color:#ddc39a;color:var(--accent)}.landing{padding:0}.landing .landing-content{position:relative;text-align:center;z-index:2}.landing h1{font-size:clamp(2.2rem,6.5vw,5rem);font-weight:800;letter-spacing:-.04em;line-height:.95;margin:0;text-transform:uppercase}.landing .landing-subtitle{color:#e8e6e19e;color:var(--text-muted);font-size:clamp(.75rem,1.4vw,1rem);font-weight:300;font-weight:var(--weight-body);letter-spacing:.38em;margin-top:1.4rem;text-transform:uppercase}.projects{border-top:1px solid #e8e6e112;border-top:1px solid rgba(var(--text-rgb),.07)}.projects>:not(.projects-calendar-bg){position:relative;z-index:1}.project-filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:3.5rem}.filter-btn{background:#0000;border:1px solid rgba(232,230,225,.3);border:1px solid var(--border-strong);border-radius:999px;color:#e8e6e19e;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:500;letter-spacing:.2em;padding:.6rem 1.4rem;text-transform:uppercase;transition:color .35s cubic-bezier(.4,0,.2,1),border-color .35s cubic-bezier(.4,0,.2,1),background-color .35s cubic-bezier(.4,0,.2,1);transition:color .35s var(--ease-smoke),border-color .35s var(--ease-smoke),background-color .35s var(--ease-smoke)}.filter-btn:hover{border-color:#c09a62;border-color:var(--accent-strong);color:#c09a62;color:var(--accent-strong)}.filter-btn.selected{background:#e8e6e1;background:var(--text);border-color:#e8e6e1;border-color:var(--text);color:#0d0d0d;color:var(--bg)}.project-scroller{max-width:1100px;position:relative;width:100%}.project-grid{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;align-items:stretch;display:flex;gap:2rem;margin:-1.5rem 0;-webkit-mask-image:linear-gradient(90deg,#000 92%,#0000);mask-image:linear-gradient(90deg,#000 92%,#0000);overflow-x:auto;overscroll-behavior-x:contain;padding:2.5rem .5rem;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none}.project-grid::-webkit-scrollbar{display:none}@media (min-width:900px){.project-card{flex-basis:calc(33.33333% - 1.33333rem)}}.project-card{background:#e8e6e10d;background:rgba(var(--text-rgb),.05);border:1px solid #e8e6e129;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-m);box-sizing:border-box;color:#e8e6e1;color:var(--card-text);cursor:pointer;display:flex;flex:0 0 300px;flex-direction:column;justify-content:flex-end;min-height:420px;overflow:hidden;padding:1.75rem;position:relative;scroll-snap-align:start;text-decoration:none;transition:transform .5s cubic-bezier(.4,0,.2,1),box-shadow .5s cubic-bezier(.4,0,.2,1),border-color .5s cubic-bezier(.4,0,.2,1);transition:transform .5s var(--ease-smoke),box-shadow .5s var(--ease-smoke),border-color .5s var(--ease-smoke)}.project-card:focus-visible,.project-card:hover{border-color:rgba(232,230,225,.3);border-color:var(--border-strong);box-shadow:0 10px 30px #0003;box-shadow:var(--shadow-1);transform:translateY(-6px);z-index:3}.project-card--placeholder{align-items:center;background:#0000;border:1px dashed rgba(232,230,225,.3);border:1px dashed var(--border-strong);box-shadow:none;color:#e8e6e1;color:var(--text);cursor:default;justify-content:center}.project-card--placeholder:hover{box-shadow:none;transform:none}.card-placeholder-label{color:#e8e6e16b;color:var(--text-faint);font-size:.65rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase}.project-card .card-art{inset:0;opacity:.9;position:absolute;transition:opacity .6s cubic-bezier(.4,0,.2,1);transition:opacity .6s var(--ease-smoke)}.project-card:focus-visible .card-art,.project-card:hover .card-art{opacity:1}.project-card .card-body{position:relative;z-index:1}.project-card .card-category{color:#ddc39a;color:var(--accent);font-size:.62rem;font-weight:600;letter-spacing:.3em;margin:0 0 .6rem;text-transform:uppercase}.project-card h3{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem}.project-card h3:after{content:"\2192";display:inline-block;font-weight:300;margin-left:.5rem;opacity:0;transform:translateX(-8px);transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);transition:opacity .4s var(--ease-smoke),transform .4s var(--ease-smoke)}.project-card:focus-visible h3:after,.project-card:hover h3:after{opacity:.7;transform:translateX(0)}.project-card .card-desc{color:#e8e6e19e;color:var(--text-muted);font-size:.85rem;font-weight:300;font-weight:var(--weight-body);line-height:1.5;margin:0}.projects-calendar-bg{align-items:center;display:flex;inset:0;justify-content:center;-webkit-mask-image:radial-gradient(ellipse 85% 80% at 50% 50%,#000 40%,#0000 100%);mask-image:radial-gradient(ellipse 85% 80% at 50% 50%,#000 40%,#0000 100%);opacity:.55;overflow:hidden;pointer-events:none;position:absolute;z-index:0}.projects-calendar-bg .calendar-field{display:flex;flex-direction:column;flex-shrink:0;transform:rotate(-8deg) scale(1.9);width:-webkit-max-content;width:max-content}.projects-calendar-bg .calendar{background:#0000;border:none;font-family:inherit;max-width:none!important;padding:0;width:auto!important}.projects-calendar-bg .calendar table,.projects-calendar-bg .calendar tbody{display:block!important;width:auto!important}.projects-calendar-bg .calendar tr{display:flex!important;gap:4px;margin-bottom:4px}.projects-calendar-bg .calendar td[data-level]{border-radius:2px;display:block!important;flex:0 0 11px;height:11px!important;padding:0!important;width:11px!important}.projects-calendar-bg .calendar .ContributionCalendar-label,.projects-calendar-bg .calendar .contrib-column,.projects-calendar-bg .calendar .contrib-footer,.projects-calendar-bg .calendar .show-on-focus,.projects-calendar-bg .calendar .sr-only,.projects-calendar-bg .calendar .width-full.f6,.projects-calendar-bg .calendar text,.projects-calendar-bg .calendar tool-tip{display:none!important}.projects-calendar-bg .calendar div{overflow:hidden!important;scrollbar-width:none}.projects-calendar-bg .calendar div::-webkit-scrollbar{display:none}.projects-calendar-bg .calendar [data-level]{transition:background-color 1.2s cubic-bezier(.4,0,.2,1);transition:background-color 1.2s var(--ease-smoke)}.projects-calendar-bg .calendar [data-level="0"]{background-color:#e8e6e112!important;background-color:rgba(var(--text-rgb),.07)!important}.projects-calendar-bg .calendar [data-level="1"]{background-color:#e8e6e133!important;background-color:rgba(var(--text-rgb),.2)!important}.projects-calendar-bg .calendar [data-level="2"]{background-color:#e8e6e152!important;background-color:rgba(var(--text-rgb),.32)!important}.projects-calendar-bg .calendar [data-level="3"]{background-color:#e8e6e173!important;background-color:rgba(var(--text-rgb),.45)!important}.projects-calendar-bg .calendar [data-level="4"]{background-color:#ddc39a99!important;background-color:rgba(var(--accent-rgb),.6)!important}.projects .github-activity{margin:3rem 0 0}.projects .github-activity a{border-bottom:1px solid rgba(232,230,225,.3);border-bottom:1px solid var(--border-strong);color:#e8e6e19e;color:var(--text-muted);font-size:.75rem;font-weight:500;letter-spacing:.22em;padding-bottom:2px;text-decoration:none;text-transform:uppercase;transition:color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke),border-color .3s var(--ease-smoke)}.projects .github-activity a:hover{border-color:#e8e6e1;border-color:var(--text);color:#e8e6e1;color:var(--text)}.education{border-top:1px solid #e8e6e112;border-top:1px solid rgba(var(--text-rgb),.07)}.education .education-inner{width:min(900px,92vw)}.education h2{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;line-height:1;margin:0 0 2.5rem;text-transform:uppercase}.education-list{width:100%}.education-entry{align-items:baseline;border-top:1px solid #e8e6e11f;border-top:1px solid rgba(var(--text-rgb),.12);display:flex;gap:2rem;justify-content:space-between;padding:1.75rem 0;transition:transform .3s ease}.education-entry:last-child{border-bottom:1px solid #e8e6e11f;border-bottom:1px solid rgba(var(--text-rgb),.12)}.education-entry:hover{transform:translateX(6px)}.education-entry .edu-school{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .35rem}.education-entry .edu-note{color:#e8e6e19e;color:var(--text-muted);font-size:.85rem;font-weight:300;font-weight:var(--weight-body);margin:0}.education-entry .edu-years{color:#e8e6e16b;color:var(--text-faint);font-size:.75rem;font-weight:500;letter-spacing:.15em;transition:color .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke);white-space:nowrap}.education-entry:hover .edu-years{color:#e8e6e19e;color:var(--text-muted)}.edu-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1.4fr 1fr;margin-top:3rem}.edu-subhead{color:#e8e6e16b;color:var(--text-faint);font-size:.65rem;font-weight:600;letter-spacing:.3em;margin:0 0 1rem;text-transform:uppercase}.edu-skill-group{margin-bottom:1.5rem}.edu-group-label{color:#e8e6e19e;color:var(--text-muted);font-size:.78rem;font-weight:500;letter-spacing:.04em;margin:0 0 .7rem}.edu-skill-group:last-child{margin-bottom:0}.edu-chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{background:#e8e6e10a;background:rgba(var(--text-rgb),.04);border:1px solid #e8e6e129;border:1px solid var(--border);border-radius:999px;color:#e8e6e19e;color:var(--text-muted);font-size:.72rem;font-weight:400;letter-spacing:.08em;padding:.45rem .9rem;transition:border-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1);transition:border-color .3s var(--ease-smoke),color .3s var(--ease-smoke)}.chip:hover{border-color:#ddc39a;border-color:var(--accent);color:#ddc39a;color:var(--accent)}.edu-lang-row{align-items:baseline;border-top:1px solid #e8e6e11f;border-top:1px solid rgba(var(--text-rgb),.12);display:flex;gap:2rem;justify-content:space-between;padding:1rem 0}.edu-lang-row:last-child{border-bottom:1px solid #e8e6e11f;border-bottom:1px solid rgba(var(--text-rgb),.12)}.edu-lang-row .edu-lang{font-size:.95rem;font-weight:500;margin:0}.edu-lang-row .edu-lang-level{color:#e8e6e16b;color:var(--text-faint);font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}.contact{border-top:1px solid #e8e6e112;border-top:1px solid rgba(var(--text-rgb),.07)}.contact .contact-inner{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.contact h2{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;line-height:1;margin:0 0 2rem;text-transform:uppercase}.contact .contact-links{align-items:center;display:flex;flex-direction:column;gap:1.1rem}.contact .contact-links a{color:#e8e6e19e;color:var(--text-muted);font-size:.85rem;font-weight:400;letter-spacing:.2em;text-decoration:none;text-transform:uppercase;transition:color .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke),transform .3s var(--ease-smoke);width:-webkit-fit-content;width:fit-content}.contact .contact-links a:hover{color:#ddc39a;color:var(--accent);transform:translateX(6px)}.contact .contact-location{color:#e8e6e16b;color:var(--text-faint);font-size:.75rem;font-weight:400;letter-spacing:.2em;margin:1.75rem 0 0;text-transform:uppercase}.project-page{background:#0d0d0d;background:var(--bg);box-sizing:border-box;color:#e8e6e1;color:var(--text);font-family:Inter,sans-serif;min-height:100vh;min-height:100svh;padding:7rem 2rem 5rem;transition:background-color 1.2s cubic-bezier(.4,0,.2,1),color 1.2s cubic-bezier(.4,0,.2,1);transition:background-color 1.2s var(--ease-smoke),color 1.2s var(--ease-smoke)}.project-page .back-btn{background:#0000;border:none;color:#e8e6e19e;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:600;left:2rem;letter-spacing:.25em;position:fixed;text-transform:uppercase;top:1.5rem;transition:color .3s cubic-bezier(.4,0,.2,1);transition:color .3s var(--ease-smoke);z-index:10}.project-page .back-btn:hover{color:#c09a62;color:var(--accent-strong)}.pp-hero{margin:0 auto 3rem;max-width:760px}.pp-hero h1{font-size:clamp(2.4rem,6vw,4.5rem);font-weight:800;letter-spacing:-.03em;line-height:.95;margin:0 0 1rem;text-transform:uppercase}.pp-tagline{color:#e8e6e19e;color:var(--text-muted);font-size:1.05rem;font-weight:300;font-weight:var(--weight-body);margin:0;max-width:48ch}.pp-badge{border:1px solid rgba(232,230,225,.3);border:1px solid var(--border-strong);border-radius:999px;display:inline-block;font-size:.62rem;font-weight:600;letter-spacing:.3em;margin-top:1.25rem;padding:.45rem 1rem;text-transform:uppercase}.pp-hero-art{animation:gradient-drift 44s ease-in-out infinite alternate;background-size:180% 180%;border:1px solid #e8e6e129;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-m);height:clamp(160px,28vh,300px);margin:2.5rem auto 3rem;max-width:1000px}.pp-meta{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:1fr 1.3fr;margin:0 auto 4rem;max-width:760px}.pp-meta h2{color:#e8e6e16b;color:var(--text-faint);font-size:.65rem;font-weight:600;letter-spacing:.3em;margin:0 0 1rem;text-transform:uppercase}.pp-tech .edu-chips{gap:.5rem}.pp-tech .chip{border-color:rgba(232,230,225,.3);border-color:var(--border-strong)}.pp-tech .chip:hover{border-color:#c09a62;border-color:var(--accent-strong);color:#c09a62;color:var(--accent-strong)}.pp-feature-list{list-style:none;margin:0;padding:0}.pp-feature-list li{padding:0 0 1.1rem 1.4rem;position:relative}.pp-feature-list li:last-child{padding-bottom:0}.pp-feature-list li:before{background:#c09a62;background:var(--accent-strong);content:"";height:7px;left:0;position:absolute;top:.42em;width:7px}.pp-feature-list .pp-feature-title{display:block;font-size:.9rem;font-weight:500;margin:0 0 .15rem}.pp-feature-list .pp-feature-desc{color:#e8e6e19e;color:var(--text-muted);display:block;font-size:.85rem;font-weight:300;font-weight:var(--weight-body);line-height:1.5}.pp-body{margin:0 auto 4rem;max-width:760px}.pp-body p{color:rgba(232,230,225,.78);color:rgba(var(--text-rgb),calc(var(--a-muted) + .16));font-size:.95rem;font-weight:300;font-weight:var(--weight-body);line-height:1.7;margin:0 0 1rem}.pp-gallery{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin:0 auto 4rem;max-width:1000px}.pp-frame{align-items:center;background:repeating-linear-gradient(-45deg,#e8e6e10a 0 1px,#0000 1px 12px),linear-gradient(200deg,#e8e6e114,#e8e6e124);background:repeating-linear-gradient(-45deg,rgba(var(--text-rgb),.04) 0 1px,#0000 1px 12px),linear-gradient(200deg,rgba(var(--text-rgb),.08) 0,rgba(var(--text-rgb),.14) 100%);border:1px solid #e8e6e11f;border:1px solid rgba(var(--text-rgb),.12);border-radius:6px;border-radius:var(--radius-s);display:flex;justify-content:center;margin:0;overflow:hidden;position:relative}.pp-frame--web{aspect-ratio:16/10;grid-column:1/-1}.pp-frame--web:before{background:#e8e6e10f;background:rgba(var(--text-rgb),.06);border-bottom:1px solid #e8e6e114;border-bottom:1px solid rgba(var(--text-rgb),.08);content:"";height:28px;left:0;position:absolute;right:0;top:0}.pp-frame--web:after{background:#e8e6e140;background:rgba(var(--text-rgb),.25);border-radius:50%;box-shadow:12px 0 0 #e8e6e12e,24px 0 0 #e8e6e11f;box-shadow:12px 0 0 rgba(var(--text-rgb),.18),24px 0 0 rgba(var(--text-rgb),.12);content:"";height:6px;left:14px;position:absolute;top:11px;width:6px}.pp-frame--mobile{aspect-ratio:9/19.5;border-radius:28px;justify-self:center;width:min(240px,60vw)}.pp-frame img{display:block;height:100%;object-fit:cover;width:100%}.pp-frame-label{color:#e8e6e16b;color:var(--text-faint);font-size:.62rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase}.pp-links{align-items:baseline;display:flex;gap:2rem;margin:0 auto;max-width:760px}.pp-links a,.pp-private{font-size:.75rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase}.pp-links a{border-bottom:1px solid rgba(232,230,225,.3);border-bottom:1px solid var(--border-strong);color:#e8e6e19e;color:var(--text-muted);padding-bottom:2px;text-decoration:none;transition:border-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1);transition:border-color .3s var(--ease-smoke),color .3s var(--ease-smoke)}.pp-links a:hover{border-color:#c09a62;border-color:var(--accent-strong);color:#c09a62;color:var(--accent-strong)}.pp-private{color:#e8e6e16b;color:var(--text-faint)}@media (max-width:1024px){.section{padding:5rem 1.5rem 3.5rem}.project-grid{gap:1.5rem}.projects-calendar-bg .calendar-field{transform:rotate(-8deg) scale(1.35)}.education .education-inner{width:92vw}}@media (max-width:720px){.nav-links{display:none}.nav--center .nav-burger-btn{opacity:1;pointer-events:auto}.section{padding:4.5rem 1.25rem 2.5rem}.section-label{margin-bottom:1.75rem}.project-filters{margin-bottom:2rem}.project-card{min-height:380px}.edu-grid{gap:2rem;margin-top:2rem}.edu-grid,.pp-gallery{grid-template-columns:1fr}.pp-frame--mobile{justify-self:start}.pp-meta{gap:2.5rem;grid-template-columns:1fr}}@media (max-width:480px){.project-card{flex-basis:min(78vw,280px);min-height:360px}.landing .landing-subtitle{letter-spacing:.24em}.education-entry{padding:1.25rem 0}.contact h2,.education h2{margin-bottom:1.75rem}.project-page .back-btn{left:1rem}.pp-links{flex-direction:column;gap:1rem}}@media (prefers-reduced-motion:reduce){body,html{scroll-behavior:auto}body{scroll-snap-type:y proximity}.loading-screen,.nav-burger-btn,.nav-burger-btn span,.nav-drawer,.nav-links,.nav-overlay,.project-page,body,html{transition:none}.focus-backdrop .focus-layer,.loading-mark,.loading-name,.pp-hero-art{animation:none}.focus-backdrop .focus-layer{transition-duration:.5s}.focus-layer--sleep:after{animation:none;opacity:.5}.contact .contact-links a,.education-entry,.project-card,.project-card .card-art{transition:none}.project-card:focus-visible,.project-card:hover{transform:none}}
/*# sourceMappingURL=main.81e02a35.css.map*/