/* /sound.css */
/* Persistent transport in the navigation; the page shell survives route changes. */
.sound-dock{display:flex;align-items:center;flex-shrink:0;position:static;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.sound-toggle{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:6px 10px;font-size:11px;white-space:nowrap;border-radius:24px;transition:background .2s,color .2s}
.sound-toggle:hover{background:#20221f0c}.sound-toggle:disabled{cursor:default;opacity:.5}
.sound-dock .sound-toggle{width:48px;height:48px;min-width:48px;padding:0;border-radius:50%;background:#ffffff09;flex-shrink:0}
.sound-dock .sound-toggle:focus-visible{outline:2px solid #019edb;outline-offset:4px}
.sound-wave{display:block;width:30px;height:26px;flex-shrink:0;pointer-events:none}
.sound-wave path{fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
html[data-sound="loading"] .sound-dock .sound-wave{opacity:.45}
.sound-settings{position:fixed;inset:88px max(24px,4.6vw) auto auto;margin:0;width:280px;max-width:calc(100vw - 32px);max-height:calc(100svh - 108px);overflow:auto;overscroll-behavior:contain;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:22px;border-radius:8px;box-shadow:0 8px 40px #20221f22}
.sound-settings::backdrop{background:transparent}.sound-settings h2{font-size:18px;letter-spacing:-.02em;margin-bottom:20px}.sound-settings label{font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px}.sound-settings input[type="range"]{width:100%;margin:16px 0 8px;accent-color:var(--signal);cursor:pointer}.sound-settings input[type="checkbox"]{accent-color:var(--signal);width:17px;height:17px;cursor:pointer}.sound-settings p{font-size:11px;line-height:1.6;color:var(--muted);margin-top:18px}
.dialog-sound{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:flex-end}.dialog-sound .sound-toggle{padding:6px 0;font-size:11px}.sound-bars{display:flex;align-items:center;gap:3px;height:15px;width:21px}.sound-bars i{width:2px;height:3px;background:currentColor}.sound-bars i:nth-child(2){height:8px}.sound-bars i:nth-child(3){height:12px}.sound-bars i:nth-child(4){height:5px}
input:focus-visible{outline:2px solid var(--signal);outline-offset:5px}.client-label-short{display:none}.menu-button .menu-word{font-size:inherit}.next-bottom{padding-bottom:0}.ending-footer{padding-bottom:40px}
@media(max-width:1200px){.primary-nav{display:none}.menu-button{display:flex}.header-utilities{margin-left:auto;gap:18px}.site-header{gap:18px}.sound-settings{top:88px}}
@media(max-width:950px){.sound-settings{top:76px}}
@media(max-width:650px){.site-header{gap:12px}.header-utilities{gap:10px}.brand{width:132px;gap:8px}.brand-symbol{width:28px;height:25px}.brand-wordmark{width:96px}.sound-toggle{padding:4px 2px;gap:6px}.sound-dock .sound-toggle{width:44px;height:44px;min-width:44px}.sound-settings{top:76px;right:16px}.menu-button{font-size:11px;gap:7px}.client-access{font-size:10px}.sound-dock{min-width:44px}.ending-footer{padding-bottom:35px}}
@media(max-width:400px){.site-header{padding-left:20px;padding-right:20px;gap:8px}.header-utilities{gap:8px}.client-label-wide{display:none}.client-label-short{display:inline}.menu-button .menu-word{display:none}.menu-button{min-width:26px;min-height:44px;justify-content:center}.menu-button>span:last-child{font-size:23px}}
@media(prefers-reduced-motion:reduce){.sound-toggle{transition:none}}

/* /site-shell/site-shell.css */
/* 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}}

/* /site-shell/footer-world.css */
/* Original storm-city plate, confined to the optional brand band. */
.shell-footer-stage{--footer-world-headroom:clamp(28px,3vw,48px)}
.shell-footer-stage:before{z-index:3}
.shell-footer-brand-band{position:relative}
.shell-footer-world{position:absolute;inset:calc(-1 * var(--footer-world-headroom)) calc((100% - 100vw) / 2) 0;overflow:hidden;pointer-events:none;background:#080b12;--storm-light:0;--storm-rain:0;--storm-scale:1.025;--storm-depth:0px}
.shell-footer-city{position:absolute;inset:-2%;display:block;transform:scale(var(--storm-scale));transform-origin:50% 76%}
.shell-footer-city img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 60%;opacity:.85}
.shell-footer-city-haze{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 82%,#019edb29,transparent 54%),linear-gradient(0deg,#0b182830,transparent 40%);transform:translateY(var(--storm-depth));opacity:.7}
.shell-footer-city-light{position:absolute;inset:0;background:radial-gradient(ellipse at 68% 9%,#b4e7ff90,#019edb45 34%,transparent 70%),linear-gradient(0deg,#019edb28,transparent 38%);opacity:var(--storm-light);mix-blend-mode:screen}
.shell-footer-city-rain{position:absolute;inset:-15% 0;width:100%;height:130%;opacity:var(--storm-rain);fill:none;stroke:#b0e4ff;stroke-linecap:round}
.shell-footer-city-shade{position:absolute;inset:0;background:linear-gradient(0deg,#080b12 0%,#080b1230 18%,transparent 35%,#080b121c 77%,#080b1295 100%),radial-gradient(ellipse at 54% 50%,#04080ebd 0%,#060c1690 29%,transparent 71%)}
.shell-footer-heading,#site-footer .shell-footer-brand{position:relative;z-index:1}
.shell-footer-heading{color:#b0c6d8}
.shell-footer-heading>span:first-child{color:#81dfff}
@media(min-width:900px) and (max-height:900px){.shell-footer-stage{--footer-world-headroom:24px}}
@media(max-width:700px){.shell-footer-city img{object-position:50% 66%;opacity:.65}.shell-footer-city-shade{background:linear-gradient(0deg,#080b12,transparent 35%,#080b124d),radial-gradient(ellipse at center,#04080e90,transparent 75%)}}
@media(prefers-reduced-motion:reduce),(forced-colors:active),(hover:none),(pointer:coarse){.shell-footer-world{--storm-scale:1.025!important;--storm-depth:0px!important}.shell-footer-city-rain,.shell-footer-city-light{display:none}}
html[data-motion=off] .shell-footer-world{--storm-scale:1.025!important;--storm-depth:0px!important}
html[data-motion=off] :is(.shell-footer-city-rain,.shell-footer-city-light){display:none}
@media(forced-colors:active){.shell-footer-world{display:none}}

/* /site-shell/contact-email.css */
.email-contact{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 16px;max-width:100%;vertical-align:middle}
.email-contact [hidden]{display:none!important}
.email-contact .email-reveal,.email-contact .copy-email,.email-contact .contact-email{font:inherit;color:var(--cf-light,#ecf3fa);background:transparent;border:0;border-radius:0;min-height:44px;display:inline-flex;align-items:center;padding:6px 0;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;cursor:pointer;overflow-wrap:anywhere;max-width:100%;white-space:normal}
.email-contact .email-details{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 16px;max-width:100%}
.email-contact .email-status{flex-basis:100%;font:400 12px/1.6 var(--cf-body);color:var(--cf-muted,#a9b8c8)}
.email-contact .email-status:empty{display:none}
.email-contact :is(button,a):focus-visible{outline:2px solid var(--cf-light,#ecf3fa);outline-offset:4px}
#contact-dialog .enquiry-direct>.email-contact{font-size:14px;flex:1 1 auto}
#contact-dialog .enquiry-direct>.micro{flex:0 0 auto}
.shell-dialog .email-contact .contact-email{font-size:inherit;white-space:normal}
.article-prose .email-contact{font-size:16px}
html:not([data-email-ready]) .email-contact .email-reveal{display:none}
html[data-email-ready] .email-contact .email-no-script{display:none}

/* /site-shell/contact-phone.css */
/* 374: desktop numbers are text; only phone-sized screens offer tap-to-call. */
[data-phone-contact]{display:contents}
[data-phone-contact]>[data-phone-call]{display:none!important}
[data-phone-contact]>[data-phone-number]{cursor:text;user-select:text;-webkit-user-select:text;text-decoration:none!important}
@media(max-width:760px){
 [data-phone-contact]>[data-phone-number]{display:none!important}
 [data-phone-contact]>[data-phone-call]{display:inline-flex!important;align-items:center;min-height:44px;min-width:44px;touch-action:manipulation}
 body[data-page=contact] #page [data-phone-contact]>[data-phone-call]{display:block!important}
}
