.portfolio-modern{--pm-nobel: #c9c0be;--pm-flint: #6b7376;--pm-void: #0f1110;--pm-rust: #5a0f0a;--pm-ember: #b0100c;--pm-signal: #e32721;--pm-bg: var(--page-grid-bg, #0e1010);--pm-bg2: #181b1a;--pm-surface: #1f2422;--pm-border: rgba(201, 192, 190, .11);--pm-text: #f3f0ef;--pm-muted: #a9a29f;--pm-muted2: #7a817f;--pm-accent: var(--pm-signal);--pm-accent-bright: #ff5a52;--pm-accent-dim: rgba(227, 39, 33, .14);--pm-tab-from: #9c1205;--pm-tab-to: #ff4a44;--pm-tab-glow: rgba(217, 17, 17, .28);--pm-font-display: "Plus Jakarta Sans", system-ui, sans-serif;--pm-font-body: "IBM Plex Sans", system-ui, sans-serif;--pm-max: 1080px;--pm-pad: clamp(2.5rem, 6vw, 4.5rem);--pm-grid-line: var(--page-grid-line, rgba(255, 255, 255, .04));margin:0;padding:0;background-color:var(--pm-bg);background-image:linear-gradient(var(--pm-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--pm-grid-line) 1px,transparent 1px);background-size:48px 48px;background-position:center top;color:var(--pm-text);font-family:var(--pm-font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;position:relative;z-index:1}.portfolio-modern .skip-link{position:absolute;left:-9999px;z-index:999;padding:.5rem 1rem;background:var(--pm-accent);color:var(--pm-void);font-weight:600;border:none}.portfolio-modern .skip-link:focus{left:1rem;top:1rem}.portfolio-modern a{color:var(--pm-accent);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.portfolio-modern a:hover{border-bottom-color:#e3272173}.portfolio-modern .site-nav{max-width:var(--pm-max);margin:0 auto;padding:1.25rem 1.5rem 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;font-size:.9rem}.portfolio-modern .site-nav__home{color:var(--pm-muted);font-weight:500}.portfolio-modern .site-nav__home:hover{color:var(--pm-text)}.portfolio-modern .site-nav__links{display:flex;gap:1.25rem}.portfolio-modern .site-nav__links a{color:var(--pm-muted2);font-weight:500}.portfolio-modern .site-nav__links a:hover{color:var(--pm-text)}.portfolio-modern .hero{max-width:var(--pm-max);margin:0 auto;padding:2rem 1.5rem var(--pm-pad)}.portfolio-modern .hero__inner{padding-bottom:2rem}.portfolio-modern .hero__eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pm-muted2);margin:0 0 1rem}.portfolio-modern .hero__title{font-family:var(--pm-font-display);font-weight:800;font-size:clamp(2.75rem,10vw,4.25rem);line-height:.95;letter-spacing:-.04em;margin:0 0 1.25rem}.portfolio-modern .hero__title-line{display:block}.portfolio-modern .hero__title-line--accent{background:linear-gradient(105deg,var(--pm-text) 0%,var(--pm-accent-bright) 48%,var(--pm-nobel) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.portfolio-modern .hero__tagline{font-size:1.05rem;color:var(--pm-muted);max-width:38ch;margin:0 0 1rem}.portfolio-modern .hero__lede{color:var(--pm-muted);max-width:42ch;margin:0 0 1.5rem}.portfolio-modern .hero__social{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.92rem;font-weight:500}.portfolio-modern .hero__pill{color:var(--pm-text);border-bottom:none;padding:.35rem .65rem;border-radius:999px;background:var(--pm-surface);border:1px solid var(--pm-border)}.portfolio-modern .hero__pill:hover{background:var(--pm-accent-dim);border-color:#e3272147;color:var(--pm-accent-bright)}.portfolio-modern .hero__dot{color:var(--pm-muted2);-webkit-user-select:none;user-select:none}.portfolio-modern .mini-timeline{border:1px solid var(--pm-border);border-radius:14px;background:#181b1aeb;background:color-mix(in srgb,var(--pm-bg2) 88%,transparent);overflow:hidden}.portfolio-modern .mini-timeline__tabs{display:flex;border-bottom:1px solid var(--pm-border)}.portfolio-modern .mini-timeline__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--pm-font-body);font-size:.95rem;font-weight:600;padding:.95rem 1.35rem;margin:0;border:none;background:transparent;color:var(--pm-muted2);cursor:pointer;position:relative;transition:color .15s ease}.portfolio-modern .mini-timeline__tab:hover{color:var(--pm-muted)}.portfolio-modern .mini-timeline__tab[aria-selected=true]{color:var(--pm-text)}.portfolio-modern .mini-timeline__tab[aria-selected=true]:after{content:"";position:absolute;left:1rem;right:1rem;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--pm-tab-from),var(--pm-tab-to));border-radius:1px;box-shadow:0 0 14px var(--pm-tab-glow)}.portfolio-modern .mini-timeline__tab:focus-visible{outline:2px solid var(--pm-accent);outline-offset:-2px}.portfolio-modern .mini-timeline__panel[hidden]{display:none}.portfolio-modern .mini-timeline__list{list-style:none;margin:0;padding:1.25rem 1.35rem 1.35rem}.portfolio-modern .mini-timeline__item{display:grid;grid-template-columns:44px 1fr;gap:.85rem 1rem;align-items:flex-start;position:relative;padding-bottom:1.35rem}.portfolio-modern .mini-timeline__item:last-child{padding-bottom:0}.portfolio-modern .mini-timeline__item:not(:last-child):before{content:"";position:absolute;left:20px;top:40px;bottom:0;width:1px;background:#c9c0be24}.portfolio-modern .mini-timeline__node{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--pm-bg2);border:1px solid rgba(201,192,190,.16);font-size:.65rem;font-weight:700;letter-spacing:.02em;color:var(--pm-muted);z-index:1}.portfolio-modern .mini-timeline__node span{line-height:1;text-align:center;max-width:34px}.portfolio-modern .mini-timeline__dates{font-size:.75rem;color:var(--pm-muted2);margin:0 0 .35rem;letter-spacing:.02em}.portfolio-modern .mini-timeline__org{font-family:var(--pm-font-display);font-size:1.02rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .2rem;color:var(--pm-text)}.portfolio-modern .mini-timeline__role{font-size:.88rem;color:var(--pm-muted);margin:0 0 .65rem}.portfolio-modern .mini-timeline__bullets{margin:0;padding:0 0 0 1rem;color:var(--pm-muted2);font-size:.82rem;line-height:1.55}.portfolio-modern .mini-timeline__bullets li{margin-bottom:.35rem}.portfolio-modern .section{max-width:var(--pm-max);margin:0 auto;padding:var(--pm-pad) 1.5rem;border-top:1px solid var(--pm-border);display:grid;grid-template-columns:minmax(100px,140px) 1fr;gap:1.5rem 2rem;align-items:start}.portfolio-modern .section__gutter{position:sticky;top:1.5rem}.portfolio-modern .section__label{font-family:var(--pm-font-display);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pm-accent);margin:0}.portfolio-modern .section__content .lead{font-size:1.15rem;color:var(--pm-text);margin:0 0 1.25rem;line-height:1.5}.portfolio-modern .section__content p{color:var(--pm-muted);margin:0 0 1rem;max-width:58ch}.portfolio-modern .section__content strong{color:var(--pm-text);font-weight:600}.portfolio-modern .section__cta{margin-top:1.5rem;font-size:.95rem}.portfolio-modern .skill-groups{display:flex;flex-direction:column;gap:1.75rem}.portfolio-modern .skill-group__title{font-family:var(--pm-font-display);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pm-muted2);margin:0 0 .65rem}.portfolio-modern .skill-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.portfolio-modern .skill-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .75rem;border-radius:8px;background:var(--pm-surface);border:1px solid var(--pm-border);font-size:.88rem;color:var(--pm-text)}.portfolio-modern .skill-pill img[src*="github/github-original"]{filter:brightness(0) invert(1);opacity:.9}.portfolio-modern .section--projects{display:block;padding-bottom:calc(var(--pm-pad) * 1.1)}.portfolio-modern .section__head{max-width:var(--pm-max);margin:0 auto;padding:0 1.5rem var(--pm-pad)}.portfolio-modern .section__title{font-family:var(--pm-font-display);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:800;letter-spacing:-.03em;margin:0 0 .35rem}.portfolio-modern .section__sub{margin:0;color:var(--pm-muted);font-size:1rem}.portfolio-modern .section__sub a{font-weight:500}.portfolio-modern .project-row{max-width:var(--pm-max);margin:0 auto;padding:0 1.5rem 3.5rem;display:grid;grid-template-columns:1fr 1.1fr;gap:2rem 2.5rem;align-items:center}.portfolio-modern .project-row--flip{direction:rtl}.portfolio-modern .project-row--flip>*{direction:ltr}.portfolio-modern .project-row__media{position:relative;border-radius:12px;border:1px solid var(--pm-border);background:var(--pm-surface);min-height:200px;overflow:hidden}.portfolio-modern .project-row__badge{position:absolute;top:1rem;left:1rem;font-family:var(--pm-font-display);font-size:.7rem;font-weight:800;letter-spacing:.12em;color:var(--pm-accent);z-index:1}.portfolio-modern .project-row__art{height:100%;min-height:200px;display:flex;align-items:center;justify-content:center;font-family:var(--pm-font-display);font-weight:800;font-size:clamp(1.25rem,3vw,1.65rem);letter-spacing:-.02em;padding:2rem}.portfolio-modern .project-row__art--ride{background:radial-gradient(ellipse 80% 80% at 30% 20%,rgba(227,39,33,.16),transparent 55%),linear-gradient(160deg,#1c2220,var(--pm-void));color:var(--pm-nobel)}.portfolio-modern .project-row__art--film{background:radial-gradient(ellipse 70% 70% at 70% 80%,rgba(75,8,0,.38),transparent 50%),linear-gradient(200deg,#1a1412,#100e0d);color:#e8dedc}.portfolio-modern .project-row__title{font-family:var(--pm-font-display);font-size:1.35rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.02em}.portfolio-modern .project-row__desc{color:var(--pm-muted);margin:0 0 1rem;max-width:48ch}.portfolio-modern .project-row__tags{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.portfolio-modern .project-row__tags li{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pm-muted2);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--pm-border);background:#ffffff05}.portfolio-modern .project-row__links{display:flex;gap:1.25rem;font-size:.95rem;font-weight:600}.portfolio-modern .project-row__links a{border-bottom:1px solid rgba(227,39,33,.38)}.portfolio-modern .project-row__links a:hover{border-bottom-color:var(--pm-accent)}.portfolio-modern .site-footer{padding:2rem 1.5rem 2.5rem;text-align:center;font-size:.85rem;color:var(--pm-muted2);border-top:1px solid var(--pm-border)}.portfolio-modern .site-footer__sep{margin:0 .5rem;opacity:.5}.portfolio-modern .site-footer a{color:var(--pm-muted)}.portfolio-modern .site-footer a:hover{color:var(--pm-accent)}@media(max-width:780px){.portfolio-modern .section{grid-template-columns:1fr}.portfolio-modern .section__gutter{position:static}.portfolio-modern .project-row,.portfolio-modern .project-row--flip{grid-template-columns:1fr;direction:ltr}.portfolio-modern .project-row--flip>*{direction:ltr}}@media(max-width:520px){.portfolio-modern .site-nav__links{width:100%;justify-content:flex-start}.portfolio-modern .hero__social{flex-direction:column;align-items:flex-start}.portfolio-modern .hero__dot{display:none}.portfolio-modern .mini-timeline__item{grid-template-columns:36px 1fr}.portfolio-modern .mini-timeline__node{width:34px;height:34px;font-size:.58rem}.portfolio-modern .mini-timeline__item:not(:last-child):before{left:17px;top:36px}}:root{--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Source Serif 4", Georgia, "Times New Roman", serif;--bg-deep: #0e1010;--bg-mid: #151918;--page-grid-bg: var(--bg-deep);--page-grid-line: rgba(255, 255, 255, .04);--text: #f0eceb;--text-muted: rgba(201, 192, 190, .68);--accent-sky: #e86a62;--accent-violet: #b0100c;--accent-rose: #c9c0be;--accent-glow: rgba(227, 39, 33, .42);--rail-from: rgba(176, 16, 12, .38);--rail-to: rgba(230, 95, 88, .52);--card-edge: rgba(201, 192, 190, .14);--card-fill-a: rgba(24, 28, 26, .92);--card-fill-b: rgba(12, 14, 13, .96)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;letter-spacing:.011em;font-feature-settings:"kern" 1,"liga" 1;color:var(--text);-webkit-font-smoothing:antialiased;background-color:var(--bg-deep);background-image:radial-gradient(ellipse 100% 70% at 15% 0%,rgba(176,16,12,.12),transparent 52%),radial-gradient(ellipse 90% 60% at 95% 15%,rgba(230,95,88,.08),transparent 48%),radial-gradient(ellipse 80% 50% at 50% 100%,rgba(107,115,118,.1),transparent 55%),linear-gradient(168deg,var(--bg-deep) 0%,var(--bg-mid) 42%,#070908 100%);overflow-x:hidden}#root{min-height:100vh;position:relative}.app{position:relative;min-height:100vh;padding-bottom:4rem}.ambient-layer{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.ambient{position:absolute;border-radius:50%;filter:blur(72px);opacity:.4}.ambient--a{left:-8%;width:min(52vw,420px);height:min(52vw,420px);background:radial-gradient(circle,rgba(227,39,33,.22),transparent 68%)}.ambient--b{right:-12%;top:28%;width:min(48vw,360px);height:min(48vw,360px);background:radial-gradient(circle,rgba(107,115,118,.26),transparent 70%)}.ambient--c{left:18%;bottom:-5%;width:min(56vw,440px);height:min(44vw,340px);background:radial-gradient(circle,rgba(156,18,5,.16),transparent 72%)}.timeline-header{position:sticky;top:0;z-index:10;padding:1.25rem 1.5rem 1.5rem;text-align:center;background:linear-gradient(to bottom,rgba(14,16,16,.9) 0%,rgba(14,16,16,.52) 55%,transparent 100%);border-bottom:1px solid rgba(201,192,190,.1)}.back-link{display:inline-block;margin-bottom:.75rem;font-size:.94rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:color .25s ease,text-shadow .25s ease}.back-link:hover{color:var(--accent-sky);text-shadow:0 0 24px var(--accent-glow)}.timeline-title{margin:0;font-family:var(--font-display);font-size:clamp(2rem,6vw,3.1rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;background:linear-gradient(120deg,#fff,#e86a62 42%,#9c1205);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 20px rgba(227,39,33,.22))}.timeline-subtitle{margin:.5rem 0 0;font-size:.9rem;font-weight:500;color:#c9c0be94;letter-spacing:.06em;text-transform:none;line-height:1.45}main{position:relative;z-index:1}.timeline{max-width:1520px;margin:0 auto;padding:2rem 1.25rem 3rem}@media(min-width:768px){.timeline__row--pair>.timeline-card--chain .timeline-card__inner--chain{padding-right:.6rem}.timeline__row--pair>.timeline-card--chain .timeline-card__chain{padding-right:0}}.timeline__row{display:grid;grid-template-columns:1fr 36px 1fr;gap:.75rem;align-items:stretch;margin-bottom:2rem}.timeline__spacer{min-height:1px}.timeline__track{position:relative;display:flex;justify-content:center;padding:1.5rem 0 2.5rem}.timeline__track:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;transform:translate(-50%);border-radius:2px;background:linear-gradient(180deg,rgba(176,16,12,.12),var(--rail-from) 18%,var(--rail-to) 50%,var(--rail-from) 82%,rgba(230,95,88,.1));box-shadow:0 0 28px #e3272133,0 0 48px #9c12051f}.timeline__row:first-child .timeline__track:before{top:50%}.timeline__row:last-child .timeline__track:before{bottom:50%}.timeline__dot{position:relative;z-index:1;align-self:center;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#f5e6e4,#e86a62 38%,#9c1205 78%,#2a0a08);box-shadow:0 0 0 3px #0c0e0df2,0 0 28px #e3272173,0 0 42px #9c120538;flex-shrink:0}.timeline-card{min-width:0;perspective:1100px}.timeline-card__inner{position:relative;padding:1.35rem 1.5rem 1.5rem;border-radius:10px;background:linear-gradient(150deg,var(--card-fill-a),var(--card-fill-b));border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 40px #00000080,inset 0 1px #ffffff0d,0 0 0 1px var(--card-edge);overflow:hidden;will-change:transform}.timeline-card__inner:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(230,95,88,.55),rgba(176,16,12,.45),transparent);opacity:.95}.timeline-card__inner--experience{background:linear-gradient(152deg,#341626e6,#0e0c20f5);border-color:#e3302838;box-shadow:0 8px 40px #00000085,inset 0 1px #ffffff0f,0 0 0 1px #e3302824}.timeline-card__inner--experience:before{background:linear-gradient(90deg,transparent,rgba(227,48,40,.55),rgba(201,192,190,.4),transparent)}.timeline-card--experience .timeline-card__date{color:#fed7aaf2;letter-spacing:.09em}.timeline-card--experience .timeline-card__title{color:#fff7ed}.timeline-card__preview--experience{text-align:left}.timeline-card__exp-headline{margin:0 0 .35rem;font-size:.9rem;line-height:1.45;color:#fff7edeb}.timeline-card__exp-meta{margin:0 0 .85rem;font-size:.82rem;line-height:1.45;color:#e4d2cce0}.timeline-card__exp-sep{opacity:.75;font-weight:400}.timeline-card__preview-block--flush{margin-top:0}.timeline-card--experience .timeline-card__preview-label{color:#fed7aaf2}.timeline-card__preview-list--experience{list-style:disc}.timeline-card__cta--experience{color:#ff7d73d1}.timeline-card__cta--experience:hover{color:#ff9a90}.timeline-card__exp-pdf-wrap{margin:.35rem 0 0;padding:0 0 0 1.5rem}.timeline-card__exp-pdf{font-size:.8rem;font-weight:500;color:#ff7d73e0;text-decoration:none}.timeline-card__exp-pdf:hover{color:#ff9a90;text-decoration:underline}.timeline-card__main-link--chain-head{display:block;padding-bottom:.85rem;margin-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.08);text-decoration:none;color:inherit;border-radius:8px 8px 0 0;outline-offset:4px}.timeline-card__main-link--chain-head:focus-visible{outline:2px solid rgba(255,125,115,.75)}.timeline-card__inner--chain{padding-bottom:1.15rem}.timeline-card__chain{display:flex;flex-direction:row;align-items:stretch;gap:0;margin:0;padding:0 .35rem .35rem 1.35rem;min-width:0}.timeline-card__chain-node{flex:1 1 0;min-width:0;display:block;padding:.55rem .5rem;border-radius:8px;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.07);background:#0003;transition:background .2s ease,border-color .2s ease}.timeline-card__chain-node:hover{background:#00000052;border-color:#e3302847}.timeline-card__chain-node:focus-visible{outline:2px solid rgba(255,125,115,.85);outline-offset:2px}.timeline-card__exp-headline--chain{font-size:.76rem;line-height:1.35}.timeline-card__chain-node .timeline-card__exp-meta{margin-bottom:.45rem;font-size:.74rem}.timeline-card__preview-list--chain{font-size:.68rem;line-height:1.38;padding-left:.95rem;margin:0}.timeline-card__preview-list--chain li{margin-bottom:.22rem}.timeline-card__chain-connector{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;align-self:center;padding:0 .15rem}.timeline-card__chain-line{width:.4rem;height:2px;background:linear-gradient(90deg,#e3302833,#e330288c);border-radius:1px}.timeline-card__chain-line:last-child{background:linear-gradient(90deg,#e330288c,#e3302833)}.timeline-card__chain-node-dot{width:6px;height:6px;border-radius:50%;background:#ff7d73e0;box-shadow:0 0 8px #e3302866;flex-shrink:0}@media(max-width:720px){.timeline-card__chain{flex-direction:column;padding-left:1.2rem;padding-right:.85rem}.timeline-card__chain-connector{flex-direction:column;padding:.3rem 0;width:100%}.timeline-card__chain-connector .timeline-card__chain-line{width:2px;height:.65rem;background:linear-gradient(180deg,#e3302833,#e330288c)}.timeline-card__chain-connector .timeline-card__chain-line:last-child{background:linear-gradient(180deg,#e330288c,#e3302833);width:2px;height:.65rem}}.timeline-card__date{display:block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#e65f58eb;margin-bottom:.65rem}.timeline-card__title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;color:#f5f3ff;text-shadow:0 2px 18px rgba(0,0,0,.35)}.timeline-card__body{margin:0;font-size:.98rem;line-height:1.62;color:var(--text-muted);letter-spacing:0}.timeline-card__main-link{display:block;min-width:0;text-decoration:none;color:inherit;border-radius:8px;outline-offset:4px}.timeline-card__main-link:focus-visible{outline:2px solid var(--accent-sky)}.timeline-card__cta{display:block;margin:.85rem 0 0;font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:none;color:#e65f58c7;text-decoration:none;border-radius:4px;outline-offset:4px}.timeline-card__cta:hover{color:var(--accent-sky)}.timeline-card__cta:focus-visible{outline:2px solid var(--accent-sky)}.timeline-card__preview--in-link{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.timeline-card__preview-block--projects{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.08)}.timeline-card__preview-block{margin-bottom:.75rem}.timeline-card__preview-block:last-child{margin-bottom:0}.timeline-card__preview-block .timeline-card__preview-label{display:block;margin-bottom:.4rem;font-size:.875rem;font-weight:600;color:#e65f58f2;letter-spacing:.02em}.timeline-card__preview-list{margin:0;padding-left:1.15rem;list-style:disc;font-size:.8125rem;line-height:1.5;color:var(--text-muted);letter-spacing:0}.timeline-card__preview-list li{margin-bottom:.28rem}.timeline-card__preview-list li:last-child{margin-bottom:0}.timeline-card__preview-list--projects{list-style:square}.timeline-card__preview-empty{list-style:none;margin-left:-1.15rem;padding-left:0;color:var(--text-muted)}.timeline-card__project-line{display:block;font-size:.8125rem;line-height:1.5;color:var(--text-muted)}.timeline-card__project-name{font-weight:600;color:#dcdaf0f2}.timeline-card__project-stack{font-weight:400}.timeline-card__project-git{margin-left:.35rem;font-size:.8rem;font-weight:500;color:#e65f58e0;text-decoration:none;white-space:nowrap}.timeline-card__project-git:hover{color:var(--accent-sky);text-decoration:underline}.semester-page{min-height:100vh;padding-bottom:3rem}.semester-page--experience .semester-header__date{color:#fed7aae6}.semester-block__heading--experience{color:#e33028f2;border-bottom-color:#e3302838}.semester-exp__org{margin:0 0 .35rem;font-size:1.05rem;color:#e8e6f2f2}.semester-exp__role-line{margin:0 0 1.25rem;font-size:.98rem;color:#e4d2cce0}.semester-exp__sep{opacity:.8;font-weight:400}.semester-exp__pdf-wrap{margin:0 0 1rem;font-size:.95rem}.semester-exp__subheading{margin:0 0 .65rem;font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#e33028d9}.semester-list--experience li{margin-bottom:.65rem}.semester-chain-page{display:flex;flex-direction:column}.semester-chain-bridge{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.35rem 0 1.35rem}.semester-chain-bridge__line{flex:1;height:2px;max-width:200px;background:linear-gradient(90deg,transparent,rgba(227,48,40,.42),transparent)}.semester-block--chain-node{scroll-margin-top:5rem}.timeline-header.semester-header{position:sticky;top:0;z-index:40;border-bottom-color:#b0100c26;background-color:var(--bg-deep);background-image:linear-gradient(168deg,#070714,#0c0b1a 48%,#05050f);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 12px 28px #000000a6}.timeline-header.semester-header .timeline-title{background:none;-webkit-background-clip:unset;background-clip:unset;color:#eef6ff;-webkit-text-fill-color:#eef6ff;filter:none;text-shadow:0 1px 0 rgba(7,7,20,.9)}.timeline-header.semester-header .semester-intro{color:#dcdaf0f2}.semester-header__nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;max-width:560px;margin:0 auto .75rem}.back-link--home{margin-bottom:0}.semester-header__date{margin:0 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#e65f58d9}.semester-title{margin-bottom:.65rem;font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}.semester-intro{margin:0 auto;max-width:42rem;font-size:1.02rem;line-height:1.65;color:var(--text-muted);letter-spacing:0}.semester-detail{position:relative;z-index:1;max-width:40rem;margin:0 auto;padding:2rem 1.35rem 3rem}.semester-detail--no-top-header{padding-top:1.5rem}.semester-minimal-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;max-width:40rem;margin:0 0 1.75rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:.94rem;font-weight:500}.semester-minimal-nav__link{color:var(--text-muted);text-decoration:none;transition:color .2s ease}.semester-minimal-nav__link:hover{color:var(--accent-sky)}.semester-inline-heading{text-align:center;margin-bottom:2rem}.semester-page-heading{margin:0 0 .65rem;font-family:var(--font-display);font-size:clamp(1.85rem,5vw,2.75rem);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--text)}.semester-block{margin-bottom:2.25rem}.semester-block:last-child{margin-bottom:0}.semester-block__heading{margin:0 0 1rem;font-family:var(--font-body);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#b0100cf2;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.5rem}.semester-list{margin:0;padding-left:1.2rem;color:#e8e6f2e0;font-size:1rem;line-height:1.65;letter-spacing:0}.semester-list li{margin-bottom:.5rem}.semester-list--projects li{list-style:square}.semester-projects{display:flex;flex-direction:column;gap:2rem}.semester-project__title{margin:0 0 .35rem;font-family:var(--font-body);font-size:1.05rem;font-weight:600;color:#f5f3ff;letter-spacing:-.01em;line-height:1.35}.semester-project__stack{margin:0 0 .5rem;font-size:.92rem;color:#b0100cf2;letter-spacing:.01em}.semester-project__link-wrap{margin:0 0 .75rem;font-size:.9rem}.semester-project__external{color:#e65f58f2;text-decoration:none;font-weight:500}.semester-project__external:hover{text-decoration:underline}.semester-project__empty{margin:0;color:var(--text-muted);font-size:1rem}.semester-list--project-bullets{margin-top:.5rem}@media(max-width:767px){.timeline__row{grid-template-columns:32px minmax(0,1fr);gap:.65rem}.timeline__spacer{display:none}.timeline__track{grid-column:1;grid-row:1;padding:.25rem 0 2rem;align-self:stretch}.timeline-card{grid-column:2;grid-row:1}.timeline__row--pair{grid-template-rows:auto auto}.timeline__row--pair>.timeline__track{grid-row:1 / -1;align-self:stretch;padding:.25rem 0 1rem}.timeline__row--pair>.timeline-card:first-of-type{grid-column:2;grid-row:1}.timeline__row--pair>.timeline-card:last-of-type{grid-column:2;grid-row:2;margin-top:1.5rem}}.timeline-embed{position:relative;z-index:1;margin-top:0;padding:2.5rem 0 4rem;border-top:none;background-color:var(--page-grid-bg);background-image:linear-gradient(var(--page-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--page-grid-line) 1px,transparent 1px);background-size:48px 48px;background-position:center top;color:var(--text)}.timeline-embed .timeline-header,.timeline-embed .timeline-header.timeline-header--embed{position:static;top:auto;z-index:auto;border-bottom:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;padding-top:.5rem;padding-bottom:1.25rem}.timeline-embed .back-link{color:#ffffffeb}.timeline-embed .back-link:hover{color:#fff;text-shadow:0 0 20px rgba(227,39,33,.32)}.timeline-embed .timeline-title{font-family:"Plus Jakarta Sans",var(--font-body),system-ui,sans-serif;font-weight:800;letter-spacing:-.03em;background:linear-gradient(105deg,#f8fafc,#e86a62 42%,#9c1205);-webkit-background-clip:text;background-clip:text;color:transparent;filter:none;text-shadow:none}.timeline-embed .timeline-subtitle{color:#c9c0bed1;letter-spacing:.04em}.timeline-embed .timeline__track:before{background:linear-gradient(180deg,#e327211f,#e3272161 45%,#e3272161 55%,#e327211f);box-shadow:0 0 24px #e327211f}.timeline-embed .timeline__dot{background:radial-gradient(circle at 32% 28%,#f5e6e4,#e32721 45%,#5a0f0a 88%);box-shadow:0 0 0 3px #09090bf2,0 0 20px #e3272152}.timeline-embed .timeline-card__inner{background:linear-gradient(155deg,#14161d,#0f1117);border:1px solid rgba(255,255,255,.07);box-shadow:0 12px 40px #00000073,inset 0 1px #ffffff0a}.timeline-embed .timeline-card__inner:before{background:linear-gradient(90deg,transparent,rgba(227,39,33,.35),rgba(230,95,88,.2),transparent);opacity:.65}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__date{color:#e65f58f2}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__title{font-family:"Plus Jakarta Sans",var(--font-body),system-ui,sans-serif;font-weight:700;color:#f8fafc;text-shadow:none}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__body{color:#d2cccaeb}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__preview-list,.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__preview-list li,.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__preview-empty{color:#d2cccae6}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__preview-block .timeline-card__preview-label{color:#b0100cf2}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__cta{color:#e65f58e0}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__cta:hover{color:#ff8a82}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__project-name{color:#e65f58eb}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__project-line{color:#e65f58bf}.timeline-embed .timeline-card:not(.timeline-card--experience) .timeline-card__project-stack{color:#d2cccad9}.timeline-embed .timeline-card__inner--experience{background:linear-gradient(155deg,#1a1211,#141616);border-color:#e3272138;box-shadow:0 12px 40px #00000073,inset 0 1px #ffffff0a,0 0 0 1px #9c12051f}.timeline-embed .timeline-card__inner--experience:before{background:linear-gradient(90deg,transparent,rgba(156,18,5,.38),rgba(227,39,33,.22),transparent)}.timeline-embed .timeline-card--experience .timeline-card__date{color:#ff8276f5}.timeline-embed .timeline-card--experience .timeline-card__title{font-family:"Plus Jakarta Sans",var(--font-body),system-ui,sans-serif;font-weight:700;color:#f6f0ee;text-shadow:none}.timeline-embed .timeline-card--experience .timeline-card__body{color:#dcd2cee6}.timeline-embed .timeline-card--experience .timeline-card__preview-list,.timeline-embed .timeline-card--experience .timeline-card__preview-list li,.timeline-embed .timeline-card--experience .timeline-card__preview-empty{color:#d2c8c4e0}.timeline-embed .timeline-card--experience .timeline-card__preview-block .timeline-card__preview-label{color:#ffa094eb}.timeline-embed .timeline-card__exp-headline{color:#f8f2f0f5}.timeline-embed .timeline-card__exp-meta{color:#e65f58e0}.timeline-embed .timeline-card__exp-headline--chain{color:#f8f2f0f0}.timeline-embed .timeline-card__chain-node{color:#fff8f6f2}.timeline-embed .timeline-card__cta--experience{color:#ff8c80e6}.timeline-embed .timeline-card__cta--experience:hover{color:#ff9a90}.timeline-embed .timeline-card__exp-pdf{color:#ff7d73e0}.timeline-embed .timeline-card__exp-pdf:hover{color:#ff9a90}.timeline-embed .timeline-card--experience .timeline-card__project-name{color:#e33028e6}.timeline-embed .timeline-card--experience .timeline-card__project-line{color:#ff7d73a6}.timeline-embed .timeline-card__main-link--chain-head{color:inherit}@media(prefers-reduced-motion:reduce){.ambient{display:none}}
