/* One footer for every page (tools/site_footer.py). Kostina style: bone, graphite, one thin red line; Oswald name, Inter text. */
footer:has(>.site-footer),footer:has(>.site-footer) *{box-sizing:border-box}
footer:has(>.site-footer){display:block!important;height:auto!important;min-height:0!important;position:relative!important;z-index:120!important;isolation:isolate;margin:0!important;padding:0!important;border:0!important;background:#f0ede5!important;color:#242522!important;grid-template-columns:none!important;inline-size:100%!important;max-inline-size:none!important}
.fg-footer:has(>.site-footer),.talk-footer:has(>.site-footer){display:flex!important;flex-wrap:wrap;gap:12px 24px;padding:32px max(20px,calc((100% - 1140px)/2)) 0!important}
.fg-footer>.site-footer,.talk-footer>.site-footer{flex-basis:100%;padding-inline:0}
.sf-related{flex-basis:100%;max-inline-size:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px 24px;font:500 16px/1.25 'Inter',sans-serif}
.sf-related-label{margin:0;font:12px/1.4 ui-monospace,'SFMono-Regular','Courier New',monospace;letter-spacing:.08em;text-transform:uppercase;color:#55564f}
.sf-related ul{display:flex;flex-wrap:wrap;gap:0 24px;list-style:none;margin:0;padding:0}
.sf-related li{margin:0;padding:0}
.sf-related a{display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px;color:#242522;border-block-end:1px solid transparent}
.sf-related a:hover,.sf-related a:focus-visible{border-block-end-color:#ff3b30}
.site-footer{max-inline-size:1180px;margin:0 auto;padding:48px 20px calc(104px + env(safe-area-inset-bottom));border-top:1px solid #c6c4bb;font:16px/1.55 'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;color:#242522;text-align:start;letter-spacing:normal;text-transform:none;overflow-wrap:anywhere}
.site-footer p{margin:0}
body[tabindex="-1"]:focus{outline:none}
/* No seams around the footer: the last block before it keeps its bottom margin inside (home: white strip at 1280), and the page
   needs no bottom padding for a fixed mobile bar, the footer already reserves 104 px (home: red strip under the footer at 320/390). */
:has(+footer>.site-footer)>:last-child{margin-block-end:0!important}
body:has(footer>.site-footer){padding-bottom:0!important}
/* One line, not two: a gallery that ends with its own rule (visual40) carries the edge, the footer drops its top rule. */
:has(>.visual40:last-child)+footer>.site-footer{border-top-color:transparent}
html.sf-in-view #kostina-euler-backdrop{opacity:0!important}
#kostina-euler-backdrop{transition:opacity .4s ease}
@media (prefers-reduced-motion:reduce){#kostina-euler-backdrop{transition:none}}
.site-footer a{text-decoration:none!important;box-shadow:none}
.sf-sep{white-space:pre}
.sf-main{display:grid;gap:32px}
@media (min-width:900px){.sf-main{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px}}
.sf-line{display:block;inline-size:40px;block-size:2px;background:#ff3b30;margin-block-end:16px}
.sf-name{font:600 clamp(28px,4vw,42px)/1.05 'Oswald','Arial Narrow',sans-serif;letter-spacing:.01em;text-transform:uppercase;color:#242522}
.sf-role{margin-block-start:10px!important;max-inline-size:62ch;font-size:15px;line-height:1.55;color:#55564f}
.sf-actions{display:flex;flex-wrap:wrap;gap:12px;margin-block-start:22px}
.sf-actions a{display:inline-flex;align-items:center;min-block-size:44px;padding:0 18px;border:1px solid #242522;color:#242522;background:transparent;text-decoration:none;font:500 15px/1.2 'Inter',sans-serif}
.sf-actions a.sf-cta{background:#242522;color:#f0ede5}
.sf-actions a:hover{border-color:#ff3b30}
.sf-nav ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.sf-nav li{margin:0;padding:0}
.sf-nav ul a{display:inline-flex;align-items:center;justify-content:flex-start;min-block-size:44px;min-inline-size:44px;color:#242522;text-decoration:none;font:500 16px/1.25 'Inter',sans-serif;border-block-end:1px solid transparent}
.sf-nav ul a:hover,.sf-nav ul a:focus-visible,.sf-nav ul a[aria-current=page]{border-block-end-color:#ff3b30}
.titi-badge:hover{border-color:#242522}
.sf-util{display:flex;flex-wrap:wrap;gap:12px;margin-block-start:20px}
.sf-lang,.sf-top{display:inline-flex;align-items:center;min-block-size:44px;padding:0 16px;border:1px solid #b7b1a7;border-radius:100px;background:transparent;color:#242522;font:500 14px/1.2 'Inter',sans-serif;cursor:pointer;text-decoration:none}
.sf-top::after{content:"\00a0↑"}
.sf-credits{display:flex;flex-wrap:wrap;align-items:center;gap:4px 28px;margin-block-start:40px;padding-block-start:20px;border-block-start:1px solid #c6c4bb;font:13px/1.6 ui-monospace,'SFMono-Regular','Courier New',monospace;color:#55564f}
.titi-badge{display:inline-flex;align-items:center;gap:7px;min-block-size:44px;padding:0 14px 0 8px;border:1px solid #b7b1a7;border-radius:100px;background:#f7f5ef;color:#242522;text-decoration:none;font:600 13px/1 ui-monospace,'Courier New',monospace;vertical-align:middle}
.titi-badge:hover span{text-decoration:underline;text-decoration-color:#ff3b30;text-underline-offset:3px}
.titi-mark{flex:none;display:block}
.sf-rights{margin-block-start:10px!important;max-inline-size:75ch;font:13px/1.6 'Inter',sans-serif;color:#55564f}
.sf-agents{display:inline-flex;align-items:center;min-block-size:44px;color:#55564f;border-block-end:1px solid #c6c4bb}
.site-footer a:focus-visible,.site-footer button:focus-visible{outline:3px solid #ff3b30;outline-offset:3px}
@media (max-width:380px){.sf-nav ul{grid-template-columns:minmax(0,1fr)}}
@media print{.sf-actions,.sf-util,.sf-nav{display:none!important}.site-footer{padding:12px 0!important;border-top:1px solid #999}}
