/* GNSTUDIOS ripple preview, scoped to the home page. */
.vault-home { background:#070708; color:#f5f3ef; }
.vault-home .nav { position:absolute; inset:0 0 auto; z-index:80; background:linear-gradient(rgba(0,0,0,.72),transparent); border:0; backdrop-filter:none; -webkit-backdrop-filter:none; }
.vault-home .nav.scrolled { background:rgba(8,8,9,.85); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.vault-home .nav-row { height:78px; }
.vault-home .nav .btn-accent { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55); border-radius:2px; }
.vault-home .nav .btn-accent:hover { background:#da3430; border-color:#da3430; }
.vault-home main>section,.vault-home .footer { background:transparent; }
.vault-home main { position:static; z-index:auto; overflow:hidden; }
.vault-home:not(.vault-entered) > header { visibility:hidden; }
.vault-home main svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.vault-home .footer { background:#080809; border-top:1px solid rgba(255,255,255,.12); }
.vault-home:not(.vault-entered) { overflow:hidden; max-height:100svh; }
.vault-gate { position:fixed; inset:0; z-index:500; overflow:hidden; background:#060607; }
.vault-gate.is-gone { display:none; }
.vault-gate-door { position:absolute; inset:0 auto 0 0; width:50.15%; background-image:url('/media/signal-vault-v2.webp'); background-repeat:no-repeat; background-size:200% 100%; background-position:left center; transition:transform 1.1s cubic-bezier(.8,0,.2,1); will-change:transform; }
.vault-gate-right { left:auto; right:0; background-position:right center; }
.vault-gate::after { content:""; position:absolute; top:0; bottom:0; left:50%; z-index:1; width:1px; background:linear-gradient(transparent,rgba(218,52,48,.95),transparent); box-shadow:0 0 40px 8px rgba(218,52,48,.28); transform:translateX(-50%); opacity:.8; transition:opacity .4s; }
.vault-gate-shade { position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.22) 60%,rgba(0,0,0,.2)),linear-gradient(0deg,rgba(0,0,0,.56),transparent 28%); pointer-events:none; transition:opacity .5s; }
.vault-gate-content { position:relative; z-index:3; display:flex; flex-direction:column; justify-content:space-between; height:100%; padding-top:48px; padding-bottom:36px; }
.vault-gate-label,.vault-gate-count,.vault-gate-foot { font-size:10px; font-weight:700; letter-spacing:.2em; line-height:1.4; }
.vault-gate-label::before { content:""; display:inline-block; width:7px; height:7px; margin-right:12px; border-radius:50%; background:#da3430; box-shadow:0 0 19px #da3430; }
.vault-gate-count { color:#e4524b; }
.vault-gate-content h2 { margin:22px 0 20px; font-size:clamp(74px,10vw,170px); font-weight:800; line-height:.9; letter-spacing:-.085em; }
.vault-gate-content>div>p:last-of-type { max-width:480px; color:#e2ddda; font-size:clamp(16px,1.45vw,22px); line-height:1.65; }
.vault-gate-actions { display:flex; align-items:center; flex-wrap:wrap; gap:32px; margin-top:38px; }
.vault-gate-actions button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:58px; padding:0 25px; border:1px solid #da3430; border-radius:2px; background:#da3430; color:#fff; font:700 14px/1 var(--sans); cursor:pointer; transition:background .2s,transform .2s; }
.vault-gate-actions button:hover { background:#b92a26; transform:translateY(-2px); }
.vault-gate-actions button svg { transition:transform .2s; }
.vault-gate-actions button:hover svg { transform:translateX(4px); }
.vault-gate-actions a { color:#fff; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:7px; }
.vault-gate-foot { color:#c1bab6; }
.vault-gate.is-opening .vault-gate-left { transform:translateX(-102%); }
.vault-gate.is-opening .vault-gate-right { transform:translateX(102%); }
.vault-gate.is-opening .vault-gate-content,.vault-gate.is-opening .vault-gate-shade { opacity:0; transition:opacity .32s; }
.vault-gate.is-opening::after { opacity:0; }

.vault-hero { position:relative; isolation:isolate; min-height:max(790px,100svh); overflow:hidden; background:#080809; }
.vault-world,.vault-finale-world { position:absolute; inset:-3%; z-index:-3; background:url('/media/signal-vault-v2.webp') center center / cover no-repeat; will-change:transform; transform:scale(1.04); }
.vault-world { transition:filter .5s; }
.vault-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.77) 0%,rgba(0,0,0,.58) 33%,rgba(0,0,0,.05) 68%,rgba(0,0,0,.2) 100%),linear-gradient(0deg,rgba(0,0,0,.75),transparent 24%,transparent 80%,rgba(0,0,0,.16)); }
.vault-dust { position:absolute; inset:0; width:100%; height:100%; z-index:-2; pointer-events:none; }
.vault-opening { position:absolute; inset:0; z-index:100; display:grid; place-items:center; background:#050506; pointer-events:none; animation:vault-open 1.5s cubic-bezier(.72,0,.18,1) .15s both; }
.vault-opening-mark { font-size:clamp(26px,4vw,54px); font-weight:800; letter-spacing:-.06em; }
.vault-opening-mark span { color:#da3430; }
.vault-opening-line { position:absolute; top:50%; width:0; height:1px; background:#da3430; box-shadow:0 0 28px #da3430; animation:vault-line 1s ease .25s both; }
@keyframes vault-line { 50% { width:min(520px,70vw); } 100% { width:0; } }
@keyframes vault-open { 0%,56% { opacity:1; clip-path:inset(0 0 0 0); } 100% { opacity:0; clip-path:inset(0 0 100% 0); visibility:hidden; } }
.vault-hero-content { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; min-height:max(790px,100svh); padding-top:130px; padding-bottom:165px; }
.vault-copy { position:relative; z-index:4; width:min(680px,112%); }
.vault-kicker,.vault-index,.vault-coordinates,.vault-scroll-cue,.vault-hero-picker,.vault-work-controls,.vault-work-foot,.vault-panel-number,.vault-panel-copy>p:first-child,.vault-services span,.vault-steps span,.vault-more { font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.45; text-transform:uppercase; }
.vault-kicker { display:flex; align-items:center; gap:12px; color:#f2efed; }
.vault-live-dot { display:inline-block; flex:none; width:7px; height:7px; border-radius:50%; background:#da3430; box-shadow:0 0 18px #da3430; animation:vault-pulse 3s infinite ease-in-out; }
@keyframes vault-pulse { 50% { opacity:.45; box-shadow:0 0 30px #da3430; } }
.vault-copy h1 { margin:32px 0 28px; font-size:clamp(54px,6.2vw,96px); font-weight:800; line-height:1.02; letter-spacing:-.075em; text-wrap:balance; }
.vault-copy h1:focus { outline:none; }
.vault-copy h1 em { font-style:normal; color:#e13d37; }
.vault-copy>p:last-of-type { max-width:470px; color:#e4e0dd; font-size:clamp(16px,1.25vw,19px); line-height:1.65; }
.vault-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin-top:35px; }
.vault-action { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:54px; color:#fff; text-decoration:none; font-size:13px; font-weight:700; transition:transform .3s,background .3s,border-color .3s; }
.vault-action svg,.vault-more svg,.vault-work-foot svg { transition:transform .3s; }
.vault-action:hover svg,.vault-more:hover svg,.vault-work-foot a:hover svg { transform:translateX(5px); }
.vault-action-primary { padding:0 22px; background:#da3430; border:1px solid #da3430; border-radius:2px; box-shadow:0 14px 35px rgba(110,0,0,.2); }
.vault-action-primary:hover { background:#b92926; border-color:#b92926; transform:translateY(-2px); }
.vault-action-quiet { border-bottom:1px solid rgba(255,255,255,.58); }
.vault-action-quiet:hover { border-color:#da3430; }
.vault-portal { position:absolute; z-index:2; width:46%; height:57%; top:20%; right:-3%; perspective:1000px; pointer-events:none; }
.vault-portal-halo { position:absolute; inset:2% 7% 0 0; border-radius:50%; background:radial-gradient(ellipse,rgba(218,52,48,.22),transparent 64%); filter:blur(40px); transform:scale(1.12); }
.vault-product { position:absolute; inset:11% -8% 8% -12%; display:grid; place-items:center; transform:translate3d(0,0,0) rotateY(-8deg); filter:drop-shadow(0 50px 30px rgba(0,0,0,.85)); transition:opacity .38s,transform .65s cubic-bezier(.2,.7,.1,1); }
.vault-product img { width:100%; height:100%; object-fit:contain; }
.vault-product.is-changing { opacity:0; transform:translate3d(80px,0,-100px) rotateY(20deg) scale(.88); }
.vault-product-caption { position:absolute; right:5%; bottom:-9%; display:grid; grid-template-columns:1fr auto; align-items:center; min-width:260px; padding:12px 12px 14px 18px; border-left:2px solid #da3430; background:rgba(8,8,9,.78); backdrop-filter:blur(13px); pointer-events:auto; }
.vault-product-caption>span { grid-column:1; font:700 9px/1.4 var(--sans); letter-spacing:.18em; color:#d8d4d1; }
.vault-product-caption strong { grid-column:1; margin-top:4px; font-size:22px; letter-spacing:-.04em; line-height:1.1; }
.vault-product-caption>a { grid-column:2; grid-row:1/3; display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.5); border-radius:50%; }
.vault-product-caption>a:hover { background:#da3430; border-color:#da3430; }
.vault-hero-bottom { position:absolute; z-index:5; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1.5fr 1fr; align-items:end; gap:25px; padding-bottom:32px; color:#d4d0cd; }
.vault-coordinates { color:#b9b3b0; }
.vault-hero-picker { display:grid; grid-template-columns:repeat(3,1fr); width:100%; border-top:1px solid rgba(255,255,255,.45); }
.vault-hero-picker button { position:relative; display:flex; align-items:center; gap:10px; min-height:54px; padding:15px 5px 3px; border:0; background:transparent; color:#bab5b3; font:700 11px/1.3 var(--sans); text-align:left; cursor:pointer; }
.vault-hero-picker button+button { padding-left:12px; }
.vault-hero-picker button>span { color:#da3430; font-size:9px; }
.vault-hero-picker button.is-active { color:#fff; }
.vault-hero-picker button.is-active::before { content:""; position:absolute; left:0; right:8px; top:-1px; height:2px; background:#da3430; box-shadow:0 0 14px rgba(218,52,48,.8); }
.vault-scroll-cue { justify-self:end; color:#b9b3b0; text-decoration:none; white-space:nowrap; }
.vault-scroll-cue svg { width:16px !important; height:16px !important; margin-left:8px; color:#da3430; vertical-align:middle; }

.vault-work { padding:130px 0 115px; color:#161719; background:#e9e7e2 !important; }
.vault-work-head { display:flex; justify-content:space-between; align-items:end; gap:50px; }
.vault-index { color:#bc2e2a; }
.vault-work h2,.vault-thesis h2,.vault-process h2,.vault-finale h2 { font-size:clamp(46px,6vw,91px); line-height:1.04; letter-spacing:-.075em; font-weight:800; }
.vault-work h2 { margin-top:24px; }
.vault-work h2 em,.vault-thesis h2 em,.vault-finale h2 em { font-style:normal; color:#c73531; }
.vault-work-head>p { max-width:355px; padding-bottom:5px; font-size:18px; line-height:1.65; color:#47484a; }
.vault-work-controls { display:flex; justify-content:space-between; align-items:center; margin-top:75px; margin-bottom:20px; color:#67686a; }
.vault-work-controls>div { display:flex; align-items:center; gap:17px; }
.vault-work-controls button { display:grid; place-items:center; width:40px; height:40px; border:1px solid #a8a8a8; border-radius:50%; background:transparent; color:#171819; cursor:pointer; }
.vault-work-controls button:hover { border-color:#c73531; background:#c73531; color:#fff; }
.vault-rail { display:flex; gap:26px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; padding:0 max(16px,calc((100vw - 1240px)/2)) 28px; scrollbar-width:none; cursor:grab; }
.vault-rail::-webkit-scrollbar { display:none; }
.vault-rail.is-dragging { cursor:grabbing; scroll-snap-type:none; }
.vault-panel { display:grid; grid-template-columns:1.18fr .82fr; flex:none; width:min(1110px,calc(100vw - 120px)); min-height:545px; scroll-snap-align:center; background:#101215; color:#fff; box-shadow:0 28px 55px rgba(12,12,12,.18); }
.vault-panel-media { position:relative; display:grid; place-items:center; min-width:0; overflow:hidden; background:radial-gradient(ellipse at 50% 52%,#373a41,#202328 65%,#15171a); }
.vault-panel-media::before { content:""; position:absolute; inset:0; opacity:.6; background:linear-gradient(140deg,rgba(255,255,255,.06),transparent 35%,rgba(0,0,0,.28)); }
.vault-panel-trade { background:radial-gradient(ellipse at 50% 52%,#434046,#232128 65%,#141316); }
.vault-panel-ipr { background:radial-gradient(ellipse at 50% 52%,#393f43,#1e282b 65%,#111719); }
.vault-panel-media img { width:100%; height:100%; padding:35px 15px; object-fit:contain; filter:drop-shadow(0 24px 27px rgba(0,0,0,.45)); transition:transform .6s ease; }
.vault-panel:hover img { transform:scale(1.04); }
.vault-panel-number { position:absolute; z-index:1; top:24px; left:26px; color:#e0dcda; }
.vault-panel-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(35px,5vw,75px); }
.vault-panel-copy>p:first-child { color:#da3430; }
.vault-panel-copy h3 { margin-top:26px; font-size:clamp(40px,4.3vw,66px); line-height:1; letter-spacing:-.07em; }
.vault-panel-rule { width:52px; height:2px; margin:34px 0; background:#da3430; }
.vault-panel-copy>p:nth-of-type(2) { color:#c6c6c8; font-size:16px; line-height:1.75; }
.vault-panel-copy a { display:inline-flex; align-items:center; gap:14px; align-self:flex-start; margin-top:36px; padding-bottom:7px; border-bottom:1px solid #da3430; text-decoration:none; font-size:13px; font-weight:700; }
.vault-panel-copy a svg { transition:transform .25s; }
.vault-panel-copy a:hover svg { transform:translateX(5px); }
.vault-work-foot { display:flex; justify-content:space-between; align-items:center; color:#666; }
.vault-work-foot a,.vault-more { display:inline-flex; gap:14px; align-items:center; color:#171819; text-decoration:none; }
.vault-work-foot a { font-size:11px; font-weight:700; letter-spacing:.13em; }

.vault-thesis { position:relative; overflow:hidden; padding:150px 0 160px; background:#0f1114 !important; }
.vault-thesis::before { content:""; position:absolute; width:680px; height:680px; left:-320px; top:12%; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 90px rgba(255,255,255,.015),0 0 0 180px rgba(255,255,255,.012); }
.vault-thesis-grid { position:relative; display:grid; grid-template-columns:1.2fr .8fr; gap:90px; align-items:end; }
.vault-thesis h2 { margin-top:30px; }
.vault-thesis-side>p { max-width:470px; color:#c8c8ca; font-size:19px; line-height:1.8; }
.vault-services { margin-top:45px; border-top:1px solid rgba(255,255,255,.22); }
.vault-services a { display:grid; grid-template-columns:30px 1fr 20px; align-items:center; gap:12px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.22); color:#fff; text-decoration:none; font-size:15px; font-weight:700; transition:padding .3s; }
.vault-services a:hover { padding-left:10px; }
.vault-services span { color:#da3430; }
.vault-services svg { width:18px !important; height:18px !important; }
.vault-process { padding:145px 0 150px; background:#e9e7e2 !important; color:#171819; }
.vault-process h2 { margin-top:30px; max-width:900px; }
.vault-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:85px; border-top:1px solid #aaa9a6; }
.vault-steps>div { padding-top:26px; }
.vault-steps span { color:#c73531; }
.vault-steps p { max-width:310px; margin-top:30px; font-size:18px; line-height:1.65; }
.vault-more { margin-top:70px; padding-bottom:8px; border-bottom:1px solid #c73531; }
.vault-finale { position:relative; isolation:isolate; min-height:680px; display:flex; align-items:center; overflow:hidden; background:#070708 !important; }
.vault-finale-world { inset:-15%; background-position:center 55%; transform:scale(1.1); }
.vault-finale-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.63) 48%,rgba(0,0,0,.05)); }
.vault-finale-content { padding-top:100px; padding-bottom:100px; }
.vault-finale h2 { margin-top:28px; }
.vault-finale-content>p:nth-of-type(2) { max-width:530px; margin-top:25px; color:#ddd6d3; font-size:18px; line-height:1.65; }
.vault-mail { display:inline-block; margin-top:65px; color:#d5d0cd; font-size:13px; text-underline-offset:7px; }

@media (max-width:1050px) {
  .vault-copy h1 { font-size:clamp(55px,7vw,75px); }
  .vault-portal { right:-5%; width:52%; }
  .vault-panel { width:min(900px,calc(100vw - 80px)); min-height:470px; }
  .vault-panel-copy { padding:38px; }
}
@media (max-width:760px) {
  .vault-gate-door { background-size:auto 100%; background-position:65% center; }
  .vault-gate-right { background-position:83% center; }
  .vault-gate-content { padding-top:32px; padding-bottom:28px; }
  .vault-gate-content h2 { font-size:clamp(65px,13vw,95px); }
  .vault-home .nav-row { height:68px; }
  .vault-hero { min-height:980px; }
  .vault-world { background-position:69% center; transform:scale(1.04); }
  .vault-shade { background:linear-gradient(180deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.48) 48%,rgba(0,0,0,.06) 74%,rgba(0,0,0,.8) 100%); }
  .vault-hero-content { display:block; min-height:980px; padding-top:165px; padding-bottom:250px; }
  .vault-copy { width:100%; }
  .vault-copy h1 { font-size:clamp(49px,9vw,78px); }
  .vault-copy>p:last-of-type { max-width:430px; }
  .vault-portal { top:58%; left:0; right:0; width:100%; height:29%; }
  .vault-product { inset:0 16px 4%; transform:none; }
  .vault-product-caption { right:16px; bottom:-5%; min-width:235px; }
  .vault-hero-bottom { grid-template-columns:1fr; gap:5px; padding-bottom:24px; }
  .vault-coordinates,.vault-scroll-cue { display:none; }
  .vault-hero-picker button { justify-content:center; }
  .vault-work { padding:95px 0 95px; }
  .vault-work-head { display:block; }
  .vault-work-head>p { margin-top:22px; }
  .vault-work-controls { margin-top:50px; }
  .vault-work-controls>span { display:none; }
  .vault-work-controls>div { margin-left:auto; }
  .vault-panel { grid-template-columns:1fr; width:86vw; min-height:0; }
  .vault-panel-media { height:310px; }
  .vault-panel-copy { min-height:350px; }
  .vault-thesis { padding:105px 0; }
  .vault-thesis-grid { grid-template-columns:1fr; gap:46px; }
  .vault-process { padding:105px 0; }
  .vault-steps { grid-template-columns:1fr; gap:25px; margin-top:55px; }
  .vault-steps>div { border-bottom:1px solid #c1c0bd; padding-bottom:22px; }
  .vault-steps p { max-width:550px; margin-top:16px; }
  .vault-finale { min-height:650px; }
}
@media (max-width:500px) {
  .vault-gate-content h2 { font-size:clamp(64px,16vw,82px); }
  .vault-gate-actions { gap:24px; }
  .vault-gate-actions button { min-height:53px; padding:0 18px; font-size:12px; }
  .vault-gate-actions a { font-size:12px; }
  .vault-gate-foot { max-width:260px; font-size:9px; }
  .vault-hero { min-height:1010px; }
  .vault-hero-content { min-height:1010px; padding-top:132px; }
  .vault-kicker,.vault-index { font-size:9px; }
  .vault-copy h1 { margin:24px 0; font-size:clamp(46px,12vw,62px); }
  .vault-copy>p:last-of-type { font-size:15px; }
  .vault-actions { gap:16px; margin-top:25px; }
  .vault-action { min-height:50px; font-size:12px; }
  .vault-action-primary { padding:0 16px; gap:10px; }
  .vault-portal { top:50%; height:29%; }
  .vault-product-caption { bottom:-16%; }
  .vault-hero-picker button { flex-direction:column; gap:3px; min-height:52px; padding:11px 0 0; font-size:10px; }
  .vault-hero-picker button+button { padding-left:3px; }
  .vault-work h2,.vault-thesis h2,.vault-process h2,.vault-finale h2 { font-size:clamp(42px,10vw,57px); }
  .vault-work-head>p,.vault-thesis-side>p,.vault-steps p,.vault-finale-content>p:nth-of-type(2) { font-size:15px; }
  .vault-rail { gap:14px; padding-left:16px; padding-right:16px; }
  .vault-panel { width:88vw; }
  .vault-panel-media { height:265px; }
  .vault-panel-copy { min-height:330px; padding:26px; }
  .vault-panel-copy h3 { font-size:43px; margin-top:18px; }
  .vault-panel-copy>p:nth-of-type(2) { font-size:14px; }
  .vault-panel-rule { margin:24px 0; }
  .vault-work-foot { margin-top:2px; }
  .vault-drag-hint { display:none; }
  .vault-work-foot a { margin-left:auto; }
  .vault-process h2 { max-width:380px; }
  .vault-finale-world { background-position:68% center; }
}
@media (prefers-reduced-motion:reduce) {
  .vault-gate-door,.vault-gate-content,.vault-gate-shade,.vault-gate::after { transition:none !important; }
  .vault-opening,.vault-opening-line,.vault-live-dot { animation:none; }
  .vault-opening { display:none; }
  .vault-world,.vault-finale-world,.vault-product,.vault-panel-media img,.vault-action { transition:none !important; transform:none !important; }
}

/* Ripple preview: the live water is the visual through-line, from entrance to close. */
.vault-home .liquid { z-index:0; }
.vault-home main { position:relative; z-index:1; overflow:visible; }
.vault-home:not(.vault-entered) main>section { opacity:0; }
.vault-home main>section { transition:opacity .7s ease; }
.vault-gate { background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.26) 70%),rgba(0,0,0,.22); transition:opacity .9s ease,visibility .9s ease; }
.vault-gate::after,.vault-gate-door { display:none; }
.vault-gate-shade { background:linear-gradient(0deg,rgba(0,0,0,.58),transparent 35%); }
.vault-gate-ring { position:absolute; top:53%; right:4%; width:min(55vw,700px); aspect-ratio:1; transform:translateY(-50%); pointer-events:none; }
.vault-gate-ring span { position:absolute; inset:7%; border:1px solid rgba(235,239,245,.14); border-radius:50%; box-shadow:0 0 26px rgba(229,236,245,.05),inset 0 0 24px rgba(232,237,244,.04); }
.vault-gate-ring span:nth-child(2) { inset:24%; border-color:rgba(242,246,255,.23); }
.vault-gate-ring span:nth-child(3) { inset:43%; border:0; background:#da3430; box-shadow:0 0 25px 8px rgba(218,52,48,.4); transform:scale(.08); animation:ripple-breathe 3.7s ease-in-out infinite; }
@keyframes ripple-breathe { 50% { transform:scale(.13); opacity:.72; } }
.vault-gate.is-opening { opacity:0; visibility:hidden; }
.vault-gate.is-opening .vault-gate-ring { transform:translateY(-50%) scale(1.7); opacity:0; transition:transform .9s ease,opacity .9s ease; }
.vault-gate-count { color:#e5e0dd; }
.vault-gate-content h2 { max-width:1000px; font-size:clamp(70px,10vw,150px); }
.vault-gate-actions button,.vault-action-primary { border-radius:999px; }
.vault-gate-actions button { background:#f5f4f1; border-color:#f5f4f1; color:#111; }
.vault-gate-actions button:hover { background:#e6e6e4; }
.vault-home .nav .btn-accent { background:#da3430; border-color:#da3430; border-radius:999px; color:#fff; }
.vault-home .nav .btn-accent:hover { background:#b92926; border-color:#b92926; }
.vault-home .nav { position:fixed; }
.vault-home .nav.scrolled { background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; }
.vault-gate-actions button,.vault-action-primary,.vault-finale .vault-action-primary { min-height:54px; padding:0 24px; border:1px solid #f4f4f2; border-radius:999px; background:#f4f4f2; color:#111; font-size:14px; font-weight:700; box-shadow:0 14px 35px rgba(0,0,0,.18); }
.vault-gate-actions button:hover,.vault-action-primary:hover,.vault-finale .vault-action-primary:hover { background:#da3430; border-color:#da3430; color:#fff; }
.vault-gate-actions button,.vault-action-primary { transition:transform .25s ease,background-color 0s,border-color 0s,color 0s; }
.vault-work-controls button:disabled { opacity:.4; cursor:default; }
.vault-work-controls button:disabled:hover { border-color:#a8a8a8; background:transparent; color:#171819; }
.vault-gate-actions a { text-decoration:none; border-bottom:1px solid rgba(255,255,255,.7); padding-bottom:7px; }
.vault-hero { min-height:max(760px,100svh); padding:0; background:transparent !important; }
.vault-world,.vault-dust,.vault-portal,.vault-finale-world { display:none; }
.vault-shade { z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.31) 54%,rgba(0,0,0,.06)),linear-gradient(0deg,rgba(0,0,0,.62),transparent 32%); }
.vault-hero-content { display:flex; align-items:center; min-height:max(760px,100svh); padding-top:125px; padding-bottom:135px; }
.vault-copy { width:min(850px,100%); }
.vault-copy h1 { font-size:clamp(70px,7.9vw,132px); line-height:1.01; letter-spacing:-.073em; }
.vault-copy>p:last-of-type { max-width:650px; font-size:clamp(18px,1.55vw,22px); }
.vault-action-primary { background:#f4f4f2; border-color:#f4f4f2; box-shadow:0 16px 35px rgba(0,0,0,.15); color:#111; }
.vault-action-primary:hover { background:#e0e0dd; border-color:#e0e0dd; }
.vault-action-quiet { padding-bottom:5px; }
.vault-hero-bottom { grid-template-columns:1fr 1fr; }
.vault-scroll-cue { display:inline-flex; align-items:center; }
.vault-work { padding-top:110px; background:#f0efec !important; }
.vault-work-controls { margin-top:55px; }
.vault-work-head h2 { max-width:900px; }
.vault-work-head>p { max-width:360px; }
.vault-panel { box-shadow:0 28px 65px rgba(13,19,24,.15); }
.vault-thesis { background:#101215 !important; }
.vault-thesis::before { border-color:rgba(233,239,247,.09); }
.vault-thesis h2 { max-width:850px; }
.vault-process { background:#f0efec !important; }
.vault-finale { background:transparent !important; }
.vault-finale-shade { background:linear-gradient(90deg,rgba(0,0,0,.81),rgba(0,0,0,.36) 68%,rgba(0,0,0,.1)); }
.vault-finale h2 { max-width:1120px; }
.vault-finale .vault-action-primary { background:#fff; border-color:#fff; color:#111; }
@media (max-width:760px) {
  .vault-gate-content h2 { font-size:clamp(66px,12vw,96px); }
  .vault-gate-ring { width:95vw; right:-39vw; top:55%; opacity:.7; }
  .vault-hero,.vault-hero-content { min-height:max(770px,100svh); }
  .vault-hero-content { display:flex; align-items:flex-start; padding-top:170px; padding-bottom:160px; }
  .vault-copy h1 { font-size:clamp(56px,10vw,80px); }
  .vault-shade { background:linear-gradient(180deg,rgba(0,0,0,.78),rgba(0,0,0,.42) 48%,rgba(0,0,0,.06) 75%,rgba(0,0,0,.62)); }
  .vault-scroll-cue { display:inline-flex; justify-self:start; }
  .vault-hero-bottom { grid-template-columns:1fr; }
  .vault-work { padding-top:105px; }
}
@media (max-width:500px) {
  .vault-gate-content h2 { font-size:clamp(62px,14vw,76px); }
  .vault-gate-ring { right:-51vw; }
  .vault-hero,.vault-hero-content { min-height:max(720px,100svh); }
  .vault-hero-content { padding-top:145px; }
  .vault-copy h1 { font-size:clamp(48px,11.8vw,65px); }
  .vault-copy>p:last-of-type { font-size:16px; line-height:1.6; }
  .vault-actions { margin-top:31px; }
  .vault-scroll-cue { font-size:9px; }
  .vault-work h2 { font-size:clamp(49px,11vw,62px); }
  .vault-work-head>p { margin-top:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .vault-gate-ring span:nth-child(3) { animation:none; }
  .vault-gate,.vault-gate-ring,.vault-home main>section { transition:none !important; }
}
@media (max-width:360px) {
  .vault-copy h1 { font-size:39px; }
}
@media (max-width:500px) {
  .vault-work { padding-top:70px; }
  .vault-work-controls { margin-top:30px; }
}
