/* Jessica Bellewood portfolio: shared design tokens and components. */
:root {
  --ds-ivory:#faf8f3; --ds-white:#fff; --ds-ink:#29232e; --ds-muted:#655b6a;
  --ds-plum:#67366e; --ds-plum-dark:#4e2854; --ds-lilac:#eee8f0; --ds-line:#ded5e2;
  --ds-space-1:4px; --ds-space-2:8px; --ds-space-3:12px; --ds-space-4:16px;
  --ds-space-6:24px; --ds-space-8:32px; --ds-space-12:48px; --ds-space-16:64px;
  --ds-radius:16px; --ds-radius-sm:8px; --ds-content:1120px; --ds-reading:760px;
  --ds-display:Georgia,'Times New Roman',serif; --ds-body:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --background:43 41% 97%; --foreground:273 14% 16%; --card:0 0% 100%; --card-foreground:273 14% 16%;
  --muted:285 21% 93%; --muted-foreground:280 8% 39%; --accent:285 21% 93%; --accent-foreground:273 14% 16%;
  --primary:293 34% 32%; --primary-foreground:0 0% 100%; --secondary:285 21% 93%; --secondary-foreground:293 34% 32%;
  --border:282 18% 86%; --input:282 18% 86%; --ring:293 34% 32%; --radius:1rem;
  --brand-primary:var(--ds-plum); --brand-link:var(--ds-plum);
}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{font-family:var(--ds-body);color:var(--ds-ink);background:var(--ds-ivory);-webkit-font-smoothing:antialiased}
p,li{line-height:1.75}a{transition:color .16s ease,background .16s ease,border-color .16s ease}button{font-family:inherit}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ds-plum);outline-offset:4px}
.portfolio-nav{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:20px max(24px,calc((100vw - 1056px)/2));background:var(--ds-ivory);border-bottom:1px solid var(--ds-line);position:sticky;top:0;z-index:30}
.portfolio-nav .header-identity{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;text-decoration:none;color:var(--ds-ink)}
.header-name{font-size:1rem;font-weight:700;letter-spacing:-.02em}.header-role{font-size:.8125rem;font-weight:400;color:var(--ds-muted)}
.portfolio-nav>div{display:flex;align-items:center;gap:24px;font-size:.875rem;font-weight:500}.portfolio-nav>div a{min-height:32px;display:inline-flex;align-items:center}.portfolio-nav>div a:hover{color:var(--ds-plum);text-decoration:underline;text-underline-offset:6px}
#root>.min-h-screen>section,#root>.min-h-screen>article{padding-block:80px}
#root .max-w-6xl{max-width:var(--ds-content)}#root .max-w-4xl{max-width:var(--ds-reading)}
#root>.min-h-screen>section>div>div.mb-12{margin-bottom:40px}
#root section>div>div.mb-12>h3,#root [data-testid=about-section] h3,#root [data-testid=contact-section] h3{font-family:var(--ds-display);font-size:clamp(2rem,3.1vw,2.75rem);font-weight:400;line-height:1.2;letter-spacing:-.035em;margin-bottom:12px;color:var(--ds-ink)}
#root section>div>div.mb-12>p{font-size:1rem;max-width:65ch;color:var(--ds-muted)}
#root [data-testid=hero-section]{padding-block:96px;background:var(--ds-ivory);border-bottom:1px solid var(--ds-line)}
[data-testid=hero-section] .max-w-3xl{max-width:960px}
[data-testid=hero-section] h2{font-family:var(--ds-display);font-size:clamp(2.8rem,5.7vw,4.75rem);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin-bottom:24px;max-width:950px}
[data-testid=hero-section] p{font-size:1.125rem;line-height:1.8;max-width:66ch;margin-bottom:32px}
[data-testid=hero-section] .mb-4{font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;border-radius:6px;padding:8px 12px}
#root [data-testid=about-section],#root [data-testid=skills-section],#root [data-testid=case-studies-section]{background:var(--ds-lilac)}
#root [data-testid=experience-section],#root [data-testid=research-activities-section],#root [data-testid=testimonials-section],#root [data-testid=contact-section]{background:var(--ds-ivory)}
#root .rounded-lg,#root .rounded-2xl{border-radius:var(--ds-radius)}
#root .bg-card{background:var(--ds-white);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
#root .bg-card>.p-6{padding:24px}#root .bg-card h3{font-family:var(--ds-body);font-size:1.125rem;line-height:1.45;font-weight:600;letter-spacing:-.015em}
#root .bg-card p,#root .bg-card li{font-size:.9375rem;line-height:1.75}
#root [data-testid=about-section] .p-8{padding:24px;border:1px solid var(--ds-line);background:var(--ds-white)}
[data-testid=about-section] h4{font-size:.9375rem;line-height:1.4;color:var(--ds-plum)}
#root [data-testid=about-section] .grid{align-items:start}
#root [data-testid^=experience-item-] .bg-card:hover,#root [data-testid^=testimonial-]:hover{box-shadow:none}
#root [data-testid^=experience-item-] .bg-card li{font-size:.9375rem}
#root [data-testid^=case-study-card-]{display:block;border-radius:var(--ds-radius)}
#root [data-testid^=case-study-card-]>.bg-card{min-height:300px;height:100%;display:flex;flex-direction:column;transition:border-color .16s ease,box-shadow .16s ease}
#root [data-testid^=case-study-card-]>.bg-card>div:last-child{margin-top:auto}
#root [data-testid^=case-study-card-] h3{font-size:1.25rem;line-height:1.4}
#root [data-testid^=case-study-card-]:hover>.bg-card{border-color:var(--ds-plum);box-shadow:0 8px 24px #29232e0a;transform:none}
#root .rounded-full{font-size:.75rem;font-weight:500;line-height:1.4;border-radius:6px;padding:5px 9px}
#root [data-testid^=experience-item-] .absolute.rounded-full{border-radius:50%;padding:0}
#root [data-testid^=experience-item-] .absolute.rounded-full>div{border-radius:50%}
#root [role=tablist]{border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:8px;gap:8px;background:var(--ds-white)}
#root [role=tab]{min-height:44px;white-space:normal;border-radius:var(--ds-radius-sm);font-size:.875rem;padding:10px 12px;color:var(--ds-muted);box-shadow:none}
#root [role=tab][data-state=active]{background:var(--ds-plum);color:white}#root [role=tab]:hover:not([data-state=active]){background:var(--ds-lilac);color:var(--ds-plum)}
#root [role=tabpanel] .rounded-full{font-size:.875rem;padding:8px 12px}
#root [data-testid=hero-primary-cta-button],#root [data-testid=hero-secondary-cta-button],#root [data-testid=contact-section] a,#root article .mt-16 a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;height:auto;padding:12px 24px;border-radius:var(--ds-radius-sm);font-size:.875rem;font-weight:600;line-height:1.4}
#root [data-testid=hero-primary-cta-button],#root [data-testid=contact-email-link],#root article .mt-16 a.bg-primary{background:var(--ds-plum)!important;color:white;border:1px solid var(--ds-plum)}
#root [data-testid=hero-primary-cta-button]:hover,#root [data-testid=contact-email-link]:hover,#root article .mt-16 a.bg-primary:hover{background:var(--ds-plum-dark)!important}
#root [data-testid=hero-secondary-cta-button],#root [data-testid=contact-linkedin-link],#root article .mt-16 a.border{border:1px solid var(--ds-plum);color:var(--ds-plum);background:transparent}
#root [data-testid=hero-secondary-cta-button]:hover,#root [data-testid=contact-linkedin-link]:hover,#root article .mt-16 a.border:hover{background:var(--ds-lilac)}
#root article h1{font-family:var(--ds-display);font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:400;line-height:1.14;letter-spacing:-.035em}
#root article h2{font-family:var(--ds-display);font-size:clamp(1.7rem,2.6vw,2rem);font-weight:400;line-height:1.25;letter-spacing:-.025em;color:var(--ds-ink);margin-bottom:20px}
#root article .max-w-\[72ch\]{max-width:68ch}#root article .prose p{font-size:1rem;line-height:1.85}#root article .space-y-12>:not([hidden])~:not([hidden]){margin-top:48px}
#root [data-testid=case-study-confidentiality-alert]{border:1px solid var(--ds-line);border-left:3px solid var(--ds-plum);border-radius:var(--ds-radius-sm);background:var(--ds-lilac);font-size:.875rem;line-height:1.7;padding:20px}
.demo-recordings{margin-top:64px;padding-top:48px;border-top:1px solid var(--ds-line)}.demo-recording{margin:32px 0 48px}.demo-recording h3{font-family:var(--ds-body);font-size:1.125rem;font-weight:600;line-height:1.5}
.demo-video{display:block;width:100%;height:min(70vh,640px);min-height:360px;border:1px solid var(--ds-line);border-radius:var(--ds-radius);background:var(--ds-lilac)}.demo-recording figcaption{font-size:.9375rem;line-height:1.8;color:var(--ds-muted)}.demo-video-link{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;font-size:.875rem;font-weight:500;color:var(--ds-plum);text-decoration:underline;text-underline-offset:4px}
#root footer{padding-block:32px;border-top:1px solid var(--ds-line);background:var(--ds-ivory);color:var(--ds-muted);font-size:.8125rem}
@media(max-width:767px){.portfolio-nav{padding:16px 24px;gap:12px}.portfolio-nav .header-identity{gap:4px 12px}.portfolio-nav>div{gap:20px;font-size:.8125rem}#root>.min-h-screen>section,#root>.min-h-screen>article{padding-block:48px}#root [data-testid=hero-section]{padding-block:56px}#root section .gap-12{gap:32px}#root section>div>div.mb-12{margin-bottom:32px}[data-testid=hero-section] p{font-size:1rem}#root [data-testid^=case-study-card-]>.bg-card{min-height:0}.demo-video{min-height:420px}.demo-recordings{margin-top:48px;padding-top:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Credential lists and restrained gradient surfaces. */
#root [data-testid=about-section] .credential-list{list-style:disc;padding-left:20px}
#root [data-testid=about-section] .credential-list li{padding-left:4px;line-height:1.75}
#root [data-testid=about-section] .credential-list li::marker{color:var(--ds-plum)}
#root [data-testid=hero-section]{background:radial-gradient(ellipse at 95% 5%,#e6d6eb 0%,#e6d6eb00 55%),linear-gradient(135deg,#faf8f3 30%,#f1eaf3 100%)}
#root [data-testid=about-section]{background:var(--ds-ivory)}
#root [data-testid=experience-section]{background:linear-gradient(160deg,#f4eef5 0%,#eee8f0 60%,#faf8f3 100%)}
#root [data-testid=case-studies-section]{background:linear-gradient(130deg,#f1edf5 0%,#eee8f0 55%,#e9dfed 100%)}
#root [data-testid=contact-section]{background:radial-gradient(ellipse at 50% 100%,#e9dfed 0%,#e9dfed00 68%),var(--ds-ivory)}
#root article{background:linear-gradient(180deg,#f2ebf4 0px,#faf8f3 420px)}
#root [data-testid=hero-primary-cta-button],#root [data-testid=contact-email-link],#root article .mt-16 a.bg-primary{background:linear-gradient(135deg,#67366e,#4e2854)!important;box-shadow:0 4px 14px #67366e1a}

/* A single solid timeline marker, aligned to the timeline rule. */
#root [data-testid^=experience-item-]>.absolute.rounded-full{width:14px;height:14px;left:9px;top:28px;border:0!important;background:var(--ds-plum);border-radius:50%;box-shadow:0 0 0 5px var(--ds-ivory);padding:0}
#root [data-testid^=experience-item-]>.absolute.rounded-full>div{display:none}
.experience-links{padding:0 24px 24px;display:grid;gap:12px}.experience-links a{display:inline-block;color:var(--ds-plum);font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;line-height:1.7}
.demo-status{display:inline-block;color:var(--ds-muted);font-size:.75rem;padding:5px 9px;background:var(--ds-lilac);border:1px solid var(--ds-line);border-radius:6px;margin-left:10px}
.demo-placeholder{scroll-margin-top:110px}.demo-placeholder .demo-status{margin:16px 0 0}
/* Timeline content spacing and matching header display type. */
#root [data-testid^=experience-item-] .bg-card>div:first-child{padding-bottom:8px}
#root [data-testid^=experience-item-] .bg-card>div:nth-child(2){padding-top:0}
.portfolio-nav .header-name{font-family:var(--ds-display);font-size:1.35rem;font-weight:400;letter-spacing:-.035em;line-height:1.2}

video.demo-video{object-fit:contain;background:#211b25;height:auto;max-height:720px;min-height:0;width:100%;aspect-ratio:720/1566}figure.demo-recording{max-width:640px}video.demo-video:focus-visible{outline:3px solid var(--ds-plum);outline-offset:4px}
