/* Preserve the spatial composition; give reading and source material more room. */
body:not(.desktop-mode)::before, .editorial-site .hero-playground::after { display:none; }
/* Let the portrait and movable labels carry this part of the introduction. */
.site-hero .mission-portrait-frame > :is(.mission-trajectory,.mission-portrait-badge,.mission-frame-label,.mission-frame-bottom),
.site-hero .hero-playground > :is(.hero-orbit,.play-hint) { display:none; }
.site-hero.portrait-integrated .hero-playground { background:var(--paper); border:0; border-radius:0; box-shadow:none; isolation:isolate; height:auto; aspect-ratio:1422 / 1072; }
.site-hero.portrait-integrated .hero-portrait { object-fit:contain; filter:none; mix-blend-mode:lighten; mask-image:none; }
.hero-lead a { color:#ffad97; text-decoration:underline; text-underline-offset:4px; }
.home-projects { padding-block:70px; }
.home-projects-heading { margin-bottom:32px; }
.home-projects-heading h2 { font-size:clamp(38px,4vw,56px); line-height:1; }
.home-projects-grid { grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr)); grid-template-rows:auto; align-items:stretch; }
.home-projects-grid .home-project-card { grid-row:auto; display:flex; flex-direction:column; }
.home-projects-grid .home-project-stage { min-height:180px; height:180px; flex:none; }
.home-projects-grid .home-apolo-stage strong { font-size:clamp(52px,6vw,86px); }
.home-projects-grid .home-project-copy { flex:1; flex-direction:column; align-items:stretch; gap:20px; }
.home-projects-grid .home-project-copy p { font-size:12px; line-height:1.7; }
.home-contact { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-block:60px; }
.home-contact h2 { font:400 clamp(32px,4vw,48px)/1.1 'Newsreader',serif; margin:0; }
.home-contact > div { display:flex; flex-wrap:wrap; gap:24px; }
.home-contact a { color:var(--ink); text-underline-offset:5px; }
.home-writing-entries { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.home-writing-entries a { color:var(--ink); text-decoration:none; border-top:1px solid var(--line); padding-top:22px; }
.home-writing-entries h3 { font:400 28px/1.15 'Newsreader',serif; }
.home-writing-entries p { color:#bbbcb5; font-size:14px; line-height:1.7; }
.home-writing-entries span { font:11px/1.5 'DM Mono',monospace; color:#ffad97; }
.home-contact a:focus-visible { outline:2px solid #ffad97; outline-offset:6px; }
.home-writing[hidden], .home-contact[hidden] { display:none; }
@media(max-width:760px) {
 .home-projects-grid, .home-writing-entries { grid-template-columns:1fr; }
 .home-projects { padding-block:44px; }
 .home-contact { align-items:flex-start; flex-direction:column; padding-block:42px; }
}
.home-writing { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:64px; align-items:end; padding-block:65px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.home-writing h2 { font:400 clamp(36px,4.2vw,62px)/1.08 'Newsreader',serif; letter-spacing:-.035em; margin:16px 0 0; }
.home-writing h2 a { color:var(--ink); text-decoration:none; }
.home-writing h2 span { color:#ffad97; }
.home-writing > p { font-size:16px; line-height:1.8; color:#bbbcb5; margin:0; max-width:400px; }
.chapter-index { display:flex; flex-wrap:wrap; gap:12px 28px; padding-block:28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.chapter-index a { display:flex; gap:10px; font-size:13px; color:var(--ink); text-decoration:none; padding-block:5px; }
.chapter-index a span { color:#ffad97; font:10px/1.8 'DM Mono',monospace; }
.case-chapter { scroll-margin-top:110px; }
.case-intro.case-intro-compact { padding-block:28px; align-items:center; }
.case-intro.case-intro-compact .case-tags { margin:0; }
.case-chapter.is-text-only { grid-template-columns:1fr; padding-block:36px; border-bottom:1px solid var(--line); min-height:0; }
.case-chapter.is-text-only .case-chapter-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:14px 64px; align-items:start; }
.case-chapter.is-text-only .case-chapter-copy .section-number { grid-column:1/-1; margin:0; }
.case-chapter.is-text-only .case-chapter-copy .section-number::after { content:none; }
.case-chapter.is-text-only .case-chapter-copy h2 { font-size:clamp(30px,3vw,44px); line-height:1.12; margin:0; }
.case-chapter.is-text-only .case-chapter-copy > p:not(.section-number) { margin:0; font-size:16px; line-height:1.8; }
.project-connections { padding-block:64px; }
.project-connections > h2 { font:400 clamp(32px,3.5vw,48px)/1.1 'Newsreader',serif; margin:0 0 38px; }
.project-connection-group { display:grid; grid-template-columns:200px minmax(0,1fr); gap:35px; margin-bottom:35px; }
.project-connection-group h3 { font:12px/1.6 'DM Mono',monospace; color:#ffad97; margin:18px 0; }
.project-connection-group .connection-entry { display:block; position:relative; border-top:1px solid var(--line); padding:18px 40px 22px 0; color:var(--ink); text-decoration:none; }
.project-connection-group .connection-entry > span { display:block; font:10px/1.7 'DM Mono',monospace; color:#b9bbb2; }
.project-connection-group strong { display:block; font:400 27px/1.2 'Newsreader',serif; margin-top:8px; }
.project-connection-group p { margin:10px 0 0; font-size:14px; line-height:1.7; color:#b9bbb2; }
.project-connection-group i { position:absolute; right:0; top:24px; color:#ffad97; font-style:normal; }
:is(.home-writing,.chapter-index,.project-connections,.hero-lead) a:focus-visible { outline:2px solid #ffad97; outline-offset:6px; }
@media(max-width:760px){
 .home-writing,.case-chapter.is-text-only .case-chapter-copy,.project-connection-group { grid-template-columns:1fr; gap:22px; }
 .home-writing { padding-block:42px; }
 .chapter-index { gap:8px; flex-direction:column; }
 .project-connection-group h3 { margin-bottom:0; }
}

/* A large portrait rests on the divider; labels float around its face. */
.site-hero.portrait-integrated { row-gap:0; }
.portrait-integrated .mission-topline { margin-bottom:48px; }
.portrait-integrated .hero-intro { align-self:center; padding-bottom:64px; }
.portrait-integrated .mission-portrait-frame { padding:0; margin:0 0 0 -400px; width:calc(100% + 400px); align-self:end; }
.portrait-integrated .hero-playground { width:100%; }
.portrait-stickers { position:absolute; inset:0; z-index:3; pointer-events:none; }
.portrait-stickers .float-chip { position:absolute; left:var(--start-x); top:var(--start-y); pointer-events:auto; }
.portrait-stickers .chip-yellow { --start-x:23%; --start-y:10%; }
.portrait-stickers .chip-mint { --start-x:80%; --start-y:18%; }
.portrait-stickers .chip-coral { --start-x:74%; --start-y:85%; }
.portrait-stickers .chip-blue { --start-x:18%; --start-y:77%; }
.portrait-stickers .chip-lilac { --start-x:84%; --start-y:56%; }
@media(max-width:760px) {
 .portrait-integrated .mission-topline { margin-bottom:24px; }
 .portrait-integrated .hero-intro { padding-bottom:20px; }
 .portrait-integrated .mission-portrait-frame { width:100%; margin:0; }
 .portrait-stickers .chip-yellow { --start-x:0%; --start-y:23%; }
 .portrait-stickers .chip-mint { --start-x:78%; }
 .portrait-stickers .chip-blue { --start-x:3%; }
 .portrait-stickers .chip-lilac { --start-x:81%; }
}
.float-chip.is-free { position:absolute; z-index:15000; margin:0; font-size:8px; padding:10px 12px; }
body.desktop-mode > .float-chip.is-free, body:not(:has(.site-hero:not([hidden]))) > .float-chip.is-free { display:none; }
@media(min-width:761px) and (max-width:1100px) {
 .portrait-integrated .mission-portrait-frame { margin-left:-160px; width:calc(100% + 160px); }
 .portrait-stickers .chip-yellow { --start-x:26%; --start-y:8%; }
}

/* Apolo: leave the cover clear and keep text away from the panel edges. */
.mission-case .mission-case-insignia,
.home-apolo-stage .mission-stage-insignia { display:none; }
.mission-case .case-hero-grid { gap:32px; padding-block:28px; }
.mission-case .case-title-card { padding:36px; }
.mission-case .case-question { padding:40px; display:flex; flex-direction:column; justify-content:space-between; gap:48px; }
.mission-case .case-question > div > p { margin:28px 0 0; font-size:clamp(32px,3vw,44px); line-height:1.12; }
.mission-case .case-question > footer { display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.mission-case .case-question > footer small { max-width:42ch; font-size:13px; line-height:1.7; }
@media(max-width:760px) {
 .mission-case .case-hero-grid { gap:20px; padding-block:20px; }
 .mission-case .case-title-card { padding:24px; }
 .mission-case .case-question { padding:28px 24px; min-height:0; gap:36px; }
 .mission-case .case-question > div > p { font-size:clamp(28px,7.5vw,36px); margin-top:22px; }
}

.history-teaching{padding-block:64px;border-top:1px solid var(--line)}
.history-teaching[hidden],[data-history-nav][hidden]{display:none!important}
.history-teaching header{margin-bottom:28px}
.history-teaching article{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:32px;padding:32px 0;border-top:1px solid rgba(235,232,224,.12)}
.history-teaching time{font:11px/1.6 "DM Mono",monospace;color:#ff927e}
.history-teaching h2{margin:0 0 14px;font:clamp(26px,3vw,38px)/1.15 Georgia,serif;overflow-wrap:anywhere}
.history-teaching p{max-width:60ch;margin:8px 0;color:#aaa9a2;font-size:14px;line-height:1.7;white-space:pre-line}
.history-teaching .teaching-institution{color:#ebe8e0}
.history-teaching a{display:inline-block;margin-top:16px;font-size:13px}
.history-teaching img{width:180px;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
@media(max-width:760px){.history-teaching{padding-block:40px}.history-teaching article{grid-template-columns:1fr;gap:14px;padding-block:24px}.history-teaching img{width:100%;max-width:360px}}

.home-writing h2 a:hover,.home-writing h2 a:focus-visible,.home-writing-entries a:hover h3,.home-writing-entries a:focus-visible h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.home-writing a:focus-visible { outline:2px solid #ffad97; outline-offset:6px; }
