/* Shared motion layer: interactions preserve the existing page architecture. */
:root{--motion-ease:cubic-bezier(.2,.75,.25,1);--pointer-x:50%;--pointer-y:50%}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-away .18s ease both}
::view-transition-new(root){animation:page-arrive .3s var(--motion-ease) both}
@keyframes page-away{to{opacity:0}}
@keyframes page-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
a:hover,button:hover{opacity:1}
.entry-split{gap:0;padding:0;isolation:isolate}
.entry-split>a{position:relative;isolation:isolate;overflow:hidden;min-height:244px;padding:42px 36px;color:var(--ink);transition:color .35s var(--motion-ease),background-color .35s var(--motion-ease)}
.entry-split>a+a{padding:42px 36px;border-left:1px solid var(--line)}
.entry-split>a::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at var(--pointer-x) var(--pointer-y),#416270 0,#1b3542 43%,#10252e 100%);opacity:0;transition:opacity .38s var(--motion-ease);z-index:-1}
.entry-split>a::after{content:'';position:absolute;left:36px;right:36px;bottom:0;height:2px;background:linear-gradient(90deg,#a2bbb8,#e4ece1,#a2bbb800);transform:scaleX(0);transform-origin:left;transition:transform .48s var(--motion-ease)}
.entry-split>a:is(:hover,:focus-visible){color:#f0f4ef;background:#10252e}
.entry-split>a:is(:hover,:focus-visible)::before{opacity:1}
.entry-split>a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.entry-split>a small,.entry-split>a p{transition:color .35s ease}
.entry-split>a:is(:hover,:focus-visible) small{color:#afc5ca}
.entry-split>a:is(:hover,:focus-visible) p{color:#c2d2d5}
.entry-split>a h2{transition:transform .4s var(--motion-ease)}
.entry-split>a:is(:hover,:focus-visible) h2{transform:translateX(7px)}
.entry-split>a>span{display:inline-block;transition:transform .4s var(--motion-ease),letter-spacing .4s ease}
.entry-split>a:is(:hover,:focus-visible)>span{transform:translateX(10px);letter-spacing:.6px}
.header-inner nav a{position:relative;border-bottom-color:transparent!important}
.header-inner nav a::after{content:'';height:1px;position:absolute;bottom:5px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .28s var(--motion-ease)}
.header-inner nav a:is(:hover,:focus-visible,.current)::after{transform:scaleX(1)}
.button{position:relative;overflow:hidden;isolation:isolate;transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s,transform .3s var(--motion-ease)}
.button:before{content:'';position:absolute;inset:-80% -40%;background:linear-gradient(110deg,transparent 42%,#ffffff19 49%,#ffffff44 50%,transparent 58%);transform:translateX(-100%);transition:transform .65s var(--motion-ease);pointer-events:none}
.button:is(:hover,:focus-visible){background:#213e4b;color:#f2f5ee;border-color:#46636c;transform:translateY(-2px);box-shadow:0 8px 20px #10252e1c}
.button:is(:hover,:focus-visible):before{transform:translateX(100%)}
.button span,.text-link span,.route-row>span{display:inline-block;transition:transform .32s var(--motion-ease)}
.button:is(:hover,:focus-visible) span,.text-link:is(:hover,:focus-visible) span{transform:translate(3px,-3px)}
.text-link{transition:color .25s,border-color .25s,gap .3s var(--motion-ease)}
.text-link:is(:hover,:focus-visible){color:#426d79;border-color:#426d79;gap:34px}
.dark-band .text-link:is(:hover,:focus-visible){color:#d8ebe4}
.route-row{position:relative;transition:background .3s,padding .3s var(--motion-ease),color .3s}
.route-row:is(:hover,:focus-visible){background:#dce5df;padding-left:18px;padding-right:18px}
.route-row:is(:hover,:focus-visible)>span{transform:translate(4px,-4px)}
.dark-band .route-row:is(:hover,:focus-visible){background:#253f4b}
.article-link{position:relative;transition:background-color .3s,padding .35s var(--motion-ease)}
.article-link:is(:hover,:focus-visible){padding-left:24px;padding-right:24px;background:#e1e9e3}
.article-link b{transition:transform .3s var(--motion-ease)}
.article-link:is(:hover,:focus-visible) b{transform:translateX(7px)}
.side-index a{transition:padding-left .25s,color .25s}
.side-index a:is(:hover,:focus-visible){padding-left:7px;color:#173d4d}
.model-tabs,.tool-tabs,.filter-tabs{position:relative;isolation:isolate}
.tab-indicator{position:absolute;top:0;height:100%;background:#dbe6df;border:1px solid #becdc4;border-radius:3px;z-index:-1;pointer-events:none;transition:transform .34s var(--motion-ease),width .34s var(--motion-ease)}
.model-tabs .tab-indicator{background:#25424f;border-color:#3c5964}
.model-tabs button,.tool-tabs button,.filter-tabs button{padding-left:16px;padding-right:16px;transition:color .25s,background-color .25s,border-color .25s}
.filter-tabs,.tool-tabs{padding-top:10px;gap:16px}
.model-tabs{gap:20px}
.filter-tabs button,.tool-tabs button{padding-top:8px}
input,textarea{transition:background-color .25s,border-color .25s,box-shadow .25s}
input:focus,textarea:focus{background:#f8faf5;border-color:#6e8c93;box-shadow:0 3px 0 #c5d5cf;outline-offset:2px}
.mobile-nav:not([hidden]){animation:menu-open .26s var(--motion-ease) both}
@keyframes menu-open{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#567883,#bfd2c6);z-index:20;pointer-events:none}
.motion-ready .hero-content{animation:hero-intro .8s var(--motion-ease) both}
.motion-ready .hero-caption{animation:hero-intro .9s .1s var(--motion-ease) both}
@keyframes hero-intro{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.home-art{transform:translate3d(var(--hero-x,0),var(--hero-y,0),0) scale(1.015);transition:transform .7s var(--motion-ease);will-change:auto}
.button:active,.text-link:active{transform:translateY(1px);box-shadow:none}
.entry-split>a:active{background:#183541;color:#f0f4ef}
.entry-split>a:active p,.entry-split>a:active small{color:#c6d6d7}
@media(max-width:800px){.entry-split>a,.entry-split>a+a{padding:30px 23px;min-height:225px}.entry-split>a::after{left:23px;right:23px}.entry-split>a:is(:hover,:focus-visible) h2{transform:translateX(3px)}.model-tabs{gap:8px}.model-tabs button{padding-left:12px;padding-right:12px}.filter-tabs,.tool-tabs{gap:6px}.filter-tabs button,.tool-tabs button{padding-left:10px;padding-right:10px}.home-art{transform:none!important}}
@media(max-width:420px){.entry-split>a+a{border-top:1px solid var(--line);border-left:0;padding:30px 23px}.entry-split{gap:0}.entry-split>a{min-height:215px}}
@media(hover:none){.entry-split>a:hover:not(:focus-visible){background:transparent;color:var(--ink)}.entry-split>a:hover:not(:focus-visible)::before{opacity:0}.entry-split>a:hover:not(:focus-visible) p{color:var(--muted)}.entry-split>a:hover:not(:focus-visible) small{color:#73858a}.entry-split>a:active{background:#183541!important;color:#f0f4ef!important}.entry-split>a:active p,.entry-split>a:active small{color:#c6d6d7!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.home-art{transform:none!important}.motion-ready .hero-content,.motion-ready .hero-caption{opacity:1}.entry-split>a:is(:hover,:focus-visible) h2,.entry-split>a:is(:hover,:focus-visible)>span{transform:none}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
