@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root { --navy:#16364b; --navy-deep:#102b3d; --ink:#183749; --muted:#5c6970; --line:#dce2e4; --paper:#fff; --soft:#f4f6f5; --accent:#ad4e24; --font:'Poppins','Segoe UI',sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font); font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
img { max-width:100%; height:auto; display:block; }
figure,p,h1,h2,h3,h4 { margin:0; }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:3px solid #c86736; outline-offset:5px; }
.shell { width:min(1200px,calc(100% - 96px)); margin-inline:auto; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:fixed; z-index:20; background:white; padding:12px 20px; left:20px; top:-100px; }
.skip-link:focus { top:12px; }
.site-header { background:var(--navy-deep); color:white; position:sticky; top:0; z-index:5; }
.header-inner { min-height:98px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
.brand { display:flex; align-items:center; gap:25px; flex-shrink:0; padding:12px 0; }
.institution-logo { width:51px; height:66px; object-fit:contain; }
.course-logo { width:76px; height:76px; object-fit:contain; filter:drop-shadow(0 0 2px rgb(255 255 255 / 85%)) drop-shadow(0 0 5px rgb(255 255 255 / 35%)); }
.brand-divider { width:1px; height:43px; background:#ffffff40; }
nav { display:flex; align-items:center; gap:35px; }
nav a { font-size:14px; color:#e9eef1; padding:12px 0; border-bottom:1px solid transparent; }
nav a:hover { border-color:#e9eef1; }
nav a span { margin-left:7px; }
.edition-bar { display:flex; justify-content:space-between; align-items:center; gap:25px; min-height:95px; border-bottom:1px solid var(--line); }
.academic-year { color:var(--muted); font-size:12px; letter-spacing:.04em; }
.edition-switch { display:flex; gap:24px; align-self:stretch; }
.edition-switch button { padding:20px 0; border:0; border-bottom:2px solid transparent; background:none; text-align:left; font-size:12px; color:var(--muted); line-height:1.7; }
.edition-switch button span { display:block; font-size:13px; font-weight:500; }
.edition-switch button[aria-pressed=true] { border-bottom-color:var(--ink); color:var(--ink); }
.edition-switch button:hover { color:var(--accent); }
.hero { display:grid; grid-template-columns:.9fr 1.15fr; align-items:center; gap:64px; padding:64px 0 70px; }
.eyebrow { font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:600; color:var(--accent); margin-bottom:13px; }
h1 { font-size:clamp(40px,4.5vw,64px); line-height:1.1; letter-spacing:-.045em; font-weight:600; }
.ampersand { font-weight:400; }
.event-date { margin-top:28px; font-size:18px; font-weight:500; line-height:1.5; max-width:370px; }
.event-context { color:var(--muted); font-size:13px; margin-top:14px; line-height:1.85; }
.primary-link { display:inline-flex; gap:32px; align-items:center; padding:12px 18px; font-size:12px; font-weight:500; background:var(--navy); color:#fff; margin-top:31px; border:1px solid var(--navy); border-radius:3px; }
.primary-link:hover { background:var(--navy-deep); }
.primary-link span { font-size:19px; line-height:1; }
.hero-media img { width:100%; aspect-ratio:16/10; object-fit:cover; object-position:52% center; border-radius:3px; }
.message-link { display:flex; align-items:center; gap:18px; width:fit-content; font-size:12px; margin-top:19px; text-decoration:underline; text-underline-offset:5px; text-decoration-color:#b3bfc5; }
.message-link span { text-decoration:none; }
.message-link:hover { color:var(--accent); text-decoration-color:var(--accent); }
.hero-mentor { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:19px 26px; background:var(--navy-deep); color:white; border-radius:3px; margin-top:22px; }
.hero-mentor p { font-size:11px; line-height:1.7; color:#d2dde3; }
.hero-mentor img { width:186px; height:auto; flex-shrink:0; }
figcaption { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; color:var(--muted); font-size:10px; margin-top:12px; line-height:1.6; }
.video-note { max-width:170px; text-align:right; }
.program-section { background:var(--soft); padding:65px 0 63px; border-top:1px solid #edf0ee; }
.section-heading { display:flex; justify-content:space-between; gap:25px; align-items:flex-end; margin-bottom:27px; }
h2 { font-size:32px; font-weight:500; line-height:1.3; letter-spacing:-.035em; }
.section-heading .eyebrow { margin-bottom:8px; }
.section-description { font-size:13px; color:var(--muted); max-width:360px; }
.program-notice { border:1px solid var(--line); padding:16px 20px; display:flex; align-items:flex-start; gap:13px; border-radius:3px; background:#fff9; margin-bottom:30px; }
.notice-mark { border:1px solid #7e919b; flex:0 0 19px; height:19px; text-align:center; font-size:12px; line-height:17px; border-radius:50%; margin-top:2px; }
.program-notice strong { display:block; font-size:13px; font-weight:500; }
.program-notice p>span { display:block; font-size:12px; color:var(--muted); margin-top:3px; }
.day-tabs { display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-bottom:1px solid #cbd4d8; }
.day-tabs button { padding:16px 12px 19px; border:0; border-bottom:3px solid transparent; background:transparent; text-align:center; line-height:1.5; color:var(--muted); }
.day-tabs button span { display:block; font-size:11px; margin-bottom:7px; }
.day-tabs button strong { font-size:24px; font-weight:500; }
.day-tabs button[aria-selected=true] { background:white; border-bottom-color:var(--navy); color:var(--ink); }
.day-tabs button:hover { background:#e9eeeb; }
.daily-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:27px 0 21px; }
.daily-heading h3 { font-size:17px; font-weight:500; }
.daily-heading>span { font-size:11px; color:var(--muted); white-space:nowrap; }
.schedule { border-top:1px solid var(--line); }
.schedule-row { display:grid; grid-template-columns:98px 1fr; border-bottom:1px solid var(--line); }
.schedule-row>time { font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; padding:23px 0; }
.schedule-row h4 { font-size:13px; font-weight:500; }
.schedule-row h4>span { color:var(--muted); font-size:11px; font-weight:400; margin-left:16px; }
.common>div { padding:23px 0; }
.conference-row>time { padding-top:24px; }
.conference-content { padding:22px 0 24px; }
.room-grid { margin-top:15px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.room { background:white; border:1px solid #e0e5e6; padding:19px 18px 20px; min-height:140px; border-radius:3px; }
.room-name { font-size:12px; line-height:1.65; min-height:42px; color:var(--ink); font-weight:500; max-width:245px; }
.room-status { margin-top:23px; color:#69777e; font-size:12px; font-weight:400; display:flex; align-items:center; gap:8px; }
.room-status:before { content:''; width:4px; height:4px; border-radius:50%; background:#aab5ba; flex:none; }
.networking { background:#edf1ed; }
.networking>time { padding-left:0; }
.schedule-footnote { font-size:10px; color:var(--muted); margin:18px 0 0 98px; max-width:760px; }
.no-script { padding:20px 0; }
.partners-section { background:var(--navy-deep); color:#fff; padding:66px 0 42px; }
.mentor { display:flex; justify-content:space-between; align-items:center; gap:60px; padding-bottom:48px; border-bottom:1px solid #ffffff24; }
.mentor .eyebrow { color:#c1ced5; }
.mentor h2 { font-size:31px; }
.mentor-copy>p:last-child { font-size:12px; line-height:1.9; color:#c1ced5; margin-top:15px; }
.mentor-logo { width:240px; height:auto; margin-right:70px; flex-shrink:0; }
.partner-heading { display:flex; justify-content:space-between; gap:20px; margin-top:30px; align-items:baseline; }
.partner-heading h3 { font-size:12px; font-weight:500; }
.partner-heading p { font-size:10px; color:#b3c3cc; }
.partner-logos { display:grid; grid-template-columns:repeat(3,1fr); align-items:center; padding:23px 0 10px; }
.partner-logos figure { min-height:118px; display:flex; align-items:center; justify-content:center; }
.partner-logos figure+figure { border-left:1px solid #ffffff1c; }
.partner-logo { object-fit:contain; mix-blend-mode:screen; opacity:.86; }
.o2fit { width:158px; height:90px; filter:grayscale(1) contrast(1.25) brightness(1.05); }
.partilha { width:83px; height:83px; filter:grayscale(1) invert(1) brightness(3) contrast(5); }
.rackets { width:175px; height:115px; filter:grayscale(1) invert(1) brightness(3); }
.archive-section { background:#fff; padding:52px 0; }
.archive-inner { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
.archive-section h2 { font-size:27px; }
.archive-section .eyebrow { margin-bottom:10px; }
.archive-link { display:flex; align-items:center; justify-content:space-between; padding:19px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.archive-link strong { display:block; font-size:16px; font-weight:500; }
.archive-link span>span { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.archive-link small { display:block; color:var(--muted); font-size:10px; margin-top:12px; }
.archive-link:hover { color:var(--accent); }
.archive-arrow { font-size:24px; margin-right:10px; }
footer { border-top:1px solid var(--line); padding:26px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; font-size:10px; }
footer p { font-weight:500; }
footer p span { font-weight:400; color:var(--muted); }
footer a { font-size:11px; }
footer a span { margin-left:12px; }
.message-page { width:min(750px,calc(100% - 64px)); margin:0 auto; padding:37px 0 68px; }
.back-link { display:inline-flex; gap:10px; align-items:center; font-size:12px; color:var(--muted); padding:8px 0; }
.back-link:hover { color:var(--accent); }
.letter-heading { margin:42px 0 35px; border-bottom:1px solid var(--line); padding-bottom:31px; }
.letter-heading h1 { font-size:40px; line-height:1.2; letter-spacing:-.035em; font-weight:500; }
.letter-heading .eyebrow { font-size:10px; }
.letter-body { font-size:15px; line-height:1.95; color:#344953; }
.letter-body p+p { margin-top:23px; }
.letter-body .letter-lead { font-size:21px; line-height:1.7; color:var(--ink); margin-bottom:29px; letter-spacing:-.015em; }
.letter-body strong { font-weight:600; color:var(--ink); }
.letter-signature { margin-top:35px; padding-top:25px; border-top:1px solid var(--line); font-size:14px; }
.letter-signature strong { font-weight:500; }
.letter-signature span { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.letter-footer { margin-top:42px; }
.letter-footer .primary-link { margin:0; }

@media(min-width:1550px) { .shell { width:min(1280px,calc(100% - 120px)); } .hero { gap:80px; } }
@media(max-width:1050px) {
  .shell { width:calc(100% - 64px); }
  .hero { gap:32px; padding:52px 0; grid-template-columns:1fr 1fr; }
  h1 { font-size:46px; }
  .event-date { font-size:16px; }
  .hero-media img { aspect-ratio:1/1; }
  .hero-media figcaption { display:block; }
  .video-note { display:block; text-align:left; max-width:none; margin-top:4px; }
  .room { padding:16px 13px; }
  .room-name { font-size:10px; }
  .room-status { font-size:10px; }
  .mentor-logo { margin-right:10px; }
  .hero-mentor { padding:17px; gap:15px; }
  .hero-mentor img { width:155px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:128px; }
  .shell { width:calc(100% - 40px); }
  .header-inner { min-height:86px; gap:18px; }
  .brand { gap:15px; }
  .institution-logo { width:40px; height:54px; }
  .course-logo { width:61px; height:64px; }
  .brand-divider { height:34px; }
  nav { gap:17px; }
  nav a { font-size:10px; }
  nav a:last-child { max-width:74px; line-height:1.5; }
  nav a span { margin-left:2px; }
  .edition-bar { min-height:88px; gap:16px; }
  .academic-year { font-size:10px; max-width:78px; }
  .edition-switch { gap:19px; }
  .edition-switch button { font-size:10px; padding:17px 0; }
  .edition-switch button span { font-size:11px; }
  .hero { grid-template-columns:1fr; gap:34px; padding:39px 0 36px; }
  h1 { font-size:clamp(44px,8vw,60px); }
  .hero-copy { max-width:500px; }
  .hero .eyebrow { margin-bottom:15px; }
  .event-date { margin-top:23px; font-size:17px; max-width:none; }
  .event-context { font-size:11px; }
  .primary-link { margin-top:25px; }
  .hero-media img { aspect-ratio:16/10; object-position:center; }
  .hero-mentor { padding:18px 20px; margin-top:19px; }
  .hero-mentor img { width:170px; }
  .message-link { font-size:11px; }
  .message-page { width:calc(100% - 40px); padding:25px 0 42px; }
  .letter-heading { margin:28px 0; padding-bottom:24px; }
  .letter-heading h1 { font-size:30px; }
  .letter-body { font-size:14px; line-height:1.9; }
  .letter-body .letter-lead { font-size:19px; line-height:1.75; }
  .hero-media figcaption { display:flex; gap:20px; }
  .video-note { text-align:right; margin:0; max-width:145px; }
  .program-section { padding:40px 0; }
  .section-heading { display:block; margin-bottom:23px; }
  .section-description { margin-top:13px; font-size:12px; }
  .desktop-break { display:none; }
  h2 { font-size:29px; }
  .program-notice { padding:14px; gap:11px; }
  .program-notice strong { font-size:11px; }
  .program-notice p>span { font-size:10px; margin-top:5px; }
  .day-tabs button { padding:13px 3px 15px; }
  .day-tabs button span { font-size:9px; }
  .day-tabs button strong { font-size:21px; }
  .daily-heading { display:block; padding:22px 0 18px; }
  .daily-heading h3 { font-size:15px; }
  .daily-heading>span { display:block; margin-top:4px; }
  .schedule-row { grid-template-columns:66px 1fr; }
  .schedule-row>time { font-size:12px; padding-top:20px; }
  .schedule-row h4 { font-size:12px; }
  .common>div { padding:20px 0; }
  .schedule-row h4>span { font-size:10px; margin-left:10px; }
  .conference-content { padding:18px 0; }
  .room-grid { grid-template-columns:1fr; gap:8px; margin-top:13px; }
  .room { display:flex; align-items:center; justify-content:space-between; min-height:90px; gap:16px; padding:14px; }
  .room-name { min-height:0; max-width:210px; font-size:11px; }
  .room-status { margin-top:0; min-width:68px; font-size:11px; gap:5px; }
  .networking h4>span { display:block; margin:3px 0 0; }
  .schedule-footnote { margin-left:66px; font-size:10px; }
  .partners-section { padding:40px 0 30px; }
  .mentor { display:block; padding-bottom:34px; }
  .mentor h2 { font-size:27px; }
  .mentor-copy>p:last-child { font-size:11px; max-width:380px; }
  .mentor-logo { width:215px; margin:27px 0 0; }
  .partner-heading { display:block; margin-top:24px; }
  .partner-heading p { margin-top:5px; }
  .partner-logos { padding:15px 0 0; }
  .partner-logos figure { min-height:95px; }
  .o2fit { width:98px; height:70px; }
  .partilha { width:53px; height:53px; }
  .rackets { width:108px; height:90px; }
  .archive-section { padding:36px 0; }
  .archive-inner { grid-template-columns:1fr; gap:24px; }
  .archive-section h2 { font-size:25px; }
  .footer-inner { align-items:flex-start; font-size:9px; }
  footer a { max-width:112px; font-size:10px; }
}
@media(max-width:390px) {
  .shell { width:calc(100% - 32px); }
  .header-inner { flex-wrap:wrap; gap:0; padding-top:4px; }
  .brand { margin:auto; }
  nav { border-top:1px solid #ffffff20; width:100%; justify-content:space-between; gap:12px; }
  nav a:last-child { max-width:none; }
  .header-inner nav a { padding:8px 0; }
  .room { gap:7px; padding:12px 10px; }
  .room-status { min-width:60px; font-size:9px; }
  .o2fit { width:86px; }
  .rackets { width:92px; }
  .hero-media figcaption { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  .site-header,.hero,.edition-bar,.partners-section,.archive-section,footer,.skip-link { display:none; }
  .shell { width:100%; }
  .program-section { padding:0; background:#fff; }
  .room { break-inside:avoid; }
}
