/* Search is an overlay composition; the approved Landing rules and atlas are untouched. */
.journey-copy{position:absolute;z-index:6;top:25.8%;left:4%;width:92%;text-align:center;opacity:0;visibility:hidden;pointer-events:none}
.journey-copy:focus,.search-copy:focus{outline:none}
.journey-copy h2{margin:0;color:#fff0ce;font:400 4cqw/1.2 Lilita,Arial,sans-serif;letter-spacing:.04em}
.journey-copy p{margin:1.3cqw 0 0;color:#d7d3cb;font:500 4cqw/1.4 Nunito,Arial,sans-serif}
.description,.promise,.bathroom{transition:opacity 330ms ease,transform 500ms cubic-bezier(.2,.6,.25,1)}
.mascot,.wordmark,.tagline{transition:transform 540ms cubic-bezier(.2,.65,.25,1)}
.journey-active .mascot{transform:scale(.8);transform-origin:50% 0}
.journey-active .wordmark{z-index:4;transform:translateY(-4cqw) scale(.82);animation:none}
.journey-active .tagline{z-index:4;transform:translateY(-9cqw) scale(.82)}
.journey-active .description,.journey-active .promise{opacity:0;transform:translateY(-5px);pointer-events:none;visibility:hidden;transition:opacity 220ms 120ms,transform 300ms 120ms,visibility 0s 350ms}
.journey-active .bathroom{opacity:0;transform:translateY(18px) scale(.98);transition-delay:120ms}
[data-app-state="confirming"] .start-button{pointer-events:none;animation:search-button-press 500ms ease-out both}
.journey-active:not([data-app-state="confirming"]) .start-button{opacity:0;visibility:hidden;animation:none;pointer-events:none}
[data-app-state="confirming"] .journey-copy{visibility:visible;animation:confirm-brief 450ms 300ms both}
.search-scene{position:absolute;inset:0;overflow:clip;visibility:hidden;pointer-events:none}
.journey-active .search-scene{visibility:visible}
.search-room{position:absolute;z-index:-1;inset:21% -15% -1%;opacity:0;background:radial-gradient(ellipse at 50% 48%,#b4792420,transparent 51%),repeating-linear-gradient(0deg,transparent 0,transparent calc(14cqw - 1px),#7182990c 14cqw),repeating-linear-gradient(90deg,transparent 0,transparent calc(24cqw - 1px),#7182990c 24cqw),linear-gradient(90deg,#02070b00,#08121c80 50%,#02070b00);mask-image:linear-gradient(transparent,#000 16%,#000 85%,transparent);transition:opacity 500ms 150ms}
.journey-active .search-room{opacity:1}
.globe-stage{position:absolute;z-index:2;top:34%;left:14%;width:72%;aspect-ratio:1;opacity:0;transform:translateY(18px) scale(.94)}
.earth{position:absolute;width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(circle,#000 59%,#000b 66%,transparent 73%);user-select:none}
.search-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.route-old,.route-halo,.route-current{fill:none;stroke-linecap:round;stroke:#ffd891}
.route-current{stroke-width:.38;stroke-dasharray:1;stroke-dashoffset:1}
.route-halo{stroke:#ffae37;stroke-width:1.3;opacity:.7;stroke-dasharray:1;stroke-dashoffset:1}
.route-old{stroke-width:.25;opacity:0}
.route-destination{opacity:.32;transition:opacity 180ms}
.destination-halo{fill:#ffb64e25;stroke:#ffd27a60;stroke-width:.25}
.destination-dot{fill:#ffe6a7}
.route-traveler{opacity:0;transform-origin:0 0}.search-scene:is([data-phase="search"],[data-phase="settling"]) .route-traveler{will-change:transform}
.packet-glow{fill:#ffb52e26;filter:url(#route-glow)}
.packet-face{position:relative;width:100%;height:100%;transform-origin:50% 85%}
.packet-art{inset:0;background-size:432.353% auto;background-position:49.8525% 12.1783%;mask-image:radial-gradient(ellipse,#000 50%,transparent 73%)}
.search-copy{position:absolute;z-index:3;top:74.5%;left:2%;width:96%;text-align:center;opacity:0;transform:translateY(5px)}
.search-title{margin:0;color:#fff2d9;font:400 5.7cqw/1.2 Lilita,Arial,sans-serif;letter-spacing:.006em;text-shadow:0 0 16px #ffb14a40}
.search-subtitle{min-height:2.8em;margin:2.5cqw auto 0;font:500 4.55cqw/1.4 Nunito,Arial,sans-serif;color:#d8d3c7}
[data-app-state="confirming"] .globe-stage{animation:earth-enter 500ms 270ms cubic-bezier(.2,.6,.25,1) both}
.journey-active:not([data-app-state="confirming"]) .globe-stage{opacity:1;transform:none}
.journey-active:not([data-app-state="confirming"]) .search-copy{opacity:1;transform:none;transition:opacity 220ms,transform 220ms}
.search-scene[data-phase="search"] .route-traveler,.search-scene[data-phase="settling"] .route-traveler,.search-scene[data-phase="match"] .route-traveler,.search-scene[data-phase="opening"] .route-traveler{opacity:1}
.search-scene[data-arrived="true"] .route-destination{opacity:1}
.search-scene[data-phase="search"] .search-subtitle{animation:waiting-copy 4800ms linear infinite}
.match-pulse{fill:none;stroke:#ffcf77;stroke-width:.3;opacity:0;transform-box:fill-box;transform-origin:center}
.search-scene[data-phase="match"] .match-pulse{animation:match-pulse 600ms ease-out 2}
.search-scene[data-phase="match"] .pulse-two{animation-delay:120ms;animation-iteration-count:1}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .destination-halo{fill:#ffbd5566;stroke:#ffe4a9;stroke-width:.5}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .route-old{opacity:0}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .route-halo{opacity:.25}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .route-current{opacity:.45}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .search-title{font-size:8cqw}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .search-copy{top:72%}
.search-scene[data-phase="opening"] .search-subtitle{font-size:3.5cqw;letter-spacing:.04em}
.match-location{display:flex;align-items:center;justify-content:center;gap:3cqw;margin:1cqw auto 0;max-width:94%;color:#f1d89f}
.match-location[hidden]{display:none}
.match-location .place{max-width:34%;font:400 4.1cqw/1.15 Lilita,Arial,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.match-location .distance{font:500 3cqw/1.2 Nunito,Arial,sans-serif;white-space:nowrap;color:#b9b4aa}
[data-paused="true"] .landing *,[data-paused="true"] .landing *::before,[data-paused="true"] .landing *::after{animation-play-state:paused!important}
@keyframes search-button-press{0%{transform:scale(1)}24%{transform:scale(.97);box-shadow:0 0 35px 4px #ffc75988;opacity:1}60%{opacity:.5;transform:scale(.96)}100%{opacity:0;transform:scale(.94);visibility:hidden}}
@keyframes confirm-brief{0%{opacity:0;transform:translateY(3px)}12%,72%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-3px)}}
@keyframes earth-enter{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
@keyframes waiting-copy{0%,100%{opacity:0}5%,95%{opacity:1}}
@keyframes match-pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(3.8)}}
@media(prefers-reduced-motion:reduce){.journey-active .globe-stage{opacity:1;transform:none}.journey-active .search-copy{transform:none}[data-app-state="confirming"] .journey-copy{opacity:1;visibility:visible}[data-app-state="confirming"] .start-button{opacity:0;visibility:hidden}.route-traveler{will-change:auto}.search-scene[data-phase="search"] .search-subtitle{opacity:1}}
@media(orientation:landscape) and (max-height:500px){.journey-active body{min-height:100dvh}.journey-active .landing{width:min(100%,calc((100dvh - 24px) * .510204))}}

/* Bathroom edge props reuse small regions of the existing atlas, not the reference. */
.search-room::before,.search-room::after{content:"";position:absolute;background-image:url('/assets/taikita-artwork.webp');background-repeat:no-repeat;opacity:.38;mask-image:linear-gradient(transparent,#000 15%,#000 87%,transparent),linear-gradient(90deg,transparent,#000 18%,#000 80%,transparent);mask-composite:intersect}
.search-room::before{width:28%;aspect-ratio:205/475;left:0;bottom:2%;background-size:430.244% auto;background-position:11.08% 68.425%}
.search-room::after{width:23%;aspect-ratio:180/265;right:0;bottom:4%;background-size:490% auto;background-position:89.74% 73.78%}
.globe-stage::before{content:"";position:absolute;inset:4%;border-radius:50%;background:radial-gradient(circle at 40% 24%,#17232e,#040b12 70%);box-shadow:0 -1px 4px #7199b340}
.packet-eyelids{position:absolute;inset:0}
.packet-eyelids::before,.packet-eyelids::after{content:"";position:absolute;top:44%;width:15%;height:21%;border-radius:50%;background:#c78949;transform:scaleY(0);transform-origin:50% 0}
.packet-eyelids::before{left:29%}.packet-eyelids::after{left:54%;background:#a66a36}
.search-scene[data-arrived="true"] .packet-eyelids::before,.search-scene[data-arrived="true"] .packet-eyelids::after{animation:packet-blink 280ms ease}
@keyframes packet-blink{0%,100%{transform:scaleY(0)}45%,65%{transform:scaleY(1)}}
[data-app-state="chat"] .landing{visibility:hidden;pointer-events:none}

@media(prefers-reduced-motion:reduce){.search-scene .route-traveler{will-change:auto!important}}
/* Four small Search refinements. Existing art, composition and copy stay intact. */
.search-curious-mouth,.search-where-mouth{opacity:0}
.packet-features{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.packet-face .eye-overlay{opacity:1}
.packet-face[data-gaze="left"] .pupil{transform:translateX(-3px)}
.packet-face[data-gaze="right"] .pupil{transform:translateX(3px)}
:is(.mascot,.packet-face):is([data-search-mood="curious"],[data-search-mood="where"]) .mouth-cover{opacity:1}
:is(.mascot,.packet-face)[data-search-mood="curious"] .search-curious-mouth{opacity:1}
:is(.mascot,.packet-face)[data-search-mood="where"] .search-where-mouth{opacity:1}
:is(.mascot,.packet-face)[data-search-mood="curious"] .eye-open-left{transform:translateY(-2px)}
:is(.mascot,.packet-face)[data-search-mood="where"] .eyelid{transform:scaleY(.3)}
.mascot[data-search-mood="where"] .mascot-body{animation:search-where 1200ms ease-in-out both}
.packet-face[data-search-mood="where"]{transform:rotate(3deg)}
.search-scene:is([data-phase="search"],[data-phase="match"],[data-phase="opening"]) .earth{animation:earth-drift 18s ease-in-out infinite}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .earth{animation-play-state:paused}
.search-scene:is([data-phase="search"],[data-phase="match"],[data-phase="opening"]) .globe-stage{animation:earth-approach 30s linear both}
.search-scene:is([data-phase="match"],[data-phase="opening"]) .globe-stage{animation-play-state:paused}
.checkpoint-pulse{fill:none;stroke:#ffd78a;stroke-width:.28;opacity:0;transform-box:fill-box;transform-origin:center}
.search-scene[data-phase="search"][data-arrived="true"] .checkpoint-pulse{animation:checkpoint-pulse 260ms ease-out both}
.globe-stage::after{content:"";position:absolute;inset:4%;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,transparent 52%,#ffc5661f 70%,#ffcf7938 74%,transparent 77%);box-shadow:0 0 28px 3px #ffb34038,inset 0 0 24px #ffcd6633}
.search-scene[data-phase="match"] .globe-stage::after{animation:match-earth-glow 900ms ease-out both}
.search-scene[data-phase="match"] :is(.route-current,.route-halo,.route-old){opacity:0}
@keyframes earth-drift{0%,100%{transform:rotate(0)}50%{transform:rotate(1.6deg)}}
@keyframes earth-approach{from{transform:scale(1)}to{transform:scale(1.5)}}
@keyframes checkpoint-pulse{0%{opacity:.48;transform:scale(.6)}100%{opacity:0;transform:scale(2.4)}}
@keyframes match-earth-glow{0%{opacity:0;transform:scale(.98)}24%{opacity:1}100%{opacity:0;transform:scale(1.035)}}
@keyframes search-where{0%,100%{transform:rotate(0)}28%{transform:rotate(-2deg) translateY(-1px)}70%{transform:rotate(1deg)}}
@media(prefers-reduced-motion:reduce){.packet-face[data-search-mood="where"]{transform:none}.search-scene[data-phase="match"] .destination-halo{fill:#ffd27888}}

