.travel-transition{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(249,248,244,.98);backdrop-filter:blur(12px);color:#2d3933}.travel-inner{text-align:center;width:min(100%,480px);padding:28px}.travel-kicker{font:10px var(--site-font,sans-serif);letter-spacing:.22em;color:#667467;margin:0 0 28px}.stamp-stage{position:relative;height:260px;perspective:850px;isolation:isolate}.travel-stamp{position:absolute;width:210px;height:250px;left:50%;top:0;margin-left:-105px;padding:10px;background:#ecebdc;box-shadow:0 12px 26px #243a2620;opacity:0;transform:translateY(25px) rotate(-12deg) scale(.85);color:#53644d;border:6px dotted #f9f8f4;outline:1px solid #dddccf;outline-offset:-7px}.stamp-border{border:1px solid currentColor;height:100%;padding:12px;display:flex;align-items:center;flex-direction:column}.stamp-top{width:100%;display:flex;justify-content:space-between;font:9px var(--site-font,sans-serif);letter-spacing:.16em}.travel-stamp svg{height:93px;width:93px;margin:7px 0;fill:currentColor}.travel-stamp strong{font:600 12px var(--site-font,sans-serif);letter-spacing:.08em}.stamp-caption{font:italic 13px Georgia,serif;margin:7px 0}.stamp-rule{height:1px;width:35px;background:currentColor;margin:2px 0 7px}.travel-stamp small{font:7px var(--site-font,sans-serif);letter-spacing:.13em}.stamp-1{background:#f1e2d9;color:#8c4540}.stamp-2{background:#dce8e7;color:#3e666c}.playing .stamp-0{animation:stampArrival .44s var(--ease,ease) both}.playing .stamp-1{animation:stampArrival .44s .18s var(--ease,ease) both;--tilt:7deg}.playing .stamp-2{animation:stampArrival .44s .36s var(--ease,ease) both;--tilt:-3deg}.travel-status{font:14px var(--site-font,sans-serif);margin:23px 0 12px}.travel-skip{border:0;background:none;color:#6d766f;text-decoration:underline;text-underline-offset:4px;padding:12px;cursor:pointer;font:12px var(--site-font,sans-serif)}.travel-skip:hover{color:var(--accent,#963c3e)}.travel-active{overflow:hidden}.journey-fallback{margin:20vh auto;text-align:center;padding:30px;max-width:580px}.journey-fallback h1{font-size:48px;letter-spacing:-.05em;font-weight:400}.journey-fallback p{line-height:1.6}.kinetic-logo .logo-pieces{position:absolute;inset:0;pointer-events:none;display:none}.kinetic-logo.logo-playing{overflow:visible}.kinetic-logo.logo-playing>img{opacity:0}.logo-playing .logo-pieces{display:block}.logo-piece-0{clip-path:inset(33% 60% 58% 28%)}.logo-piece-1{clip-path:inset(33% 50% 58% 40%)}.logo-piece-2{clip-path:inset(33% 40% 58% 50%)}.logo-piece-3{clip-path:inset(33% 28% 58% 60%)}.logo-piece-4{clip-path:inset(42% 27% 35% 28%)}.logo-playing .logo-piece{animation:logoAssemble .75s var(--ease,ease) both;transform-origin:50% 40%}.logo-playing .logo-piece-1{animation-delay:70ms}.logo-playing .logo-piece-2{animation-delay:140ms}.logo-playing .logo-piece-3{animation-delay:210ms}.logo-playing .logo-piece-4{animation-name:wordmarkSettle;animation-delay:260ms}.stamp-tap{animation:tapPress .35s ease!important}@keyframes stampArrival{0%{opacity:0;transform:translateY(28px) rotate(-15deg) scale(1.15)}65%{opacity:1;transform:translateY(0) rotate(var(--tilt,-7deg)) scale(.97)}100%{opacity:1;transform:translateY(0) rotate(var(--tilt,-7deg)) scale(1)}}@keyframes logoAssemble{0%{opacity:0;transform:translateY(-12px) rotate(-6deg) scale(.8)}65%{opacity:1;transform:translateY(1px) rotate(0) scale(1.025)}100%{opacity:1;transform:none}}@keyframes wordmarkSettle{0%{opacity:0;transform:translateY(7px);filter:blur(2px)}100%{opacity:1;transform:none;filter:blur(0)}}@keyframes tapPress{45%{transform:scale(.97)}100%{transform:none}}@media(prefers-reduced-motion:reduce){.travel-transition{display:none!important}.logo-playing>img{opacity:1!important}.logo-pieces{display:none!important}.stamp-tap{animation:none!important}}
/* Smooth two-second editorial sequence: glide, overlap, settle; no impact bounce. */
.travel-transition.playing{animation:travelVeil 2s ease both}
.playing .stamp-0{animation:stampGlide 1.05s .05s cubic-bezier(.22,1,.36,1) both;--tilt:-9deg;--shift:-37px}
.playing .stamp-1{animation:stampGlide 1.05s .38s cubic-bezier(.22,1,.36,1) both;--tilt:7deg;--shift:32px}
.playing .stamp-2{animation:stampGlide 1.05s .71s cubic-bezier(.22,1,.36,1) both;--tilt:-2deg;--shift:0px}
.travel-kicker,.travel-status{animation:quietText .6s ease both}
.logo-playing .logo-piece{animation-duration:1.25s}
.logo-playing .logo-piece-1{animation-delay:.12s}
.logo-playing .logo-piece-2{animation-delay:.24s}
.logo-playing .logo-piece-3{animation-delay:.36s}
.logo-playing .logo-piece-4{animation-delay:.48s}
@keyframes stampGlide{from{opacity:0;transform:translate(50px,32px) rotate(13deg) scale(.94)}to{opacity:1;transform:translate(var(--shift,0px),0) rotate(var(--tilt,0deg)) scale(1)}}
@keyframes travelVeil{0%{opacity:0}12%,91%{opacity:1}100%{opacity:0}}
@keyframes quietText{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes logoAssemble{0%{opacity:0;transform:translateY(-20px) rotate(-12deg) scale(.65)}100%{opacity:1;transform:none}}
@keyframes wordmarkSettle{0%{opacity:0;transform:translateY(12px);filter:blur(3px)}100%{opacity:1;transform:none;filter:blur(0)}}


/* A single soft opacity reveal, with no movement, flash, or colour shift. */
.logo-fade-in>img{animation:harveeSoftFade 1.4s cubic-bezier(.22,1,.36,1) both}
@keyframes harveeSoftFade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.logo-fade-in>img{animation:none!important;opacity:1}}
