:root { --cloud:#f7fbff; --white:#fff; --sky:#dceeff; --ink:#10284a; --muted:#58779d; --blue:#154bb6; --blue-dark:#123f91; --line:#cbddec; --font:"SF Pro Display","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cloud); font-family:var(--font); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { color:inherit; font:inherit; }
[hidden] { display:none !important; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; padding:10px 14px; color:white; background:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
:focus-visible { outline:3px solid #0878d8; outline-offset:3px; }
.activity-shell { width:min(1240px,calc(100% - 48px)); margin-inline:auto; }
.activity-header { position:relative; z-index:20; height:76px; display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:32px; padding:0 max(24px,calc((100vw - 1240px)/2)); background:white; border-bottom:1px solid rgba(18,63,145,.1); }
.activity-brand { color:#1461cf; font-size:25px; font-weight:950; letter-spacing:-.04em; }
.activity-header nav { display:flex; justify-content:center; gap:32px; font-size:14px; font-weight:650; }
.activity-header nav a { padding:28px 0 24px; position:relative; }
.activity-header nav a.active::after { content:""; position:absolute; left:0; right:0; bottom:18px; height:2px; background:var(--blue); }
.consult-link { min-height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 18px; border-radius:999px; background:var(--blue); color:white; font-size:13px; font-weight:800; }
.nav-toggle { display:none; width:42px; height:42px; border:0; border-radius:50%; background:#edf5fc; cursor:pointer; }
.nav-toggle span { display:block; width:18px; height:2px; margin:4px auto; background:var(--ink); }

.activity-hero { padding:72px 0 88px; overflow:hidden; background:linear-gradient(135deg,#fdfefe 10%,#edf7ff 72%,#dceeff); position:relative; }
.activity-hero::before { content:""; position:absolute; left:-8%; bottom:-80px; width:58%; height:210px; border-radius:50%; background:rgba(255,255,255,.78); filter:blur(28px); }
.hero-layout { position:relative; display:grid; grid-template-columns:.78fr 1.22fr; gap:72px; align-items:center; }
.hero-copy h1 { max-width:620px; margin:0; font-family:"Songti SC","STSong",serif; font-size:clamp(56px,5.5vw,84px); line-height:1.08; letter-spacing:-.03em; text-wrap:balance; }
.hero-copy > p { margin:24px 0 0; font-size:22px; letter-spacing:.08em; }
.hero-copy > span { display:block; max-width:36em; margin-top:26px; color:var(--muted); line-height:1.9; font-size:15px; }
.hero-facts { display:block; margin-top:18px; color:var(--blue-dark); font-size:13px; font-weight:800; letter-spacing:.04em; }
.text-link { display:inline-flex; align-items:center; gap:12px; margin-top:28px; color:var(--blue-dark); font-weight:800; }
.text-link::after { content:""; width:24px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:skewX(38deg); }
.hero-media { min-width:0; aspect-ratio:16/10; position:relative; overflow:hidden; border-radius:16px; background:#d8e9f7; box-shadow:0 26px 70px rgba(43,92,143,.2); }
.city-poster { position:absolute; inset:0; display:grid; grid-template-columns:1.15fr 1fr 1.08fr; gap:3px; background:#dceafa; }
.poster-frame { position:relative; min-width:0; overflow:hidden; color:white; background:#6e9bc1; }
.poster-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,39,72,.06) 35%,rgba(7,35,66,.82) 100%); pointer-events:none; }
.poster-frame picture,.poster-frame img { display:block; width:100%; height:100%; }
.poster-frame img { object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.poster-a img { object-position:52% center; }.poster-b img { object-position:50% center; }.poster-c img { object-position:51% center; }
.poster-frame:hover img { transform:scale(1.025); }
.poster-caption { position:absolute; z-index:1; left:20px; right:16px; bottom:22px; display:flex; flex-direction:column; }
.poster-frame b { font-size:15px; }.poster-frame small { margin-top:5px; opacity:.82; }
.hero-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .55s cubic-bezier(.2,.8,.2,1); }
.hero-media.video-ready video { opacity:1; }
.media-status { position:absolute; left:20px; top:18px; display:grid; gap:3px; color:white; text-shadow:0 1px 6px rgba(10,40,70,.5); }
.media-status span { font-weight:850; }.media-status small { opacity:.82; }
.video-control { position:absolute; right:20px; bottom:18px; width:48px; height:48px; border:0; border-radius:50%; background:white; cursor:pointer; box-shadow:0 10px 24px rgba(13,48,83,.22); }
.video-control span::before,.film-placeholder button span::before { content:""; position:absolute; width:12px; height:14px; background:var(--blue); clip-path:polygon(0 0,100% 50%,0 100%); transform:translate(-42%,-50%); }
.video-control.playing span::before { width:12px; height:14px; clip-path:none; background:linear-gradient(90deg,var(--blue) 0 4px,transparent 4px 8px,var(--blue) 8px 12px); transform:translate(-50%,-50%); }

.city-route { padding:90px 0 40px; }.route-scroll { overflow-x:auto; overscroll-behavior-inline:contain; }.section-heading h2,.archive-heading h2 { margin:0; font-size:40px; letter-spacing:-.03em; }.section-heading p,.archive-heading p { margin:12px 0 0; color:var(--muted); line-height:1.75; }
.route-track { position:relative; display:grid; grid-template-columns:repeat(7,1fr); gap:0; margin-top:46px; }
.route-track::before { content:""; position:absolute; left:8%; right:8%; top:12px; height:1px; background:linear-gradient(90deg,transparent,var(--blue) 10% 90%,transparent); }
.route-track button { position:relative; display:grid; justify-items:center; gap:12px; padding:0 8px; border:0; background:transparent; color:var(--muted); cursor:pointer; }
.route-track button span { width:25px; height:25px; z-index:1; border:6px solid var(--cloud); border-radius:50%; background:#8db9e5; box-shadow:0 0 0 1px rgba(21,75,182,.3); }
.route-track button.active { color:var(--blue-dark); font-weight:800; }.route-track button.active span { background:var(--blue); }

.encounter-stories { padding:100px 0 120px; }.story-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; }.story-heading > span { color:var(--muted); font-size:13px; }
.story-list { margin-top:56px; }.story-entry { display:grid; grid-template-columns:150px 1.2fr .82fr; gap:42px; align-items:center; padding:38px 0; border-top:1px solid var(--line); }.story-entry.reverse { grid-template-columns:150px .82fr 1.2fr; }.story-entry.reverse .story-image { grid-column:3; }.story-entry.reverse .story-copy { grid-column:2; grid-row:1; }
.story-meta { align-self:start; display:grid; gap:8px; padding-top:8px; }.story-meta time { color:var(--blue-dark); font-weight:850; }.story-meta span,.story-meta small { color:var(--muted); }
.story-image { min-height:290px; display:flex; align-items:end; padding:22px; border-radius:14px; color:white; background:linear-gradient(180deg,rgba(48,100,150,.06),rgba(16,55,92,.72)),radial-gradient(circle at 50% 20%,#d9edfb,#76abd3 58%,#3d6d97); overflow:hidden; }
.story-image.has-media { min-height:0; aspect-ratio:3/2; padding:0; background:#d8e9f7; box-shadow:0 18px 44px rgba(34,82,128,.16); }
.story-picture,.story-picture img { display:block; width:100%; height:100%; }
.story-picture img { object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.story-image.has-media:hover img { transform:scale(1.015); }
.story-image span { font-weight:750; }.story-copy h3 { margin:0; font-size:30px; }.story-copy p { margin:16px 0 0; color:var(--muted); line-height:1.85; }.story-copy .text-link { margin-top:22px; }

.spontaneous-section { padding:84px 0; background:#eaf4fc; }.spontaneous-layout { display:grid; grid-template-columns:.62fr 1.38fr; gap:70px; align-items:center; }.spontaneous-layout h2,.special-copy h2 { margin:0; font-family:"Songti SC","STSong",serif; font-size:48px; }.spontaneous-layout p,.special-copy p { margin:18px 0 0; color:var(--muted); line-height:1.85; }.outline-link { display:inline-flex; margin-top:24px; padding:12px 18px; border:1px solid rgba(18,63,145,.28); border-radius:999px; color:var(--blue-dark); font-weight:800; }
.mini-filmstrip { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; transform:rotate(-1.5deg); }.mini-filmstrip span { min-height:170px; display:flex; align-items:end; padding:16px; border-radius:12px; color:white; background:linear-gradient(180deg,transparent,rgba(13,50,84,.72)),radial-gradient(circle at 50% 30%,#d6eafa,#6193bf); }
.special-story { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:center; padding-top:120px; padding-bottom:120px; }.special-placeholder { min-height:390px; display:grid; place-items:center; border-radius:16px; color:#356596; background:radial-gradient(circle at 65% 25%,white,#e5f2fb 46%,#c8e0f3); }.special-placeholder span { padding:12px 16px; border-radius:999px; background:rgba(255,255,255,.78); }

.archive-section { padding:110px 0 130px; border-top:1px solid var(--line); }.archive-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; }.archive-filters { display:flex; gap:6px; flex-wrap:wrap; }.archive-filters button { padding:9px 14px; border:0; border-radius:999px; background:#e8f1f8; color:var(--muted); cursor:pointer; }.archive-filters button.active { background:var(--blue-dark); color:white; }
.archive-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; margin-top:42px; }.archive-item { grid-column:span 4; min-height:230px; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; border-radius:14px; color:white; background:linear-gradient(180deg,rgba(34,85,134,.08),rgba(9,42,76,.82)),radial-gradient(circle at 50% 25%,#d7ebfa,#6397c2 65%,#315e86); overflow:hidden; }.archive-item:nth-child(4),.archive-item:nth-child(5) { grid-column:span 6; }.activity-link-content { display:flex; flex-direction:column; position:relative; z-index:1; }.activity-link-content > span { font-size:12px; opacity:.78; }.activity-link-content strong { margin-top:6px; font-size:23px; }.activity-link-content small { margin-top:8px; opacity:.78; }.archive-item.has-media,.related-link.has-media { display:grid; grid-template-rows:auto 1fr; justify-content:stretch; padding:0; color:var(--ink); background:white; box-shadow:0 18px 48px rgba(35,81,124,.14); }.activity-link-media { display:block; aspect-ratio:3/2; overflow:hidden; background:#d8e9f7; }.activity-link-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1); }.has-media:hover .activity-link-media img { transform:scale(1.015); }.archive-item.has-media .activity-link-content,.related-link.has-media .activity-link-content { padding:18px 20px 20px; }.archive-item.has-media .activity-link-content > span,.archive-item.has-media .activity-link-content small,.related-link.has-media .activity-link-content > span,.related-link.has-media .activity-link-content small { color:var(--muted); opacity:1; }.empty-state { margin-top:35px; padding:40px; text-align:center; background:#eaf3fa; border-radius:14px; }.empty-state h3 { margin:0; }.empty-state p { margin:10px 0 0; color:var(--muted); }
.activity-closing { padding:100px 0; color:white; background:var(--blue-dark); }.closing-layout { display:flex; justify-content:space-between; align-items:end; gap:40px; }.closing-layout h2 { margin:0; font-size:52px; line-height:1.1; }.closing-layout p { margin:20px 0 0; color:#c7dbf0; }.closing-layout a { padding:14px 20px; border-radius:999px; background:white; color:var(--blue-dark); font-weight:850; }
.activity-footer { min-height:100px; display:flex; justify-content:space-between; align-items:center; gap:30px; color:var(--muted); }.activity-footer small { text-align:right; }
.activity-toast { position:fixed; left:50%; bottom:26px; z-index:40; padding:12px 18px; border-radius:999px; color:white; background:var(--ink); opacity:0; transform:translate(-50%,20px); pointer-events:none; transition:.2s; }.activity-toast.show { opacity:1; transform:translate(-50%,0); }

.detail-main { padding-top:50px; }.back-link { display:inline-flex; color:var(--blue-dark); font-weight:800; }.detail-hero { padding-top:34px; }.detail-title { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:end; margin-top:48px; }.detail-title h1 { max-width:850px; margin:0; font-family:"Songti SC","STSong",serif; font-size:clamp(52px,6vw,86px); line-height:1.08; }.detail-title p { max-width:50em; margin:18px 0 0; color:var(--muted); line-height:1.8; }.detail-title dl { display:flex; gap:28px; margin:0; }.detail-title dl div { min-width:90px; }.detail-title dt { color:var(--muted); font-size:12px; }.detail-title dd { margin:7px 0 0; font-weight:800; }
.detail-cover { min-height:540px; margin-top:48px; }.detail-cover.has-media { min-height:0; overflow:hidden; border-radius:16px; background:#d8e9f7; box-shadow:0 24px 64px rgba(36,83,128,.17); }.detail-cover-picture,.detail-cover-picture img { display:block; width:100%; height:auto; }.media-placeholder { display:grid; place-items:center; align-content:center; gap:8px; min-height:220px; border-radius:14px; color:#3b6996; background:radial-gradient(circle at 60% 20%,white,#e4f1fa 48%,#bfd9ed); }.media-placeholder small { color:var(--muted); }
.detail-story { display:grid; grid-template-columns:260px 1fr; gap:110px; padding-top:110px; padding-bottom:110px; }.detail-story aside span { color:var(--blue-dark); font-weight:850; }.detail-story aside p { color:var(--muted); line-height:1.7; font-size:13px; }.detail-story article { max-width:760px; }.detail-story h2,.detail-film h2 { margin:0; font-size:38px; }.detail-story article p,.detail-film > div p { margin:22px 0 0; color:var(--muted); line-height:2; }
.detail-gallery { padding-bottom:120px; }.gallery-layout { display:grid; grid-template-columns:1.2fr .8fr .8fr; grid-template-rows:240px 240px; gap:14px; margin-top:42px; }.gallery-wide { grid-row:1/3; }.gallery-tall { grid-row:1/3; }.detail-film { display:grid; grid-template-columns:1.3fr .7fr; gap:70px; align-items:center; padding-top:100px; padding-bottom:100px; border-top:1px solid var(--line); }.film-placeholder { min-height:390px; display:grid; place-items:center; align-content:center; gap:20px; border-radius:14px; color:white; background:linear-gradient(rgba(13,48,82,.25),rgba(13,48,82,.72)),radial-gradient(circle at 50% 25%,#c9e3f8,#4f82b0); }.film-placeholder button { position:relative; width:64px; height:64px; border:0; border-radius:50%; background:white; cursor:pointer; }.film-placeholder p { margin:0; font-weight:750; }.film-player { position:relative; overflow:hidden; border-radius:16px; background:#09192b; box-shadow:0 24px 64px rgba(18,50,82,.2); }.film-player video { display:block; width:100%; aspect-ratio:16/9; background:#09192b; }.film-error { position:absolute; inset:auto 20px 20px; margin:0; padding:10px 14px; border-radius:12px; color:white; background:rgba(16,40,70,.92); }.film-meta { display:block; margin-top:20px; color:var(--blue-dark); font-size:13px; font-weight:800; }
.detail-diary { padding-top:100px; padding-bottom:110px; border-top:1px solid var(--line); }.diary-heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }.diary-heading h2 { max-width:12em; margin:0; font-family:"Songti SC","STSong",serif; font-size:38px; line-height:1.2; }.diary-heading p { max-width:48em; margin:0; color:var(--muted); line-height:1.9; }.diary-video-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:42px; }.diary-video { min-width:0; margin:0; overflow:hidden; border-radius:16px; background:white; box-shadow:0 18px 48px rgba(35,81,124,.14); }.diary-video-player { position:relative; overflow:hidden; background:#09192b; }.diary-video-player video { display:block; width:100%; aspect-ratio:16/9; background:#09192b; }.diary-video figcaption { padding:24px 26px 28px; }.diary-video h3 { margin:0; font-family:"Songti SC","STSong",serif; font-size:25px; line-height:1.3; }.diary-video figcaption p { margin:14px 0 0; color:var(--muted); line-height:1.75; }.diary-video figcaption span { display:block; margin-top:16px; color:var(--blue-dark); font-size:13px; font-weight:800; }.diary-video-error { position:absolute; inset:auto 12px 12px; margin:0; padding:9px 12px; border-radius:10px; color:white; background:rgba(16,40,70,.92); font-size:13px; }.diary-video.portrait { grid-column:1/-1; display:grid; grid-template-columns:minmax(220px,300px) 1fr; align-items:center; padding:24px; background:#eaf4fc; }.diary-video.portrait .diary-video-player { width:100%; max-width:300px; justify-self:center; border-radius:14px; box-shadow:0 18px 46px rgba(18,50,82,.18); }.diary-video.portrait video { aspect-ratio:9/16; }.diary-video.portrait figcaption { padding:0 24px 0 34px; }.diary-video.portrait h3 { font-size:32px; }.diary-video-grid > .diary-video:only-child.landscape { grid-column:1/-1; width:min(100%,900px); justify-self:center; }
.photo-chapter { padding-top:76px; }.photo-chapter + .photo-chapter { margin-top:82px; border-top:1px solid var(--line); }.photo-chapter-heading { display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; align-items:start; margin-bottom:34px; }.photo-chapter-heading h3 { margin:0; font-family:"Songti SC","STSong",serif; font-size:36px; line-height:1.2; }.photo-chapter-heading p { max-width:45em; margin:0; color:var(--muted); line-height:1.85; }.chapter-gallery { display:grid; gap:16px; }.gallery-row { display:flex; justify-content:center; align-items:flex-start; gap:16px; }.gallery-photo { flex:0 1 calc((100% - 16px)/2); min-width:0; padding:0; overflow:hidden; border:0; border-radius:14px; background:#d8e9f7; cursor:zoom-in; box-shadow:0 14px 36px rgba(37,81,123,.13); }.gallery-row.solo .gallery-photo { flex-basis:calc((100% - 32px)/3); }.gallery-row.count-2 .gallery-photo { flex-basis:calc((100% - 16px)/2); }.gallery-row.featured .gallery-photo { flex-basis:100%; }.gallery-row.triptych { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; aspect-ratio:4/3; }.gallery-row.triptych .gallery-photo:first-child { grid-row:1/3; }.gallery-row.triptych .gallery-photo:nth-child(2) { grid-column:2; grid-row:1; }.gallery-row.triptych .gallery-photo:nth-child(3) { grid-column:2; grid-row:2; }.gallery-row.mixed-duo { display:grid; grid-template-columns:2fr 1fr; align-items:stretch; }.gallery-row.triptych .gallery-photo,.gallery-row.mixed-duo .gallery-photo { width:100%; height:100%; }.gallery-row.triptych .gallery-picture,.gallery-row.triptych .gallery-picture img,.gallery-row.mixed-duo .gallery-picture,.gallery-row.mixed-duo .gallery-picture img { height:100%; }.gallery-row.triptych .gallery-picture img,.gallery-row.mixed-duo .gallery-picture img { object-fit:cover; }.gallery-picture,.gallery-picture img { display:block; width:100%; height:auto; }.gallery-picture img { transition:transform .5s cubic-bezier(.16,1,.3,1); }.gallery-photo:hover img { transform:scale(1.012); }
.chapter-video { display:grid; grid-template-columns:minmax(220px,320px) 1fr; gap:48px; align-items:center; margin:40px 0 0; padding:32px; border-radius:16px; background:#eaf4fc; }.chapter-video-player { position:relative; width:100%; max-width:320px; justify-self:center; overflow:hidden; border-radius:14px; background:#09192b; box-shadow:0 18px 46px rgba(18,50,82,.18); }.chapter-video-player video { display:block; width:100%; aspect-ratio:9/16; background:#09192b; }.chapter-video-error { position:absolute; inset:auto 12px 12px; margin:0; padding:9px 12px; border-radius:10px; color:white; background:rgba(16,40,70,.92); font-size:13px; }.chapter-video-copy h4 { margin:0; font-family:"Songti SC","STSong",serif; font-size:32px; line-height:1.25; }.chapter-video-copy p { max-width:40em; margin:18px 0 0; color:var(--muted); line-height:1.9; }.chapter-video-copy span { display:block; margin-top:18px; color:var(--blue-dark); font-size:13px; font-weight:800; }
.chapter-video.landscape { grid-template-columns:minmax(260px,400px) minmax(0,1fr); max-width:900px; margin:36px auto 0; padding:24px; background:#f3f8fc; }.chapter-video.landscape .chapter-video-player { max-width:400px; }.chapter-video.landscape .chapter-video-player video { aspect-ratio:16/9; }.chapter-video.landscape .chapter-video-copy h4 { font-size:24px; }
.chapter-video-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:40px; }.chapter-video-card { margin:0; overflow:hidden; border-radius:16px; background:#f3f8fc; box-shadow:0 16px 42px rgba(18,50,82,.13); }.chapter-video-card .chapter-video-player { max-width:none; border-radius:0; box-shadow:none; }.chapter-video-player.landscape video { aspect-ratio:16/9; }.chapter-video-card-copy { display:block; padding:20px; }.chapter-video-card-copy > span { color:var(--blue-dark); font-size:12px; font-weight:850; }.chapter-video-card-copy h4 { margin:8px 0 0; font-family:"Songti SC","STSong",serif; font-size:23px; line-height:1.25; }.chapter-video-card-copy p { margin:13px 0 0; color:var(--muted); line-height:1.75; }.chapter-video-card-copy small { display:block; margin-top:15px; color:var(--blue-dark); font-size:12px; font-weight:800; }
.detail-quote { padding-top:120px; padding-bottom:120px; text-align:center; background:linear-gradient(90deg,transparent,#e9f4fc 20% 80%,transparent); }.detail-quote blockquote { max-width:900px; margin:0 auto; font-family:"Songti SC","STSong",serif; font-size:36px; line-height:1.6; }.detail-quote p { color:var(--muted); }.related-section { padding-top:110px; padding-bottom:130px; }.related-links { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }.related-link { min-height:180px; display:flex; flex-direction:column; justify-content:flex-end; padding:22px; border-radius:14px; color:white; background:linear-gradient(180deg,rgba(34,85,134,.08),rgba(9,42,76,.8)),radial-gradient(circle at 50% 25%,#d7ebfa,#6397c2 65%,#315e86); }.related-link span,.related-link small { opacity:.78; }.related-link strong { margin:7px 0; font-size:22px; }

.lightbox-open { overflow:hidden; }.photo-lightbox { width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; color:white; background:rgba(5,18,32,.96); }.photo-lightbox[open] { display:grid; grid-template-columns:72px 1fr 72px; align-items:center; }.photo-lightbox::backdrop { background:rgba(5,18,32,.72); }.lightbox-stage { min-width:0; display:grid; justify-items:center; gap:14px; }.lightbox-stage picture { display:grid; place-items:center; max-width:100%; }.lightbox-stage img { display:block; max-width:min(1120px,calc(100vw - 200px)); max-height:84dvh; object-fit:contain; touch-action:pan-y; }.lightbox-stage p { margin:0; color:#c7dbf0; font-size:13px; font-weight:750; }.lightbox-close,.lightbox-nav { display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; border-radius:50%; color:white; background:rgba(255,255,255,.12); cursor:pointer; }.lightbox-close { position:absolute; z-index:2; top:22px; right:24px; }.lightbox-nav { justify-self:center; }.lightbox-close svg,.lightbox-nav svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.lightbox-close:hover,.lightbox-nav:hover { background:rgba(255,255,255,.2); }

@media (max-width:900px) { .activity-header { grid-template-columns:1fr auto auto; padding-inline:18px; }.activity-header nav { position:absolute; left:15px; right:15px; top:70px; display:none; padding:14px; background:white; border-radius:14px; box-shadow:0 16px 45px rgba(37,78,120,.18); }.activity-header nav.open { display:grid; }.activity-header nav a { padding:11px; }.activity-header nav a.active::after { display:none; }.nav-toggle { display:block; }.hero-layout { grid-template-columns:1fr; gap:48px; }.hero-copy > span { max-width:46em; }.spontaneous-layout,.special-story,.detail-film { grid-template-columns:1fr; }.story-entry,.story-entry.reverse { grid-template-columns:120px 1fr; gap:28px; }.story-entry .story-copy,.story-entry.reverse .story-copy { grid-column:2; grid-row:2; }.story-entry .story-image,.story-entry.reverse .story-image { grid-column:2; grid-row:1; }.archive-item { grid-column:span 6; }.detail-title { grid-template-columns:1fr; }.detail-title dl { flex-wrap:wrap; }.detail-story { grid-template-columns:1fr; gap:34px; }.photo-chapter-heading { grid-template-columns:1fr; gap:16px; }.related-links { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .activity-shell { width:min(100% - 30px,520px); }.activity-header { height:66px; gap:10px; }.activity-brand { font-size:22px; }.consult-link { display:none; }.activity-hero { padding:58px 0 70px; }.hero-copy h1 { font-size:48px; }.hero-copy > p { font-size:17px; letter-spacing:.04em; }.hero-media { aspect-ratio:4/3; }.poster-frame { padding:13px 9px; }.poster-frame b { font-size:11px; }.poster-frame small { display:none; }.city-route { padding-top:70px; overflow:hidden; }.route-track { width:650px; grid-template-columns:repeat(5,130px); overflow:visible; }.encounter-stories { padding:80px 0; }.story-heading { align-items:start; }.section-heading h2,.archive-heading h2 { font-size:34px; }.story-entry,.story-entry.reverse { grid-template-columns:1fr; gap:18px; padding:34px 0; }.story-entry .story-meta,.story-entry .story-image,.story-entry .story-copy,.story-entry.reverse .story-meta,.story-entry.reverse .story-image,.story-entry.reverse .story-copy { grid-column:1; grid-row:auto; }.story-image { min-height:230px; }.story-image.has-media { min-height:0; }.story-copy h3 { font-size:26px; }.spontaneous-section { padding:70px 0; }.spontaneous-layout { gap:38px; }.spontaneous-layout h2,.special-copy h2 { font-size:42px; }.mini-filmstrip { width:620px; }.spontaneous-layout { overflow:hidden; }.special-story { gap:38px; padding-top:80px; padding-bottom:80px; }.special-placeholder { min-height:280px; }.archive-section { padding:80px 0 90px; }.archive-heading { align-items:start; flex-direction:column; }.archive-grid { grid-template-columns:1fr; }.archive-item,.archive-item:nth-child(4),.archive-item:nth-child(5) { grid-column:1; min-height:210px; }.archive-item.has-media { min-height:0; }.closing-layout { align-items:start; flex-direction:column; }.closing-layout h2 { font-size:42px; }.activity-footer { align-items:flex-start; flex-direction:column; padding:30px 0; }.activity-footer small { text-align:left; }.detail-main { padding-top:30px; }.detail-title { margin-top:36px; gap:28px; }.detail-title h1 { font-size:50px; }.detail-title dl { gap:18px; }.detail-cover { min-height:300px; }.detail-cover.has-media { min-height:0; }.detail-story { padding:80px 0; }.detail-story h2,.detail-film h2 { font-size:32px; }.gallery-layout { grid-template-columns:1fr 1fr; grid-template-rows:210px 210px 210px; }.gallery-wide { grid-column:1/3; grid-row:1; }.gallery-tall { grid-row:2/4; }.detail-film { padding:80px 0; gap:38px; }.film-placeholder { min-height:260px; }.photo-chapter { padding-top:58px; }.photo-chapter + .photo-chapter { margin-top:64px; }.photo-chapter-heading h3 { font-size:30px; }.chapter-gallery,.gallery-row { gap:10px; }.gallery-row { flex-wrap:wrap; }.gallery-row .gallery-photo,.gallery-row.solo.landscape .gallery-photo { flex-basis:100%; border-radius:12px; }.gallery-row.solo.portrait .gallery-photo { flex-basis:calc((100% - 10px)/2); }.gallery-row.triptych,.gallery-row.mixed-duo { display:flex; aspect-ratio:auto; }.gallery-row.triptych .gallery-photo,.gallery-row.mixed-duo .gallery-photo { flex-basis:100%; height:auto; }.gallery-row.triptych .gallery-picture,.gallery-row.triptych .gallery-picture img,.gallery-row.mixed-duo .gallery-picture,.gallery-row.mixed-duo .gallery-picture img { height:auto; object-fit:initial; }.chapter-video { grid-template-columns:1fr; gap:24px; padding:16px; }.chapter-video-player { max-width:280px; }.chapter-video.landscape { grid-template-columns:1fr; max-width:100%; }.chapter-video.landscape .chapter-video-player { max-width:280px; }.chapter-video-copy h4 { font-size:28px; }.chapter-video.landscape .chapter-video-copy h4 { font-size:24px; }.detail-quote { padding:80px 20px; }.detail-quote blockquote { font-size:27px; }.related-links { grid-template-columns:1fr; }.photo-lightbox[open] { grid-template-columns:1fr; }.lightbox-stage { grid-column:1; }.lightbox-stage img { max-width:calc(100vw - 30px); max-height:78dvh; }.lightbox-nav { position:absolute; z-index:2; top:50%; transform:translateY(-50%); }.lightbox-prev { left:6px; }.lightbox-next { right:6px; }.lightbox-close { top:14px; right:14px; }.lightbox-close,.lightbox-nav { width:42px; height:42px; } }
.film-playlist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.film-caption { display:flex; justify-content:space-between; gap:16px; padding:12px 15px 14px; color:white; font-size:12px; }.film-caption span { color:#b9d0e6; }
@media (max-width:600px) { .film-playlist,.chapter-video-list { grid-template-columns:1fr; } }
@media (max-width:900px) { .diary-heading { grid-template-columns:1fr; gap:16px; } }
@media (max-width:600px) { .detail-diary { padding:80px 0; }.diary-heading h2 { font-size:32px; }.diary-video-grid { grid-template-columns:1fr; gap:14px; margin-top:32px; }.diary-video figcaption { padding:22px 20px 24px; }.diary-video h3 { font-size:23px; }.diary-video.portrait { grid-column:auto; grid-template-columns:1fr; padding:16px; }.diary-video.portrait .diary-video-player { max-width:280px; }.diary-video.portrait figcaption { padding:24px 6px 10px; }.diary-video.portrait h3 { font-size:27px; } }
@media (max-width:600px) { .route-track { width:100%; grid-template-columns:repeat(7,130px); overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; }.route-track::-webkit-scrollbar { display:none; }.route-track::before { left:65px; right:auto; width:780px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
@media (max-width:600px) { .poster-frame { padding:0; }.poster-caption { left:9px; right:6px; bottom:13px; } }
