/* Homepage-only brand reveal and scroll story, with readable no-JS fallbacks. */
body[data-page="home"].is-loading{opacity:1}
body.brand-intro-active{overflow:hidden}
.brand-intro{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;color:#fffdfa;background:#041425;opacity:1;transition:opacity .3s ease}
.brand-intro-top{position:absolute;top:clamp(24px,5vh,54px);left:clamp(24px,5vw,76px);right:clamp(24px,5vw,76px);display:flex;justify-content:space-between;color:#b8c9d5;font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.brand-intro-lockup{position:relative;display:flex;flex-direction:column;align-items:center;gap:25px;text-align:center}
.brand-intro-mark{position:relative;width:clamp(170px,20vw,248px);aspect-ratio:1;transform-origin:center;transition:transform .65s cubic-bezier(.7,0,.2,1)}
.brand-intro-mark svg{display:block;width:100%;height:100%;overflow:visible}
.brand-intro-mark .intro-frame,.brand-intro-mark .intro-detail{opacity:0}
.brand-intro-mark .intro-left{transform:translate(-32px,18px) rotate(-14deg);opacity:0;transform-origin:64px 64px}
.brand-intro-mark .intro-right{transform:translate(32px,-18px) rotate(14deg);opacity:0;transform-origin:64px 64px}
.brand-intro-mark .intro-beam{transform:translateY(25px);opacity:0}
.intro-outline{fill:none;stroke:#b8d2df;stroke-width:.8;stroke-dasharray:340;stroke-dashoffset:340}
.brand-intro.is-playing .intro-outline{animation:ash-outline 1.25s ease .1s both}
.brand-intro.is-playing .intro-left{animation:ash-piece 1.15s cubic-bezier(.16,1,.3,1) .48s both}
.brand-intro.is-playing .intro-right{animation:ash-piece 1.15s cubic-bezier(.16,1,.3,1) .7s both}
.brand-intro.is-playing .intro-beam{animation:ash-piece .75s cubic-bezier(.16,1,.3,1) 1.1s both}
.brand-intro.is-playing .intro-detail{animation:ash-resolve .55s ease 1.6s both}
.brand-intro.is-playing .intro-frame{animation:ash-resolve .7s ease 1.85s both}
.brand-intro-copy{display:grid;gap:.5rem;opacity:0;transform:translateY(14px)}
.brand-intro-copy strong{font-size:clamp(1.7rem,3.6vw,3.1rem);letter-spacing:-.06em;line-height:1.1}
.brand-intro-copy span{color:#b8c9d5;font-size:.66rem;letter-spacing:.22em;font-weight:700;text-transform:uppercase}
.brand-intro.is-playing .brand-intro-copy{animation:ash-piece .75s cubic-bezier(.16,1,.3,1) 1.65s both}
.brand-intro-rule{position:absolute;left:clamp(24px,5vw,76px);right:clamp(24px,5vw,76px);bottom:clamp(28px,6vh,68px);height:1px;background:#2d4150}
.brand-intro-rule span{display:block;height:100%;background:#91d2da;transform:scaleX(0);transform-origin:left}
.brand-intro.is-playing .brand-intro-rule span{animation:ash-line 3s cubic-bezier(.4,0,.2,1) both}
.brand-intro-skip{position:absolute;right:clamp(24px,5vw,76px);bottom:clamp(47px,9vh,100px);min-height:44px;padding:.4rem .85rem;border:1px solid #637988;color:#fffdfa;background:#041425;font:inherit;font-size:.8rem;cursor:pointer}
.brand-intro-skip:focus-visible{outline:2px solid #b8ecf1;outline-offset:5px}
.brand-intro-motion-choice{display:none;position:absolute;left:clamp(24px,5vw,76px);bottom:clamp(47px,9vh,100px);gap:.45rem;align-items:flex-start;flex-direction:column;font-size:.72rem;color:#b8c9d5}
.brand-intro.is-reduced .brand-intro-motion-choice{display:flex}
.brand-intro-motion-choice button{min-height:44px;padding:.4rem .85rem;border:1px solid #8dd8df;color:#fffdfa;background:#113342;font:inherit;font-size:.8rem;cursor:pointer}
.brand-intro-motion-choice button:focus-visible{outline:2px solid #b8ecf1;outline-offset:5px}
.brand-intro-motion-choice button[hidden]{display:none}
.hero-display-choice{margin-top:.3rem}
.brand-intro.is-locking{background:rgba(4,20,37,.95)}
.brand-intro.is-locking .brand-intro-mark{transform:translate3d(var(--intro-shift-x),var(--intro-shift-y),0) scale(var(--intro-scale))}
.brand-intro.is-locking .brand-intro-copy,.brand-intro.is-locking .brand-intro-top,.brand-intro.is-locking .brand-intro-rule,.brand-intro.is-locking .brand-intro-skip{opacity:0;transition:opacity .2s}
.brand-intro.is-exiting{opacity:0;pointer-events:none}
@keyframes ash-outline{0%{stroke-dashoffset:340;opacity:1}75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes ash-piece{to{transform:none;opacity:1}}
@keyframes ash-resolve{from{opacity:0}to{opacity:1}}
@keyframes ash-line{to{transform:scaleX(1)}}
.intro-motion-toggle{min-height:44px;padding:.2rem 0;border:0;background:none;color:#c7d8e0;font:inherit;font-size:.76rem;cursor:pointer;text-decoration:underline;text-underline-offset:5px}
.intro-motion-toggle[hidden]{display:none}
.intro-motion-toggle:focus-visible{outline:2px solid #b8ecf1;outline-offset:3px}
.brand-intro.is-reduced .intro-outline{display:none}
.brand-intro.is-reduced .intro-frame,.brand-intro.is-reduced .intro-detail,.brand-intro.is-reduced .intro-left,.brand-intro.is-reduced .intro-right,.brand-intro.is-reduced .intro-beam,.brand-intro.is-reduced .brand-intro-copy{opacity:1;transform:none;animation:none!important}
.brand-intro.is-reduced .brand-intro-rule span{animation:none!important;transform:none}
.ash-hero .hero-status-line{gap:1.5rem}
.ash-hero .hero-status-line span:last-child{text-align:right}

.studio-story{--story-top:84px;position:relative;color:#041425;background:#ebe7dc;scroll-margin-top:84px}
.studio-story-inner{padding:clamp(22px,3vh,40px) 0 20px}
.studio-film-top{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:28px;font-size:.67rem;letter-spacing:.13em;font-weight:800;text-transform:uppercase}
.studio-film-top p{margin:0}
.studio-film-top a{color:#344652;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}
.studio-scene{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(35px,6vw,90px);align-items:center;min-height:480px;padding:3rem 0}
.studio-scene-copy{position:relative;z-index:3}
.studio-scene-kicker{color:#705244;font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;margin:0 0 25px}
.studio-scene h2{font-size:clamp(3.3rem,5.3vw,6rem);line-height:.94;letter-spacing:-.067em;margin:0 0 25px}
.studio-scene h2 em{font-family:Georgia,serif;font-weight:400;color:#a53d32;letter-spacing:-.065em}
.studio-scene-copy>p:not(.studio-scene-kicker){max-width:440px;color:#46515a;font-size:1.02rem;line-height:1.65;margin:0}
.studio-scene-tags{display:flex;flex-wrap:wrap;gap:.5rem 1rem;list-style:none;margin:25px 0 0;padding:0}
.studio-scene-tags li{font-size:.65rem;font-weight:800;padding-top:8px;border-top:1px solid #b9b6ab;letter-spacing:.04em;text-transform:uppercase}
.studio-visual{position:relative;min-width:0;height:390px;perspective:1100px}
.studio-browser{position:absolute;inset:8px 0 26px;overflow:hidden;background:#fff;border:1px solid #9eaeb1;border-radius:6px;box-shadow:0 22px 45px #04142520;transform:translateY(var(--scene-shift,0px)) rotateY(var(--scene-tilt,0deg));transform-origin:center}
.studio-browser-head{height:30px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid #d8dddb;background:#f6f6f0;font-size:.52rem;color:#50616a;letter-spacing:.05em}
.studio-browser-head i{width:6px;height:6px;display:block;border-radius:50%;background:#6a8a92}
.studio-browser-head span{margin-left:auto}
.studio-browser img{width:100%;height:auto;min-height:100%;display:block;object-fit:cover;object-position:top;transform:translateY(calc(var(--scene-progress,0) * -72px))}
.studio-photo-note{position:absolute;bottom:0;right:0;font-size:.6rem;color:#50616a;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.studio-mobile-frame{width:27%;height:66%;position:absolute;right:-14px;bottom:28px;padding:10px 5px 5px;background:#102433;border:1px solid #516674;border-radius:18px;transform:translateY(calc(var(--scene-progress,0) * -26px));box-shadow:0 18px 30px #04142525;overflow:hidden}
.studio-mobile-frame::before{content:"";display:block;width:32%;height:3px;background:#758894;margin:0 auto 7px}
.studio-mobile-frame img{width:100%;min-height:100%;object-fit:cover;object-position:left top}
.studio-workflow{background:#f8f7f1;border:1px solid #a6b5b4;padding:24px;box-shadow:0 20px 45px #04142515;transform:translateY(var(--scene-shift,0))}
.studio-diagram-label{font-size:.6rem;font-weight:800;letter-spacing:.13em;color:#54696b;text-transform:uppercase;display:flex;justify-content:space-between;border-bottom:1px solid #d3dcd7;padding-bottom:16px}
.studio-request{background:#102d34;color:#fffdfa;margin:24px 0 0;padding:20px;display:grid;gap:12px}
.studio-request small{font-size:.62rem;color:#add6d3;letter-spacing:.09em;text-transform:uppercase}
.studio-request strong{font-size:1.3rem;letter-spacing:-.03em}
.studio-request span{font-size:.75rem;color:#d5e5e4}
.studio-flow-route{display:flex;align-items:center;justify-content:center;height:50px;position:relative}
.studio-flow-route::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#6f958e}
.studio-flow-route::after{content:"";position:absolute;left:calc(50% - 1px);top:0;height:100%;width:3px;background:#22564a;transform:scaleY(var(--scene-progress,0));transform-origin:top}
.studio-owner-tools>div:first-child{transform:translateX(calc((1 - var(--scene-progress,1)) * -8px))}
.studio-owner-tools>div:last-child{transform:translateX(calc((1 - var(--scene-progress,1)) * 8px))}
.studio-flow-route span{padding:6px 12px;background:#e8f0e7;color:#365248;font-size:.6rem;font-weight:800;letter-spacing:.08em;z-index:1}
.studio-owner-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.studio-owner-tools>div{padding:15px;border:1px solid #b3c5bd;background:#eef3eb;display:grid;gap:8px}
.studio-owner-tools small{font-size:.57rem;color:#476157;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.studio-owner-tools strong{font-size:1.1rem;letter-spacing:-.03em}
.studio-owner-tools span{font-size:.65rem;color:#52685e}
.studio-architecture{padding:24px;background:#092032;border:1px solid #466477;color:#fffdfa;transform:perspective(900px) rotateY(var(--scene-tilt,0deg));box-shadow:0 20px 45px #04142520}
.studio-architecture .studio-diagram-label{color:#b8d1df;border-color:#3d5564}
.studio-security-stack{display:grid;margin:25px 0 0;gap:12px}
.studio-security-stack>div{border:1px solid #4c6370;background:#112e3f;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;transform:translateX(calc(var(--scene-progress,0) * -6px))}
.studio-security-stack strong{font-size:1.1rem;letter-spacing:-.03em}
.studio-security-stack span{color:#c7d7df;font-size:.68rem}
.studio-security-stack>div:nth-child(2){margin-inline:10px -10px;background:#173c45;border-color:#81afab;transform:translateX(calc((1 - var(--scene-progress,1)) * -20px))}
.studio-security-stack>div:nth-child(3){margin-inline:20px -20px;transform:translateX(calc((1 - var(--scene-progress,1)) * -36px))}
.studio-architecture p{font-size:.62rem;color:#b8d1df;margin:24px 0 0}
.studio-chapters{display:none}
.studio-time-track{height:1px;background:#b6b8ae;overflow:hidden}
.studio-time-track span{display:block;width:100%;height:100%;background:#994435;transform:scaleX(0);transform-origin:left}
.studio-story.is-enhanced{height:280svh}
.studio-story.is-enhanced .studio-story-inner{position:sticky;top:var(--story-top);height:calc(100svh - var(--story-top));min-height:470px;display:flex;flex-direction:column}
.studio-story.is-enhanced .studio-film-top{margin-bottom:12px}
.studio-story.is-enhanced .studio-scenes{position:relative;flex:1;min-height:0}
.studio-story.is-enhanced .studio-scene{position:absolute;inset:0;min-height:0;padding:10px 0 24px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(24px);transition:opacity .35s ease,transform .5s ease,visibility 0s linear .35s}
.studio-story.is-enhanced .studio-scene[data-active="true"]{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
.studio-story.is-enhanced .studio-chapters{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #b6b8ae;margin-top:10px}
.studio-chapters button{min-height:52px;display:flex;align-items:center;gap:12px;padding:8px 0;color:#536067;border:0;border-bottom:2px solid transparent;background:transparent;font:inherit;font-size:.8rem;cursor:pointer;text-align:left}
.studio-chapters button span{font-size:.57rem;font-weight:700}
.studio-chapters button[aria-pressed="true"]{color:#041425;border-bottom-color:#a53d32}
.studio-chapters button:focus-visible{outline:2px solid #a53d32;outline-offset:3px}
@media(min-width:1081px) and (max-height:850px){
  .ash-hero .ash-hero-lede{margin-top:1rem}.ash-hero .hero-actions{margin-top:1.1rem}.ash-hero .hero-contact-note{margin-top:.5rem}.studio-visual{height:320px}.studio-scene h2{font-size:clamp(3.4rem,4.9vw,5.6rem)}.studio-scene-kicker{margin-bottom:14px}.studio-workflow,.studio-architecture{padding:18px}.studio-request{margin-top:14px;padding:16px;gap:8px}.studio-flow-route{height:32px}.studio-security-stack{margin-top:14px;gap:8px}.studio-security-stack>div{padding:13px}.studio-architecture p{margin-top:18px}
}
@media(max-width:900px){
  .studio-story{--story-top:74px}.studio-scene{gap:30px}.studio-scene h2{font-size:clamp(2.7rem,5.5vw,4.5rem)}.studio-visual{height:340px}.studio-workflow,.studio-architecture{padding:16px}
}
/* Phone and touch layouts are a readable story, not a compressed desktop film. */
@media(max-width:900px), (pointer:coarse){
  .studio-story{--story-top:74px}
  .studio-story-inner{padding:24px 0 12px}
  .studio-scene{min-height:0;padding:36px 0;gap:32px;border-bottom:1px solid #bdc1b4}
  .studio-scene:last-child{border-bottom:0}
  .studio-scene-copy{min-width:0}
  .studio-scene h2{font-size:clamp(2.5rem,6vw,4rem);line-height:1;margin-bottom:18px}
  .studio-scene-copy>p:not(.studio-scene-kicker){font-size:1rem;line-height:1.6}
  .studio-scene-kicker{font-size:.7rem;margin-bottom:16px}
  .studio-scene-tags{margin-top:18px}.studio-scene-tags li{font-size:.67rem}
  .studio-visual{height:auto;min-width:0;width:100%}
  .studio-browser{position:relative;inset:auto;box-shadow:none}
  .studio-browser img{height:auto;min-height:0;transform:none;object-fit:contain}
  .studio-browser-head{height:32px;font-size:.62rem}
  .studio-mobile-frame{display:none}
  .studio-photo-note{position:static;display:block;margin-top:10px;font-size:.65rem}
  .studio-workflow,.studio-architecture{padding:20px;box-shadow:none}
  .studio-diagram-label{font-size:.65rem;padding-bottom:14px;gap:16px;flex-wrap:wrap}
  .studio-request{padding:16px;margin-top:18px;gap:8px}
  .studio-request strong{font-size:1.25rem}.studio-request small,.studio-request span{font-size:.75rem}
  .studio-flow-route{height:40px}.studio-flow-route span{font-size:.65rem}
  .studio-owner-tools{gap:10px}.studio-owner-tools>div{padding:12px}
  .studio-owner-tools small,.studio-owner-tools span{font-size:.72rem;line-height:1.5}
  .studio-security-stack{gap:10px;margin-top:18px}
  .studio-security-stack>div,.studio-security-stack>div:nth-child(2),.studio-security-stack>div:nth-child(3){margin-inline:0;padding:14px;flex-wrap:wrap;gap:6px}
  .studio-security-stack strong{font-size:1.05rem}.studio-security-stack span{font-size:.78rem}
  .studio-architecture p{font-size:.75rem;line-height:1.6;margin-top:18px}
}
@media(max-width:650px){
  .ash-hero{padding-top:5.25rem;min-height:0}
  .ash-hero-grid{padding:.5rem 0 1.75rem;gap:0;min-height:0}
  .ash-hero-copy{padding:.75rem 0 0}
  .ash-hero-copy h1{font-size:clamp(2.5rem,11vw,3.75rem);line-height:1;letter-spacing:-.065em}
  .ash-hero-copy .hero-status-line{font-size:.6rem;line-height:1.55;gap:16px;margin-bottom:1.25rem;padding-bottom:.75rem}
  .ash-hero .ash-hero-lede{font-size:1rem;line-height:1.6;margin-top:1.2rem}
  .ash-hero .hero-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px 20px;margin-top:1.25rem}
  .ash-hero .hero-actions .button{padding:.9rem 1rem;min-height:48px;font-size:.86rem}
  .ash-hero .hero-actions .text-link{font-size:.86rem;margin:0;gap:8px;min-height:44px}
  .ash-hero .hero-contact-note{font-size:.85rem;line-height:1.6;margin-top:.7rem}
  .ash-build-stage{display:none}
  .ash-hero-rail{min-height:0}.ash-hero-rail span{font-size:.61rem;letter-spacing:.05em}
  .brand-intro-top span:last-child{display:none}
  .studio-film-top{font-size:.64rem;gap:16px;margin-bottom:0}
  .studio-scene{grid-template-columns:1fr;gap:24px;padding:32px 0}
  .studio-scene h2{font-size:clamp(2.5rem,10.5vw,3.4rem);max-width:420px}
  .studio-owner-tools{grid-template-columns:1fr}
}
.studio-story:not(.is-enhanced) [data-studio-count]{display:none}
.footer-display-choice{padding:1rem 0}
@media(max-height:560px){
  .studio-story,.studio-story.is-enhanced{height:auto}.studio-story-inner,.studio-story.is-enhanced .studio-story-inner{position:static;height:auto}.studio-scene,.studio-story.is-enhanced .studio-scene{position:relative;opacity:1;visibility:visible;pointer-events:auto;padding:35px 0;transform:none;border-bottom:1px solid #bdc1b4}.studio-visual *{transform:none!important;transition:none!important}.studio-chapters,.studio-time-track{display:none!important}
}
.studio-story:not(.is-enhanced) .studio-time-track{display:none}
.studio-story:not(.is-enhanced) .studio-visual *{transform:none!important;transition:none!important}
/* Keep the complete homepage usable when JavaScript is unavailable. */
body[data-page="home"] [data-reveal]{opacity:1;transform:none}
