/* Shared homepage geometry, semantic DOM and the existing cursor adapter.
   1280px desktop scene: x80..1200; nav y24..88; footer 280px.
   390px mobile scene: x16..374; nav 164px; footer 520px.
   No animation or reveal is implemented here. Every border/background/text
   remains inside .site-header/.site-footer for the real adapter to construct. */
.shell-header,.shell-footer{--shell-u:min(.078125vw,1px);--home-case-bg:#4b55df;--home-case-ink:#fff;font-feature-settings:"cv11","ss01"}
:root[data-theme=dark] :is(.shell-header,.shell-footer){--home-case-bg:#b3beff;--home-case-ink:#111833}
.site-header.shell-header{margin-top:min(1.875%,24px);height:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:none;background:var(--paper)}
.shell-header .header-inner{position:relative;display:block;width:calc(1120 * var(--shell-u));min-height:0;height:calc(64 * var(--shell-u) - 2px);margin:0 auto;padding:0;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.shell-header .brand{position:absolute;left:calc(51 * var(--shell-u));top:calc(19 * var(--shell-u));margin:0;font-size:calc(18 * var(--shell-u));font-weight:650;line-height:1.3;letter-spacing:-.02em;text-decoration:none;white-space:nowrap;color:var(--ink)}
.shell-header .site-preferences{position:absolute;left:calc(164 * var(--shell-u));top:calc(8 * var(--shell-u));margin:0;padding:0 calc(2 * var(--shell-u));min-height:calc(46 * var(--shell-u));border-radius:999px}
.shell-header .preference-button{width:calc(44 * var(--shell-u));height:calc(44 * var(--shell-u));min-width:calc(44 * var(--shell-u));min-height:calc(44 * var(--shell-u));font-size:calc(11 * var(--shell-u))}
.shell-header .preference-button svg{width:calc(19 * var(--shell-u));height:calc(19 * var(--shell-u))}
.shell-header .preference-field+.preference-field:before{top:calc(15 * var(--shell-u));height:calc(14 * var(--shell-u))}
.shell-header .primary-nav{position:absolute;left:calc(459 * var(--shell-u));top:0;display:grid;grid-template-columns:repeat(4,calc(96 * var(--shell-u)));gap:0;width:auto;margin:0;padding:0;order:initial}
.shell-header .primary-nav a{display:flex;align-items:center;justify-content:flex-start;width:calc(82 * var(--shell-u));height:calc(62 * var(--shell-u));min-height:0;padding:0;margin:0;color:var(--ink);font-size:calc(14 * var(--shell-u));font-weight:500;line-height:1.4;text-decoration:none;white-space:nowrap}
.shell-header .shell-actions{position:absolute;left:calc(839 * var(--shell-u));top:calc(11 * var(--shell-u));display:flex;align-items:center;gap:calc(16 * var(--shell-u))}
.shell-header .shell-action{position:relative;display:flex;align-items:center;justify-content:center;flex:none;min-height:0;height:calc(40 * var(--shell-u));padding:0;border:0;border-radius:calc(8 * var(--shell-u));text-decoration:none;white-space:nowrap;font-size:calc(14 * var(--shell-u));font-weight:600;line-height:1.4;letter-spacing:0}
.shell-header .shell-case{width:calc(108 * var(--shell-u));background:var(--home-case-bg);color:var(--home-case-ink);box-shadow:0 3px 12px #4b55df25;z-index:1}
.shell-header .shell-contact{width:calc(136 * var(--shell-u));background:var(--ink);color:var(--on-ink);font-size:calc(14.5 * var(--shell-u))}
.shell-header .shell-nav-divider{position:absolute;left:calc(943 * var(--shell-u));top:0;width:1px;height:100%;background:var(--line);pointer-events:none}
.site-footer.shell-footer{padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.shell-footer .footer-inner{position:relative;display:block;width:calc(1120 * var(--shell-u));min-height:calc(280 * var(--shell-u) - 2px);padding:0;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.shell-footer .footer-brand{position:absolute;left:calc(61 * var(--shell-u));top:calc(43 * var(--shell-u));font-size:calc(18 * var(--shell-u));font-weight:650;line-height:1.3;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
.shell-footer .footer-nav{position:absolute;left:calc(479 * var(--shell-u));top:calc(47 * var(--shell-u));display:grid;grid-template-columns:repeat(2,calc(200 * var(--shell-u))) calc(220 * var(--shell-u));align-items:start;gap:0;max-width:none;margin:0;padding:0}
.shell-footer .shell-footer-group{min-width:0}
.shell-footer .shell-footer-group h2{margin:0 0 calc(14 * var(--shell-u));font-size:calc(14.5 * var(--shell-u));font-weight:600;line-height:1.4;letter-spacing:0;color:var(--ink)}
.shell-footer .shell-footer-group a{display:block;width:calc(190 * var(--shell-u));margin:0 0 calc(10 * var(--shell-u));font-size:calc(14.5 * var(--shell-u));font-weight:450;line-height:1.4;letter-spacing:0;color:var(--ink);text-decoration:none;overflow-wrap:break-word}
.shell-footer .shell-footer-group:last-child a{width:calc(220 * var(--shell-u))}
.shell-header a:hover,.shell-footer a:hover{text-decoration:underline}
.shell-header .primary-nav .shell-home-mobile,.shell-footer .footer-nav .shell-home-mobile{display:none}
/* Match the home canvas's real 699px breakpoint, not the legacy subpage nav. */
@media(max-width:699px){
 .shell-header,.shell-footer{--shell-u:min(.2564102564vw,1px)}
 .shell-header .primary-nav .shell-home-desktop,.shell-footer .footer-nav .shell-home-desktop{display:none}
 .shell-header .primary-nav .shell-home-mobile{display:flex}
 .shell-footer .footer-nav .shell-home-mobile{display:block}
 .site-header.shell-header{margin-top:0;height:auto}
 .shell-header .header-inner{width:calc(358 * var(--shell-u));height:calc(164 * var(--shell-u) - 2px)}
 .shell-header .brand{left:calc(15 * var(--shell-u));top:calc(21 * var(--shell-u));font-size:calc(19 * var(--shell-u))}
 .shell-header .site-preferences{left:auto;right:calc(15 * var(--shell-u));top:calc(13 * var(--shell-u))}
 .shell-header .primary-nav{left:calc(15 * var(--shell-u));top:calc(121 * var(--shell-u));grid-template-columns:repeat(4,calc(82 * var(--shell-u)))}
 .shell-header .primary-nav a{align-items:flex-start;width:calc(74 * var(--shell-u));height:calc(40 * var(--shell-u));padding-top:calc(8 * var(--shell-u));font-size:calc(13 * var(--shell-u))}
 .shell-header .shell-actions{left:calc(15 * var(--shell-u));top:calc(63 * var(--shell-u));gap:calc(16 * var(--shell-u))}
 .shell-header .shell-action{width:calc(155 * var(--shell-u));height:calc(48 * var(--shell-u));font-size:calc(14 * var(--shell-u))}
 .shell-header .shell-nav-divider{left:calc(178 * var(--shell-u));top:calc(63 * var(--shell-u));height:calc(48 * var(--shell-u))}
 .shell-footer .footer-inner{display:flow-root;width:calc(358 * var(--shell-u));min-height:calc(520 * var(--shell-u) - 2px)}
 .shell-footer .footer-brand{left:calc(15 * var(--shell-u));top:calc(39 * var(--shell-u));font-size:calc(19 * var(--shell-u))}
 .shell-footer .footer-nav{position:relative;left:calc(15 * var(--shell-u));top:auto;grid-template-columns:repeat(2,calc(147 * var(--shell-u)));gap:calc(28 * var(--shell-u)) calc(32 * var(--shell-u));width:calc(326 * var(--shell-u));margin:calc(109 * var(--shell-u)) 0 0;padding-bottom:calc(36 * var(--shell-u))}
 .shell-footer .shell-footer-group h2{font-size:calc(15 * var(--shell-u));margin-bottom:calc(19 * var(--shell-u))}
 .shell-footer .shell-footer-group a,.shell-footer .shell-footer-group:last-child a{width:calc(147 * var(--shell-u));min-height:calc(44 * var(--shell-u));margin:0;font-size:calc(14.5 * var(--shell-u));line-height:1.4}
 .shell-footer .shell-footer-group:last-child{grid-column:1 / -1}
 /* Long legal names flow naturally within the existing footer, without clipping. */
 html{scroll-padding-top:calc(164 * min(.2564102564vw,1px) + 16px)}
 :is(.legal-section,.content-section){scroll-margin-top:calc(164 * min(.2564102564vw,1px) + 16px)}
}
/* Container width is clientWidth, excluding the scrollbar, exactly like
   the home scene. vw remains a compatibility fallback for older browsers. */
@supports(width:1cqw){
 .shell-header,.shell-footer{container-type:inline-size;--shell-u:min(.078125cqw,1px)}
 @media(max-width:699px){.shell-header,.shell-footer{--shell-u:min(.2564102564cqw,1px)}}
}
@media print{.site-header.shell-header{position:static}.shell-header .site-preferences{display:none}.shell-header,.shell-footer{--shell-u:1px}.shell-header .header-inner,.shell-footer .footer-inner{max-width:100%}}
