/* Centered, scroll-scrubbed brand story; native scrolling remains uninterrupted. */
/* Let browser chrome and overscroll sample the same colour as the opening. */
html:has(.opening){--opening-blue-stage:1;--opening-page-surface:#285dca;min-height:100%;background-color:var(--opening-page-surface)}
body:has(.opening){background-color:inherit}
/* Moving copy and canvas must not become scroll-anchoring candidates. */
.opening{--opening-blue:#1760ef;--opening-copy-travel:clamp(56px,9svh,96px);position:relative;isolation:isolate;height:620svh;background:transparent;overflow-anchor:none}
.opening-flow-backdrop{position:absolute;inset:0;z-index:-1;background:var(--opening-page-surface);pointer-events:none}
.opening-inner{position:sticky;top:94px;height:calc(100svh - 94px);min-height:560px;isolation:isolate;background:radial-gradient(ellipse 45% 64% at 53% 58%,#e4f0ff 0%,#f4f9ff 56%,transparent 100%),linear-gradient(145deg,#fff 4%,#f8fbff 78%,#f2f8ff 100%)}
.opening-inner::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.46;background-image:linear-gradient(#dceafd 1px,transparent 1px),linear-gradient(90deg,#dceafd 1px,transparent 1px);background-size:55px 55px;mask-image:radial-gradient(ellipse 42% 56% at 52% 55%,#000,transparent 78%);pointer-events:none}
.opening-inner::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 85% 80% at 75% 92%,#8bb2ef99,transparent 72%),linear-gradient(180deg,#285dca 0%,#285dca 10%,#2353ba 65%,#3268cd);opacity:var(--opening-blue-stage,1)}
.opening-copy--first .opening-description{color:color-mix(in srgb,#d5e5ff calc(var(--opening-blue-stage,1)*100%),#5c708a)}
.opening-copy{position:absolute;z-index:5;top:clamp(35px,7vh,72px);left:max(5vw,calc((100vw - 1480px)/2));max-width:min(41vw,560px);opacity:0;transform:translateY(var(--opening-copy-travel));pointer-events:none;will-change:opacity,transform}
.opening-copy--inspect{max-width:min(45vw,560px)}
.opening-copy--last{top:auto;bottom:clamp(84px,13vh,132px)}
.opening-copy[aria-hidden="false"]{pointer-events:auto}
.opening-copy h1,.opening-copy h2{margin-top:0;color:#23354c;font-size:clamp(43px,4vw,63px);font-weight:400;line-height:1.32;letter-spacing:-.052em}
.opening-copy h1 span,.opening-copy h2 span{color:var(--opening-blue)}
.opening-description{margin-top:19px;color:#5c708a;font-size:clamp(16px,1.2vw,18px);line-height:1.8}
.opening-action{display:inline-flex;align-items:center;gap:17px;margin-top:17px;padding:10px 0;color:#1a5bcc;border-bottom:1px solid #9dbdeb;font-size:14px;transition:gap .25s,border-color .25s,color .25s}
.opening-action:hover{gap:24px;border-color:#1760ef;color:#0c4aa9}
.opening-action .lucide{width:16px;height:16px;stroke-width:1.8}
.opening-action{gap:10px;padding:11px 17px;border:1px solid #b7ccea;border-radius:999px;background:#ffffffb8;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);cursor:pointer;font-family:inherit;font-size:13px;box-shadow:none;text-decoration:none;transition:background .2s,transform .2s,border-color .2s}
.opening-action:hover{gap:10px;background:#fff;border-color:#7ca8e1;transform:translateY(-2px)}
.opening-action{font-size:14px}
.opening-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:17px}
.opening-panel-actions .opening-action{margin-top:0;white-space:nowrap}
.opening-action--primary{background:#1760ef;border-color:#1760ef;color:#fff}
.opening-action--primary:hover{background:#1254d5;border-color:#1254d5;color:#fff}
#services{scroll-margin-top:20px}
@media(max-width:720px){.opening-panel-actions{flex-direction:column;align-items:flex-start;gap:10px;margin-top:8px}#services{scroll-margin-top:0}}
.opening-first-actions{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:24px}
.opening-booking{display:inline-flex;align-items:center;gap:15px;margin-top:0;padding:13px 22px;border:1px solid #ffffffa6;border-radius:999px;background:#ffffffed;color:#2055b4;font-size:14px;line-height:1.4;text-decoration:none;transition:background .2s,transform .2s}
.opening-booking--services{background:color-mix(in srgb,#ffffff20 calc(var(--opening-blue-stage,1)*100%),#ffffffb8);border-color:color-mix(in srgb,#ffffffa6 calc(var(--opening-blue-stage,1)*100%),#b7ccea);color:color-mix(in srgb,#fff calc(var(--opening-blue-stage,1)*100%),#2055b4)}
.opening-booking--services:hover{background:#ffffff38}
.opening-booking:not(.opening-booking--services):hover{background:#fff;transform:translateY(-2px)}
.opening-booking .lucide{width:16px;height:16px;stroke-width:1.8}
.opening-booking:focus-visible,.opening-action:focus-visible{outline:2px solid #1760ef;outline-offset:5px}
.opening-feature-dialog{width:min(690px,calc(100vw - 32px));max-height:min(85dvh,820px);padding:0;border:1px solid #d9e5f3;border-radius:22px;background:#fbfdff;color:#263a53;box-shadow:0 28px 80px #142e5333;overflow:auto}
.opening-feature-content{padding:clamp(36px,5vw,68px)}
.opening-feature-content h2{margin:0 0 29px;font-size:clamp(30px,3vw,43px);line-height:1.43;letter-spacing:-.04em;font-weight:400}
.opening-feature-content h2 span{color:#1760dc}
.opening-feature-content p{margin:0 0 18px;color:#51647b;font-size:16px;line-height:1.9}
.opening-feature-link{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:11px 18px;border:1px solid #aac4e8;border-radius:999px;color:#225eb6;background:#f4f8ff;font-size:14px;text-decoration:none}
.opening-feature-link .lucide{width:16px;height:16px}
.opening-feature-content h3{margin:31px 0 11px;font-size:19px;font-weight:500;line-height:1.55;color:#28476c}
.opening-feature-content ul{margin:4px 0 23px;padding-left:22px;color:#51647b;font-size:15px;line-height:1.85}
.opening-feature-content li+li{margin-top:9px}
.opening-feature-content strong{font-weight:600;color:#2b507e}
.opening-feature-content .opening-feature-lead{font-size:18px;line-height:1.82;color:#405b7e;margin-bottom:32px}
.opening-art{position:absolute;z-index:1;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%);pointer-events:none}
.opening-scroll-cue{display:none}
.opening-canvas{position:absolute;z-index:3;inset:0}.opening-canvas canvas{display:block;width:100%;height:100%}
@media(min-width:851px) and (hover:hover) and (pointer:fine){.opening-canvas.is-orbit-enabled{pointer-events:auto;cursor:grab;user-select:none}.opening-canvas.is-orbit-dragging{cursor:grabbing}}
.opening-art.opening-unavailable .opening-fallback{opacity:.8}
.opening-fallback{position:absolute;inset:12% 20%;display:grid;place-items:center;opacity:.68;transition:opacity .3s ease;pointer-events:none}
.opening-art.opening-ready .opening-fallback{opacity:0}
.opening-fallback-grid{position:absolute;inset:1%;border:1px solid #a8c8ef80;background:repeating-linear-gradient(0deg,transparent 0 35px,#b7d1ed89 36px 37px),repeating-linear-gradient(90deg,transparent 0 35px,#b7d1ed89 36px 37px);mask-image:radial-gradient(ellipse at center,#000,transparent 67%)}
.opening-fallback-tower{width:17%;height:66%;border:1px solid #4f8edc;background:repeating-linear-gradient(0deg,transparent 0 34px,#8ab6ea9a 35px 36px);transform:skewY(-5deg);box-shadow:14px 13px 0 -1px #d9e9fc,14px 13px 0 #9bc2ed;opacity:0}
.opening-art.opening-unavailable .opening-fallback-tower{opacity:.9}
.opening-next{position:absolute;z-index:6;right:max(5vw,calc((100vw - 1480px)/2));bottom:25px;width:50px;height:50px;display:grid;place-items:center;border:0;border-radius:50%;background:color-mix(in srgb,#ffffff40 calc(var(--opening-blue-stage,1)*100%),#f1f7ffdf);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:color-mix(in srgb,#fff calc(var(--opening-blue-stage,1)*100%),#3e6ba5);cursor:pointer;box-shadow:none;transition:background .2s,color .2s}
.opening-next .lucide{width:21px;height:21px;stroke-width:1.65;transition:transform .2s}
.opening-next:hover{background:color-mix(in srgb,#ffffff62 calc(var(--opening-blue-stage,1)*100%),#eaf3ffef)}.opening-next:hover .lucide{transform:translateY(3px)}
.opening-next:focus-visible{outline:2px solid #1760ef;outline-offset:5px}
#highlights{scroll-margin-top:94px;padding-top:clamp(55px,5vw,78px)}
@media(max-width:850px){.opening-inner{top:76px;height:calc(100svh - 76px)}.opening-copy{left:6%;top:5%;max-width:43%}.opening-copy--last{top:auto;bottom:12%}.opening-copy h1,.opening-copy h2{font-size:clamp(34px,5.1vw,47px)}.opening-next{right:6%}}
@media(max-width:720px){.opening{height:525svh}.opening-inner{min-height:0}.opening-copy{left:6%;right:6%;top:4.5%;max-width:none}.opening-copy--last{top:4.5%;bottom:auto}.opening-copy h1,.opening-copy h2{margin-top:0;font-size:clamp(33px,8.9vw,43px);line-height:1.28}.opening-description{margin-top:10px;font-size:14px;line-height:1.72}.opening-action{margin-top:8px;padding:7px 0;font-size:12px}.opening-art{top:61%;width:100%;height:72%}.opening-fallback{inset:8%}.opening-next{display:none}#highlights{scroll-margin-top:76px;padding-top:47px}}
@media(max-width:380px){.opening-copy h1,.opening-copy h2{font-size:31px}.opening-description{font-size:13px}}
@media(max-width:720px){.opening-first-actions{display:flex;justify-content:center;gap:10px;margin-top:18px}.opening-booking{margin-top:0;padding:11px 18px;font-size:13px}.opening-action{padding:9px 15px}.opening-feature-content{padding:58px 27px 36px}.opening-feature-content p{font-size:15px;line-height:1.8}.opening-feature-content .opening-feature-lead{font-size:16px}.opening-feature-content h3{font-size:18px}.opening-feature-dialog{max-height:88dvh}}
@media(prefers-reduced-motion:reduce){.opening{height:auto;min-height:calc(100svh - 94px)}.opening-inner{position:relative;top:auto;min-height:calc(100svh - 94px)}.opening-copy{will-change:auto;transition:none}.opening-action,.opening-next,.opening-next .lucide,.opening-fallback{transition:none}}

.opening-copy--first h1{color:color-mix(in srgb,#fff calc(var(--opening-blue-stage,1)*100%),#23354c)}
.opening-copy--first h1 span{color:color-mix(in srgb,#eff7ff calc(var(--opening-blue-stage,1)*100%),#1760ef)}
.opening-copy--first{top:clamp(25px,4.2vh,49px);left:5%;right:5%;max-width:none;text-align:center}
.opening-copy--first h1{font-size:clamp(48px,5vw,80px);line-height:1.2;letter-spacing:-.045em}
.opening-copy--first .opening-description{max-width:32em;margin:17px auto 0;font-size:clamp(16px,1.4vw,21px);line-height:1.65;letter-spacing:.04em;text-wrap:wrap}
.opening-intro-ending{white-space:nowrap}
@media(max-width:720px){.opening-copy--first{top:4.5%;left:6%;right:6%}.opening-copy--first h1{font-size:clamp(32px,9.8vw,42px);line-height:1.22;white-space:nowrap}.opening-copy--first h1 span{display:inline}.opening-copy--first .opening-description{margin-top:13px;font-size:14px;letter-spacing:0;text-wrap:balance;line-break:strict}}
@media(max-width:720px){.opening-art{top:calc(59% + var(--opening-late-art-drop,0px))}.opening-scroll-cue{position:absolute;z-index:5;top:min(calc(100% - 70px),calc(100dvh - var(--mobile-header-space) - env(safe-area-inset-bottom,0px) - 70px));left:50%;display:grid;place-items:center;width:66px;height:42px;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,#ffffff2e calc(var(--opening-blue-stage,1)*100%),#edf4fddd);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:color-mix(in srgb,#fff calc(var(--opening-blue-stage,1)*100%),#3e6ba5);opacity:0;cursor:pointer;transform:translate(-50%,-12px);transition:opacity .5s ease,transform .6s cubic-bezier(.22,1,.36,1),background .2s ease}.opening-scroll-cue[inert]{pointer-events:none}.opening-scroll-cue.is-ready{transform:translate(-50%,0)}.opening-scroll-cue:hover{background:color-mix(in srgb,#ffffff45 calc(var(--opening-blue-stage,1)*100%),#e4effcff)}.opening-scroll-cue:focus-visible{outline:2px solid #fff;outline-offset:4px}.opening-scroll-cue svg{display:block;width:39px;height:18px;transform:translateY(1px)}}
@media(prefers-reduced-motion:reduce){.opening-scroll-cue{display:none!important}}

/* The opening and its navigation share one continuous colour transition. */
body:has(.opening) .site-header{background:color-mix(in srgb,var(--header-blue-surface,#285dca) calc(var(--opening-blue-stage,1)*100%),var(--header-light-surface,#ffffffee));border-bottom-color:color-mix(in srgb,var(--header-blue-line,#285dca) calc(var(--opening-blue-stage,1)*100%),var(--header-light-line,#f3f5f8));color:color-mix(in srgb,#fff calc(var(--opening-blue-stage,1)*100%),#25364b)}
body:has(.opening) .site-header .desktop-nav a{color:inherit}
body:has(.opening) .site-header .desktop-nav a:after{background:currentColor}
body:has(.opening) .site-header .logo-mark img{filter:grayscale(var(--opening-blue-stage,1)) brightness(calc(1 + 8 * var(--opening-blue-stage,1)))}
body:has(.opening) .site-header .header-cta,body:has(.opening) .site-header .menu-toggle{color:inherit;border:0;background:color-mix(in srgb,#ffffff26 calc(var(--opening-blue-stage,1)*100%),#e7edf5b8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
body:has(.opening) .site-header .header-cta:hover{background:color-mix(in srgb,#ffffff40 calc(var(--opening-blue-stage,1)*100%),#dfe8f4)}
body:has(.opening) .site-header .menu-toggle span{background:currentColor}
body:has(.opening) .site-header #mobile-nav:not([hidden]){background:color-mix(in srgb,#285dca calc(var(--opening-blue-stage,1)*100%),#fff)}
@media(prefers-reduced-motion:reduce){html:has(.opening){--opening-blue-stage:0;--opening-page-surface:#fff}}

/* Kamee's mobile structure: the document paints the surface. Only the clear
   drawing layer follows scroll, avoiding a viewport-sized sticky background. */
@media(max-width:720px){
 body:has(.opening){min-height:100svh}
 body:has(.opening) .site-header{border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
 body:has(.opening) .site-header #mobile-nav:not([hidden]){background:color-mix(in srgb,#285dcacc calc(var(--opening-blue-stage,1)*100%),#ffffffbf)}
 .opening{--opening-copy-travel:clamp(44px,7svh,64px);height:var(--opening-mobile-runway-height,525svh);overflow:clip}
 .opening-inner{position:relative;top:0;height:var(--opening-mobile-height,calc(100lvh - var(--mobile-header-space) + env(safe-area-inset-bottom,0px)));background:transparent;transform:translateY(var(--opening-pin-offset,0px));will-change:transform}
 .opening-inner::before{display:none}
 /* The translucent light follows the scene and extends below the viewport,
    including Safari's bottom inset; its paint edge is outside the screen. */
 .opening-inner::after{display:block;inset:-10% -20% calc(-50% - env(safe-area-inset-bottom,0px));background:radial-gradient(ellipse 80% 50% at 70% 60%,#8bb2ef70 0%,#8bb2ef30 42%,#8bb2ef00 80%);background-repeat:no-repeat}
 .opening-flow-backdrop::after{content:none}
}
@supports (animation-timeline:scroll(root block)) and (animation-range:0px 100px){
 @media(max-width:720px) and (prefers-reduced-motion:no-preference){
  .opening-inner{animation:opening-mobile-pin linear both;animation-duration:auto;animation-timeline:scroll(root block);animation-range:var(--opening-pin-start,0px) var(--opening-pin-end,330svh)}
 }
 @keyframes opening-mobile-pin{from{transform:translateY(0)}to{transform:translateY(var(--opening-pin-range,330svh))}}
}
@media(max-width:720px) and (prefers-reduced-motion:reduce){
 .opening{height:auto;min-height:calc(100svh - var(--mobile-header-space))}
 .opening-inner{height:calc(100svh - var(--mobile-header-space));min-height:0;transform:none;will-change:auto;animation:none}
}

/* The opening stylesheet loads last on the homepage, so these portrait
   refinements override the older three-across carousel rule. */
@media(max-width:720px){.team-track .person-card{flex:0 0 42vw;max-width:none}.team-dialog .person-dialog-photo{height:clamp(330px,55vh,490px)}.team-dialog .person-dialog-photo>img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 22%;transform:scale(1.13)}}
@media(max-width:720px){.team-dialog .dialog-close{margin:0 15px -42px auto;border:0;box-shadow:none;background:#ffffffae;color:#294866;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}}
/* Story dialogs use the same floating glass close control as the lawyer cards. */
.opening-feature-dialog{--feature-accent:#2468b4;--feature-paper:#f7fbff;--feature-pad:clamp(28px,5.7vw,66px);width:min(840px,calc(100vw - 32px));max-height:90dvh;border:0;background:var(--feature-paper);border-radius:24px;box-shadow:0 28px 85px #142e5330;scrollbar-width:thin;scrollbar-color:#adbed0 transparent}
.opening-feature-dialog[data-feature="resolve"]{--feature-accent:#237d92;--feature-paper:#f7fbfa}
.opening-feature-dialog[data-feature="partner"]{--feature-accent:#5668a1;--feature-paper:#f9faff}
.opening-feature-dialog .dialog-close{position:sticky;top:16px;right:auto;margin:16px 16px -58px auto;width:42px;height:42px;border:0;box-shadow:none;background:#ffffffae;color:#294866;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:6}
.opening-feature-content{padding:76px var(--feature-pad) 64px;background:radial-gradient(ellipse 70% 380px at 90% 0%,color-mix(in srgb,var(--feature-accent) 9%,transparent),transparent 80%)}
.opening-feature-kicker{display:flex;align-items:center;gap:10px;margin-bottom:24px;color:var(--feature-accent);font-size:13px;letter-spacing:.045em}
.opening-feature-kicker .lucide{width:19px;height:19px;stroke-width:1.55}
.opening-feature-content h2{max-width:670px;margin:0 0 20px;font-size:clamp(38px,5vw,58px);line-height:1.33;letter-spacing:-.055em}
.opening-feature-content h2 span{color:var(--feature-accent)}
.opening-feature-content .opening-feature-lead{max-width:670px;margin:0 0 30px;color:#445871;font-size:clamp(17px,2vw,21px);line-height:1.8}
.opening-feature-figure{margin:34px calc(-1 * var(--feature-pad)) 0;background:#d8e2eb}
.opening-feature-figure img{display:block;width:100%;height:clamp(260px,35vw,400px);object-fit:cover}
.opening-feature-figure figcaption{padding:12px var(--feature-pad) 16px;background:var(--feature-paper);color:#738397;font-size:12px;line-height:1.5}
.opening-feature-facets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 57px}
.opening-feature-facets>div{display:flex;align-items:center;gap:11px;min-height:66px;padding:16px;border:1px solid color-mix(in srgb,var(--feature-accent) 17%,#e0e7ef);border-radius:15px;background:#ffffffad;color:#445974;font-size:14px}
.opening-feature-facets .lucide{flex:none;width:20px;height:20px;color:var(--feature-accent);stroke-width:1.55}
.opening-feature-content h3{margin:52px 0 18px;padding-top:30px;border-top:1px solid color-mix(in srgb,var(--feature-accent) 16%,#e3e9f0);color:#25384e;font-size:clamp(22px,2.5vw,27px);font-weight:400;line-height:1.5}
.opening-feature-content p{max-width:680px;margin:0 0 21px;color:#526276;font-size:16px;line-height:1.95}
.opening-feature-content ul{margin:21px 0 28px;padding:23px 26px 23px 43px;border-radius:16px;background:color-mix(in srgb,var(--feature-accent) 7%,#fff);color:#50647a}
.opening-feature-content li+li{margin-top:12px}
.opening-feature-content strong{color:var(--feature-accent)}
.opening-feature-quote{margin:45px 0 8px;padding:29px 32px;border-radius:19px;background:color-mix(in srgb,var(--feature-accent) 9%,#fff)}
.opening-feature-quote .lucide{width:24px;height:24px;margin-bottom:17px;color:var(--feature-accent);stroke-width:1.45}
.opening-feature-content .opening-feature-quote p{max-width:590px;margin:0;color:#304a68;font-size:clamp(20px,2.7vw,27px);line-height:1.65;letter-spacing:-.035em}
.opening-feature-link{margin-top:38px;border-color:color-mix(in srgb,var(--feature-accent) 38%,#fff);color:var(--feature-accent);background:#fff;box-shadow:none}
@media(max-width:720px){
 .opening-action{font-size:14px}
 .opening-feature-dialog{--feature-pad:25px;max-height:90dvh;border-radius:20px}
 .opening-feature-dialog .dialog-close{top:14px;margin:14px 14px -56px auto}
 .opening-feature-content{padding:73px var(--feature-pad) 42px}
 .opening-feature-content h2{font-size:clamp(32px,8.5vw,42px)}
 .opening-feature-content .opening-feature-lead{font-size:17px}
 .opening-feature-figure{margin-top:26px}
 .opening-feature-figure img{height:230px}
 .opening-feature-facets{gap:6px;margin-bottom:37px}
 .opening-feature-facets>div{display:grid;justify-items:start;gap:8px;min-height:72px;padding:11px 9px;font-size:12px}
 .opening-feature-content h3{margin-top:38px;padding-top:24px;font-size:22px}
 .opening-feature-content p{font-size:15px;line-height:1.85}
 .opening-feature-quote{margin:34px 0 3px;padding:23px}
 .opening-feature-content .opening-feature-quote p{font-size:20px}
}
