/* One header geometry for the public site, reader and native-transition snapshot. */
:root{--site-gutter:clamp(36px,5.4vw,104px);--site-header:96px;--site-brand:26px;--fm-margin:var(--site-gutter)}
body .site-header,body.home-page .site-header,body .fm-header,html[data-handoff-brand] .thesis-handoff-brand{height:var(--site-header);padding-inline:var(--site-gutter);max-width:none;margin:0;box-sizing:border-box}
body .site-header,body.home-page .site-header,body .fm-header{display:grid;grid-template-columns:auto minmax(0,1fr) 44px;align-items:center;gap:32px}
body .site-header>.wordmark,body.home-page .site-header>.wordmark,body .fm-header>.fm-brand,.thesis-handoff-wordmark{display:inline-flex;align-items:center;justify-self:start;min-height:44px;font:450 var(--site-brand)/1.1 'Newsreader Variable',Georgia,serif;letter-spacing:-.025em;white-space:nowrap}
body .site-header .desktop-nav,body .fm-header .fm-site-links{justify-self:end;display:flex;align-items:center;gap:22px!important;margin:0}
body .site-header .fm-contents{margin:0;justify-self:end}
body .site-header .fm-contents>summary,body .fm-header .fm-contents-trigger{display:flex;align-items:center;justify-content:flex-end;width:44px;min-height:44px;padding:0;gap:0}
body .fm-header-right{display:contents}
body .fm-header .fm-contact,body .fm-header .fm-contents-trigger>span:first-child{display:none}
body .fm-header .fm-site-links a,body .fm-header .fm-access summary{font:450 18px/1.2 'Newsreader Variable',Georgia,serif;letter-spacing:-.01em;text-decoration:none;color:inherit;min-height:44px;display:inline-flex;align-items:center}
body .fm-header .fm-site-links .nav-public>a[aria-current]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
body .fm-header .fm-access{margin-left:4px;padding-left:26px;border-left:1px solid #c9d3cc;position:relative}
body .fm-header .fm-access summary{cursor:pointer;list-style:none;gap:12px}
body .fm-header .fm-access summary::-webkit-details-marker{display:none}
body .fm-header .fm-access summary span{font:300 19px "Geist Variable",system-ui}
body .fm-header .fm-access[open] summary span{transform:rotate(45deg)}
body .fm-header .fm-access-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;padding:18px 24px;background:#fafbf8;border:1px solid #c9d3cc;box-shadow:0 12px 30px #21333312;z-index:60}
body .fm-header .fm-access-panel a{display:flex}
body .fm-header a:focus-visible,body .fm-header summary:focus-visible{outline:2px solid #306c6e;outline-offset:4px}
body .fm-contents-sheet{top:var(--site-header);padding:32px;}
body .fm-contents-nav .nav-access{padding-left:0!important}
body .fm-contents-nav .nav-public,body .fm-contents-nav .nav-access{align-items:stretch}
body .fm-contents-list a,body .fm-contents-nav a,body .fm-contents-nav button{font-size:22px!important;line-height:1.25;min-height:44px;font-style:normal!important}
body .fm-motion-option{display:block;width:fit-content;margin:24px 0 0;padding:8px 0;border:0;border-radius:0;background:none;font:400 14px/1.4 var(--sans);color:var(--body);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
body .fm-motion-option[hidden]{display:none}
body .fm-motion-option:disabled{cursor:default;text-decoration:none}
body .fm-contents-list a[aria-current] .fm-contents-label,body .fm-contents-nav a[aria-current],body .desktop-nav a[aria-current]{text-decoration-style:solid!important}
.portal-page{min-height:100svh;display:flex;flex-direction:column}
.portal-page main{flex:1;display:grid;place-items:center;padding:72px var(--site-gutter) 100px}
.portal-entry{width:min(100%,400px)}
.portal-entry h1{font-size:clamp(38px,5vw,48px)}
.portal-entry>p{margin-top:18px;color:var(--body);font-size:16px}
.portal-entry form{margin-top:36px;display:grid;gap:14px}
.portal-entry label{font:400 14px/1.3 var(--sans)}
.portal-entry input{width:100%;min-width:0;min-height:48px;border:1px solid var(--rule);border-radius:0;padding:12px;background:transparent;color:var(--ink);font:18px var(--sans)}
.portal-entry input:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.portal-entry .fm-cta{justify-self:start;margin-top:8px;border:0;cursor:pointer}
#portal-feedback{font:14px/1.5 var(--sans);color:var(--body)}
#portal-feedback:empty{display:none}
.portal-contact{display:inline-flex;align-items:center;min-height:44px;margin-top:24px;font:450 17px/1.3 var(--serif);text-decoration:underline;text-underline-offset:5px}
@media(min-width:921px) and (max-width:1100px){body .site-header,body.home-page .site-header,body .fm-header{gap:16px}body .fm-header .fm-site-links{gap:16px!important}body .fm-header .fm-access{padding-left:16px}}
@media(max-width:920px){
 :root{--site-gutter:24px;--site-header:70px;--site-brand:23px}
 body .site-header,body.home-page .site-header,body .fm-header{grid-template-columns:minmax(0,1fr) 44px;gap:16px}
 body .site-header .desktop-nav,body .fm-header .fm-site-links{display:none!important}
 body .fm-contents-sheet{padding:20px var(--site-gutter) 32px;background-position:var(--site-gutter) 0;background-size:calc(100% - 2 * var(--site-gutter)) 1px}
 body .fm-depth-toolbar{top:13px;right:var(--site-gutter)}
 .portal-page main{padding-block:48px 72px}
}
@media(max-width:480px){:root{--site-gutter:20px;--site-brand:21px}}

/* Identical navigation groups keep every link at the same x-coordinate. */
body .fm-header .nav-public{display:flex;align-items:center;gap:24px}
body .fm-header .fm-access summary{letter-spacing:normal}
@media(min-width:921px) and (max-width:1100px){body .fm-header .fm-site-links{gap:22px!important}body .fm-header .nav-public{gap:16px}}
body .site-header .desktop-nav .nav-public{gap:24px}
@media(min-width:921px) and (max-width:1100px){body .site-header .desktop-nav .nav-public{gap:16px}}
@media(max-width:920px){body .fm-contents-sheet{gap:0;padding-block:16px 20px}body .fm-contents-nav{margin-top:20px!important}body .fm-motion-option{margin-top:16px}}

/* Website destinations always precede the current page's contents. */
body .fm-menu-destinations{display:block;margin:0!important;padding:0;border:0}
body .fm-menu-destinations .nav-public,body .fm-menu-destinations .nav-access{display:flex;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:0;border:0}
body .fm-menu-destinations a{display:flex;align-items:center;min-height:44px;padding:6px 0;font:450 24px/1.2 'Newsreader Variable',Georgia,serif;font-style:normal!important;color:#213333;text-decoration:none;letter-spacing:-.02em}
body .fm-menu-destinations a[aria-current]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
body .fm-menu-destinations .nav-access{border-top:1px solid #c9d3cc;margin-top:20px;padding-top:18px}
body .fm-menu-destinations .nav-access:before{display:none}
body .fm-menu-destinations .nav-group-label{display:block;margin-bottom:6px;font:13px/1.5 'Geist Variable',system-ui,sans-serif;color:#5e7069}
body .fm-menu-destinations .arrow{display:none}
body .fm-page-contents{border-top:1px solid var(--rule);margin-top:20px;padding-top:12px}
body .fm-page-contents>summary{display:flex;justify-content:space-between;min-height:44px;font:14px/1.5 var(--sans);color:var(--body)}
body .fm-page-contents>summary:after{content:'+';font-size:18px}
body .fm-page-contents[open]>summary:after{content:'−'}
body .fm-page-contents .fm-contents-list a{font:400 17px/1.4 var(--sans)!important;letter-spacing:normal;min-height:44px}
body .fm-page-label{margin:24px 0 10px;padding-top:20px;border-top:1px solid #c9d3cc;font:14px/1.5 'Geist Variable',system-ui,sans-serif;color:#465a53}
body dialog.fm-contents .fm-contents-sheet{position:absolute;right:0;bottom:0;width:min(460px,100vw);max-width:none;max-height:none;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
body dialog.fm-contents .fm-dialog-top{margin-bottom:22px}
body .fm-menu-destinations a:focus-visible,body .fm-page-contents summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
@media(max-width:920px){body .fm-menu-destinations a{font-size:22px}body dialog.fm-contents .fm-contents-sheet{left:0;width:100%;padding-inline:var(--site-gutter)}}

/* Public-page cohesion: one reading edge and one menu surface. */
body .site-header:has(>.fm-contents[open]){background:#fafbf8;color:#213333}
html body .site-header:has(>.fm-contents[open])>.wordmark,
html body .site-header:has(>.fm-contents[open]) .desktop-nav a,
html body .site-header:has(>.fm-contents[open])>.fm-contents>summary,
html.film-active body.home-page .site-header:has(>.fm-contents[open])>.wordmark,
html.film-active body.home-page .site-header:has(>.fm-contents[open])>.fm-contents>summary{color:#213333!important}
body .site-header:has(>.fm-contents[open]) .fm-access{border-color:#c9d3cc}
body dialog.fm-contents .fm-contents-sheet{transform:none!important;border:0;border-left:1px solid #dfe5df}
body dialog.fm-contents .fm-dialog-top{height:0;margin:0}
body dialog.fm-contents .fm-dialog-top h2{display:none}
body dialog.fm-contents .fm-dialog-top button{position:fixed;top:calc((var(--site-header) - 44px)/2);right:var(--site-gutter);width:44px;height:44px;font-size:0;z-index:2}
body dialog.fm-contents .fm-dialog-top button:before,body dialog.fm-contents .fm-dialog-top button:after{content:'';position:absolute;right:0;top:22px;width:19px;height:1px;background:#213333;transform:rotate(45deg)}
body dialog.fm-contents .fm-dialog-top button:after{transform:rotate(-45deg)}
body:has(dialog.fm-contents[open]) .fm-header .fm-contents-trigger{visibility:hidden}
body .fm-root .fm-menu-destinations a{color:#213333}
@media(max-width:920px){body dialog.fm-contents .fm-contents-sheet{border:0}}
@media(max-width:900px){
 .film-active .fm-cue-content,.film-active .fm-align-right .fm-cue-content{left:var(--site-gutter);right:var(--site-gutter)}
 html:not(.film-active) .home-page .fm-screen{padding-inline:var(--site-gutter)}
 body .fm-root .fm-copy-scene{padding-inline:var(--site-gutter)}
}
@media(max-width:920px){body dialog.fm-contents .fm-contents-sheet{background-image:linear-gradient(#c9d3cc,#c9d3cc);background-position:var(--site-gutter) 0;background-size:calc(100% - 2 * var(--site-gutter)) 1px;background-repeat:no-repeat}}

html.film-active body.home-page .site-header:has(>.fm-contents[open])::before{display:none}
