/* Discrete ornament travel and quiet violet light paths. */
.hero{background:radial-gradient(ellipse at 16% 24%,#8341dd55,transparent 48%),radial-gradient(ellipse at 86% 66%,#33157677,transparent 54%),var(--purple)}
.hero-orbit{transition:transform 1.1s cubic-bezier(.22,1,.36,1);will-change:transform;rotate:none}
.orbit-one{transform:translate3d(0,0,0) rotate(-19deg) scale(1)}
.orbit-two{transform:translate3d(0,0,0) rotate(18deg) scale(1)}
.hero-orbit svg{animation:none;transform:none;stroke-width:6}
.orbit-one svg{opacity:.63}.orbit-two svg{opacity:.43}
.hero[data-orbits=tucked] .hero-orbit{transform:translate3d(var(--dock-x,0px),var(--dock-y,500px),0) rotate(0deg) scale(.46)}
.hero[data-orbits-ready=false] .hero-orbit{transition:none}
.hero-scene>img{transform:none}
.ambient-lights{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.ambient-lights svg{display:block;width:100%;height:100%;fill:none}
.light-glow{stroke:#ac6bff;stroke-width:8;opacity:.1}
.light-base{stroke-width:1;opacity:.38}
.light-travel{stroke:#cc9bff;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;opacity:.7;animation:light-travel 17s linear infinite;animation-delay:var(--light-delay);animation-play-state:paused}
.effects-visible .light-travel{animation-play-state:running}
@keyframes light-travel{to{stroke-dashoffset:-100}}
.motion-control{background:#3d167e66;color:#f3eaff;border:1px solid #e4cdff55;border-radius:20px;padding:8px 13px;min-height:36px;font-size:10px;letter-spacing:0;white-space:nowrap}
.motion-control:hover{background:#35156b}.motion-control:disabled{opacity:.8;cursor:default}
.hero h1>span{animation:hero-enter 1s var(--ease) both}.hero h1>span:nth-child(2){animation-delay:.12s}
.service-body{animation:none}.service{overflow-anchor:none}
.service[data-expanded=false] .service-plus{transform:none;background:transparent;color:var(--ink);border-color:#b4a6c7}
.service[data-expanded=true] .service-plus{transform:rotate(45deg);background:var(--purple);color:white;border-color:var(--purple)}
.service[data-expanded=false] .service-index:after{transform:scaleX(1)}
.service[data-expanded=true] .service-index:after{transform:scaleX(1.7)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* A non-modal, keyboard-accessible card; no page-wide overlay or forced focus. */
.cookie-panel{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:min(372px,calc(100% - 32px));z-index:45;animation:cookie-arrive .65s var(--ease) both}
.cookie-panel[hidden],#cookie-settings[hidden]{display:none}
.cookie-card{position:relative;background:#fbf9fd;border:1px solid #e0d5eb;box-shadow:0 14px 60px #170b3933;border-radius:18px;padding:20px;max-height:calc(100svh - 110px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.cookie-eyebrow{font-size:8px;font-weight:700;letter-spacing:.1em;color:#73667d;margin-bottom:9px}
.cookie-panel h2{font-size:27px;line-height:1.08;letter-spacing:-.035em;margin-right:38px}.cookie-panel h2 span{color:var(--purple)}
.cookie-description{font-size:12px;line-height:1.5;color:#65566e;margin:13px 0 15px}
.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cookie-actions button,.cookie-save{font-size:12px;font-weight:700;border-radius:7px;min-height:44px;padding:10px 8px;transition:background .2s,transform .2s}
.cookie-accept{background:var(--purple);color:white}.cookie-accept:hover{background:#491c9b}
.cookie-necessary{background:#e9e6ed;color:#51475d}.cookie-necessary:hover{background:#ddd7e5}
.cookie-settings-toggle{display:flex;align-items:center;justify-content:space-between;background:transparent;color:#65566e;font-size:11px;width:100%;min-height:44px;padding:8px 0 0;text-decoration:underline;text-underline-offset:3px}
.cookie-settings-toggle span{font-size:16px}.cookie-settings-toggle[aria-expanded=true] span{rotate:180deg}
#cookie-settings{border-top:1px solid var(--line);margin-top:8px;padding-top:13px}
.cookie-explainer{font-size:11px;color:#65566e;line-height:1.5;margin-bottom:10px}
.cookie-option{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:54px;border-bottom:1px solid #e5ddec;font-size:12px}
.cookie-option small{display:block;font-size:10px;color:#73667d;margin-top:2px}.cookie-option input{width:20px;height:20px;accent-color:var(--purple);flex-shrink:0}
.cookie-save{background:#e9e6ed;color:#51475d;width:100%;margin-top:14px}
.cookie-reopen{display:block;margin-top:22px;padding:8px 0;min-height:44px;background:transparent;color:#d0bedf;text-decoration:underline;text-underline-offset:4px;font-size:12px}
.cookie-mascot{position:absolute;right:6px;top:-89px;width:96px;height:125px;overflow:hidden;pointer-events:none;animation:mascot-hello .9s var(--ease) both;transform-origin:65% 100%}
.cookie-mascot img{width:240px;height:300px;max-width:none;transform:translate(-150px,-28px)}
.dialog-open .cookie-panel,.menu-open .cookie-panel{visibility:hidden;pointer-events:none}
@keyframes hero-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes cookie-arrive{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes mascot-hello{0%{transform:translateY(48px) rotate(12deg);opacity:0}65%{transform:translateY(-5px) rotate(-5deg);opacity:1}100%{transform:none;opacity:1}}
/* Consistent reading widths, even on ultrawide and TV displays. */
:root{--page-gutter:max(5.5vw,calc((100vw - 1440px)/2))}
.header,.topline,.footer{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.section-pad{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.hero-content{padding-inline:20px}.hero-foot{margin-inline:var(--page-gutter);gap:20px}
.intro-grid>*,.journey-grid>*,.person-grid>*,.contact-bottom>*,.faq>*{min-width:0}
.service summary{min-height:88px}.service-title{min-width:0}
.service-plus{flex-shrink:0}.menu-toggle,.dialog-close{min-width:44px;min-height:44px}
.contact-options button{min-height:48px}.inquiry input:not([type=checkbox]),.inquiry select{font-size:16px}
.inquiry{max-height:min(calc(100svh - 32px),calc(var(--visible-height,100dvh) - 32px))}
@media(min-width:1800px){.hero h1{font-size:clamp(150px,8vw,184px)}.hero-intro{font-size:21px}.desktop-nav{font-size:15px}.topline{font-size:12px}.hero-scene{max-width:1320px}.hero-orbit{max-width:330px}.service-body{gap:8%}.section-aside{font-size:16px}}
@media(min-width:2200px){.intro-copy>p:not(.lead),.service-copy>p,.journey-step p,.person-copy>p:not(.eyebrow):not(.person-role),.contact-bottom>p{font-size:20px}.faq summary{font-size:19px}.faq .disclosure-content>p{font-size:17px}.footer-operator{font-size:14px}}
@media(max-width:1100px){.desktop-nav{display:none}.header-actions{margin-left:auto}.service-caption{max-width:180px}}
@media(min-width:741px) and (max-width:1100px){.header{height:80px}.menu-panel{top:80px}.service summary{gap:18px}.service-title{font-size:clamp(30px,4.3vw,44px)}.service-caption{font-size:11px}.service-image{height:320px}.hero h1{font-size:clamp(78px,11vw,112px)}}
@media(max-width:740px){
 :root{--page-gutter:6vw}
 html{scroll-padding-top:84px}.header{padding-inline:4vw;gap:10px}.header-actions{gap:7px}.header-actions .button{min-height:44px;gap:10px;padding-inline:10px}.menu-toggle{width:44px;padding:10px}
 .topline{padding-inline:4vw}.topline>span{white-space:nowrap}.hero h1{font-size:clamp(43px,12vw,86px)}.hero-content{padding-inline:12px}
 .hero-orbit{min-width:96px;width:23vw;opacity:.72}.orbit-one{left:-45px;top:55px}.orbit-two{right:-46px;top:175px}.hero-orbit svg{stroke-width:5}
 .ambient-lights{opacity:.8}.light-glow{stroke-width:5}.light-travel{stroke-width:1.2}
 .hero-foot{flex-wrap:wrap;justify-content:space-between;gap:12px}.motion-control{font-size:9px;min-height:44px;padding:8px 12px}.hero-foot>span:first-child{display:none}.hero-foot a{font-size:8px;min-height:44px}
 h2{font-size:clamp(36px,9.2vw,54px)}.faq h2{font-size:clamp(35px,9.2vw,50px)}.contact h2{font-size:clamp(53px,14vw,84px)}
 .service summary{display:grid;grid-template-columns:20px minmax(0,1fr) 40px;gap:8px 12px;padding-block:22px}
 .service-index{grid-column:1;grid-row:1;align-self:start}.service-title{grid-column:2;grid-row:1;font-size:clamp(27px,7.6vw,39px)}
 .service-plus{grid-column:3;grid-row:1;align-self:center;width:36px;height:36px;margin:0;justify-self:end}.service-caption{grid-column:2/4;grid-row:2;order:initial;padding:0;margin:0;width:auto;max-width:none;line-height:1.5}
 .service-body{gap:23px}.service-image{height:clamp(260px,76vw,390px)}.service-copy{max-width:none}.service-image img{padding:12px 10px 34px}
 .journey-frame{max-height:480px}.journey-controls>span{font-size:9px}.journey-step h3{font-size:clamp(30px,8vw,42px)}.journey-steps[data-controlled]>.journey-step.active{min-height:290px}
 .section-pad{padding-top:64px;padding-bottom:64px}.button{max-width:100%;gap:20px}
 .person-copy h3{font-size:clamp(34px,9vw,44px)}.person-copy>.button{gap:20px}
 .footer-bottom{row-gap:18px}.inquiry{padding:22px;max-height:min(calc(100svh - 24px),calc(var(--visible-height,100dvh) - 24px))}.inquiry h2{font-size:38px}.dialog-close{flex-shrink:0}
 .cookie-panel{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:min(360px,calc(100% - 24px))}
 .cookie-card{padding:17px;max-height:min(58svh,490px)}.cookie-panel h2{font-size:25px}.cookie-mascot{top:-83px;right:3px;scale:.93;transform-origin:100% 100%}
}
@media(max-width:359px){.header-actions .button{font-size:10px;padding-inline:8px;gap:6px}.header .brand{min-width:88px}.header .brand img{width:88px}.topline{font-size:8px}.hero-intro{font-size:13px;padding-inline:2px}.hero-intro br{display:none}.scene-label>span:last-child{display:none}.scene-note{left:12px;right:12px}.contact-options{grid-template-columns:1fr}.contact-options button:last-child{grid-column:auto}.cookie-card{padding:15px}.cookie-panel h2{font-size:24px}.cookie-description{font-size:11px;margin-block:10px}.cookie-eyebrow{font-size:7px}.cookie-actions button{font-size:11px}.cookie-mascot{top:-80px;scale:.85}}
@media(max-width:319px){.header-actions .button{display:none}.hero h1{font-size:39px}.section-pad{padding-inline:18px}.scene-label{left:24px;right:24px}.scene-note small{font-size:9px}.hero-foot a{font-size:7px}.motion-control{font-size:8px}.cookie-card{padding:14px}.cookie-actions button{font-size:10px}}
@media(max-height:600px) and (min-width:741px){.journey-visual{top:94px}.journey-frame{max-height:calc(100svh - 170px);aspect-ratio:1.1}.journey-controls{margin-top:10px}.menu-panel{padding-top:20px}.menu-panel nav a{padding-block:13px}.cookie-card{max-height:calc(100svh - 110px)}}
@media(max-height:480px){.header{height:64px}.menu-panel{top:64px}.menu-panel nav a{font-size:25px;padding-block:10px}.cookie-panel{width:min(360px,calc(100% - 24px))}.cookie-card{max-height:calc(100svh - 28px)}.cookie-mascot{display:none}.inquiry{max-height:calc(100svh - 16px)}}
@media(prefers-reduced-motion:reduce){.light-travel,.hero h1>span,.cookie-panel,.cookie-mascot{animation:none!important}.service-copy,.service-image,.hero-orbit{transition:none!important}.light-travel{display:none}}
html[data-motion=paused] .light-travel,.page-hidden .light-travel{animation-play-state:paused!important}
html[data-motion=paused]{scroll-behavior:auto}html[data-motion=paused] .hero-scene>img{transform:none}
html[data-motion=paused] .hero-orbit{transition:none;will-change:auto}
.cookie-card{max-height:min(calc(100svh - 110px),calc(var(--visible-height,100dvh) - 28px))}
@media(max-width:740px){.cookie-card{max-height:min(58svh,490px,calc(var(--visible-height,100dvh) - 28px))}}
@media(max-height:480px){.inquiry{max-height:min(calc(100svh - 16px),calc(var(--visible-height,100dvh) - 16px))}.cookie-card{max-height:calc(var(--visible-height,100dvh) - 28px)}}
/* Desktop steps are explicit hover/focus targets, not a scroll-driven story. */
.journey-hint{display:block;margin-top:16px;font-size:11px;color:var(--purple)}
.journey-trigger{display:block;padding:0;background:transparent;text-align:left;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;min-height:44px;transition:color .25s}
.journey-trigger:hover,.journey-trigger[aria-expanded=true]{color:var(--purple)}
.journey-step{position:relative;min-height:0;padding:24px 22px;border-bottom:1px solid var(--line);border-radius:8px;transition:background .45s}
.journey-step.active{background:#5d26bf06}.journey-step>span{margin-bottom:12px}
.journey-step h3{font-size:clamp(29px,3vw,44px);margin-bottom:14px;line-height:1.1}
.journey-step p{max-width:390px}.journey-step .text-link{margin-top:20px}
.journey-step:before{content:'';position:absolute;left:0;top:26px;bottom:26px;width:2px;background:var(--purple);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.journey-step.active:before{transform:scaleY(1)}
.journey-steps{padding-top:0}.journey-visual{top:120px}
@media(max-width:1000px) and (min-width:741px){.journey-step{padding:20px 16px}.journey-step h3{font-size:30px}.journey-step p{font-size:14px}.journey-grid{gap:7%}.journey-line{right:-20px}}
@media(max-width:740px){.journey-hint{display:none}.journey-step{padding:26px 0;border-radius:0}.journey-step.active{background:transparent}.journey-step:before{display:none}.journey-step h3{font-size:clamp(30px,8vw,42px)}.journey-visual{top:auto}.journey-steps[data-controlled]>.journey-step.active{min-height:280px}}
@media(max-height:600px) and (min-width:741px){.journey-visual{top:94px}}
html[data-motion=paused] .journey-frame img.journey-layer,html[data-motion=paused] .journey-step,html[data-motion=paused] .journey-step:before,html[data-motion=paused] .journey-line:after{transition:none!important}
html[data-motion=paused] .journey-frame img.journey-layer{transform:none!important}.people{isolation:isolate}.people>*:not(.ambient-lights){position:relative;z-index:1}.people>.ambient-lights{position:absolute;z-index:0}
.people .light-base{stroke:#8d4cda;opacity:.2}.people .light-glow{stroke:#9a59e6;opacity:.07}.people .light-travel{stroke:#8c48df;opacity:.65}
/* Only the selected heading reveals its full, accessible explanation. */
.journey-steps[data-controlled] .journey-details{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .55s var(--ease),opacity .35s ease}
.journey-details-inner{min-height:0;overflow:hidden}
.journey-steps[data-controlled] .journey-step[data-expanded=true] .journey-details{grid-template-rows:1fr;opacity:1}
.journey-details-inner>p:first-child{margin-top:14px}
.journey-details-inner>.journey-detail-note{margin-top:12px;font-size:13px;color:#756580;line-height:1.6}
.journey-step h3{margin-bottom:0}
.journey-details-inner>.text-link{margin-bottom:4px}
.journey-trigger{width:100%;padding-right:30px;position:relative}
.journey-toggle-icon{position:absolute;right:7px;top:8px;width:24px;height:24px;line-height:24px;text-align:center;font-size:23px;font-weight:400;color:#8b749e;pointer-events:none;transition:transform .4s var(--ease)}
.journey-trigger[aria-expanded=true] .journey-toggle-icon{transform:rotate(45deg);color:var(--purple)}
@media(max-width:1000px) and (min-width:741px){.journey-trigger{padding-right:24px}.journey-toggle-icon{font-size:20px}.journey-details-inner>.journey-detail-note{font-size:12px}}
@media(max-width:740px){.journey-trigger{padding-right:0}.journey-toggle-icon{display:none}.journey-details-inner>.journey-detail-note{font-size:13px}.journey-steps[data-controlled]>.journey-step.active{min-height:0}}
@media(prefers-reduced-motion:reduce){.journey-details,.journey-toggle-icon{transition:none!important}}
html[data-motion=paused] .journey-details,html[data-motion=paused] .journey-toggle-icon{transition:none!important}
