.phase3-connection{padding:0;border:0;border-radius:0;background:none;margin-top:72px}.phase3-connection .connection-heading h3{max-width:760px;font-size:clamp(1.65rem,2.8vw,2.25rem)}.case-switch{max-width:960px}.case-switch button{font-size:.93rem}
.case-panel{margin-bottom:40px}.case-feature{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center;min-width:0}.case-photo{margin:0;min-width:0;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,#dfede9,#eef4fa);aspect-ratio:4/3;position:relative}.case-photo img{width:100%;height:100%;object-fit:cover}.case-photo.is-review img{object-fit:contain}.case-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:9px 14px;background:#102a43dc;color:white;font-size:.85rem}.case-summary{min-width:0}.case-summary h4{font-size:1.75rem;line-height:1.5;margin-block:0 16px}.case-summary p{margin-block:12px}.case-summary h5{font-size:1rem;margin-top:20px}.case-summary .text-link{display:inline-block;margin-top:8px}
.case-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:28px;border-top:1px solid #b6d2d2;padding-top:24px}.case-node{position:relative;min-width:0}.case-node:not(:last-child)::after{content:'';height:2px;position:absolute;left:calc(100% + 2px);top:22px;width:24px;background:linear-gradient(90deg,#137a79,#97c5c4)}.case-node summary{display:flex;gap:12px;align-items:flex-start;list-style:none;cursor:pointer;min-height:64px;padding:8px 0}.case-node summary::-webkit-details-marker{display:none}.case-node .connection-index{flex:0 0 42px;position:static;background:#e3f0ed;color:#126968;border-color:#a7d1ca}.case-node strong{display:block;font-size:1rem;line-height:1.6;margin-top:6px}.case-node summary>.case-expand{margin-left:auto;font-size:1.5rem;transition:transform var(--motion-feedback)}.case-node[open] .case-expand{transform:rotate(45deg)}.case-node[open] .connection-index{background:#176e6b;color:white}.case-node p{margin-top:8px;font-size:.95rem;line-height:1.8}.case-node .eyebrow{font-size:.75rem}.case-node summary:focus-visible{outline:3px solid #007e91;outline-offset:4px}
.media-view-switch{position:relative;z-index:1;max-width:760px}.phase3-switch a{white-space:normal}


/* Experience3.3 shared shell and editorial scene contract. Native document flow. */
:root{--motion-feedback:300ms;--motion-switch:550ms;--motion-scene:960ms;--glass-air:rgb(255 255 255/.68);--glass-dark:#092A3B;--h2:clamp(1.625rem,1.25rem + 1.2vw,2.5rem);--text-lg:1.125rem}
.container{width:min(calc(100% - 96px),var(--content))}.section{padding-block:96px}body{line-height:1.8}h1,h2,h3{word-break:normal;overflow-wrap:break-word}a,button{touch-action:manipulation}:focus-visible{outline-color:var(--focus)}
html[lang=ja]{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-break:strict;word-break:normal}html[lang=ja] body{font-family:inherit;line-height:1.85}html[lang=ko] body{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.75;word-break:keep-all;overflow-wrap:break-word}html[lang=ne] body{font-family:"Noto Sans Devanagari","Nirmala UI",sans-serif;line-height:1.9}html[lang=ne] *{letter-spacing:normal!important;text-transform:none}html:is([lang=en],[lang=es]) body{line-height:1.65}
.site-header.glass{background:#F7FAF8;border:1px solid #ffffffa6;box-shadow:inset 0 1px #fff9,0 8px 28px #092a3b1a;transform:none;transition:background-color 450ms var(--ease),box-shadow 450ms var(--ease)}
.site-header .header-inner{min-height:80px;padding-block:4px;gap:16px}.site-header .brand{background:white;border-radius:12px;padding-inline:5px;flex:none}.site-header .brand img,.site-header.is-compact .brand img{width:140px;height:56px;transform:none}.site-header.is-compact{transform:none}.site-header .nav-sub,.site-header .language-links{background:#F7FAF8;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 20px 56px #092a3b2e;border:1px solid var(--line);border-radius:12px}
.desktop-nav{gap:12px;font-size:1rem;flex-wrap:nowrap}.nav-item{display:flex;align-items:center;min-width:0}.nav-item>a{color:inherit;text-decoration:none;min-height:44px;display:flex;align-items:center;font-weight:600}.nav-item .nav-group>summary{width:44px;min-height:44px;justify-content:center}.nav-search{display:flex;align-items:center;gap:6px;min-width:44px;min-height:44px;color:inherit;text-decoration:none}.nav-search svg{flex:none}.desktop-nav .nav-search span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.nav-sub{left:auto;right:0}.nav-sub a{white-space:normal}.mobile-tools{display:none;align-items:center;gap:8px}.mobile-menu.glass{background:#F7FAF8;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 20px 56px #092a3b2e}.mobile-menu .nav-item{display:grid;grid-template-columns:minmax(0,1fr) 44px;position:relative;border-bottom:1px solid var(--line)}.mobile-menu .nav-item>a{padding-block:12px;min-height:52px}.mobile-menu .nav-group{position:static}.mobile-menu .nav-group summary{padding:0;border:0;min-height:52px}.mobile-menu .nav-group[open]{display:contents}.mobile-menu .nav-group[open] .nav-sub{grid-column:1/-1;position:static;padding:0 0 8px 16px;box-shadow:none;border:0}.mobile-menu .language-links{box-shadow:none;border:0;padding:0}.mobile-menu .nav-search{padding-block:12px;border-bottom:1px solid var(--line)}.site-footer .nav-item{display:block}.site-footer .nav-group{display:none}.site-footer .nav-item>a{white-space:normal}.footer-grid>*{min-width:0}.site-footer p,.site-footer a{overflow-wrap:anywhere}
@supports(backdrop-filter:blur(1px)){.site-header.glass{background:var(--glass-air);backdrop-filter:blur(16px) saturate(1.12);-webkit-backdrop-filter:blur(16px) saturate(1.12)}.site-header.is-compact{background:rgb(255 255 255/.84)}}
.service-card{min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none;transition:none}.service-card:hover{transform:none}.service-card-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none;min-width:0}.service-card .card-image{width:100%;min-width:0;border-radius:20px;aspect-ratio:4/3}.service-card .card-image img{width:100%;height:100%;object-fit:cover;transition:scale 450ms var(--ease)}.service-card .card-body{min-width:0;display:flex;flex-direction:column;flex:1;padding:20px 0}.service-card .card-meta{flex-wrap:wrap;align-items:flex-start;gap:8px 12px}.service-card .card-meta>span:last-child{font-size:.875rem}.service-card h3{font-size:1.375rem;line-height:1.45;margin:12px 0}.service-card .card-body>p{font-size:1.0625rem}.service-card .card-bottom{margin-top:auto;padding-top:16px;border:0}.badge{font-size:.875rem}.service-card-link:focus-visible{outline:3px solid var(--focus);outline-offset:6px;border-radius:20px}.service-card-link:active{background:var(--mist)}.representative-services{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px}.representative-services>.service-card:first-child{grid-column:1;grid-row:1/3}.representative-services>.service-card:first-child .card-image{height:auto;min-height:0;aspect-ratio:4/3}.representative-services>.service-card:not(:first-child){display:block;border-bottom:1px solid var(--line)}.representative-services>.service-card:not(:first-child) .service-card-link{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px;align-items:start}.representative-services>.service-card:not(:first-child) .card-image{height:auto;aspect-ratio:4/3}.representative-services>.service-card:not(:first-child) .card-body{padding:0 0 20px}.representative-services .card-bottom{display:block}.representative-services .card-meta>span:last-child{font-size:.875rem}.detail-photo{max-width:900px}.detail-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:20px}
.phase3-name{overflow:visible;background:linear-gradient(145deg,#EAF0EE,#F5F7F5);padding-block:96px}.spirit-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}.spirit-intro{position:sticky;top:120px}.spirit-intro p{margin-top:20px}.spirit-intro .eyebrow{margin-top:0}.mountain-ridge{display:block;width:100%;height:auto;margin-top:24px;fill:none;stroke:var(--teal);stroke-width:2;overflow:visible}.mountain-ridge .ridge-base{stroke:#aac5be}.mountain-ridge [data-ridge]{stroke:var(--teal);opacity:.16;stroke-width:3}.mountain-ridge [data-ridge].is-active{opacity:1}.mountain-ridge circle{fill:var(--paper);stroke:var(--teal);transition:fill 280ms}.mountain-ridge circle.is-active{fill:var(--accent)}.spirit-intro .ridge-note{font-size:.875rem;margin-top:4px;color:var(--muted)}.mountain-anchors{display:flex;flex-wrap:wrap;gap:4px;margin-top:16px}.mountain-anchors a{min-height:44px;padding:8px 12px;border-bottom:2px solid transparent;text-decoration:none;font-weight:600}.mountain-anchors a[aria-current=true]{border-color:var(--teal);color:var(--teal)}.spirit-panels{min-width:0}.spirit-panel{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;padding:40px 0;border-bottom:1px solid var(--line);background:none;border-radius:0;align-items:center;min-width:0}.spirit-panel:first-child{padding-top:0}.spirit-caption{padding:0}.spirit-caption .eyebrow{margin-top:0}.spirit-caption h3{font-size:1.5rem}.spirit-caption p{margin-top:12px}.spirit-caption .text-link{margin-top:16px}.spirit-image{display:block;aspect-ratio:4/3;border-radius:20px;overflow:hidden}.spirit-image img{width:100%;height:100%;object-fit:cover}.spirit-panel[data-spirit=together] .spirit-image{aspect-ratio:3/4}.spirit-panel[data-spirit=together] img{object-position:center 24%}
.phase3-switch{display:flex;flex-wrap:wrap;gap:6px;padding:6px;margin-block:20px;border:1px solid var(--line);border-radius:12px;background:#EAF0EE}.phase3-switch button,.phase3-switch a{flex:1;min-height:44px;padding:10px 14px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-weight:600;text-align:center;text-decoration:none}.phase3-switch [aria-pressed=true],.phase3-switch [aria-current=true]{background:var(--ink);color:white}.ai-intent-panel .phase3-switch{background:#183D4D;border-color:#ffffff33}.ai-intent-panel .phase3-switch button{color:white}.ai-intent-panel .phase3-switch button[aria-pressed=true]{background:#EAF0EE;color:var(--ink)}.original-name{font-size:.875rem!important;color:var(--muted)}.dark-scene{background:var(--dark)}.next-event-card.glass{background:transparent;box-shadow:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
@media(hover:hover) and (pointer:fine){.service-card-link:hover .card-image img{scale:1.015}}
@media(max-width:1399px){.desktop-nav{display:none}.mobile-tools{display:flex}.menu-trigger{display:flex}.site-header .header-inner{min-height:64px}.site-header .brand img{width:130px;height:52px}}
@media(min-width:1400px){.desktop-nav{display:flex}.mobile-tools{display:none}.menu-trigger{display:none}}
@media(min-width:768px) and (max-width:1199px){.container{width:calc(100% - 64px)}.section,.phase3-name{padding-block:72px}.spirit-layout{gap:24px}.spirit-panel{grid-template-columns:1fr}.spirit-image{max-width:320px}.representative-services>.service-card:not(:first-child) .service-card-link{display:block}.representative-services>.service-card:not(:first-child) .card-image{max-width:180px;margin-bottom:16px}}
@media(max-width:767px){.container{width:calc(100% - 40px)}.section,.phase3-name{padding-block:56px}.site-header{top:8px;width:calc(100% - 24px)}.site-header .header-inner{gap:8px;padding-inline:12px}.site-header .brand img{height:48px;width:120px}.mobile-tools .nav-search span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.mobile-tools .menu-trigger{padding-inline:10px}.site-header.glass{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.spirit-layout{grid-template-columns:1fr;gap:24px}.spirit-intro{position:static}.mountain-ridge{max-width:340px;max-height:160px;margin-inline:auto}.spirit-panel{grid-template-columns:minmax(0,3fr) minmax(0,2fr);padding-block:28px;gap:16px}.spirit-caption h3{font-size:1.375rem}.spirit-caption p{font-size:1rem}.representative-services{grid-template-columns:1fr}.representative-services>.service-card:first-child{grid-row:auto;grid-column:auto}.representative-services>.service-card:not(:first-child) .service-card-link{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.service-card .card-body{padding-block:16px}.service-card h3{font-size:1.25rem}.representative-services>.service-card:not(:first-child) .card-body>p{font-size:1rem}.case-feature{grid-template-columns:1fr;gap:24px}.case-nodes{grid-template-columns:1fr;gap:16px}.case-node:not(:last-child)::after{display:none}.case-switch button{flex:1 1 100%;text-align:left}.footer-grid{grid-template-columns:minmax(0,1fr)}.footer-grid>div{grid-column:auto}}
@media(max-width:359px){.container{width:calc(100% - 32px)}.mobile-tools{gap:0}.site-header .header-inner{padding-inline:8px}.site-header .brand img{width:105px}.spirit-panel{grid-template-columns:1fr}.spirit-image{max-width:220px}.representative-services>.service-card:not(:first-child) .service-card-link{grid-template-columns:minmax(0,1fr)}.representative-services>.service-card:not(:first-child) .card-image{max-width:220px}}
/* Eligible pages opt in in their initial head; do not depend on late external CSS. */
html{view-transition-name:none}::view-transition-group(service-photo){animation-duration:360ms;animation-timing-function:var(--ease)}::view-transition-old(service-photo),::view-transition-new(service-photo){height:100%;object-fit:cover;mix-blend-mode:normal}::view-transition-old(service-photo){animation:none}::view-transition-new(service-photo){animation:photo-arrive 160ms var(--ease)}
@keyframes photo-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:767px){::view-transition-group(service-photo){animation-duration:240ms}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}@view-transition{navigation:none}*,*::before,*::after{animation-duration:0s!important;transition-duration:0s!important}.service-card-link:hover .card-image img{scale:1}[data-depth]{transform:none!important}}
@media(prefers-contrast:more),(prefers-reduced-transparency:reduce){.site-header.glass{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* The original profile component remains white; homepage uses one portrait + real landscape recap. */
.person-card{background:white;color:var(--ink);border-radius:20px;overflow:hidden}.person-card .card-body{padding:24px}.people-intro{background:#EAF0EE;color:var(--ink)}.people-intro .text-link{color:var(--blue)}.people-field{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start;margin-top:32px}.people-field .person-card{background:none;overflow:visible}.people-field .portrait{max-height:440px;max-width:280px;border-radius:20px}.people-field .person-card .card-body{padding:20px 0}.field-recap{min-width:0}.field-recap>p{margin-block:16px}.field-recap .video{margin-top:24px}.field-recap .video-cover{border-radius:20px;overflow:hidden}.field-recap h3{font-size:1.5rem}
@media(max-width:767px){.people-field{grid-template-columns:1fr;gap:32px}.people-field .person-card{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:20px}.people-field .portrait{max-height:none}.people-field .person-card .card-body{padding:0}.people-field .person-card .card-body>p:last-of-type{display:none}}
@media(max-width:359px){.people-field .person-card{grid-template-columns:1fr}.people-field .portrait{max-width:210px}}

/* Real text enlargement can grow navigation naturally, without shrinking type or masking overflow. */
.mobile-tools{min-width:0}.menu-trigger .menu-label{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal}.menu-trigger .menu-icon{flex:none}
@media(max-width:767px){.site-header .header-inner{flex-wrap:wrap}.mobile-tools{margin-left:auto;max-width:100%;flex-shrink:1}.mobile-tools .menu-trigger{min-width:0;flex-shrink:1;max-width:100%}.mobile-tools .nav-search{flex:none}}

/* Min-content does not get to widen the viewport at genuine 200% text size. */
.dark-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.dark-layout>*,.dark-layout .actions,.dark-ai,.ai-intent-panel,.phase3-panels,.phase3-panels>section{min-width:0}
.dark-layout .actions>*,.ai-intent-panel .phase3-switch button,.ai-intent-panel .ai-question{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal}
@media(max-width:767px){.dark-layout{grid-template-columns:minmax(0,1fr)}}

/* T04 evidence fixes: readable eyebrow on the light people scene; stable photo-frame endpoint. */
.people-intro .eyebrow{color:var(--teal)}
::view-transition-group(service-photo),::view-transition-image-pair(service-photo){border-radius:20px;overflow:clip}
.ai-intent-panel textarea.ai-question{display:block;width:100%;max-width:100%;min-height:7rem;box-sizing:border-box;background:#fff;color:#102B38;padding:1rem;border:1px solid #C8D4D6;border-radius:12px;font:inherit;line-height:inherit;resize:vertical}
.ai-intent-panel{overflow-wrap:anywhere}.ai-intent-panel textarea.ai-question:focus-visible{outline:3px solid #006A9C;outline-offset:3px}

.social-update-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.social-update-list article{padding-top:24px;border-top:1px solid var(--line);min-width:0}.social-update-list h3{margin-block:12px}.social-update-list .text-link{display:inline-flex;min-height:44px;align-items:center;margin-top:16px}@media(max-width:767px){.social-update-list{grid-template-columns:1fr}}

/* User-selected relaxed operation timing. State/focus/navigation remain native. */
.nav-group[open]>.nav-sub,.desktop-nav .nav-group[open]>.language-links{animation:operation-panel-in var(--panel) var(--ease)}
@keyframes operation-panel-in{from{opacity:.1;transform:translateY(-18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Native discrete transitions retain the top-layer visual through closing,
   while close(), Escape, focus restoration and navigation take effect immediately.
   Older engines retain the existing 600ms opening keyframe and instant close. */
@supports (transition-behavior:allow-discrete){
 .mobile-menu,.gallery-dialog{opacity:0;transform:translateY(28px) scale(.975);transform-origin:top center;transition:opacity var(--panel) var(--ease),transform var(--panel) var(--ease),display var(--panel) allow-discrete,overlay var(--panel) allow-discrete}
 .mobile-menu[open],.gallery-dialog[open]{opacity:1;transform:translateY(0);animation:none}
 .mobile-menu:not([open]),.gallery-dialog:not([open]){pointer-events:none}
 .mobile-menu::backdrop,.gallery-dialog::backdrop{opacity:0;transition:opacity var(--panel) var(--ease),display var(--panel) allow-discrete,overlay var(--panel) allow-discrete}
 .mobile-menu[open]::backdrop,.gallery-dialog[open]::backdrop{opacity:1}
 @starting-style{
  .mobile-menu[open],.gallery-dialog[open]{opacity:0;transform:translateY(28px) scale(.975)}
  .mobile-menu[open]::backdrop,.gallery-dialog[open]::backdrop{opacity:0}
 }
}

/* Rich, unhurried movement: one composed scene, no scroll lock or perpetual loop. */
.mountain-ridge [data-node]{transform-box:fill-box;transform-origin:center;transition:fill 700ms var(--ease)}
.mountain-ridge [data-ridge]{transition:opacity 700ms var(--ease)}
.mountain-anchors a{position:relative;border-radius:12px;transition:background 600ms var(--ease),color 600ms var(--ease),border-color 600ms var(--ease)}
.mountain-anchors a[aria-current=true]{background:#dbeae3}
.mountain-anchors a::after{content:'';position:absolute;bottom:0;left:12px;right:12px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 700ms var(--ease)}
.mountain-anchors a[aria-current=true]::after{transform:scaleX(1)}
.spirit-image img{transition:transform 1000ms var(--ease)}
.mobile-menu .nav-group[open]>.nav-sub{animation:operation-panel-in 800ms var(--ease)}
.nav-sub a,.language-links a{transition:background 600ms var(--ease),transform 600ms var(--ease),border-color 600ms var(--ease)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.nav-sub a:hover,.language-links a:hover{transform:translateX(4px)}.spirit-image:hover img{transform:scale(1.045)}}
@media(max-width:767px){
 [data-mountain-bound] .spirit-panels{display:grid;align-items:start}
 [data-mountain-bound] .spirit-panel{grid-area:1/1;padding-top:0;border-bottom:0}
 /* Reserve the tallest complete translation: switching cannot shift the ridge or the next section. */
 [data-mountain-bound] .spirit-panel[hidden]{display:grid!important;visibility:hidden;pointer-events:none}
 [data-mountain-bound] .mountain-ridge{max-height:140px}
 [data-mountain-bound] .mountain-anchors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
 [data-mountain-bound] .mountain-anchors a{text-align:center;padding-inline:4px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.mountain-anchors a::after,.mountain-ridge [data-node],.spirit-image img{transition:none;animation:none}}
@media(prefers-reduced-motion:reduce){.mobile-menu,.gallery-dialog,.mobile-menu::backdrop,.gallery-dialog::backdrop{transition:none!important;animation:none!important}.mobile-menu[open],.gallery-dialog[open]{transform:none}}

/* The menu grows from its trigger, never from the bottom of the viewport. JS owns entry. */
.mobile-menu{--panel:900ms;transform:none;transform-origin:var(--menu-origin,90% 40px);clip-path:var(--menu-clip,inset(20px 12px calc(100% - 68px) calc(100% - 110px) round 12px));transition:clip-path 900ms cubic-bezier(.25,.1,.25,1),opacity 900ms var(--ease),display 900ms allow-discrete,overlay 900ms allow-discrete}
.mobile-menu[open]{transform:none;clip-path:inset(0px 0px 0px 0px round 24px);animation:none;opacity:1}
@starting-style{.mobile-menu[open]{transform:none;clip-path:inset(0px 0px 0px 0px round 24px);opacity:1}}

/* Reflection stays inside the control; its focus ring and semantic content remain intact. */
:is(.button,.menu-trigger,.icon-button,.story-controls button,.phase3-switch button,.mountain-anchors a,.language-links a,.nav-sub a){position:relative;isolation:isolate;overflow:hidden;transition:scale 500ms cubic-bezier(.22,1,.36,1),box-shadow 700ms var(--ease),background 600ms var(--ease),border-color 600ms var(--ease),color 600ms var(--ease)}
:is(.button,.menu-trigger,.icon-button,.story-controls button,.phase3-switch button,.mountain-anchors a,.language-links a,.nav-sub a).is-glass-pressed{scale:.955;box-shadow:inset 0 2px 7px #075a7038,inset 0 0 0 1px #fff,0 0 0 3px #61c2c530;transition-duration:100ms}
.glass-reflection{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit;z-index:2}
.glass-reflection::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at var(--touch-x,50%) var(--touch-y,50%),#ffffffed 0%,#b8f8ff85 20%,transparent 68%);animation:glass-touch 1100ms var(--ease) both}
.glass-reflection::after{content:'';position:absolute;inset:-40% -30%;background:linear-gradient(110deg,transparent 30%,#ffffff10 37%,#fff 47%,#d6ffffa8 52%,transparent 62%);animation:glass-sweep 1100ms cubic-bezier(.25,.1,.25,1) both}
@keyframes glass-touch{0%{opacity:.75;scale:.55}45%{opacity:.45;scale:1.2}100%{opacity:0;scale:1.45}}
@keyframes glass-sweep{0%{transform:translateX(-85%);opacity:0}20%{opacity:.8}65%{opacity:.65}100%{transform:translateX(85%);opacity:0}}
.menu-trigger{background:linear-gradient(125deg,#ffffffad,#dfeef052 60%,#ffffff7d);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #ffffffa8,0 4px 14px #0a5c7012}
.menu-trigger[aria-expanded=true]{border-color:#61a8ab;background:#e0f2ef;box-shadow:inset 0 0 0 1px #fff,0 0 0 3px #61c2c52e}
.mobile-menu{isolation:isolate}
.mobile-menu[open]::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;border-radius:inherit;background:linear-gradient(112deg,transparent 35%,#ffffffdb 48%,#c9ffff70 53%,transparent 66%);background-size:250% 100%;animation:glass-window-sweep 1200ms cubic-bezier(.25,.1,.25,1) both}
@keyframes glass-window-sweep{0%{background-position:140% 0;opacity:0}25%{opacity:.7}75%{opacity:.35}100%{background-position:-80% 0;opacity:0}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.menu-trigger:hover,.button:hover{box-shadow:inset 0 1px 0 #fff,0 8px 22px #075a702b;scale:1.025}.service-card-link:hover .card-image img{scale:1.1}}

/* Photo overscan covers the bounded depth range. The text and image frame never drift. */
[data-scroll-photo]{position:relative;overflow:hidden}
[data-scroll-photo] img{translate:0 var(--scroll-shift,0px);scale:1.12}
.hero-slides::after{background:linear-gradient(120deg,transparent 18%,#ffffff57 45%,transparent 70%);opacity:.35;transform:translateX(var(--scroll-light,0%));pointer-events:none}
.site-header::after{content:'';position:absolute;inset:auto 16px -1px;height:2px;border-radius:2px;background:linear-gradient(90deg,#086d64,#d4ab4b);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.site-header::before{content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;background:linear-gradient(112deg,transparent 15%,#ffffffb8 40%,transparent 65%);background-size:180% 100%;background-position:var(--glass-drift,0%) 0;opacity:.42;z-index:-1}
@media(prefers-reduced-motion:reduce){.mobile-menu,.mobile-menu[open]{clip-path:none!important;transform:none!important}.glass-reflection,.mobile-menu::after{display:none}[data-scroll-photo] img{translate:none;scale:1}.hero-slides::after,.site-header::before,.site-header::after{display:none}:is(.button,.menu-trigger,.icon-button,.story-controls button,.phase3-switch button,.mountain-anchors a,.language-links a,.nav-sub a){scale:1!important}}

/* Fast anchored menu: no full-pane blur, animated clip-path or moving gradient repaint. */
.mobile-menu.glass{--panel:180ms;backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(125deg,#fbfdfbf7,#f1f8f5fa);clip-path:none;transform:scale(.96);opacity:0;transition:transform 180ms var(--ease),opacity 180ms var(--ease),display 180ms allow-discrete,overlay 180ms allow-discrete}
.mobile-menu.glass[open]{transform:none;opacity:1;clip-path:none}
.mobile-menu::backdrop{transition:opacity 180ms var(--ease),display 180ms allow-discrete,overlay 180ms allow-discrete}
.mobile-menu[open]::after{background:linear-gradient(112deg,transparent 20%,#ffffffc9 48%,#c9ffff50 55%,transparent 80%);background-size:100% 100%;animation:menu-glint 360ms var(--ease) both}
@keyframes menu-glint{0%{opacity:0}35%{opacity:.48}100%{opacity:0}}
.mobile-menu .nav-group[open]>.nav-sub{animation-duration:240ms}
@starting-style{.mobile-menu.glass[open]{transform:none;opacity:1;clip-path:none}}
dialog.navigation-dismissed{transition:none!important;animation:none!important;display:none!important}

/* All-page continuity, stable header, plus the existing optional same-photo transition. */
html{view-transition-name:root;background:var(--paper)}
.site-header{view-transition-name:site-header}
::view-transition-group(root){animation:none}
::view-transition-old(root){animation:page-leave 180ms ease-out both}
::view-transition-new(root){animation:page-arrive 360ms var(--ease) both}
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header){animation:none;opacity:0}
::view-transition-new(site-header){animation:none}
::view-transition{pointer-events:none}
@keyframes page-leave{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}
@keyframes page-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
html[data-page-entry] main{animation:fallback-arrive 360ms var(--ease) both}
@keyframes fallback-arrive{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}
html[data-navigating] .site-header::after{transform:scaleX(.86);transition:transform 160ms ease-out}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}html[data-page-entry] main{animation:none}.mobile-menu.glass,.mobile-menu.glass[open]{transform:none;transition:none!important}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* Home logo shares tactile glass feedback without resizing the navigation layout. */
.site-header .brand{position:relative;isolation:isolate;overflow:hidden;transition:scale 180ms var(--ease),box-shadow 260ms var(--ease);box-shadow:inset 0 1px 0 #fff}
.site-header .brand.is-glass-pressed{scale:.96;box-shadow:inset 0 2px 6px #075a7028,0 0 0 3px #61c2c538;transition-duration:90ms}
.site-header .brand:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.site-header .brand .glass-reflection::before,.site-header .brand .glass-reflection::after{animation-duration:650ms}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.site-header .brand:hover:not(.is-glass-pressed){scale:1.025;box-shadow:inset 0 1px 0 #fff,0 5px 16px #075a7025}}
@media(prefers-reduced-motion:reduce){.site-header .brand{scale:1!important;transition:none}}

/* Shared control response: one delegated contract also covers generated calendar/search controls.
   Spatial response is separate from the short-lived optical layer; content is never delayed. */
:is(button,summary,.button,.text-link,.phase3-switch a,.mountain-anchors a,.site-header a,.language-links a,.nav-sub a){position:relative;isolation:isolate;overflow:hidden;max-width:100%;transition:scale 380ms cubic-bezier(.2,1.35,.4,1),box-shadow 260ms var(--ease),background-color 220ms var(--ease),color 220ms var(--ease),border-color 220ms var(--ease)}
:is(button,summary,.button,.text-link,.phase3-switch a,.mountain-anchors a,.site-header a,.language-links a,.nav-sub a).is-glass-pressed{scale:.955;box-shadow:inset 0 2px 7px #075a7038,inset 0 0 0 1px #ffffffa8;transition-duration:90ms}
:is(button,summary,.button,.text-link,.phase3-switch a,.mountain-anchors a,.site-header a,.language-links a,.nav-sub a):focus-visible{outline:3px solid var(--focus,#006a9c);outline-offset:3px}
:is(button,summary){cursor:pointer}
:is(button:disabled,[aria-disabled=true]){cursor:default}
.text-link{display:inline-flex;align-items:center;min-height:44px;border-radius:8px;gap:.3em}
/* A physical position marker makes selection visible without relying on a color change. */
:is(.calendar-views button,.media-view-switch a,.archive-year-rail a)::after{content:'';position:absolute;inset:auto 14px 4px;height:3px;border-radius:4px;background:currentColor;pointer-events:none;transform:scaleX(0);transform-origin:center;transition:transform 340ms var(--ease)}
:is(.calendar-views button[aria-pressed=true],.media-view-switch a[aria-current=true],.archive-year-rail a[aria-current=true])::after{transform:scaleX(.5)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 :is(button,summary,.phase3-switch a,.text-link):hover:not(:disabled):not([aria-disabled=true]):not(.is-glass-pressed){scale:1.018;box-shadow:inset 0 1px 0 #ffffffb8,0 4px 12px #075a701c}
}
@media(prefers-reduced-motion:reduce){
 :is(button,summary,.button,.text-link,.phase3-switch a,.mountain-anchors a,.site-header a,.language-links a,.nav-sub a){scale:1!important;transition:none!important}
 :is(.calendar-views button,.media-view-switch a,.archive-year-rail a)::after{transition:none}
}

/* Dialog focus/hover feedback must finish inside the fast menu entry window. */
.mobile-menu :is(button,summary,a){transition-duration:240ms}
@media(prefers-reduced-motion:reduce){.mobile-menu :is(button,summary,a){transition:none!important}}
