@charset "UTF-8";
/* Exact AppTheme values from HSKChineseLearner/Views/Theme.swift. */
:root{
  color-scheme:light dark;
  --background:#F7F4EC;
  --surface:var(--background);
  --ink:#252D29;
  --muted-ink:#6C7169;
  --accent:#A23E32;
  --jade:#356958;
  --amber:#9D752E;
  --border:#DEDED2;
  --jade-soft:color-mix(in srgb,var(--jade) 10%,var(--background));
  --coral-soft:color-mix(in srgb,var(--accent) 10%,var(--background));
  --serif:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
@media(prefers-color-scheme:dark){
  :root{
    --background:#242522;
    --ink:#EEECE4;
    --muted-ink:#B5B9AF;
    --accent:#E28A76;
    --jade:#8CB7A2;
    --amber:#D4B16F;
    --border:#45483F;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--background);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--background)}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
img{display:block;max-width:100%}
figure,p,h1,h2,h3,dl,dd{margin:0}
em{font-weight:400}
.wrap{max-width:1280px;width:calc(100% - 128px);margin-inline:auto}
.section-space{padding-block:100px}
.site-header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:11px;font-weight:700;line-height:1.45;letter-spacing:1.2px;text-transform:uppercase}
.brand-seal{width:48px;height:48px;flex:none;display:grid;place-items:center}
.brand-seal img{width:100%;height:100%}
.desktop-nav{display:flex;gap:32px;font-size:12px}
.desktop-nav a{transition:color .2s}
.desktop-nav a:hover{color:var(--accent)}
.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:90px;padding-block:78px 80px}
.hero h1{font-family:var(--serif);font-size:clamp(76px,8.8vw,120px);font-weight:400;line-height:1.02;letter-spacing:-5.5px;margin-left:-5px}
.hero h1 em{color:var(--accent);font-size:.66em;line-height:1.15;white-space:nowrap;letter-spacing:-.035em}

.hero-description{max-width:400px;color:var(--muted-ink);font-size:20px;line-height:1.6;margin-top:26px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;font-size:12px;font-weight:500;padding:16px 22px;transition:opacity .2s,transform .2s}
.button:hover{transform:translateY(-2px);opacity:.9}
.button-red{background:var(--accent);color:var(--background)}
.hero .button{margin-top:28px}
.button span{font-size:18px;line-height:1}
.hero-art{transform:rotate(-0.4deg);margin-top:4px}
.poster{box-shadow:1px 8px 20px color-mix(in srgb,var(--ink) 6%,transparent);overflow:hidden}
.poster-image{width:100%;height:auto}
h2{font-family:var(--serif);font-size:48px;font-weight:400;letter-spacing:-1.5px;line-height:1.16}
h2 em{color:var(--accent)}
.section-label{font-size:11px;letter-spacing:1px}
.guest-section{background:var(--surface);border-block:1px solid var(--border)}
.guest-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:95px;align-items:center}
.guest-photo{max-width:400px}
/* Square headshot: about x=180–620 and y=60–500 of the original 800px photo. */
.guest-photo-frame{position:relative;aspect-ratio:1;overflow:hidden;background:var(--border)}
.guest-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.82);transform-origin:center 16.5%}
.guest-photo figcaption{font-size:9px;color:var(--muted-ink);margin-top:12px}
.guest-copy h2{font-size:clamp(56px,6vw,80px);line-height:.99;letter-spacing:-3px;margin-top:20px}
.guest-role{font-size:12px;line-height:1.7;margin-top:23px}
.guest-bio{font-size:14px;max-width:390px;color:var(--muted-ink);line-height:1.85;margin-top:20px}
.text-link{display:inline-flex;align-items:center;gap:27px;font-size:11px;border-bottom:1px solid var(--ink);padding-bottom:4px;transition:color .2s,border-color .2s}
.text-link:hover{color:var(--accent);border-color:var(--accent)}
.guest-copy .text-link{margin-top:23px}
.guest-note{font-size:11px;color:var(--muted-ink);margin-top:30px}
.details-section{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:center}
.event-list{margin-top:30px;max-width:450px}
.event-list>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding-block:17px;border-bottom:1px solid var(--border);font-size:12px}
.event-list dt{color:var(--muted-ink)}
.venue-card{border:1px solid var(--border);padding:32px 33px 0}
.venue-card .section-label{color:var(--muted-ink);margin-bottom:12px}
.venue-card h3{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-1px;line-height:1.2}
.venue-parent{font-size:12px;margin-top:7px}
.venue-card address{font-style:normal;font-size:12px;color:var(--muted-ink);margin-top:22px;line-height:1.8}
.venue-card .text-link{margin-top:21px}
.venue-visit{display:flex;justify-content:space-between;font-size:11px;border-top:1px solid var(--border);margin-top:27px;padding-block:17px}
.venue-visit:hover{color:var(--accent)}
.site-footer{border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:27px 32px}
.footer-name{font-size:11px;font-weight:500}
.back-top{font-size:10px}
.back-top span{margin-left:17px}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:fixed;z-index:10;background:var(--background);padding:10px 20px;top:10px;left:10px;outline:2px solid var(--accent)}
@media(min-width:1500px){.hero{gap:115px;padding-top:90px}.hero-art{max-width:485px;margin-left:auto}}
@media(max-width:1100px){.wrap{width:calc(100% - 80px)}.hero{gap:50px}.hero h1{font-size:clamp(74px,9vw,100px);letter-spacing:-4px}.hero-description{font-size:18px}.guest-grid,.details-section{gap:60px}.guest-copy h2{font-size:67px}}
@media(max-width:800px){.wrap{width:calc(100% - 48px)}.site-header{min-height:93px;gap:20px}.hero{gap:32px;padding-block:55px}.hero h1{font-size:clamp(63px,10.3vw,82px);letter-spacing:-3.5px}.hero-description{font-size:17px}.button{padding:14px 17px;gap:26px;font-size:11px}.section-space{padding-block:70px}.guest-grid{gap:40px}.guest-copy h2{font-size:57px}.guest-role{font-size:11px;margin-top:18px}.guest-bio{font-size:12px;margin-top:16px}.guest-copy .text-link{font-size:10px;gap:15px}.details-section{gap:35px}.details-copy h2{font-size:36px}.event-list>div{grid-template-columns:72px 1fr;gap:14px;font-size:11px}.venue-card{padding:24px 25px 0}.venue-card h3{font-size:30px}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.site-header{min-height:88px;gap:15px}.brand{font-size:9px;letter-spacing:.8px;gap:10px}.brand-seal{width:39px;height:39px}.desktop-nav{gap:15px;font-size:10px}.hero{grid-template-columns:1fr;gap:43px;padding-block:44px 48px}.hero h1{font-size:clamp(75px,20vw,108px);letter-spacing:-4px}.hero-description{font-size:17px;max-width:330px;margin-top:23px}.hero .button{margin-top:23px}.button{padding:15px 20px;font-size:12px;gap:50px}.hero-art{width:87%;max-width:355px;margin-inline:auto;margin-top:0}.section-space{padding-block:55px}.guest-grid{grid-template-columns:1fr;gap:30px}.guest-photo{max-width:none;width:100%}.guest-photo figcaption{font-size:8px}.guest-copy h2{font-size:67px;letter-spacing:-2px;margin-top:17px}.guest-role{font-size:12px;margin-top:20px}.guest-bio{font-size:14px;max-width:340px}.guest-copy .text-link{font-size:11px;margin-top:19px}.guest-note{font-size:11px;margin-top:23px}.details-section{grid-template-columns:1fr;gap:32px}.details-copy h2{font-size:35px}.event-list{margin-top:22px;max-width:none}.event-list>div{grid-template-columns:90px 1fr;gap:18px;font-size:12px}.venue-card{padding:27px 27px 0}.venue-card h3{font-size:35px}.venue-visit{padding-block:18px}.site-footer{gap:20px;padding-block:25px}.footer-name{font-size:10px}.back-top{font-size:9px;white-space:nowrap}.back-top span{margin-left:10px}}
@media(max-width:360px){.desktop-nav{gap:11px;font-size:9px}.brand{font-size:8px;letter-spacing:.5px}.brand-seal{width:35px;height:35px}.hero h1{font-size:68px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
