:root { color-scheme: dark; --accent:#ff1f4b; --accent-40:rgba(255,31,75,.4); --ease:cubic-bezier(.2,.7,.2,1); --ease-out:cubic-bezier(.16,1,.3,1); --muted:#a3a3a3; --surface:#111; --line:rgba(255,255,255,.12); --section-space:clamp(72px,10vw,140px); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:#000; color:#dedede; font-size:17px; line-height:1.6; }
* { box-sizing:border-box; }
@media (prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
body { margin:0; }
[hidden] { display:none !important; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:5px; }
a:hover { color:#fff; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
button,input,textarea { font:inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
button,summary { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
.wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.section { padding-block:calc(var(--section-space) / 2); margin-block:0; }
p { margin:0 0 1.2em; max-width:68ch; }
h1,h2,h3,h4 { color:#f5f5f5; letter-spacing:-.035em; line-height:1.12; margin:0 0 .7em; text-wrap:balance; }
h1 { font-size:clamp(40px,5vw,72px); font-weight:730; }
h2 { font-size:clamp(32px,4vw,52px); font-weight:700; max-width:24ch; }
h3 { font-size:23px; line-height:1.15; }
h4 { font-size:20px; line-height:1.15; }
ul,ol { padding:0; margin:0; list-style:none; }
.eyebrow { font-size:13px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.accent,.wordmark span { color:var(--accent); }
.accent-dot { display:inline-block; width:7px; height:7px; background:var(--accent); border-radius:50%; margin-right:10px; }
.small,.muted,.talk-date,.talk-country { font-size:16px; color:var(--muted); }
.section-heading { margin-bottom:40px; }
.section-heading .eyebrow,.contact-info .eyebrow { margin-bottom:12px; }
.section-heading h2 { margin-bottom:0; }
.section-intro { margin-top:-16px; margin-bottom:36px; }
.skip-link { position:fixed; top:8px; left:-10000px; z-index:10; padding:10px 18px; background:#fff; color:#000; opacity:0; pointer-events:none; }
.skip-link:focus-visible { left:8px; opacity:1; pointer-events:auto; color:#000; }
.site-header { position:absolute; inset:0 0 auto; z-index:5; display:flex; align-items:center; gap:32px; padding-block:24px; }
.wordmark { font-size:36px; font-weight:800; line-height:1; text-decoration:none; letter-spacing:.02em; color:#fff; }
.site-header nav { margin-left:auto; display:flex; align-items:center; gap:28px; font-size:15px; }
.site-header nav a { text-decoration:none; padding-block:10px; }
.site-header .nav-contact { color:var(--accent); }
.language-switch { display:flex; align-items:center; gap:10px; font-size:14px; color:var(--muted); }
.language-switch a { display:grid; place-items:center; min-width:28px; min-height:44px; text-decoration:none; }
.language-switch [aria-current] { color:#fff; font-weight:750; }
.hero { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:100vh; min-height:100svh; padding-top:150px; padding-bottom:max(12vh,100px); background-color:#000; background-size:cover; background-position:50% 40%; }
.hero-inner { position:relative; z-index:2; }
.hero-content { width:min(560px,44vw); min-width:0; }
.hero h1 { font-size:clamp(32px,4.2vw,54px); line-height:1.05; margin-bottom:.45em; hyphens:manual; }
/* 2z: inline sentence spans + a forced break keep the h1 one text block (one LCP candidate, balanced by the h1). One sentence per line from 1100 px
   (fits min(560px,44vw) at <= .47 em/char); 768-1099 px (>= 600 px tall) a 62vw/484 px column, >= 40 px, may wrap. PL: "podejmują&nbsp;decyzje.". */
.hero-line:first-child::after { content:'\A'; white-space:pre; }
@media (min-width:1100px) { .hero-line { white-space:nowrap; } .hero h1:lang(pl) { font-size:clamp(28px,3.7vw,47px); } }
@media (min-width:768px) and (max-width:1099px) and (min-height:600px) {
 .hero-content { width:min(484px,62vw); }
 .hero h1 { font-size:clamp(44px,6vw,46px); }
 .hero h1:lang(pl) { font-size:clamp(40px,5.2vw,41px); }
 .hero-scrim { background:linear-gradient(to bottom,rgba(0,0,0,.55) 0px,rgba(0,0,0,0) 110px),linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 20%),linear-gradient(to right,rgba(0,0,0,.75) 0%,rgba(0,0,0,.62) 49%,rgba(0,0,0,0) 60%),linear-gradient(to bottom,rgba(0,0,0,0) 36%,rgba(0,0,0,.45) 52%,rgba(0,0,0,.45) 80%,rgba(0,0,0,.1) 100%),linear-gradient(to bottom,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 68%,rgba(0,0,0,.85) 100%); }
}
.hero .eyebrow { color:#dedede; }
.hero .eyebrow,.hero h1,.hero-sub,.hero-position { text-shadow:0 1px 12px rgba(0,0,0,.6); }
/* 2y: the subline keeps the old lead style; its links are a light accent tint (4.5:1 over the loop, test-hero-contrast.py) with a permanent thin accent underline (WCAG 1.4.1), white + solid underline on hover, and a 44 px hit area from ::before. */
.hero-sub { color:#dedede; margin-bottom:18px; font-size:17px; }
.hero-sub a { position:relative; color:#ffd0d9; text-decoration-color:rgba(255,31,75,.75); text-decoration-thickness:.07em; text-underline-offset:.2em; transition:color .2s,text-decoration-color .2s; }
.hero-sub a::before { content:''; position:absolute; inset:min(0px,calc(50% - 22px)) -4px; }
.hero-sub a:hover { color:#fff; text-decoration-color:var(--accent); }
.hero-sub a:focus-visible { outline-offset:4px; border-radius:4px; }
.hero-position { color:#c8c8c8; margin-bottom:28px; font-size:15px; line-height:1.55; }
.hero-lead-mobile { display:none; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
#hero-video { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.hero-scrim { position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(to bottom,rgba(0,0,0,.55) 0px,rgba(0,0,0,0) 110px),linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 20%),linear-gradient(to right,rgba(0,0,0,.75) 0%,rgba(0,0,0,.62) 49%,rgba(0,0,0,0) 60%),linear-gradient(to bottom,rgba(0,0,0,0) 45%,rgba(0,0,0,.55) 68%,rgba(0,0,0,.85) 100%); }
.hero-caption { position:absolute; z-index:2; bottom:max(28px,env(safe-area-inset-bottom)); left:max(calc((100% - 1200px)/2),40px,env(safe-area-inset-left)); margin:0; color:#a3a3a3; font-size:12px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:12px 22px; border:1px solid transparent; background:var(--accent); color:#000; border-radius:999px; font-size:15px; line-height:1.4; font-weight:700; text-decoration:none; }
.button:hover { color:#000; }
.button.ghost { background:transparent; color:#eee; border-color:rgba(255,255,255,.24); }
.button.ghost:hover { background:#171717; border-color:#a3a3a3; }
.media-controls { position:absolute; z-index:3; bottom:calc(24px + env(safe-area-inset-bottom)); right:max(40px,calc(16px + env(safe-area-inset-right))); display:flex; flex-wrap:nowrap; justify-content:flex-end; gap:8px; }
.media-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; height:36px; min-height:36px; min-width:36px; padding:6px 12px; background:rgba(0,0,0,.8); color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:999px; backdrop-filter:blur(12px); font-size:12px; }
.media-button:focus-visible { outline-offset:-4px; }
.sound-on-icon { display:none; }
[aria-pressed="true"] .sound-on-icon { display:block; }
[aria-pressed="true"] .sound-off-icon { display:none; }
.speaker-strip { text-align:center; padding-block:20px calc(var(--section-space) / 2); }
.speaker-strip .eyebrow { margin-inline:auto; }
.about-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr); gap:64px; align-items:start; }
.portrait-picture { display:block; }
.portrait-photo { width:100%; height:auto; display:block; border-radius:16px; }
.about-copy p:last-child { font-size:22px; color:#fff; margin-bottom:0; }
.topic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.topic-card { border:1px solid rgba(255,255,255,.08); border-radius:16px; background:var(--surface); padding:28px; }
.companies-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:24px; }
.company-card { display:flex; flex-direction:column; min-width:0; padding:36px; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:#0d0d0d; transition:transform .2s,border-color .2s; }
.company-card:hover,.company-card:focus-within { transform:translateY(-2px); border-color:rgba(255,31,75,.4); }
.company-logo { display:block; width:auto; max-width:100%; flex-shrink:0; }
.company-card > .company-logo { align-self:flex-start; opacity:1; margin-bottom:28px; }
.company-card > .vestigio-logo { height:46px; width:auto; }
.company-card > .sensai-logo { height:26px; width:auto; margin-top:10px; margin-bottom:38px; }
.company-card h3 { font-size:22px; }
.company-card .social-links { margin-top:auto; padding-top:12px; }
.company-principle { color:var(--muted); }
.stage-card { background:#080808; }
.stage-label { display:flex; align-items:center; height:46px; margin-bottom:28px; color:var(--muted); font-size:13px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.stage-card > p:last-child { margin-bottom:0; }
.footer-companies .vestigio-logo { height:30px; }
.footer-companies .sensai-logo { height:14px; }
.topic-card { display:flex; flex-direction:column; }
.topic-card h3 { margin-top:20px; }
.card-number,.card-type { color:var(--muted); font-size:13px; font-weight:650; letter-spacing:.08em; text-transform:uppercase; }
.topic-card .small { margin-top:auto; margin-bottom:0; }
.workshop-line { color:var(--muted); margin-top:24px; }
.motto-band { padding-block:56px; text-align:center; }
.motto-band blockquote { margin:0 auto 24px; max-width:22ch; font-size:clamp(32px,4vw,56px); color:#fff; line-height:1.15; letter-spacing:-.035em; text-wrap:balance; }
.motto-band blockquote::before { content:'\201c'; display:block; color:var(--accent); font-size:1.5em; line-height:.8; margin-bottom:16px; }
.motto-band p { margin:8px auto; color:var(--muted); font-size:15px; }
.talk-year { display:grid; grid-template-columns:90px minmax(0,1fr); gap:24px; margin-top:36px; max-width:960px; }
.talk-year > h3 { color:var(--accent); font-size:28px; position:sticky; top:112px; align-self:start; }
.talk-row { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.talk-row:first-child { padding-top:0; }
.talk-main h4 { margin-bottom:5px; }
.talk-main p { margin-block:8px; }
.talk-country { margin-block:6px; }
.source-links { display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:12px; font-size:15px; }
.source-links a { color:#c4c4c4; }
.source-links a:hover { color:#fff; text-decoration-color:var(--accent); }
.earlier-talks { margin-top:32px; max-width:960px; }
.earlier-talks summary { display:inline-flex; align-items:center; gap:12px; padding:12px 22px; border:1px solid #555; border-radius:999px; font-size:15px; color:#eee; }
.earlier-talks summary::before { content:'+'; font-size:22px; line-height:1; }
.earlier-talks[open] summary::before { content:'−'; }
.upcoming-grid { max-width:850px; }
.upcoming-card { padding:36px; background:linear-gradient(135deg,rgba(255,31,75,.09),#111 70%); border:1px solid rgba(255,31,75,.6); border-radius:16px; }
.upcoming-top { display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; color:var(--muted); font-size:15px; }
.status { color:#fff; border:1px solid var(--accent); border-radius:999px; padding:2px 12px; }
.upcoming-date { color:#fff; margin-top:24px; }
.upcoming-card h3 { font-size:clamp(24px,3vw,34px); max-width:32ch; }
.conversation-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.conversation-list > li { display:flex; flex-direction:column; padding:28px; background:var(--surface); border:1px solid rgba(255,255,255,.08); border-radius:16px; }
.conversation-list h3 { margin-bottom:20px; }
.conversation-list .source-links { margin-top:auto; }
.source-links .link-pending { padding-bottom:2px; color:var(--muted); }
.conversation-list p { margin-bottom:14px; }
.awards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.awards > article { min-width:0; }
.badge-pair { display:flex; justify-content:center; align-items:center; gap:24px; margin:30px 0; padding:20px 0; }
.badge-pair img { display:block; width:auto; max-width:calc(50% - 12px); height:56px; object-fit:contain; }
.award-list { display:grid; gap:14px; }
.award-list > li { background:var(--surface); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:24px; }
.award-list h4 { font-size:20px; margin-block:16px 10px; letter-spacing:-.015em; }
.award-list p { margin:0; color:#c4c4c4; }
.award-result { display:inline-block; border:1px solid #555; border-radius:999px; padding:3px 11px; color:#bdbdbd; font-size:13px; }
.award-result.winner { background:#fff; color:#000; border-color:#fff; font-weight:750; }
.double-caption { margin:0 0 36px; padding:16px 20px; border-left:3px solid var(--accent); background:var(--surface); font-size:24px; font-weight:650; color:#fff; }
.thought-links { max-width:960px; margin-bottom:24px; }
.thought-links a { display:flex; align-items:center; gap:14px; width:100%; padding:20px 0; border-bottom:1px solid var(--line); text-decoration:none; transition:background .2s; }
.thought-links a:hover { background:#111; }
.thought-links a > span:last-child { color:var(--accent); flex-shrink:0; }
.contact { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; align-items:start; padding-block:calc(var(--section-space) / 2) var(--section-space); }
.contact h2 { max-width:12ch; }
.contact-info { min-width:0; }
.email-link { font-size:clamp(18px,2vw,26px); color:#fff; }
.find-me { margin-top:36px; margin-bottom:12px; }
.social-links { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.social-link { display:inline-flex; align-items:center; gap:8px; min-width:44px; min-height:44px; padding:7px 10px; border:1px solid var(--line); border-radius:999px; font-size:14px; text-decoration:none; }
.social-link:hover { border-color:rgba(255,31,75,.4); background:#171717; }
.social-link svg { flex-shrink:0; }
.social-icon-link { display:inline-flex; align-items:center; gap:8px; min-width:44px; min-height:44px; padding:12px; }
.social-icon,.website-icon { display:block; width:20px; height:20px; flex-shrink:0; }
.social-link.social-icon-link { padding:11px 12px; }
.thought-links .social-icon-link { display:inline-flex; gap:8px; padding:20px 12px; }
.icon-only { justify-content:center; }
#contact-form { width:100%; max-width:560px; min-width:0; padding:0; background:transparent; border:0; border-radius:0; }
#contact-form .field { margin-bottom:28px; }
#contact-form .field label { display:block; margin-bottom:4px; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:#a3a3a3; transition:color 150ms; }
#contact-form .field label span { color:var(--accent); }
#contact-form .field input,#contact-form .field textarea { display:block; width:100%; min-width:0; padding:10px 0; font-size:16px; line-height:1.5; background:transparent; color:#f2f2f2; border:0; border-bottom:1px solid rgba(255,255,255,.22); border-radius:0; transition:border-color 150ms,box-shadow 150ms; }
#contact-form .field input::placeholder,#contact-form .field textarea::placeholder { color:#8a8a8a; opacity:1; }
#contact-form .field textarea { min-height:120px; max-height:320px; resize:vertical; }
#contact-form .field input:focus,#contact-form .field textarea:focus,#contact-form .field input:focus-visible,#contact-form .field textarea:focus-visible { outline:none; border-bottom-color:var(--accent); box-shadow:0 1px 0 var(--accent); }
#contact-form .field:focus-within label { color:var(--accent); }
#contact-form .field [aria-invalid="true"] { border-bottom-color:#ff7c95; box-shadow:0 1px 0 #ff7c95; }
#contact-form .field-error { font-size:13px; line-height:1.5; color:#ff7c95; margin:6px 0 0; }
#contact-form .field-error::before { content:'!'; display:inline-block; margin-right:6px; font-weight:700; }
#contact-form .field-error:empty { display:none; }
#contact-form .consent-label { position:relative; display:flex; gap:12px; align-items:flex-start; min-height:44px; padding-block:10px; font-size:14px; line-height:1.5; color:#bdbdbd; cursor:pointer; }
#contact-form .consent-label input { position:absolute; top:12px; left:0; width:18px; height:18px; margin:0; opacity:0; }
#contact-form .consent-box { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; margin-top:2px; border:1px solid rgba(255,255,255,.35); border-radius:4px; }
#contact-form .consent-label input:checked + .consent-box { background:var(--accent); border-color:var(--accent); }
#contact-form .consent-label input:checked + .consent-box::after { content:'✓'; font-size:14px; line-height:1; color:#fff; }
#contact-form .consent-label input:focus-visible + .consent-box { outline:3px solid var(--accent); outline-offset:4px; }
#contact-form .consent-label input[aria-invalid="true"] + .consent-box { border-color:#ff7c95; }
#contact-form .consent-field { margin-bottom:22px; }
.honeypot { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
#contact-form .cf-turnstile { height:0; min-height:0; max-width:100%; overflow:hidden; margin:0; }
#contact-form .cf-turnstile.is-interactive { height:auto; overflow-x:auto; margin:0 0 18px; }
#contact-form .cf-turnstile:not(.is-interactive) { height:0 !important; min-height:0 !important; padding:0 !important; border:0 !important; }
#contact-submit { width:auto; min-height:52px; margin-top:0; }
#contact-submit:disabled::before { content:''; width:16px; height:16px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:contact-spin .8s linear infinite; }
@keyframes contact-spin { to { transform:rotate(360deg); } }
#form-status { margin:0; font-size:14px; }
#form-status:not(:empty) { margin-bottom:18px; }
#form-status.is-success { color:#f2f2f2; }
#form-status.is-success::before { content:'✓'; color:var(--accent); margin-right:8px; }
#form-fallback { font-size:15px; margin-top:8px; margin-bottom:0; overflow-wrap:anywhere; }
.site-footer { padding-block:32px; border-top:1px solid var(--line); }
.footer-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.footer-companies { margin-block:28px; }
.footer-companies .eyebrow { margin-bottom:12px; }
.footer-top > .social-links { margin-left:auto; justify-content:flex-end; }
.company-chips { display:flex; flex-wrap:wrap; gap:12px; }
.company-chip { display:flex; align-items:center; gap:0; width:180px; min-height:52px; padding:2px 4px; border:1px solid var(--line); border-radius:999px; }
.company-chip .social-link { border:0; border-radius:999px; }
.company-website { flex:1; justify-content:center; padding:12px; }
.company-chip .icon-only { width:44px; height:44px; flex:0 0 44px; }
.company-chip a:focus-visible { outline-offset:-3px; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; font-size:14px; color:var(--muted); }
.language-hint { position:absolute; top:88px; inset-inline:0; z-index:6; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; background:#141414; border-bottom:1px solid var(--line); padding:8px 20px; font-size:14px; }
.language-hint button { background:transparent; border:0; color:#fff; min-width:44px; min-height:44px; font-size:22px; }
@media (min-width:768px) and (max-width:1099px) {
 .companies-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .stage-card { grid-column:1 / -1; }
}
@media (min-width:1024px) {
 .badge-pair img { height:80px; }
}
@media (max-width:1023px) {
 .topic-grid { grid-template-columns:1fr; }
 .topic-card h3 { margin-top:12px; }
 .about-grid { gap:32px; }
 .contact { gap:32px; grid-template-columns:1fr 1.2fr; }
 .awards { gap:24px; }
}
@media (max-width:767px) {
 :root { font-size:16px; }
 .wrap,.site-header { width:calc(100% - 40px); }
 .site-header { gap:12px; padding-block:16px; }
 .site-header nav { gap:12px; font-size:13px; }
 .site-header nav a:nth-child(2) { display:none; }
 .wordmark { font-size:32px; }
 .language-switch { gap:6px; font-size:13px; }
 .hero { padding-top:150px; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
 .hero-content { width:100%; max-width:560px; }
 .hero h1 { font-size:clamp(30px,8px + 7.2vw,36px); margin-bottom:12px; }
 .hero-scrim { background:linear-gradient(to bottom,rgba(0,0,0,.55) 0px,rgba(0,0,0,0) 110px),linear-gradient(to bottom,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 18%),linear-gradient(to top,rgba(0,0,0,.85) 0px,rgba(0,0,0,.78) 240px,rgba(0,0,0,.7) 465px,rgba(0,0,0,.38) 484px,rgba(0,0,0,0) 560px); }
 .hero-caption,.hero-position { display:none; }
 .hero-actions { flex-wrap:nowrap; }
 .companies-grid { grid-template-columns:1fr; }
 .company-card { padding:32px; }
 .language-hint { top:76px; font-size:12px; padding:4px 20px; }

 .hero-sub { max-width:36ch; font-size:15px; line-height:1.45; margin-bottom:20px; }
 .hero .eyebrow { margin-bottom:10px; font-size:11px; }
 .button { padding-inline:18px; min-height:48px; font-size:14px; }
 .hero-actions { gap:10px; }
 .hero-actions .button { padding-inline:14px; gap:6px; font-size:13px; }
 .hero-actions .ghost { padding-inline:0; border-color:transparent; text-decoration:underline; text-underline-offset:4px; }
 .media-controls { bottom:calc(22px + env(safe-area-inset-bottom)); right:calc(20px + env(safe-area-inset-right)); gap:8px; }
 .media-button { width:40px; height:40px; min-width:40px; min-height:40px; padding:0; justify-content:center; gap:0; border-radius:50%; }
 .media-button .motion-icon { font-size:20px; line-height:1; }
 .media-button .motion-label,.media-button .sound-label,.media-button .fullscreen-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
 .speaker-strip { padding-block:12px calc(var(--section-space) / 2); }
 .section-heading { margin-bottom:28px; }
 .about-grid,.awards,.conversation-list,.contact { grid-template-columns:1fr; }
 .portrait-picture { max-width:420px; }
 .topic-card,.conversation-list > li { padding:24px; }
 .motto-band { padding-block:36px; }
 .talk-year { grid-template-columns:1fr; gap:12px; margin-top:28px; }
 .talk-year > h3 { position:static; margin-bottom:8px; }
 .talk-row { grid-template-columns:64px minmax(0,1fr); gap:14px; padding-block:22px; }
 .talk-date { font-size:14px; }
 .talk-main h4 { font-size:20px; }
 .talk-country { font-size:14px; }
 .upcoming-card { padding:24px; }
 .badge-pair { margin-block:20px; }
 .double-caption { font-size:22px; }
 .contact { gap:28px; padding-block:calc(var(--section-space) / 2) calc(var(--section-space) + env(safe-area-inset-bottom)); }
 .contact h2 { max-width:16ch; }
 #contact-form .field { margin-bottom:22px; }
 #contact-submit { width:100%; }
 .site-footer { padding-block:28px; }
 .footer-top { flex-direction:column; align-items:flex-start; }
 .footer-top > .social-links { margin-left:0; justify-content:flex-start; }
 .footer-bottom { flex-direction:column; gap:10px; }
}
@media (max-width:639px) {
 /* Flatten only the layout box: date and city share a meta line above the full-width title. */
 .talk-row { grid-template-columns:max-content minmax(0,1fr); gap:6px 0; }
 .talk-main { display:contents; }
 .talk-main > * { grid-column:1 / -1; }
 .talk-main h4 { grid-row:2; }
 .talk-date { grid-column:1; grid-row:1; }
 .talk-main .talk-country { grid-column:2; grid-row:1; margin:0; }
 .talk-row:has(.talk-date:not(:empty)) .talk-country::before { content:'\00a0\00b7\00a0'; }
 .talk-date:empty { display:none; }
 .talk-date:empty + .talk-main .talk-country { grid-column:1 / -1; }
}
@media (max-aspect-ratio:3/4) {
 .hero { background-position:54% 35%; }
 #hero-video { object-position:54% 35%; }
}
@media (prefers-reduced-motion:reduce) { #hero-video { display:none; } html { scroll-behavior:auto; } * { transition:none !important; } }

.topic-name { font-size:14px; color:var(--muted); margin-top:auto; margin-bottom:0; }

@media (prefers-reduced-motion:reduce) { #contact-submit:disabled::before { animation:none; } }

/* Motion (2i): transform/opacity only. Hidden states exist only under html.js-motion (inline head script) on elements main.js tags. */
.site-header.is-sticky { position:fixed; }
.site-header.is-sticky::before { content:''; position:absolute; z-index:-1; inset:0 calc(50% - 50vw); background:rgba(0,0,0,.72); border-bottom:1px solid rgba(255,255,255,.08); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); opacity:0; transition:opacity .3s; pointer-events:none; }
.site-header.is-scrolled::before { opacity:1; }
.site-header nav a { position:relative; }
.site-header nav a::after { content:''; position:absolute; inset:auto 0 4px; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.site-header nav a:hover::after,.site-header nav a.is-active::after { transform:scaleX(1); }
.site-header nav a.is-active { color:#fff; }
.button { position:relative; isolation:isolate; transition:transform .31s var(--spring-press),translate .59s var(--spring-pull),background-color .2s,border-color .2s; }
.button::after { content:''; position:absolute; inset:0; z-index:-1; border-radius:inherit; box-shadow:0 10px 30px -8px rgba(255,31,75,.55); opacity:0; transition:opacity .2s; pointer-events:none; }
.button.ghost::after { box-shadow:0 10px 30px -12px rgba(255,31,75,.35); }
.button.ghost:hover { border-color:var(--accent-40); }
.topic-card,.conversation-list > li,.award-list > li,.upcoming-card { transition:transform .2s var(--ease),border-color .2s; }
.social-link,.company-chip,.earlier-talks summary { transition:transform .31s var(--spring-press),border-color .2s,background-color .2s; }
.company-chip:hover,.company-chip:focus-within,.earlier-talks summary:hover { border-color:var(--accent-40); }
.thought-links a > span:last-child { transition:transform .2s var(--ease); }
.source-links a,.email-link,.footer-bottom a,#form-fallback a,.contact noscript a,.testimonial-meta a { text-decoration:none; padding-bottom:2px; background:linear-gradient(var(--accent),var(--accent)) 0 100%/0 1px no-repeat,linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,.28)) 0 100%/100% 1px no-repeat; transition:background-size .3s var(--ease),color .2s; }
:is(.source-links a,.email-link,.footer-bottom a,#form-fallback a,.contact noscript a,.testimonial-meta a):is(:hover,:focus-visible) { background-size:100% 1px,100% 1px; }
@media (hover:hover) {
 .button:not(:disabled):hover { transform:translateY(-1px); }
 .button:not(:disabled):hover::after { opacity:1; }
 .topic-card:hover,.conversation-list > li:hover,.award-list > li:hover,.upcoming-card:hover { transform:translateY(-2px); border-color:var(--accent-40); }
 .upcoming-card:hover { border-color:var(--accent); }
 .social-link:hover { transform:translateY(-1px); }
 .company-chip .social-link:hover { transform:none; }
 .thought-links a:hover > span:last-child { transform:translate(3px,-3px); }
}
:is(.button,.media-button,.social-link,.earlier-talks summary):not(:disabled):active { transform:scale(.97); }
@media (max-width:767px) { .hero-actions .ghost:hover { border-color:transparent; } .hero-actions .ghost::after { content:none; } }
.language-hint { animation:hint-in .4s var(--ease) .6s backwards; transition:opacity .3s,transform .3s var(--ease); }
.language-hint.is-out { opacity:0; transform:translateY(-8px); }
@keyframes hint-in { from { opacity:0; transform:translateY(-8px); } }
@media (prefers-reduced-motion:reduce) {
 *::before,*::after { transition:none !important; }
 .language-hint { animation:none; }
 .button:hover,.button:active,.media-button:active,.earlier-talks summary:active,.topic-card:hover,.conversation-list > li:hover,.award-list > li:hover,.upcoming-card:hover,.company-card:hover,.company-card:focus-within,.social-link:hover,.thought-links a:hover > span:last-child { transform:none !important; }
}
/* Speaker rankings (2o, 2w): same cards after the awards, 2x2 from 900 px, equal row heights; photos on top at one height
   (140 px, 120 px below 640 px): 1:1 award crops, the 800/458 stage shot wide. */
.speaker-honors { margin-top:48px; }
.speaker-honors h3 { margin-bottom:20px; }
.honor-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.honor-item { display:flex; flex-direction:column; gap:18px; align-items:flex-start; min-width:0; }
.honor-thumb { flex:none; width:140px; margin:0; }
.honor-thumb.is-wide { width:245px; }
.photo-frame.is-square { aspect-ratio:1/1; border-radius:12px; }
.photo-frame.is-wide { aspect-ratio:800/458; border-radius:12px; }
.honor-copy { min-width:0; }
.honor-list h4 { margin-top:0; }
@media (max-width:699px) { .honor-list { grid-template-columns:1fr; } }
@media (max-width:639px) { .honor-thumb { width:120px; } .honor-thumb.is-wide { width:210px; } .honor-item { gap:16px; } }
/* Photos (2j): lazy <picture>, frames follow the 16px card tokens; hover scale only inside an overflow-hidden frame. */
.photo-frame { overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:var(--surface); aspect-ratio:3/2; }
.photo-frame picture,.photo-frame img { display:block; width:100%; height:100%; }
.photo-frame img { object-fit:cover; transition:transform .8s var(--ease-out); }
.photo-strip,.company-photo,.photo-list figure { margin:0; }
.photo-strip { margin-top:36px; }
.photo-strip:focus-visible { outline:3px solid var(--accent); outline-offset:5px; border-radius:16px; }
.photo-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; padding:0; list-style:none; }
.photo-caption { margin-top:12px; color:var(--muted); font-size:12px; font-weight:650; letter-spacing:.08em; line-height:1.5; text-transform:uppercase; }
.company-photo { margin-top:24px; }
.company-photo .photo-frame { aspect-ratio:21/9; }
.company-photo img { object-position:50% 45%; }
@media (hover:hover) { .photo-card:hover .photo-frame img,.company-photo:hover img { transform:scale(1.035); } }
/* 2m: 15 cards = 5 full rows of 3 from 768 px; at 641-767 px two columns with the odd last card centred. Credit after the caption; contained 3:2 group photo in the 4:5 strip card. */
.photo-credit { display:block; margin-top:2px; font-size:11px; font-weight:400; letter-spacing:.02em; text-transform:none; }
.talk-highlight span { display:inline-block; padding:3px 10px; border:1px solid var(--accent-40); border-radius:999px; color:#fff; font-size:13px; font-weight:650; line-height:1.5; }
@media (min-width:641px) and (max-width:767px) { .photo-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .photo-card:last-child:nth-child(odd) { grid-column:1 / -1; justify-self:center; width:calc(50% - 10px); } }
@media (max-width:767px) {
 .company-photo .photo-frame { aspect-ratio:4/3; }
}
@media (max-width:640px) {
 .photo-strip { overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
 .photo-strip::-webkit-scrollbar { display:none; }
 .photo-list { display:flex; gap:14px; }
 .photo-card { flex:0 0 82vw; scroll-snap-align:start; scroll-snap-stop:normal; }
 .photo-card .photo-frame { aspect-ratio:4/5; }
 .photo-card.is-contained .photo-frame img { object-fit:contain; }
}
@media (prefers-reduced-motion:reduce) { .photo-frame img { transition:none; transform:none !important; } }
/* Logos + mobile clip (2k): equal tiles, two tracks each so a lone last tile sits centred at 2/4/6 columns; white marks at .72, colour crossfade on hover only. */
.logo-grid { --lb:30px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:1fr; gap:12px; }
.logo-tile { grid-column:span 2; display:flex; flex-direction:column; align-items:center; gap:8px; min-width:0; padding:12px 10px; border:1px solid rgba(255,255,255,.08); border-radius:16px; }
.logo-tile:last-child:nth-child(2n+1) { grid-column:2 / span 2; }
.logo-mark { display:grid; grid-template:minmax(0,1fr) / minmax(0,1fr); place-items:center; width:100%; height:calc(var(--lb) * 1.35); }
.logo-mark > * { grid-area:1 / 1; opacity:.72; transition:opacity .25s var(--ease); }
.logo-mark img { display:block; width:auto; height:calc(var(--lb) * var(--lf,1)); max-width:82%; object-fit:contain; }
.logo-mark .logo-color { opacity:0; }
.logo-word { max-width:100%; color:#fff; font-size:13px; font-weight:800; line-height:1.1; letter-spacing:.06em; text-transform:uppercase; text-wrap:balance; }
.logo-caption { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; max-width:100%; color:var(--muted); font-size:12px; line-height:1.35; text-align:center; text-wrap:balance; }
.logo-name + .logo-country::before { content:" \00b7  "; }
.logo-name { color:#c4c4c4; }
@media (hover:hover) {
 .logo-tile:hover .logo-mark > * { opacity:1; }
 .logo-tile:hover .logo-white:has(+ .logo-color[src]) { opacity:0; }
}
@media (min-width:641px) {
 .logo-grid { --lb:36px; grid-template-columns:repeat(8,minmax(0,1fr)); }
 .logo-tile { gap:14px; padding:24px 12px 18px; }
 .logo-caption { display:flex; flex-direction:column; line-height:1.4; text-align:start; }
 .logo-name + .logo-country::before { content:none; }
 .logo-tile:last-child:nth-child(2n+1) { grid-column:span 2; }
 .logo-tile:last-child:nth-child(4n+1) { grid-column:4 / span 2; }
}
@media (min-width:1024px) {
 .logo-grid { grid-template-columns:repeat(12,minmax(0,1fr)); }
 .logo-tile:last-child:nth-child(4n+1) { grid-column:span 2; }
 .logo-tile:last-child:nth-child(6n+1) { grid-column:6 / span 2; }
 .logo-tile:nth-child(6n+1):nth-last-child(5) { grid-column:2 / span 2; }
 .logo-tile:nth-child(6n+1):nth-last-child(4) { grid-column:3 / span 2; }
 .logo-tile:nth-child(6n+1):nth-last-child(3) { grid-column:4 / span 2; }
 .logo-tile:nth-child(6n+1):nth-last-child(2) { grid-column:5 / span 2; }
 .logo-word { font-size:15px; }
}
@media (hover:none) { .logo-color { display:none; } }
@media (prefers-reduced-motion:reduce) { .logo-mark > * { transition:none; } }
/* Videos (2n) + hero loop (2s): the SEO Vibes loop is the hero on every viewport; the 9:16 crop and its poster only for portrait phones (same query as main.js and the head preloads). */
.hero { background-image:url(/media/video/hero-vibes-poster.jpg); background-image:image-set(url(/media/video/hero-vibes-poster.webp) type("image/webp"),url(/media/video/hero-vibes-poster.jpg) type("image/jpeg")); }
@media (max-width:640px) and (orientation:portrait) {
 .hero { background-image:url(/media/video/hero-vibes-poster-m.jpg); background-image:image-set(url(/media/video/hero-vibes-poster-m.webp) type("image/webp"),url(/media/video/hero-vibes-poster-m.jpg) type("image/jpeg")); background-position:50% 38%; }
 #hero-video { object-position:50% 38%; }
}
/* On stage: one portrait clip (Chiang Mai) beside a short note from 768 px, stacked and centred below; the frame reserves 9:16 (no CLS). */
.watch-card { display:grid; justify-items:center; gap:24px; min-width:0; margin:0; }
.watch-frame { overflow:hidden; width:min(100%,45vh); width:min(100%,45svh); aspect-ratio:9/16; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:var(--surface); }
.watch-video { display:block; width:100%; height:100%; background:#000; }
.watch-copy { max-width:32ch; margin:0; text-align:center; font-size:20px; line-height:1.4; }
.watch-copy strong { display:block; color:#f5f5f5; font-weight:700; }
@media (min-width:768px) {
 .watch-card { grid-template-columns:min(calc(78vh * 9 / 16),420px) minmax(0,1fr); align-items:center; justify-items:start; gap:56px; }
 .watch-frame { width:100%; }
 .watch-copy { text-align:left; font-size:clamp(22px,2.4vw,30px); line-height:1.3; }
}
#hero-video:fullscreen { object-fit:contain; }
#hero-video:-webkit-full-screen { object-fit:contain; }
/* Photo links (2p): rows link to their gallery figure instead of repeating the photo; 44 px tap target via padding, glyph uses currentColor. */
.source-links a.photo-link { display:inline-flex; align-items:center; gap:6px; min-height:44px; margin-block:-12px; padding:12px 4px; background-position:4px calc(100% - 12px),4px calc(100% - 12px); background-size:0 1px,calc(100% - 8px) 1px; }
.source-links a.photo-link:is(:hover,:focus-visible) { background-size:calc(100% - 8px) 1px,calc(100% - 8px) 1px; }
.photo-link-icon { flex:none; width:16px; height:16px; }
.photo-frame.is-flash { outline:2px solid var(--accent); outline-offset:3px; animation:photo-flash 1.2s var(--ease) forwards; }
@keyframes photo-flash { to { outline-color:transparent; } }
@media (prefers-reduced-motion:reduce) { .photo-frame.is-flash { animation:none; } }
/* Header over the hero (2t): before scroll the header text carries its own soft shadow (with the 0-110 px band at the top of
   .hero-scrim); Contact uses a light accent tint there, since #ff1f4b cannot reach 4.5:1 over white LEDs without blacking out the frame. */
.site-header:not(.is-scrolled) :is(.wordmark,nav a,.language-switch) { text-shadow:0 1px 2px rgba(0,0,0,.7),0 0 12px rgba(0,0,0,.45); }
.site-header:not(.is-scrolled) .nav-contact { color:#ff8fa3; }
/* Testimonials (2t): a list of figures. One item is a large pull quote; from two items the first stays featured above a
   1/2/3-column masonry (CSS columns), switched on with :has() and the li count; without :has() the cards simply stack. */
.testimonials { display:grid; gap:24px; }
.testimonials > li { break-inside:avoid; }
.testimonial { margin:0; display:flex; flex-direction:column; gap:20px; padding:28px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.testimonial blockquote { margin:0; color:#f5f5f5; font-size:18px; line-height:1.55; }
.testimonial blockquote p { margin:0; max-width:none; }
.quote-mark { display:block; height:.34em; margin-bottom:-12px; color:var(--accent); font-size:56px; font-weight:800; line-height:.8; letter-spacing:0; }
@media (min-width:768px) { .quote-mark { font-size:72px; } }
.testimonial figcaption { display:flex; align-items:center; gap:14px; }
.testimonial-photo { flex:none; }
.testimonial-photo img { display:block; width:56px; height:56px; border-radius:50%; object-fit:cover; background:var(--surface); box-shadow:0 0 0 1px var(--line); }
.testimonial-meta { display:flex; flex-direction:column; font-size:15px; line-height:1.4; color:var(--muted); }
.testimonial-meta strong { color:#fff; font-size:16px; font-weight:700; }
.testimonial-meta a { padding-block:12px; background-position:0 calc(100% - 10px),0 calc(100% - 10px); }
.testimonials { display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; }
.testimonials > li { flex:0 1 100%; display:flex; }
.testimonials > li > .testimonial { flex:1; }
.testimonial figcaption { margin-top:auto; }
@media (min-width:768px) { .testimonials > li { flex-basis:calc((100% - 24px) / 2); } }
@media (min-width:1100px) { .testimonials > li { flex-basis:calc((100% - 48px) / 3); } }
/* Motion (2q): transform/opacity/filter/clip only (letter-spacing on single-line, start-aligned eyebrows; 2z: colour on the h1 words, see below). Springs are Motion springs sampled to linear(): press 0.2 s / bounce .2, soft 0.5 s / .15, pull 0.4 s / .25. */
:root { --spring-press:linear(0,0.121,0.354,0.582,0.761,0.883,0.956,0.994,1.011,1.015,1.014,1.01,1.007,1.004,1); --spring-soft:linear(0,0.02,0.071,0.141,0.223,0.309,0.395,0.477,0.555,0.626,0.689,0.745,0.793,0.835,0.87,0.9,0.924,0.944,0.96,0.972,0.982,0.99,0.995,1,1.002,1.004,1.005,1.006,1.006,1.006,1.006,1.005,1.005,1.004,1.004,1.003,1.003,1.002,1); --spring-pull:linear(0,0.031,0.108,0.212,0.328,0.444,0.555,0.655,0.742,0.816,0.876,0.923,0.959,0.986,1.005,1.017,1.024,1.028,1.028,1.027,1.025,1.022,1.018,1.015,1.012,1.009,1.007,1.005,1.003,1); }
.hero { overflow:hidden; overflow:clip; }
.section-heading h2 > span { display:inline-block; padding-block:.1em .16em; margin-block:-.1em -.16em; }
.honor-list .small,.talk-highlight { font-variant-numeric:tabular-nums; }
@keyframes rise { from { opacity:0; transform:translate3d(0,14px,0); } }
@keyframes track-in { from { opacity:0; letter-spacing:.32em; } }
@keyframes line-in { from { color:rgba(245,245,245,.3); } }
@keyframes h1-rise { from { transform:translate3d(0,.25em,0); } }
@keyframes lead-in { from { opacity:.25; transform:translate3d(0,8px,0); } }
@keyframes cta-in { from { opacity:0; transform:translate3d(0,16px,0) scale(.96); } }
@keyframes blur-in { from { opacity:.25; filter:blur(2px); } }
html.js-motion .hero .eyebrow { animation:track-in 1.1s var(--ease-out) backwards; }
/* 2z (LCP): the first paint shows all hero text, none at opacity 0 or clipped. The h1 rises as a block while its inline words brighten per visual line
   (colour: no paint layers, so the h1 scores as one block). Subline and lead start <= 120 ms and end by 600 ms. */
html.js-motion .hero h1.is-split { animation:h1-rise .6s var(--ease-out) backwards; }
html.js-motion .hero h1.is-split .hl { animation:line-in .6s var(--ease-out) calc(var(--l,0) * 110ms) backwards; }
html.js-motion .hero-sub { animation:blur-in .5s var(--ease-out) 60ms backwards; }
html.js-motion .hero-position { animation:lead-in .48s var(--ease-out) .12s backwards; }
html.js-motion .hero-actions > * { animation:cta-in .77s var(--spring-soft) .2s backwards; }
html.js-motion .hero-actions > :nth-child(2) { animation-delay:.28s; }
html.js-motion .media-controls,html.js-motion .hero-caption { animation:rise .7s var(--ease-out) .7s backwards; }
@supports (animation-timeline:view()) {
 @media (prefers-reduced-motion:no-preference) {
  .hero { view-timeline:--hero block; }
  #hero-video { animation:hero-out linear both; animation-timeline:--hero; animation-range:exit 0% exit 100%; }
  .hero-scrim::after { content:''; position:absolute; inset:0; background:#000; opacity:0; animation:scrim-out linear both; animation-timeline:--hero; animation-range:exit 0% exit 100%; }
 }
}
@keyframes hero-out { to { transform:scale(1.06); } }
@keyframes scrim-out { to { opacity:.6; } }
#hero-video:fullscreen { animation:none; transform:none; }
#hero-video:-webkit-full-screen { animation:none; transform:none; }
html.js-motion .rv { opacity:0; transform:translate3d(0,24px,0); }
html.js-motion .rv-eyebrow { opacity:0; letter-spacing:.3em; }
html.js-motion .rv-head { clip-path:inset(0 0 100% 0); transform:translate3d(0,100%,0); }
html.js-motion .rv-row { opacity:0; transform:translate3d(-20px,0,0); }
html.js-motion .rv-tile { opacity:0; transform:translate3d(0,16px,0); }
html.js-motion .rv-photo { opacity:0; transform:translate3d(0,28px,0); }
html.js-motion .rv-photo picture { transform:scale(1.04); }
.logo-tile { transition:transform .59s var(--spring-pull),border-color .25s; }
.talk-row { position:relative; }
.talk-row::after { content:''; position:absolute; inset:auto 0 -1px; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease-out); pointer-events:none; }
.talk-main h4 { transition:color .3s; }
@media (hover:hover) {
 .logo-tile:hover { transform:translateY(-3px); border-color:rgba(255,255,255,.2); }
 .talk-row:hover::after { transform:scaleX(1); }
 .talk-row:hover .talk-main h4 { color:#fff; }
}
@media (prefers-reduced-motion:reduce) {
 html.js-motion :is(.hero .eyebrow,.hero h1 .hl,.hero-sub,.hero-position,.hero-actions > *,.media-controls,.hero-caption) { animation:none; }
 html.js-motion :is(.rv,.rv-eyebrow,.rv-head,.rv-row,.rv-tile,.rv-photo,.rv-photo picture) { opacity:1; transform:none; clip-path:none; }
 html.js-motion .rv-eyebrow { letter-spacing:.15em; }
 .logo-tile:hover { transform:none !important; }
}
/* Polish (2x): 44x44 hit areas without changing the visual size, compact award rows with a mobile "Show all N" toggle,
   two-column talk years from 1100 px and a 4-column gallery from 1200 px (last row centred on 8 tracks). */
.language-switch a,.language-hint a { position:relative; }
.site-header nav a::before,.language-switch a::before,.language-hint a::before { content:''; position:absolute; inset:min(0px,calc(50% - 22px)); }
.awards .award-list { gap:10px; }
.awards .award-list > li { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:4px 16px; padding:14px 18px; border-radius:12px; }
.awards .award-result { grid-row:1 / span 2; align-self:start; white-space:nowrap; }
.awards .award-list h4 { grid-column:2; margin:0; color:#f5f5f5; font-size:13px; font-weight:750; line-height:1.35; letter-spacing:.06em; text-transform:uppercase; }
.awards .award-list p { grid-column:2; font-size:15px; line-height:1.45; }
.awards .award-list .source-links { grid-column:3; grid-row:1 / span 2; margin:0; white-space:nowrap; }
.award-more > .award-list { margin-top:10px; }
.award-more summary { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-top:14px; padding:10px 20px; border:1px solid #555; border-radius:999px; font-size:15px; color:#eee; list-style:none; transition:transform .31s var(--spring-press),border-color .2s; }
.award-more summary::-webkit-details-marker { display:none; }
.award-more summary::before { content:'+'; font-size:22px; line-height:1; }
.award-more[open] summary::before { content:'\2212'; }
.award-more summary:hover { border-color:var(--accent-40); }
.award-more summary:active { transform:scale(.97); }
.more-open,.award-more[open] .more-closed { display:none; }
.award-more[open] .more-open { display:inline; }
@media (min-width:900px) { .award-more[open] > summary { display:none; } }
@media (max-width:899px) { .awards { grid-template-columns:1fr; } }
@media (max-width:767px) {
 .awards .award-list > li { grid-template-columns:minmax(0,1fr); gap:6px; padding:14px 16px; }
 .awards .award-result { grid-row:auto; justify-self:start; }
 .awards .award-list :is(h4,p,.source-links) { grid-column:1; grid-row:auto; }
}
@media (min-width:1100px) {
 .talk-year,.earlier-talks { max-width:none; }
 .talk-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:48px; margin-top:-24px; }
 .talk-row,.talk-row:first-child { padding-top:24px; }
}
@media (min-width:1200px) {
 .photo-list { grid-template-columns:repeat(8,minmax(0,1fr)); }
 .photo-card { grid-column:span 2; }
 .photo-card:nth-child(4n+1):nth-last-child(3) { grid-column:2 / span 2; }
 .photo-card:nth-child(4n+1):nth-last-child(2) { grid-column:3 / span 2; }
 .photo-card:nth-child(4n+1):last-child { grid-column:4 / span 2; }
}
@media (prefers-reduced-motion:reduce) { .award-more summary:active { transform:none; } }
/* 2z: >= 44 px hit areas from ::before, visual size unchanged (36 px pills +6 px, 40 px phone circles +4 px; 8 px gaps keep them apart). */
.wordmark,.media-button { position:relative; }
.wordmark::before { content:''; position:absolute; inset:min(0px,calc(50% - 22px)); }
.media-button::before { content:''; position:absolute; inset:-6px -2px; }
@media (max-width:767px) { .media-button::before { inset:-4px; } }
/* Polish loop 2 (2aa): anchor targets clear the fixed header (92 px, 76 px phone: 44 px row + padding) + 16 px; replaces the old html scroll-padding. */
:root { --header-h:92px; }
@media (max-width:767px) { :root { --header-h:76px; } }
[id] { scroll-margin-top:calc(var(--header-h) + 16px); }
/* 2aa: phone logo grid - 3 compact tiles per row (6 tracks, span 2), last row centred, country only for assistive tech. */
@media (max-width:640px) {
 .logo-grid { --lb:26px; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
 .logo-tile { justify-content:center; gap:6px; min-height:92px; padding:10px 6px; border-radius:12px; }
 .logo-tile:last-child:nth-child(2n+1) { grid-column:span 2; }
 .logo-tile:nth-child(3n+1):nth-last-child(2) { grid-column:2 / span 2; }
 .logo-tile:nth-child(3n+1):last-child { grid-column:3 / span 2; }
 .logo-mark img { max-height:30px; max-width:88%; }
 .logo-word { font-size:11px; letter-spacing:.04em; }
 .logo-caption { font-size:11.5px; line-height:1.3; }
 .logo-country { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 .logo-name + .logo-country::before { content:none; }
}
/* 2aa: I ❤️ AI 2026 ranking - typographic thumb in the square slot (no photo reuse). */
.honor-score { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:2px; aspect-ratio:1/1; padding:14px 16px; border:1px solid var(--accent-40); border-radius:12px; background:radial-gradient(120% 100% at 0% 0%,rgba(255,31,75,.18),rgba(255,31,75,0) 70%),var(--surface); color:var(--accent); }
.honor-score-value { font-size:44px; font-weight:800; line-height:1; letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.honor-score-label { margin-top:4px; color:#f5f5f5; font-size:13px; font-weight:600; line-height:1.2; }
.honor-score-place { color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.08em; line-height:1.3; text-transform:uppercase; }
@media (max-width:639px) { .honor-score { padding:12px 13px; } .honor-score-value { font-size:38px; } }
/* 2aa: On stage from 900 px - player (max 380 px, 9:16) + a top-aligned note column, centred as a pair. Below 768 only the place + note show. */
.watch-copy > * { display:block; }
.watch-meta,.watch-link { display:none; }
@media (min-width:768px) {
 .watch-copy .watch-place { margin-bottom:14px; color:var(--muted); font-size:13px; font-weight:700; letter-spacing:.15em; line-height:1.5; text-transform:uppercase; }
 .watch-meta { display:block; margin-top:16px; color:var(--muted); font-size:15px; letter-spacing:0; }
 .watch-copy > a.watch-link { display:inline-flex; margin-top:22px; color:#f5f5f5; font-size:15px; text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:4px; }
 .watch-link:hover { color:#fff; }
}
@media (min-width:900px) {
 .watch-card { grid-template-columns:min(380px,calc(78vh * 9 / 16)) minmax(0,440px); justify-content:center; align-items:start; gap:64px; }
 .watch-copy { padding-top:8px; }
}
/* 2aa: 2026 talks on phones - 6 rows, the rest in details.talk-more ("Show all 2026 (N)"); from 641 px main.js keeps it open and the summary hides. */
.talk-more > summary { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-top:20px; padding:10px 20px; border:1px solid #555; border-radius:999px; font-size:15px; color:#eee; list-style:none; transition:transform .31s var(--spring-press),border-color .2s; }
.talk-more > summary::-webkit-details-marker { display:none; }
.talk-more > summary::before { content:'+'; font-size:22px; line-height:1; }
.talk-more[open] > summary::before { content:'\2212'; }
.talk-more > summary:hover { border-color:var(--accent-40); }
.talk-more > summary:active { transform:scale(.97); }
.talk-more[open] .more-closed { display:none; }
.talk-more[open] .more-open { display:inline; }
.talk-more > ol { margin-top:0; }
.talk-more .talk-row:first-child { padding-top:24px; }
@media (min-width:641px) { .talk-more[open] > summary { display:none; } }
@media (min-width:768px) {
 .talk-year > .talk-more { grid-column:2; margin-top:-24px; }
 .talk-year[data-year="2026"] > h3 { grid-row:1 / span 2; }
}
@media (max-width:767px) {
 .talk-year > .talk-more { margin-top:-12px; }
 .talk-more .talk-row:first-child { padding-top:22px; }
}
@media (prefers-reduced-motion:reduce) { .talk-more > summary:active { transform:none; } }
/* Polish loop 3 (2ab): a11y + weight + tablet layout. */
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.logo-mark .logo-color:not([src]) { display:none; }
@media (min-width:641px) and (max-width:899px) {
 .watch-card { grid-template-columns:min(44%,calc(78vh * 9 / 16)) minmax(0,1fr); align-items:center; justify-items:start; gap:36px; }
 .watch-frame { width:100%; }
 .watch-copy { max-width:none; text-align:left; font-size:20px; line-height:1.4; }
}
/* Lightbox (2ae): JS-only "Open photo" layer over each Talks tile + one native <dialog>; fade + scale .98 -> 1 in 200 ms, out in 160 ms. */
.photo-card .photo-frame { position:relative; }
.photo-open { position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:inherit; background:none; cursor:zoom-in; }
.photo-open:focus-visible { outline:3px solid var(--accent); outline-offset:-3px; }
html.has-lightbox { overflow:hidden; scrollbar-gutter:stable; }
.lightbox { inset:0; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:0; border:0; background:none; color:#f5f5f5; overflow:hidden; }
.lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; animation:lightbox-in .2s var(--ease-out); }
/* 2af: near-opaque backdrop (+ blur where supported), at its final value from the first frame; only the close fades it. */
.lightbox::backdrop { background:rgba(0,0,0,.96); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.lightbox.is-closing { animation:lightbox-out .16s var(--ease) forwards; }
.lightbox.is-closing::backdrop { animation:lightbox-fade .16s var(--ease) reverse forwards; }
@keyframes lightbox-in { from { opacity:0; transform:scale(.98); } }
@keyframes lightbox-out { to { opacity:0; transform:scale(.98); } }
@keyframes lightbox-fade { from { opacity:0; } }
.lightbox-bar,.lightbox-nav { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; background:rgba(0,0,0,.96); }
.lightbox-bar { padding:calc(8px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 8px calc(20px + env(safe-area-inset-left)); }
.lightbox-figure { display:grid; grid-template-rows:minmax(0,1fr) auto; justify-items:center; gap:12px; min-height:0; margin:0; padding:8px calc(80px + env(safe-area-inset-right)) 16px calc(80px + env(safe-area-inset-left)); }
.lightbox-figure picture { display:flex; align-items:center; justify-content:center; width:100%; min-height:0; }
.lightbox-figure img { display:block; width:auto; height:auto; max-width:min(100%, 1600px); max-height:100%; object-fit:contain; }
.lightbox .photo-caption { max-width:min(100%, 72ch); margin:0; color:#d4d4d4; text-align:center; }
.lightbox-count { margin:0; color:#d4d4d4; font-size:13px; font-weight:700; letter-spacing:.08em; line-height:48px; font-variant-numeric:tabular-nums; }
.lightbox-button { display:grid; place-items:center; flex:none; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.24); border-radius:50%; background:rgba(0,0,0,.55); color:#f5f5f5; font:inherit; font-size:22px; line-height:1; cursor:pointer; transition:border-color .2s,background-color .2s; }
.lightbox-button:hover { border-color:var(--accent); }
.lightbox-button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media (min-width:641px) {
  .lightbox-nav { display:contents; }
  .lightbox-prev,.lightbox-next { position:absolute; top:calc(50% - 24px); }
  .lightbox-prev { left:calc(16px + env(safe-area-inset-left)); }
  .lightbox-next { right:calc(16px + env(safe-area-inset-right)); }
}
@media (max-width:640px) {
  .lightbox-figure { padding:8px calc(12px + env(safe-area-inset-right)) 12px calc(12px + env(safe-area-inset-left)); }
  .lightbox-nav { padding:8px calc(16px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left)); }
  .lightbox-caption-text { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; }
}
@media (prefers-reduced-motion:reduce) { .lightbox,.lightbox::backdrop { animation:none !important; } }
/* Calendar links (2ag): Add to calendar (.ics download) next to Source on future upcoming cards; 44 px target like Photo. */
.source-links a.cal-link { display:inline-flex; align-items:center; gap:6px; min-height:44px; margin-block:-12px; padding:12px 4px; background-position:4px calc(100% - 12px),4px calc(100% - 12px); background-size:0 1px,calc(100% - 8px) 1px; }
.source-links a.cal-link:is(:hover,:focus-visible) { background-size:calc(100% - 8px) 1px,calc(100% - 8px) 1px; }
.cal-link-icon { flex:none; width:16px; height:16px; }
.testimonial blockquote p + p { margin-top:.75em; }
.testimonial-initials { flex:none; display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:#1c1c1c; box-shadow:0 0 0 1px var(--line); color:#fff; font-size:17px; font-weight:700; letter-spacing:.02em; }
