html{scroll-behavior:smooth;scroll-padding-top:90px;font-size:16px}body{background:var(--bg);min-width:320px;color:var(--ink);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.7;transition:background-color .25s,color .25s;overflow-x:hidden}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a,button{color:inherit}img{max-width:100%;display:block}.site-shell{background:var(--bg);min-height:100vh}.page-section__inner,.hero__inner,.navbar__inner,.footer__inner{width:min(var(--max-w), 100%);padding-inline:var(--pad-x);margin-inline:auto}.page-section{background:var(--bg);padding-block:76px;transition:background-color .25s}.page-section--alt{background:var(--bg-alt)}.page-section__inner{width:min(820px,100%);margin-inline:auto}.eyebrow{color:var(--accent);font-family:var(--font-mono);letter-spacing:.035em;text-transform:uppercase;margin-bottom:14px;font-size:.75rem;line-height:1.6}.section-title{color:var(--ink);font-family:var(--font-serif);letter-spacing:-.045em;margin-bottom:12px;font-size:clamp(2.1rem,6vw,3rem);font-weight:700;line-height:1.12}.section-title>span{color:var(--accent)}.section-intro{max-width:50ch;color:var(--ink-dim);margin-top:12px;font-size:1rem;line-height:1.75}.navbar{z-index:20;background:var(--bg);transition:background-color .25s;position:sticky;top:0}.navbar__inner{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:22px;min-height:70px;display:flex}.navbar__brand,.footer__brand{color:var(--ink);font-family:var(--font-serif);letter-spacing:-.06em;font-size:1.45rem;font-weight:700;text-decoration:none}.navbar__brand-dot,.footer__brand span{color:var(--accent)}.navbar__links{justify-content:center;align-items:center;gap:23px;display:flex}.navbar__links a{color:var(--ink-dim);font-size:.95rem;text-decoration:none;transition:color .2s;position:relative}.navbar__links a:after{background:var(--accent);content:"";transform-origin:0;height:1px;transition:transform .2s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.navbar__links a:hover{color:var(--accent)}.navbar__links a:hover:after{transform:scaleX(1)}.navbar__controls{justify-content:flex-end;align-items:center;gap:10px;display:flex}.theme-toggle,.music-widget{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);min-height:34px;color:var(--ink-dim);font-family:var(--font-mono);cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:6px 10px;font-size:.72rem;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.theme-toggle:hover,.music-widget:hover{border-color:var(--accent);color:var(--accent)}.music-widget__dot,.status-dot{background:var(--ink-faint);border-radius:50%;flex:0 0 7px;width:7px;height:7px}.music-widget__dot.is-playing{background:var(--accent-green);animation:1.5s ease-in-out infinite music-pulse}.music-widget--sm{min-height:34px;padding-inline:9px}.navbar__menu-toggle{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-family:var(--font-mono);cursor:pointer;padding:7px 9px;font-size:.75rem;display:none}.hero{background:var(--bg);padding-block:clamp(70px,12vw,120px) 76px;transition:background-color .25s}.hero__inner{justify-content:space-between;align-items:center;gap:36px;display:flex}.hero__content{flex:1;min-width:0}.hero__name{max-width:650px;color:var(--ink);font-family:var(--font-serif);letter-spacing:-.075em;margin-bottom:20px;font-size:clamp(4rem,12vw,7.4rem);font-weight:700;line-height:.89}.hero__period{color:var(--accent)}.hero__role{color:var(--link);font-family:var(--font-mono);margin-bottom:16px;font-size:clamp(.9rem,2.4vw,1.05rem)}.hero__role span{color:var(--ink-muted);padding-inline:4px}.hero__bio{max-width:47ch;color:var(--ink-dim);font-size:1.08rem;line-height:1.8}.hero__status{color:var(--ink-muted);font-family:var(--font-mono);align-items:center;gap:9px;margin-top:19px;font-size:.75rem;display:flex}.hero__status .status-dot{background:var(--accent-green)}.hero__contact{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;font-size:.95rem;display:flex}.hero__contact-label{color:var(--ink-muted);font-family:var(--font-mono);text-transform:uppercase;margin-right:2px;font-size:.75rem}.hero__contact-sep{color:var(--ink-muted)}.hero__aside{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:9px;padding-top:40px;display:flex}.hero__aside-number{color:var(--rule-dark);font-family:var(--font-serif);letter-spacing:-.09em;font-size:clamp(3rem,7vw,5.4rem);font-weight:700;line-height:1}.hero__aside-caption{color:var(--ink-muted);font-family:var(--font-mono);text-align:right;font-size:.7rem;line-height:1.7}.retro-link{border:0;border-bottom:2px solid var(--link);border-radius:var(--radius-sm);background:var(--surface);max-width:100%;color:var(--link);font-family:var(--font-mono);overflow-wrap:anywhere;padding:8px 11px;font-size:.82rem;line-height:1.5;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s;display:inline-block}.retro-link:hover{border-bottom-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.retro-link--primary{border-bottom-color:var(--accent);color:var(--accent)}.retro-link--primary:hover{border-bottom-color:var(--accent-hover);color:var(--accent-hover)}.rule-wrap{width:min(820px,100%);padding:0 var(--pad-x);background:var(--bg);align-items:center;gap:14px;margin-inline:auto;display:flex}.rule-line{background:var(--rule);flex:1;height:1px}.rule-label{color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem}.projects-list{margin-top:28px}.project-entry{background:0 0;margin:0;padding:28px 0 34px}.pe__top{align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.pe__num{color:var(--accent);font-family:var(--font-mono);flex:none;padding-top:5px;font-size:.85rem}.pe__heading{min-width:0}.pe__title{color:var(--ink);font-family:var(--font-serif);letter-spacing:-.035em;margin-bottom:7px;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.2}.pe__meta{color:var(--ink-muted);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:8px;font-size:.76rem;display:flex}.pe__status{color:var(--accent-green)}.pe__desc{max-width:62ch;color:var(--ink-dim);margin:0 0 15px 29px;font-size:1rem;line-height:1.8}.pe__img-row{margin:0 0 16px 29px}.pe__img-toggle{color:var(--link);font-family:var(--font-mono);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:5px 0;font-size:.8rem;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}.pe__img-toggle:hover{color:var(--accent)}.pe__img-wrap{border-radius:var(--radius);background:var(--surface);max-width:720px;margin-top:14px;overflow:hidden}.pe__img{object-fit:contain;width:100%;height:auto;display:block}.pe__tech{max-width:70ch;color:var(--ink-dim);overflow-wrap:anywhere;margin:0 0 20px 29px;font-size:.9rem;line-height:1.9}.pe__tech-label{color:var(--ink-muted);font-style:italic}.pe__links{flex-wrap:wrap;gap:10px;margin-left:29px;display:flex}.pe__rule{display:none}.timeline-list{margin-top:30px}.timeline-item{grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:14px;padding-block:20px;display:grid}.timeline-item__number{color:var(--accent);font-family:var(--font-mono);padding-top:3px;font-size:.78rem}.timeline-item__content h3,.experience-item__top h3{color:var(--ink);font-family:var(--font-serif);margin-bottom:5px;font-size:1.2rem;line-height:1.4}.timeline-item__content p,.experience-item__top p{color:var(--ink-dim);font-size:.94rem;line-height:1.65}.timeline-item__period{color:var(--ink-muted);font-family:var(--font-mono);text-align:right;white-space:normal;padding-top:4px;font-size:.72rem}.experience-item{padding-block:20px}.experience-item__top{grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.experience-item__details{color:var(--ink-dim);gap:8px;margin:15px 0 0 48px;padding-left:18px;font-size:.95rem;line-height:1.75;display:grid}.experience-item__details li{padding-left:3px}.experience-item__details li::marker{color:var(--accent)}.stack-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin-top:28px;display:grid}.stack-item{min-width:0;color:var(--ink-dim);overflow-wrap:anywhere;align-items:center;gap:13px;padding-block:13px;font-size:1rem;display:flex}.stack-item__number{color:var(--ink-muted);font-family:var(--font-mono);flex:none;font-size:.7rem}.contact__text{max-width:48ch;color:var(--ink-dim);margin-top:17px;font-size:1.05rem;line-height:1.8}.contact__links{flex-wrap:wrap;gap:10px;margin-top:23px;display:flex}.footer{background:var(--bg-alt);transition:background-color .25s}.footer__inner{justify-content:space-between;align-items:center;gap:18px;min-height:82px;padding-block:18px;display:flex}.footer__brand{flex:none}.footer__inner p{color:var(--ink-muted);text-align:center;font-size:.82rem}.footer__top{color:var(--link);font-family:var(--font-mono);flex:none;font-size:.72rem;text-decoration:none}.footer__top:hover{color:var(--accent)}[data-reveal]{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(12px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes music-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-green) 18%, transparent)}}@media (width<=700px){:root{--pad-x:22px}.navbar__inner,.navbar__links{gap:14px}.navbar__controls{gap:7px}.music-widget--sm{padding-inline:7px}.hero__aside{display:none}.page-section{padding-block:62px}.timeline-item,.experience-item__top{grid-template-columns:28px minmax(0,1fr);gap:10px}.timeline-item__period{text-align:left;grid-column:2;padding-top:0}.experience-item__top .timeline-item__period{text-align:left;grid-column:2}.experience-item__details{margin-left:38px}}@media (width<=520px){:root{--pad-x:20px}html{font-size:15px}.navbar__inner{flex-wrap:wrap;gap:10px;min-height:64px;padding-block:12px;position:relative}.navbar__brand{margin-right:auto}.navbar__menu-toggle{justify-content:center;align-items:center;display:inline-flex}.navbar__links{flex-direction:column;order:3;align-items:stretch;gap:0;width:100%;padding-block:8px;display:none}.navbar__links--open{display:flex}.navbar__links a{padding:10px 0}.navbar__links a:after{display:none}.navbar__controls{gap:6px}.music-widget--sm{min-width:35px;padding-inline:8px}.music-widget--sm span:last-child{display:none}.theme-toggle{padding-inline:8px}.hero{padding-block:76px 58px}.hero__name{font-size:clamp(3.8rem,17vw,5.7rem)}.hero__bio{font-size:1rem}.hero__contact{align-items:flex-start;gap:9px}.hero__contact-label{width:100%;margin-bottom:3px}.page-section{padding-block:54px}.section-title{font-size:clamp(2rem,10vw,2.7rem)}.projects-list{margin-top:18px}.project-entry{padding-block:22px 28px}.pe__top{gap:10px}.pe__title{font-size:1.55rem}.pe__desc,.pe__img-row,.pe__tech,.pe__links{margin-left:0}.pe__desc{font-size:.98rem}.pe__links{gap:8px}.pe__links .retro-link{font-size:.76rem}.stack-list{grid-template-columns:1fr;gap:0}.stack-item{padding-block:11px}.footer__inner{flex-wrap:wrap;align-items:flex-start;gap:12px;padding-block:20px}.footer__inner p{text-align:left;order:3;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.pictures-section{scroll-margin-top:90px}.pictures-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 16px;margin-top:30px;display:grid}.picture-card{min-width:0}.picture-card__button{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--ink);text-align:left;cursor:zoom-in;box-shadow:2px 3px 0 var(--rule);padding:8px 8px 12px;transition:transform .18s,box-shadow .18s;display:block}.picture-card__button--1{transform:rotate(-1.2deg)}.picture-card__button--2{transform:rotate(.8deg)}.picture-card__button--3{transform:rotate(-.5deg)}.picture-card__button--4{transform:rotate(1.1deg)}.picture-card__button:hover,.picture-card__button:focus-visible{z-index:2;box-shadow:4px 7px 0 var(--rule);position:relative;transform:translateY(-4px)rotate(0)}.picture-card__photo{background:var(--bg-alt);aspect-ratio:4/5;display:block;overflow:hidden}.picture-card__photo img{object-fit:cover;filter:saturate(.84)sepia(.1);width:100%;height:100%;transition:filter .18s,transform .25s}.picture-card__button:hover .picture-card__photo img{filter:saturate();transform:scale(1.035)}.picture-card__caption{color:var(--ink-dim);font-family:var(--font-mono);align-items:baseline;gap:7px;padding-top:10px;font-size:.7rem;line-height:1.45;display:flex}.picture-card__caption span{color:var(--accent);flex:none}.picture-lightbox{z-index:100;background:#0f0a05e0;place-items:center;padding:24px;animation:.16s ease-out picture-lightbox-in;display:grid;position:fixed;inset:0}.picture-lightbox__close{border-radius:var(--radius);color:#f0e8d6;font-family:var(--font-mono);cursor:pointer;background:#241a10;border:1px solid #b8a58c;padding:8px 12px;position:absolute;top:18px;right:20px}.picture-lightbox__image{object-fit:contain;border:8px solid #f8f5ee;max-width:min(900px,92vw);max-height:82vh;display:block;box-shadow:0 12px 45px #00000059}.picture-lightbox__caption{color:#f0e8d6;font-family:var(--font-mono);text-align:center;margin-top:12px;font-size:.8rem}@keyframes picture-lightbox-in{0%{opacity:0}to{opacity:1}}@media (width<=700px){.pictures-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}}@media (width<=520px){.pictures-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px;margin-top:22px}.picture-card__button{padding:6px 6px 10px}.picture-card__caption{font-size:.65rem}.picture-lightbox{padding:14px}}@media (prefers-reduced-motion:reduce){.picture-card__button,.picture-card__photo img,.picture-lightbox{transition:none;animation:none}.picture-card__button{transform:none}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f5ee;--bg-alt:#f0ebe0;--surface:#fff;--ink:#1a1208;--ink-dim:#3c2f1e;--ink-muted:#7a6650;--ink-faint:#b0957a;--accent:#9b2800;--accent-hover:#c13300;--accent-soft:#fdf0eb;--link:#0f5e55;--link-hover:#1a8a7a;--accent-green:#1a6b35;--accent-gold:#8a5e00;--rule:#d8ceba;--rule-dark:#b8a58c;--font-serif:"Times New Roman", "TimesNewRoman", Times, Georgia, "Palatino Linotype", Palatino, serif;--font-mono:"Courier New", Courier, "Lucida Console", monospace;--font-sans:Arial, Helvetica, sans-serif;--max-w:760px;--pad-x:28px;--radius:3px;--radius-sm:1px;scroll-behavior:smooth;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#17110a;--bg-alt:#1f170e;--surface:#241a10;--ink:#f0e8d6;--ink-dim:#c8b899;--ink-muted:#8a7560;--ink-faint:#5a4a38;--accent:#e04010;--accent-hover:#f05020;--accent-soft:#2a1508;--link:#3dbfab;--link-hover:#5ad4c0;--accent-green:#4ade80;--accent-gold:#d4a30a;--rule:#3a2e20;--rule-dark:#5a4a35;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{font-size:16px}body{font-family:var(--font-serif);background-color:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.68;transition:background-color .28s,color .28s;overflow-x:hidden}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--rule-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}::selection{background:var(--accent);color:#fff}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
