/* The sole public navigation/footer recipe. Load after page composition styles. */
:root{scrollbar-gutter:stable;--shell-height:96px;--shell-gutter:max(20px,calc((100vw - 1800px)/2),4vw);--header-clearance:var(--shell-height)}
html.has-dialog{overflow:hidden}
:is(#site-header,.cf-curtain-header),#site-footer,:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog,#sound-settings{--paper:var(--cf-surface);--ink:var(--cf-ink);--muted:var(--cf-muted);--line:var(--cf-line);--signal:var(--cf-blue);--ease:var(--cf-ease);font-family:var(--cf-body);font-style:normal;font-weight:400;font-synthesis:none;line-height:1.5;letter-spacing:normal;text-transform:none;color:var(--cf-ink);box-sizing:border-box}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog,#sound-settings) *{box-sizing:border-box}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog,#sound-settings) button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;letter-spacing:inherit;text-transform:inherit}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog,#sound-settings) a{color:inherit;text-decoration:none}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog,#sound-settings) :is(button,a){touch-action:manipulation}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog,#sound-settings) :is(a,button,input):focus-visible{outline:2px solid var(--cf-light);outline-offset:5px}
:where(:is(#site-header,.cf-curtain-header),#site-footer,.shell-dialog) a:hover>span:last-child{transform:none}
:is(#site-header,.cf-curtain-header){position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;height:calc(var(--shell-height) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(var(--shell-gutter),env(safe-area-inset-right,0px)) 0 max(var(--shell-gutter),env(safe-area-inset-left,0px));background:var(--cf-night);border:0;border-bottom:1px solid var(--cf-line);box-shadow:none;backdrop-filter:none}
:is(#site-header,.cf-curtain-header) .brand{display:flex;align-items:center;gap:14px;width:214px;flex:none;min-height:44px}
:is(#site-header,.cf-curtain-header) .brand-symbol{display:block;width:47px;height:34px;object-fit:contain;filter:none}
:is(#site-header,.cf-curtain-header) .brand-wordmark{display:block;width:152px;height:auto;filter:brightness(0) invert(1)}
:is(#site-header,.cf-curtain-header) .talk-link{display:flex;align-items:center;justify-content:space-between;gap:26px;height:48px;min-height:48px;min-width:0;padding:12px 24px;background:var(--cf-ink);color:var(--cf-night);border:1px solid var(--cf-ink);box-shadow:none;border-radius:var(--cf-radius-pill);white-space:nowrap;font:500 13px/1.4 var(--cf-body)}
:is(#site-header,.cf-curtain-header) .talk-link:is(:hover,:focus-visible){background:var(--cf-light);border-color:var(--cf-light);box-shadow:none}
:is(#site-header,.cf-curtain-header) .header-utilities{display:flex;align-items:center;gap:14px;margin:0 0 0 auto;flex:none}
:is(#site-header,.cf-curtain-header) .sound-dock{display:flex;position:static;border:0;box-shadow:none;background:none;min-width:48px}
:is(#site-header,.cf-curtain-header) .sound-toggle{display:flex;align-items:center;justify-content:center;min-width:48px;width:48px;height:48px;padding:0;background:#ffffff09;border-radius:50%;color:var(--cf-blue)}
:is(#site-header,.cf-curtain-header) .sound-toggle:hover{background:#ffffff14}
:is(#site-header,.cf-curtain-header) .sound-wave{width:30px;height:26px}
:is(#site-header,.cf-curtain-header) .menu-button{display:flex;align-items:center;justify-content:center;gap:12px;min-width:96px;min-height:48px;padding:10px 16px;font:500 12px/1 var(--cf-body);color:var(--cf-ink);border:1px solid #42566d;background:#101b28;border-radius:var(--cf-radius-pill);box-shadow:inset 0 1px 0 #ffffff05;transition:background-color .2s,border-color .2s,color .2s}
:is(#site-header,.cf-curtain-header) .menu-button:is(:hover,:focus-visible){border-color:#619db9;background:#142b3b;color:var(--cf-light)}
:is(#site-header,.cf-curtain-header) .menu-word{display:block;font-size:inherit;line-height:1}
.shell-control-icon{display:block;width:18px;height:18px;flex:none;overflow:visible;pointer-events:none}
:is(#site-header,.cf-curtain-header) .menu-plus-icon{display:grid;place-items:center;width:18px;height:18px;flex:none}
:is(#site-header,.cf-curtain-header) .menu-plus-icon .shell-control-icon{width:18px;height:18px}
.screen-dialog form button[aria-label="Close screen preview"]{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px}
#site-footer{position:relative;isolation:isolate;padding:0;scroll-margin-top:var(--shell-height);background:var(--cf-night);color:var(--cf-muted);font-size:13px}
.shell-footer-stage{position:relative;padding:clamp(28px,3vw,48px) var(--shell-gutter) calc(22px + env(safe-area-inset-bottom,0px));border-top:1px solid #42647b;background:radial-gradient(ellipse at 15% 0,#019edb12,transparent 60%),linear-gradient(120deg,#101b28,#080b12 65%)}
.shell-footer-stage:before{content:"";position:absolute;inset:0 auto auto var(--shell-gutter);width:clamp(70px,8vw,150px);height:2px;background:var(--cf-blue);box-shadow:0 0 20px #019edb35;pointer-events:none}
.shell-footer-inner{max-width:1800px;margin:auto;position:relative}
.shell-footer-heading{display:flex;justify-content:space-between;gap:20px;font:10px/1.6 var(--cf-mono);letter-spacing:.045em;color:var(--cf-label)}
.shell-footer-heading>span:first-child{color:var(--cf-light)}
#site-footer .shell-footer-brand{display:flex;align-items:center;justify-content:center;gap:3.5%;width:100%;padding:clamp(25px,3vw,48px) 0 clamp(30px,4vw,60px);border-bottom:1px solid var(--cf-line)}
#site-footer .shell-footer-brand{position:relative}
.shell-footer-logo-sparks{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;opacity:0}
/* Same blue corona and ice core as the hero; light is local to each discharge. */
.shell-footer-logo-spark-corona{fill:none;stroke:var(--footer-electric-blue);stroke-width:4.5;stroke-linejoin:round;opacity:.26;filter:drop-shadow(0 0 4px var(--footer-electric-blue))}
.shell-footer-logo-spark-outline{fill:none;stroke:var(--footer-electric-core);stroke-width:.8;stroke-linejoin:round;opacity:.3}
.shell-footer-logo-spark-arcs{fill:none;stroke-linecap:round;stroke-linejoin:round}
.shell-footer-logo-spark-precursor{stroke:var(--footer-electric-blue);stroke-width:.8}
.shell-footer-logo-spark-arc-corona{stroke:var(--footer-electric-blue);stroke-width:7;filter:drop-shadow(0 0 5px var(--footer-electric-blue)) drop-shadow(0 0 10px var(--footer-electric-blue))}
.shell-footer-logo-spark-arc-core{stroke:var(--footer-electric-core);stroke-width:1.85;filter:drop-shadow(0 0 1.5px var(--footer-electric-core))}
.shell-footer-logo-spark-fork{stroke:var(--footer-electric-core);stroke-width:.95}
.shell-footer-logo-spark-contact-halo{fill:var(--footer-electric-blue);filter:blur(3px);stroke:none}
.shell-footer-logo-spark-contact-pin{fill:var(--footer-electric-core);stroke:none}
.shell-footer-logo-spark-fragments{stroke:var(--footer-electric-core);stroke-width:1.15;filter:drop-shadow(0 0 2px var(--footer-electric-blue))}
.shell-footer-symbol{display:block;width:23%;max-width:315px;height:auto;filter:none}
.shell-footer-wordmark{display:block;width:73.5%;max-width:1074px;height:auto;filter:brightness(0) invert(1)}
.shell-footer-links{display:grid;grid-template-columns:1.25fr .7fr 1.1fr 1.1fr .75fr;gap:clamp(20px,3vw,60px);padding:34px 0 30px}
#site-footer nav{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
#site-footer :is(a,button){display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 0;font:400 13px/1.5 var(--cf-body);text-align:left;transition:color .18s}
#site-footer :is(a,button):hover{color:var(--cf-light)}
#site-footer :is(a,button):focus-visible{outline-offset:2px;outline-width:2px}
#site-footer [aria-current="page"]{color:var(--cf-ink)}
.shell-footer-label{display:block;min-height:30px;font:10px/1.6 var(--cf-mono);letter-spacing:.04em;color:var(--cf-label)}
#site-footer .shell-footer-invitation p{margin:0 0 20px;font:500 clamp(24px,2.2vw,36px)/1.22 var(--cf-body);letter-spacing:-.035em;color:var(--cf-ink)}
#site-footer .shell-footer-invitation :is(a,button){justify-content:space-between;min-width:160px;padding:12px 18px;border:1px solid #44677c;border-radius:var(--cf-radius-pill);background:#18303e;color:var(--cf-light)}
#site-footer .shell-footer-invitation :is(a,button)>span{font-size:24px;line-height:1}
.shell-footer-base{display:flex;align-items:center;flex-wrap:wrap;gap:12px 25px;border-top:1px solid var(--cf-line);padding-top:16px}
#site-footer .shell-footer-base nav{flex-direction:row;flex-wrap:wrap;gap:0 20px;margin-left:auto}
#site-footer .shell-footer-base a{font-size:11px}
#site-footer .shell-copyright{color:var(--cf-ink);font-size:11px}
#site-footer .shell-location{font:10px/1.5 var(--cf-mono)}
#site-footer button:disabled{opacity:.7;cursor:default}
/* Uncover a stationary layer while retaining the native footer space and gateways. */
#site-footer[data-footer-reveal]{height:var(--footer-current-height,var(--footer-reveal-height));clip-path:inset(0);overflow-anchor:none}
#site-footer[data-footer-reveal] .shell-footer-stage{position:fixed;inset:auto auto var(--footer-exit-offset,0px) 0;width:var(--footer-reveal-width,100%)}
/* Preserve a sealed logo through native project snapshots and page departure.
   Visibility changes no geometry and is cleared when this footer binds again. */
#site-footer[data-footer-departure-concealed] :is(.shell-footer-brand,.shell-footer-heading,.shell-footer-band-electric,.shell-footer-world){visibility:hidden}
/* A small elastic skin covers only the logo-band reveal edge. Text, branding
   and all link hit areas remain stationary underneath; the edge never owns input. */
.shell-footer-peel{display:none;position:absolute;inset:0 auto auto 0;z-index:2;width:100%;height:320px;overflow:visible;pointer-events:none;visibility:hidden}
#site-footer[data-footer-reveal] .shell-footer-peel{display:block}
.shell-footer-peel-skin{fill:var(--footer-peel-surface,var(--cf-night))}
body[data-page=home] #site-footer{--footer-peel-surface:#0b1420}
.shell-footer-peel-edge{fill:none;stroke:#57bddb;stroke-width:1;vector-effect:non-scaling-stroke}
.shell-footer-peel-contour{fill:none;stroke:#019edb;stroke-width:.8;vector-effect:non-scaling-stroke;opacity:0}
.shell-footer-discharge{fill:none;opacity:0;stroke-linecap:round;stroke-linejoin:round}
.shell-footer-corona{stroke:var(--footer-electric-blue);stroke-width:8;filter:drop-shadow(0 0 8px #019edb);opacity:.7}
.shell-footer-core{stroke:var(--footer-electric-core);stroke-width:1.35}
.shell-footer-forks{stroke:var(--footer-electric-blue);stroke-width:1.1;opacity:.75}
/* A local electric tear across the actual slit. Fine icy channels sit inside
   diffuse blue plasma; contact light stays on both lips, never on the page. */
.shell-footer-tear{fill:none;opacity:0;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.shell-footer-tear path{vector-effect:non-scaling-stroke}
.shell-footer-tear-seam{stroke:var(--footer-electric-blue);stroke-width:.75;opacity:.24}
.shell-footer-tear-haze{stroke:var(--footer-electric-blue);stroke-width:23;filter:blur(7px);opacity:.35}
.shell-footer-tear-corona{stroke:var(--footer-electric-blue);stroke-width:6;filter:drop-shadow(0 0 4px var(--footer-electric-blue)) drop-shadow(0 0 9px var(--footer-electric-blue));opacity:.85}
.shell-footer-tear-core{stroke:var(--footer-electric-core);stroke-width:1.7;filter:drop-shadow(0 0 1px var(--footer-electric-core))}
.shell-footer-tear-fork{stroke:var(--footer-electric-core);stroke-width:.8;opacity:.7}
.shell-footer-tear-lips{stroke:var(--footer-electric-blue);stroke-width:3;filter:drop-shadow(0 0 5px var(--footer-electric-blue));opacity:.7}
.shell-footer-tear-pin{fill:var(--footer-electric-core);filter:drop-shadow(0 0 3px var(--footer-electric-blue));stroke:none}
.shell-footer-tear-fragments{stroke:var(--footer-electric-core);stroke-width:1.1;filter:drop-shadow(0 0 2px var(--footer-electric-blue))}
/* The opened band shares the hero's vector channel and blue/ice light profile.
   Nested strokes replace raster filter surfaces; charge stays inside the band. */
.shell-footer-band-electric{display:none;position:absolute;inset:0 auto auto 0;z-index:2;width:100%;overflow:hidden;pointer-events:none;opacity:0;fill:none;stroke-linecap:round;stroke-linejoin:round}
#site-footer[data-footer-reveal] .shell-footer-band-electric{display:block}
.shell-footer-band-electric path{vector-effect:non-scaling-stroke}
.shell-footer-band-core{stroke:var(--footer-electric-core);stroke-width:.85}
.shell-footer-band-trail{stroke:var(--footer-electric-blue);stroke-width:1.2;opacity:.28}
.shell-footer-band-leader{stroke:var(--footer-electric-blue);stroke-width:3;opacity:.65}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(hover:none),(pointer:coarse){#site-footer :is(.shell-footer-peel,.shell-footer-band-electric){display:none}}
html[data-motion=off] #site-footer :is(.shell-footer-peel,.shell-footer-band-electric){display:none}
@media(max-width:1100px){.shell-footer-links{grid-template-columns:1.1fr .6fr 1fr 1fr .75fr;gap:22px}#site-footer :is(a,button){font-size:12px}#site-footer .shell-footer-base nav{margin-left:0}.shell-footer-base{gap:8px 24px}.shell-footer-top{margin-left:auto}}
@media(min-width:900px) and (max-height:900px){.shell-footer-stage{padding-top:24px;padding-bottom:18px}#site-footer .shell-footer-brand{max-width:980px;margin:auto;padding:20px 0 25px}.shell-footer-links{padding:24px 0 20px;gap:24px}.shell-footer-label{min-height:24px}#site-footer :is(a,button){font-size:12px}#site-footer .shell-footer-invitation p{font-size:28px}}
@media(max-width:899px){.shell-footer-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.shell-footer-invitation{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px}#site-footer .shell-footer-invitation p{margin:0}.shell-footer-heading{font-size:9px}.shell-footer-stage{padding-inline:var(--shell-gutter)}}
@media(max-width:600px){.shell-footer-heading{flex-direction:column;gap:6px}.shell-footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;padding-top:28px}.shell-footer-invitation{margin-bottom:5px;gap:16px}#site-footer .shell-footer-invitation :is(a,button){min-width:115px;padding:10px 14px}.shell-footer-base{gap:12px 18px}#site-footer .shell-footer-base nav{width:100%;gap:0 18px}.shell-footer-top{margin-left:0}.shell-footer-label{font-size:9px}#site-footer :is(a,button){font-size:13px}.shell-footer-symbol{width:24%}.shell-footer-wordmark{width:72.5%}}
@media(prefers-reduced-motion:reduce),(forced-colors:active){#site-footer[data-footer-reveal]{height:auto;clip-path:none}#site-footer[data-footer-reveal] .shell-footer-stage{position:relative;inset:auto}#site-footer :is(a,button){transition:none}}
html[data-motion=off] #site-footer[data-footer-reveal]{height:auto;clip-path:none}html[data-motion=off] #site-footer[data-footer-reveal] .shell-footer-stage{position:relative;inset:auto}
.shell-skip{position:fixed;z-index:1000;top:8px;left:20px;padding:12px 18px;background:var(--cf-ink);color:var(--cf-night);font:14px var(--cf-body);transform:translateY(-150%)}
.shell-skip:focus{transform:none}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog{border:1px solid var(--cf-line);border-radius:12px;padding:clamp(24px,4vw,56px);width:calc(100vw - 32px);max-width:740px;max-height:calc(100svh - 32px);overflow:auto;overscroll-behavior:contain;background:var(--cf-surface);color:var(--cf-ink);margin:auto;box-shadow:0 25px 85px #000a}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog::backdrop{background:#030713b8;backdrop-filter:blur(8px)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .dialog-close{display:flex;align-items:center;gap:20px;min-height:44px;width:fit-content;margin:0 0 28px auto;padding:0;font:12px var(--cf-body)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .close-word{font:inherit;line-height:1}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog h2{font:500 clamp(42px,4.5vw,72px)/1.1 var(--cf-display);letter-spacing:0;text-transform:uppercase;margin:24px 0}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog h2 em{font:inherit;letter-spacing:inherit;color:var(--cf-emphasis)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog :is(p,h3){margin:0}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog>p{font:400 16px/1.65 var(--cf-body);margin:18px 0;color:var(--cf-muted)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .micro{font:10px/1.6 var(--cf-mono);letter-spacing:.04em;color:var(--cf-label)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-email{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 0 16px;border-bottom:1px solid var(--cf-line);font-size:clamp(18px,2.4vw,30px);overflow-wrap:anywhere;color:var(--cf-light)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-phone{display:inline-flex;align-items:center;min-height:44px;margin:16px 0 0;font-size:18px}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .copy-email{display:block;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:8px 0;font-size:13px}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-copy-status{font-size:13px;margin:0}:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-context{color:var(--cf-light);font-size:14px}:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog [hidden]{display:none}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-next{margin-top:20px;padding-top:20px;border-top:1px solid var(--cf-line)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-next h3{font:500 16px/1.5 var(--cf-body);margin-bottom:10px}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .contact-next p{font:400 14px/1.65 var(--cf-body);color:var(--cf-muted)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .existing-client{font-size:13px}:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .inline-link{padding:8px 0;text-decoration:underline;text-underline-offset:4px;text-align:left}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-routes{margin:24px 0}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-routes>a{display:block;padding:20px 0;border-top:1px solid var(--cf-line)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-routes>a:last-child{border-bottom:1px solid var(--cf-line)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-routes strong{display:flex;justify-content:space-between;font:500 21px/1.4 var(--cf-body)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-routes>a>span{display:block;font:14px/1.65 var(--cf-body);margin-top:10px;color:var(--cf-muted)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-help{font-size:13px}:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .client-help a{text-decoration:underline;text-underline-offset:4px}
#site-menu.shell-dialog{inset:0;width:100%;height:100svh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;padding:28px var(--shell-gutter);background:var(--cf-surface)}
#site-menu.shell-dialog nav{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:24px 0 30px;font:500 clamp(30px,4.2vw,66px)/1.12 var(--cf-display);text-transform:uppercase;letter-spacing:0}
#site-menu.shell-dialog nav>*{min-height:44px;padding:3px 0;font:inherit}
#site-menu.shell-dialog nav small{font-size:.5em}#site-menu.shell-dialog nav [aria-current]{color:var(--cf-light)}
#site-menu.shell-dialog nav :is(a,button):hover{color:var(--cf-light)}
#site-menu.shell-dialog .menu-utilities{display:flex;flex-wrap:wrap;gap:4px 28px;margin:0 0 24px;font:13px var(--cf-body)}
#site-menu.shell-dialog .menu-utilities>*{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .dialog-sound{display:flex;justify-content:flex-end;padding-top:16px;margin-top:22px;border-top:1px solid var(--cf-line)}
:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog .sound-toggle{display:flex;align-items:center;gap:10px;min-height:44px;font:12px var(--cf-body)}
#sound-settings{position:fixed;inset:calc(var(--shell-height) + 12px) var(--shell-gutter) auto auto;margin:0;width:300px;max-width:calc(100vw - 32px);max-height:calc(100svh - var(--shell-height) - 28px);border:1px solid var(--cf-line);border-radius:8px;background:var(--cf-surface);padding:24px;overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 60px #0008}
#sound-settings h2{font:500 19px/1.4 var(--cf-body);margin:0 0 18px;letter-spacing:0;text-transform:none}
#sound-settings label{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;margin-top:16px}
#sound-settings input[type=range]{width:100%;margin:16px 0 8px;min-height:28px;accent-color:var(--cf-blue)}
#sound-settings input[type=checkbox]{width:20px;height:20px;accent-color:var(--cf-blue)}
#sound-settings p{font:12px/1.6 var(--cf-body);color:var(--cf-muted);margin-top:18px}
#sound-settings .motion-setting{font-size:12px;border-top:1px solid var(--cf-line);margin-top:18px;padding-top:18px}
#sound-settings .motion-setting button{display:block;min-height:44px;text-decoration:underline;text-underline-offset:4px;padding:8px 0}
#sound-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Page content and project continuations precede the common terminal footer. */
body[data-page=projects] #page{padding-top:var(--shell-height)}
body[data-page=projects] .projects-filter-bar{top:var(--shell-height)}
.case-directory-link{position:absolute;left:var(--cf-gutter);top:calc(var(--shell-height) + 12px);z-index:19;display:inline-flex;align-items:center;min-height:44px;font:12px var(--cf-body);color:var(--cf-muted)}
body.project-gallery .case-previous-link{left:auto;right:var(--cf-gutter);top:calc(var(--shell-height) + 12px);display:inline-flex;align-items:center;min-height:44px;color:var(--cf-muted);font:12px var(--cf-body)}
body.project-gallery .case-tools[hidden]{display:none}
@media(max-width:700px){:root{scrollbar-gutter:stable;--shell-height:80px;--shell-gutter:20px}:is(#site-header,.cf-curtain-header){gap:12px}:is(#site-header,.cf-curtain-header) .brand{width:132px;gap:8px}:is(#site-header,.cf-curtain-header) .brand-symbol{width:28px;height:25px}:is(#site-header,.cf-curtain-header) .brand-wordmark{width:96px}:is(#site-header,.cf-curtain-header) .header-utilities{gap:10px}:is(#site-header,.cf-curtain-header) .sound-dock{min-width:44px}:is(#site-header,.cf-curtain-header) .sound-toggle{min-width:44px;width:44px;height:44px}:is(#site-header,.cf-curtain-header) .menu-button{min-height:44px;padding:8px 12px;gap:10px}:is(#site-header,.cf-curtain-header) .menu-plus-icon,:is(#site-header,.cf-curtain-header) .menu-plus-icon .shell-control-icon{width:16px;height:16px}#site-menu.shell-dialog{padding:20px}#site-menu.shell-dialog nav{font-size:34px;gap:8px}:is(#site-menu,#contact-dialog,#client-dialog).shell-dialog>p{font-size:15px}body[data-page=projects] .projects-filter-bar{top:auto}}
@media(prefers-reduced-motion:reduce){:is(#site-header,.cf-curtain-header) *{transition:none}}
html[data-motion=off] :is(#site-header,.cf-curtain-header) *{transition:none}

/* 218: one enquiry action, sound and menu on every page. */
:is(#site-header,.cf-curtain-header) .talk-link{min-width:152px}
:is(#site-header,.cf-curtain-header) .menu-button{color:var(--cf-ink)}
@media(max-width:700px){:is(#site-header,.cf-curtain-header) .talk-link{min-width:118px;height:44px;min-height:44px;padding:10px 17px;gap:14px;font-size:12px}:is(#site-header,.cf-curtain-header) .menu-word{display:inline}:is(#site-header,.cf-curtain-header) .menu-button{min-width:80px}}
@media(max-width:520px){:is(#site-header,.cf-curtain-header){gap:8px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}:is(#site-header,.cf-curtain-header) .brand{width:32px;gap:0}:is(#site-header,.cf-curtain-header) .brand-symbol{width:32px;height:30px}:is(#site-header,.cf-curtain-header) .brand-wordmark{display:none}:is(#site-header,.cf-curtain-header) .header-utilities{gap:8px}:is(#site-header,.cf-curtain-header) .talk-link{min-width:104px;padding:12px;gap:10px}:is(#site-header,.cf-curtain-header) .menu-button{min-width:76px;padding:10px 8px;gap:8px}}
