:root{--viewport: 100vw;--cream-bg: #f5ecd9;--red-line: #c35634;--orange-line: #d98a32;--yellow-line: #c9a54b;--teal-line: #4f8f8c;--olive-line: #7b8a3a;--charcoal-text: #2f2b28;--paper-shadow: rgba(0, 0, 0, .18);--paper-soft-shadow: rgba(0, 0, 0, .12);--radius-lg: 18px;--radius-sm: 12px;--content-max: 1100px;--page-pad: 18px}@supports (width: 100svw){:root{--viewport: 100svw}}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--charcoal-text);background:var(--cream-bg);background-image:radial-gradient(rgba(0,0,0,.02) 1px,transparent 0);background-size:24px 24px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%}html{overflow-x:hidden}a{color:var(--charcoal-text);text-decoration:none}h1,h2,h3,h4{margin:0;color:var(--charcoal-text)}.app{min-height:100vh}.paper-elevated{box-shadow:0 6px 16px var(--paper-shadow)}.paper-subtle{box-shadow:0 3px 10px var(--paper-soft-shadow)}.paper-soft{box-shadow:0 2px 8px var(--paper-soft-shadow)}.nav-container{position:sticky;top:0;z-index:50}.stripe-bar{display:flex;flex-direction:column;position:relative}.stripe{height:14px;box-shadow:0 2px 6px var(--paper-shadow)}.stripe.red{background:var(--red-line)}.stripe.orange{background:var(--orange-line)}.stripe.yellow{background:var(--yellow-line)}.stripe.teal{background:var(--teal-line)}.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:14px var(--page-pad);max-width:100%;width:100%;margin:0 auto;background:rgba(245,236,217,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav-brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.nav-brand{font-weight:700;letter-spacing:.02em;text-transform:uppercase;font-size:.95rem}.nav-links{display:flex;list-style:none;gap:16px;padding:0;margin:0}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:10px;background:rgba(245,236,217,.92);border:1px solid rgba(47,43,40,.2);border-radius:12px;cursor:pointer;box-shadow:0 2px 8px var(--paper-soft-shadow);transition:transform .2s ease,box-shadow .2s ease}.nav-toggle:hover,.nav-toggle:focus-visible{transform:translateY(-1px);box-shadow:0 3px 10px var(--paper-soft-shadow)}.nav-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--charcoal-text);transition:transform .2s ease,opacity .2s ease}.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-link{background:transparent;border:none;font:inherit;color:var(--charcoal-text);padding:8px 10px;cursor:pointer;border-radius:10px;transition:background .2s ease,transform .2s ease}.nav-link:hover,.nav-link:focus-visible{transform:translateY(-1px)}.nav-link.tone-red:hover,.nav-link.tone-red:focus-visible{background:rgba(195,86,52,.16)}.nav-link.tone-orange:hover,.nav-link.tone-orange:focus-visible{background:rgba(217,138,50,.16)}.nav-link.tone-yellow:hover,.nav-link.tone-yellow:focus-visible{background:rgba(201,165,75,.18)}.nav-link.tone-teal:hover,.nav-link.tone-teal:focus-visible{background:rgba(79,143,140,.16)}.hero-wrapper{padding:100px var(--page-pad) 48px;min-height:100vh;display:flex;align-items:flex-start}.hero{max-width:min(var(--content-max),calc(var(--viewport) - 2 * var(--page-pad)));width:100%;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}.hero-text{padding:18px;position:relative;max-width:800px;width:100%}.hero h1{font-size:3.6rem;font-weight:700;line-height:1.05;text-shadow:0 3px 8px var(--paper-shadow)}.hero h2{text-transform:uppercase;letter-spacing:.22em;font-size:1.2rem;margin-top:10px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin:0 0 10px;color:#2f2b28cc}.hero-description{margin-top:18px;margin-bottom:28px;font-size:1.05rem;max-width:680px}.hero-actions{display:flex;flex-direction:column;gap:16px}.hero-graphic{background:#1f1b19;border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:12px;min-height:340px;max-width:min(440px,calc(var(--viewport) - 2 * var(--page-pad) - 8px));width:100%;margin-left:auto;box-shadow:0 10px 20px var(--paper-shadow),0 0 0 6px #1f1b1980}.sign-top{color:#f8f0df;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.85rem;padding:8px 12px;background:linear-gradient(90deg,rgba(195,86,52,.18),rgba(79,143,140,.18));border-radius:10px}.sign-body{background:#2b2725;border-radius:14px;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 0 2px #0000002e,0 6px 12px #0000003d;padding:18px 14px;display:grid;gap:12px}.train-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:rgba(255,255,255,.02);padding:10px 12px;border-radius:10px}.train-line-dot{width:14px;height:14px;border-radius:4px;display:inline-block;box-shadow:0 3px 8px var(--paper-soft-shadow)}.train-line-dot.red{background:var(--red-line)}.train-line-dot.teal{background:var(--teal-line)}.train-line-dot.yellow{background:var(--yellow-line)}.train-line-dot.orange{background:var(--orange-line)}.train-destination{color:#f8f0df;font-weight:700;letter-spacing:.04em}.train-status{color:#f2e3a2;font-weight:700;letter-spacing:.1em;min-width:64px;text-align:right;text-shadow:0 0 8px rgba(242,227,162,.4)}.train-status.status-brd,.train-status.status-arr,.train-status.status-soon{color:#f2e3a2}.sign{position:relative;isolation:isolate}.sign:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:14px;border:1px dashed rgba(255,255,255,.04);pointer-events:none;z-index:0}.skill-swap{display:inline-block;min-width:200px;animation:flipText .8s ease}.hero-stripe-stack{display:inline-flex;gap:6px;margin:12px 0 10px}.hero-stripe{height:8px;width:82px;border-radius:999px;box-shadow:0 3px 8px var(--paper-soft-shadow)}.hero-stripe.red{background:var(--red-line)}.hero-stripe.yellow{background:var(--yellow-line)}.hero-stripe.teal{background:var(--teal-line)}.social-row{display:flex;gap:14px}.social{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px var(--paper-shadow),0 0 0 5px #f8f0dfe6;transition:transform .2s ease,box-shadow .2s ease}.social.linkedin{background:var(--red-line)}.social.github{background:var(--teal-line)}.social:hover,.social:focus-visible{transform:scale(1.05);box-shadow:0 6px 14px var(--paper-shadow),0 0 0 7px #f8f0df}.social svg{width:22px;height:22px}.scroll-btn{background:#fff4dd;border:1px solid rgba(47,43,40,.18);color:var(--charcoal-text);padding:14px 16px;border-radius:999px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 4px 10px var(--paper-shadow),0 0 0 6px #fff4ddcc}.scroll-btn:hover,.scroll-btn:focus-visible{transform:translateY(-2px);border-color:#2f2b2847;box-shadow:0 6px 14px var(--paper-shadow),0 0 0 8px #fff4ddf2}main{max-width:min(var(--content-max),calc(var(--viewport) - 2 * var(--page-pad)));width:100%;margin:0 auto;padding:24px var(--page-pad) 64px}.section{max-width:min(var(--content-max),calc(var(--viewport) - 2 * var(--page-pad)));width:100%;margin:0 auto 56px;scroll-margin-top:120px}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.section-line{display:inline-flex;align-items:center;gap:8px}.mini-line{display:inline-block;height:8px;width:52px;border-radius:6px;box-shadow:0 2px 6px var(--paper-soft-shadow)}.mini-line.red{background:var(--red-line)}.mini-line.orange{background:var(--orange-line)}.mini-line.yellow{background:var(--yellow-line)}.mini-line.teal{background:var(--teal-line)}.station-dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--charcoal-text);background:var(--cream-bg);box-shadow:0 2px 6px var(--paper-soft-shadow)}.section h3{font-size:1.3rem;letter-spacing:.04em}.body-text{margin:0;color:#2f2b28e6}.about-copy{display:grid;gap:14px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.project-card{background:#fdf6e8;border-radius:var(--radius-sm);padding:18px;position:relative;overflow:hidden}.project-accent{position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--red-line),var(--orange-line),var(--teal-line))}.project-card h4{margin-top:10px;margin-bottom:8px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tag{padding:6px 10px;background:rgba(0,0,0,.05);border-radius:20px;font-size:.85rem}.text-link{font-weight:600;position:relative}.text-link:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:var(--charcoal-text);opacity:.4;transition:opacity .2s ease}.text-link:hover:after,.text-link:focus-visible:after{opacity:.8}.timeline{position:relative;padding-left:32px}.timeline-line{position:absolute;left:15px;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--teal-line),var(--red-line),var(--yellow-line));border-radius:4px;box-shadow:0 2px 8px var(--paper-soft-shadow)}.timeline-row{display:grid;grid-template-columns:20px 1fr;gap:14px;margin-bottom:22px}.timeline-marker{width:16px;height:16px;margin-top:6px;border-radius:50%;background:var(--cream-bg);border:4px solid var(--charcoal-text);box-shadow:0 3px 8px var(--paper-soft-shadow)}.timeline-marker.small{width:14px;height:14px}.timeline-card{background:#fdf6e8;border-radius:var(--radius-sm);padding:14px 16px}.card-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-header h4{margin:0}.card-meta{font-size:.9rem;color:#2f2b28b3}.card-subtitle{margin:6px 0 10px;font-weight:600}.card-list{margin:0;padding-left:18px;color:#2f2b28e6}.card-list li+li{margin-top:6px}.education-timeline .timeline-card{padding-bottom:10px}.footer{background:#f8f0df;padding:28px var(--page-pad) 36px;box-shadow:0 -4px 12px var(--paper-soft-shadow)}.footer-line{max-width:min(var(--content-max),calc(var(--viewport) - 2 * var(--page-pad)));width:100%;display:flex;gap:8px;margin:0 auto 12px}.footer-content{max-width:min(var(--content-max),calc(var(--viewport) - 2 * var(--page-pad)));width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.footer-title{margin:0 0 4px;font-weight:700;letter-spacing:.02em}.footer-links{display:flex;gap:14px}.footer-links a{font-weight:600;position:relative}.footer-links a:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:var(--charcoal-text);opacity:.2;transition:opacity .2s ease}.footer-links a:hover:after,.footer-links a:focus-visible:after{opacity:.7}@media (max-width: 900px){.nav-bar{flex-direction:column;align-items:flex-start;gap:10px;padding:12px var(--page-pad)}.stripe{height:10px}.hero{grid-template-columns:1fr;text-align:center}.hero-graphic{margin:0 auto}.hero h1{font-size:2.6rem}}@media (max-width: 640px){:root{--page-pad: 12px}.nav-container{top:-1px}.nav-bar{padding:10px var(--page-pad);gap:8px}.nav-brand-row{align-items:center;width:100%}.nav-toggle{display:inline-flex}.nav-brand{font-size:.85rem;word-break:break-word;max-width:100%}.nav-links{display:none;gap:6px;width:100%;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.nav-link{display:block;width:100%;padding:10px 12px;text-align:left;font-size:.95rem}.hero-wrapper{padding:24px var(--page-pad) 16px;min-height:auto}.hero{gap:24px}.hero h1{font-size:2.2rem}.hero-description{font-size:1rem;margin-bottom:20px}main{padding:16px var(--page-pad) 48px}.section{margin-bottom:42px;scroll-margin-top:140px}.card-header,.footer-content{flex-direction:column;align-items:flex-start}}@media (max-width: 480px){.hero{gap:18px}.hero-text{padding:12px}.hero h1{font-size:1.9rem;line-height:1.1}.hero h2{font-size:1rem;letter-spacing:.16em}.hero-description{font-size:.98rem}.hero-actions{align-items:stretch}.social-row{gap:10px}.scroll-btn{width:100%;text-align:center}.hero-graphic{max-width:100%;padding:8px;box-shadow:0 8px 16px var(--paper-shadow),0 0 0 4px #1f1b1980}.projects-grid{grid-template-columns:1fr;gap:14px}.timeline{padding-left:0}.timeline-row{position:relative;grid-template-columns:1fr;gap:8px;padding-left:28px}.timeline-card{padding:12px 14px}.timeline-line{left:8px;width:3px}.timeline-marker{position:absolute;left:0;top:16px;margin-top:0;width:12px;height:12px;border-width:3px}.footer-links{flex-wrap:wrap;row-gap:8px}}@keyframes flipText{0%{opacity:0;transform:rotateX(-90deg)}20%{opacity:1;transform:rotateX(0)}70%{opacity:1;transform:rotateX(0)}90%{opacity:0;transform:rotateX(90deg)}to{opacity:0;transform:rotateX(90deg)}}.metro-map{max-width:100%;height:auto;margin:0 auto;display:block}.metro-map svg{width:100%;height:auto;display:block}
