/* Same 1448×1086 coordinates as the source map; no hit targets in decoration. */
.tl-world--living .tl-world__map{mask-image:url('/assets/world/drone-mask.svg');mask-mode:luminance;mask-size:100% 100%;mask-repeat:no-repeat}
.tl-world__life{position:absolute;inset:0 auto auto 0;width:100%;height:auto;aspect-ratio:4/3;pointer-events:none;overflow:hidden;z-index:1}
.tl-world--interactive .tl-world__pins{z-index:3}
.tl-world__life *{animation-play-state:paused!important}
.tl-world--moving .tl-world__life *{animation-play-state:running!important}
.world-drone{animation:world-drone-float 5.6s ease-in-out infinite;transform-origin:886px 121px}
.world-cloud{opacity:.85}
.world-cloud--one{animation:world-cloud-a 32s ease-in-out infinite}
.world-cloud--two{animation:world-cloud-b 43s ease-in-out infinite}
.world-cloud--three{animation:world-cloud-c 37s ease-in-out infinite}
.world-plane{animation:world-plane-pass 34s linear infinite}
.world-bird--one{animation:world-bird-land 23s linear infinite}
.world-bird--two{animation:world-bird-tour 29s linear infinite}
.world-wing{transform-origin:0 5px;animation:world-wing-flap .22s ease-in-out infinite alternate}
.world-bird--one .world-wing{animation:world-wing-flap .22s ease-in-out infinite alternate}
.world-breeze{animation:world-breeze-pass 12s ease-in-out infinite}
.tl-world__motion-toggle{display:block;margin:-10px auto 16px;padding:8px 13px;border:1px solid #263a48;border-radius:18px;background:#fff;color:#263a48;font:inherit;font-size:11px;font-weight:800;cursor:pointer;min-height:36px}
.tl-world__motion-toggle:focus-visible{outline:3px solid #0860e4;outline-offset:4px}
@keyframes world-drone-float{0%,100%{transform:translate(0,0) rotate(-1deg)}50%{transform:translate(9px,-17px) rotate(1.5deg)}}
@keyframes world-cloud-a{0%,100%{transform:translate(65px,78px) scale(.85)}50%{transform:translate(144px,63px) scale(.85)}}
@keyframes world-cloud-b{0%,100%{transform:translate(1160px,30px) scale(1.05)}50%{transform:translate(1250px,45px) scale(1.05)}}
@keyframes world-cloud-c{0%,100%{transform:translate(615px,32px) scale(.62)}50%{transform:translate(675px,21px) scale(.62)}}
@keyframes world-plane-pass{0%,5%{opacity:0;transform:translate(-130px,40px) scale(.72)}6%{opacity:1}32%{opacity:1;transform:translate(1510px,52px) scale(.72)}33%,100%{opacity:0;transform:translate(1580px,52px) scale(.72)}}
@keyframes world-bird-land{0%{opacity:0;transform:translate(1320px,35px) scale(-.85,.85)}3%{opacity:1}12%{transform:translate(1180px,60px) scale(-.85,.85)}22%{transform:translate(1040px,112px) scale(-.85,.85)}25%,62%{opacity:1;transform:translate(1027px,110px) scale(-.85,.85)}68%{transform:translate(1050px,67px) scale(.85)}84%{opacity:1;transform:translate(1300px,25px) scale(.85)}91%,100%{opacity:0;transform:translate(1490px,5px) scale(.85)}}
@keyframes world-bird-tour{0%,12%{opacity:0;transform:translate(-50px,490px) scale(.7)}14%{opacity:1}28%{transform:translate(68px,358px) scale(.7)}38%,69%{opacity:1;transform:translate(205px,167px) scale(.7)}74%{transform:translate(180px,121px) scale(-.7,.7)}92%,100%{opacity:0;transform:translate(-50px,30px) scale(-.7,.7)}}
@keyframes world-wing-flap{from{transform:scaleY(1)}to{transform:scaleY(-.45)}}
@keyframes world-breeze-pass{0%,64%,100%{opacity:0;transform:translateX(-16px)}74%{opacity:.7}90%{opacity:0;transform:translateX(32px)}}
.tl-world--still .world-plane,.tl-world--still .world-breeze{visibility:hidden}

.world-bird--one .world-wing{animation:world-wing-one 23s linear infinite}
@keyframes world-wing-one{0%{transform:scaleY(1)}1%{transform:scaleY(-.45)}2%{transform:scaleY(1)}3%{transform:scaleY(-.45)}4%{transform:scaleY(1)}5%{transform:scaleY(-.45)}6%{transform:scaleY(1)}7%{transform:scaleY(-.45)}8%{transform:scaleY(1)}9%{transform:scaleY(-.45)}10%{transform:scaleY(1)}11%{transform:scaleY(-.45)}12%{transform:scaleY(1)}13%{transform:scaleY(-.45)}14%{transform:scaleY(1)}15%{transform:scaleY(-.45)}16%{transform:scaleY(1)}17%{transform:scaleY(-.45)}18%{transform:scaleY(1)}19%{transform:scaleY(-.45)}20%{transform:scaleY(1)}21%{transform:scaleY(-.45)}22%{transform:scaleY(1)}23%{transform:scaleY(-.45)}24%{transform:scaleY(1)}25%{transform:scaleY(.18)}26%{transform:scaleY(.18)}27%{transform:scaleY(.18)}28%{transform:scaleY(.18)}29%{transform:scaleY(.18)}30%{transform:scaleY(.18)}31%{transform:scaleY(.18)}32%{transform:scaleY(.18)}33%{transform:scaleY(.18)}34%{transform:scaleY(.18)}35%{transform:scaleY(.18)}36%{transform:scaleY(.18)}37%{transform:scaleY(.18)}38%{transform:scaleY(.18)}39%{transform:scaleY(.18)}40%{transform:scaleY(.18)}41%{transform:scaleY(.18)}42%{transform:scaleY(.18)}43%{transform:scaleY(.18)}44%{transform:scaleY(.18)}45%{transform:scaleY(.18)}46%{transform:scaleY(.18)}47%{transform:scaleY(.18)}48%{transform:scaleY(.18)}49%{transform:scaleY(.18)}50%{transform:scaleY(.18)}51%{transform:scaleY(.18)}52%{transform:scaleY(.18)}53%{transform:scaleY(.18)}54%{transform:scaleY(.18)}55%{transform:scaleY(.18)}56%{transform:scaleY(.18)}57%{transform:scaleY(.18)}58%{transform:scaleY(.18)}59%{transform:scaleY(.18)}60%{transform:scaleY(.18)}61%{transform:scaleY(.18)}62%{transform:scaleY(.18)}63%{transform:scaleY(-.45)}64%{transform:scaleY(1)}65%{transform:scaleY(-.45)}66%{transform:scaleY(1)}67%{transform:scaleY(-.45)}68%{transform:scaleY(1)}69%{transform:scaleY(-.45)}70%{transform:scaleY(1)}71%{transform:scaleY(-.45)}72%{transform:scaleY(1)}73%{transform:scaleY(-.45)}74%{transform:scaleY(1)}75%{transform:scaleY(-.45)}76%{transform:scaleY(1)}77%{transform:scaleY(-.45)}78%{transform:scaleY(1)}79%{transform:scaleY(-.45)}80%{transform:scaleY(1)}81%{transform:scaleY(-.45)}82%{transform:scaleY(1)}83%{transform:scaleY(-.45)}84%{transform:scaleY(1)}85%{transform:scaleY(-.45)}86%{transform:scaleY(1)}87%{transform:scaleY(-.45)}88%{transform:scaleY(1)}89%{transform:scaleY(-.45)}90%{transform:scaleY(1)}91%{transform:scaleY(-.45)}92%{transform:scaleY(1)}93%{transform:scaleY(-.45)}94%{transform:scaleY(1)}95%{transform:scaleY(-.45)}96%{transform:scaleY(1)}97%{transform:scaleY(-.45)}98%{transform:scaleY(1)}99%{transform:scaleY(-.45)}100%{transform:scaleY(1)}}

.world-bird--two .world-wing{animation:world-wing-two 29s linear infinite}
@keyframes world-wing-two{0%{transform:scaleY(1)}1%{transform:scaleY(-.45)}2%{transform:scaleY(1)}3%{transform:scaleY(-.45)}4%{transform:scaleY(1)}5%{transform:scaleY(-.45)}6%{transform:scaleY(1)}7%{transform:scaleY(-.45)}8%{transform:scaleY(1)}9%{transform:scaleY(-.45)}10%{transform:scaleY(1)}11%{transform:scaleY(-.45)}12%{transform:scaleY(1)}13%{transform:scaleY(-.45)}14%{transform:scaleY(1)}15%{transform:scaleY(-.45)}16%{transform:scaleY(1)}17%{transform:scaleY(-.45)}18%{transform:scaleY(1)}19%{transform:scaleY(-.45)}20%{transform:scaleY(1)}21%{transform:scaleY(-.45)}22%{transform:scaleY(1)}23%{transform:scaleY(-.45)}24%{transform:scaleY(1)}25%{transform:scaleY(-.45)}26%{transform:scaleY(1)}27%{transform:scaleY(-.45)}28%{transform:scaleY(1)}29%{transform:scaleY(-.45)}30%{transform:scaleY(1)}31%{transform:scaleY(-.45)}32%{transform:scaleY(1)}33%{transform:scaleY(-.45)}34%{transform:scaleY(1)}35%{transform:scaleY(-.45)}36%{transform:scaleY(1)}37%{transform:scaleY(-.45)}38%{transform:scaleY(.18)}39%{transform:scaleY(.18)}40%{transform:scaleY(.18)}41%{transform:scaleY(.18)}42%{transform:scaleY(.18)}43%{transform:scaleY(.18)}44%{transform:scaleY(.18)}45%{transform:scaleY(.18)}46%{transform:scaleY(.18)}47%{transform:scaleY(.18)}48%{transform:scaleY(.18)}49%{transform:scaleY(.18)}50%{transform:scaleY(.18)}51%{transform:scaleY(.18)}52%{transform:scaleY(.18)}53%{transform:scaleY(.18)}54%{transform:scaleY(.18)}55%{transform:scaleY(.18)}56%{transform:scaleY(.18)}57%{transform:scaleY(.18)}58%{transform:scaleY(.18)}59%{transform:scaleY(.18)}60%{transform:scaleY(.18)}61%{transform:scaleY(.18)}62%{transform:scaleY(.18)}63%{transform:scaleY(.18)}64%{transform:scaleY(.18)}65%{transform:scaleY(.18)}66%{transform:scaleY(.18)}67%{transform:scaleY(.18)}68%{transform:scaleY(.18)}69%{transform:scaleY(.18)}70%{transform:scaleY(1)}71%{transform:scaleY(-.45)}72%{transform:scaleY(1)}73%{transform:scaleY(-.45)}74%{transform:scaleY(1)}75%{transform:scaleY(-.45)}76%{transform:scaleY(1)}77%{transform:scaleY(-.45)}78%{transform:scaleY(1)}79%{transform:scaleY(-.45)}80%{transform:scaleY(1)}81%{transform:scaleY(-.45)}82%{transform:scaleY(1)}83%{transform:scaleY(-.45)}84%{transform:scaleY(1)}85%{transform:scaleY(-.45)}86%{transform:scaleY(1)}87%{transform:scaleY(-.45)}88%{transform:scaleY(1)}89%{transform:scaleY(-.45)}90%{transform:scaleY(1)}91%{transform:scaleY(-.45)}92%{transform:scaleY(1)}93%{transform:scaleY(-.45)}94%{transform:scaleY(1)}95%{transform:scaleY(-.45)}96%{transform:scaleY(1)}97%{transform:scaleY(-.45)}98%{transform:scaleY(1)}99%{transform:scaleY(-.45)}100%{transform:scaleY(1)}}

@font-face{font-family:WorldYomogi;src:url('/assets/fonts/yomogi-world.woff') format('woff');font-display:swap;font-weight:400;font-style:normal}
html[lang="ja"] body .tl-world__handwritten{position:relative;z-index:2;width:fit-content;max-width:92%;margin:24px 0 8px 3%;font-family:WorldYomogi,cursive!important;font-size:clamp(21px,2.7vw,36px);font-weight:400;line-height:1.55;letter-spacing:.045em;color:#1a1a1a;transform:rotate(-7deg);transform-origin:left center;-webkit-text-stroke:.3px currentColor;pointer-events:none}
@media(max-width:700px){html[lang="ja"] body .tl-world__handwritten{margin:22px 0 16px 3%;font-size:21px}}

/* Slow continuous patrol, with a small secondary hover motion. */
.world-drone{animation:world-drone-patrol 52s linear infinite}
.world-drone>svg{animation:world-drone-hover 4.8s ease-in-out infinite}
@keyframes world-drone-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes world-drone-patrol{
0%,100%{transform:translate(0,0) rotate(-2deg)}
12%{transform:translate(-300px,-10px) rotate(-4deg)}
25%{transform:translate(-660px,210px) rotate(-2deg)}
38%{transform:translate(-520px,500px) rotate(3deg)}
51%{transform:translate(-150px,670px) rotate(4deg)}
64%{transform:translate(245px,530px) rotate(1deg)}
77%{transform:translate(380px,240px) rotate(-3deg)}
89%{transform:translate(230px,30px) rotate(-2deg)}
}
/* One spaceship every 17s, versus a plane every 34s. Three quick legs. */
.world-spaceship{animation:world-spaceship-z 17s linear 8s infinite;opacity:0}
.world-ship-flame{transform-origin:-25px 0;animation:world-ship-thrust .12s ease-in-out infinite alternate}
@keyframes world-ship-thrust{to{transform:scaleX(.65)}}
@keyframes world-spaceship-z{
0%{opacity:0;transform:translate(-100px,70px) rotate(12deg) scale(.85)}
1%{opacity:1}
6%{opacity:1;transform:translate(490px,195px) rotate(12deg) scale(.85)}
7%{transform:translate(510px,190px) rotate(-33deg) scale(.85)}
12%{transform:translate(720px,54px) rotate(-33deg) scale(.85)}
13%{transform:translate(740px,54px) rotate(17deg) scale(.85)}
20%{opacity:1;transform:translate(1540px,300px) rotate(17deg) scale(.85)}
21%,100%{opacity:0;transform:translate(1590px,315px) rotate(17deg) scale(.85)}
}
.world-butterfly-route{animation:world-butterfly-garden 19s ease-in-out infinite}
.world-butterfly-bob{animation:world-butterfly-bob 1.4s ease-in-out infinite}
.world-butterfly-wing{transform-origin:0 0;animation:world-butterfly-flap .24s ease-in-out infinite alternate}
@keyframes world-butterfly-flap{from{transform:scaleX(1)}to{transform:scaleX(.2)}}
@keyframes world-butterfly-bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-8px) rotate(6deg)}}
@keyframes world-butterfly-garden{
0%,100%{transform:translate(558px,574px) scale(.65)}
20%{transform:translate(492px,415px) scale(.65)}
42%{transform:translate(621px,340px) scale(.65)}
62%{transform:translate(876px,416px) scale(.65)}
80%{transform:translate(884px,589px) scale(.65)}
}
.tl-world--still .world-spaceship{visibility:hidden}

/* Rough brush-written vision note; scoped exception to the site's LINE typography. */
@font-face{font-family:WorldBrush;src:url('/assets/fonts/yuji-boku-world.woff') format('woff');font-display:swap;font-weight:400;font-style:normal}
html[lang="ja"] body .tl-world__handwritten,html[lang="ja"] body .tl-world__handwritten span{font-family:WorldBrush,cursive!important;font-weight:400}
html[lang="ja"] body .tl-world__handwritten{font-size:clamp(24px,3.1vw,43px);line-height:1.45;letter-spacing:-.045em;-webkit-text-stroke:0;transform:rotate(-8deg)}
.tl-world__handwritten span{display:inline-block}
.tl-world__handwritten span:last-child{transform:translateX(.4em) rotate(-1.5deg)}
@media(max-width:700px){html[lang="ja"] body .tl-world__handwritten{font-size:25px}}

/* Saucer silhouette with a glass dome and softly pulsing rim lights. */
.world-ufo-body{animation:world-ufo-wobble .8s ease-in-out infinite alternate}
.world-ufo-lights{animation:world-ufo-lights 1.1s ease-in-out infinite alternate}
@keyframes world-ufo-wobble{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
@keyframes world-ufo-lights{from{opacity:.6}to{opacity:1}}

/* Softer flowing handwriting, 20% smaller than the previous brush note. */
@font-face{font-family:WorldNote;src:url('/assets/fonts/zen-kurenaido-world.woff') format('woff');font-display:swap;font-weight:400;font-style:normal}
html[lang="ja"] body .tl-world__handwritten,html[lang="ja"] body .tl-world__handwritten span{font-family:WorldNote,cursive!important;font-weight:400}
html[lang="ja"] body .tl-world__handwritten{font-size:clamp(21px,2.45vw,34px);letter-spacing:-.025em;line-height:1.5;transform:rotate(-7deg) skewX(-5deg);-webkit-text-stroke:0}
.tl-world__handwritten span:first-child{transform:rotate(.8deg)}
.tl-world__handwritten span:last-child{transform:translateX(.5em) rotate(-1.8deg)}
@media(max-width:700px){html[lang="ja"] body .tl-world__handwritten{font-size:21px}}
/* Ground activity: staggered, gentle and governed by the same pause control. */
.world-tree-crown{transform-origin:0px -24px;animation:world-tree-sway 6.4s ease-in-out infinite}
.world-tree-crown--second{animation-duration:7.3s;animation-delay:-2s}
.world-grass{transform-origin:0 0;animation:world-grass-sway 4.7s ease-in-out infinite}
.world-grass--second{animation-delay:-2s}
@keyframes world-tree-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes world-grass-sway{0%,100%{transform:skewX(-10deg)}50%{transform:skewX(12deg)}}
.world-falling-leaf--one{animation:world-leaf-one 16s ease-in-out infinite}
.world-falling-leaf--two{animation:world-leaf-two 21s ease-in-out infinite}
@keyframes world-leaf-one{0%,55%{opacity:0;transform:translate(484px,830px) rotate(-15deg) scale(.75)}58%{opacity:1}70%{transform:translate(518px,845px) rotate(110deg) scale(.75)}85%{opacity:.8;transform:translate(565px,896px) rotate(235deg) scale(.75)}96%,100%{opacity:0;transform:translate(597px,921px) rotate(300deg) scale(.75)}}
@keyframes world-leaf-two{0%,30%{opacity:0;transform:translate(948px,327px) scale(.55)}33%{opacity:1}47%{transform:translate(963px,365px) rotate(130deg) scale(.55)}62%{opacity:.8;transform:translate(1025px,396px) rotate(245deg) scale(.55)}73%,100%{opacity:0;transform:translate(1050px,419px) rotate(300deg) scale(.55)}}
.world-window-glow{opacity:0;mix-blend-mode:soft-light;animation:world-windows 17s ease-in-out infinite;pointer-events:none}
.world-window-glow--two{animation-duration:23s;animation-delay:-9s}
.world-window-glow--three{animation-duration:29s;animation-delay:-17s}
@keyframes world-windows{0%,18%,100%{opacity:0}35%,65%{opacity:.7}85%{opacity:0}}
.world-delivery-route{animation:world-delivery-tour 44s linear infinite}
.world-delivery-body{animation:world-delivery-bob 1.1s ease-in-out infinite}
.world-delivery-beacon{animation:world-delivery-beacon 2.4s ease-in-out infinite}
@keyframes world-delivery-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes world-delivery-beacon{0%,100%{fill:#81dfa7}50%{fill:#c0ffd5}}
@keyframes world-delivery-tour{0%,10%,100%{transform:translate(730px,812px)}27%,38%{transform:translate(787px,714px)}55%,66%{transform:translate(917px,621px)}83%{transform:translate(787px,714px)}}
.world-blink{opacity:0;animation:world-character-blink 11s linear infinite}
.world-blink--yellow{animation-duration:13s;animation-delay:-5s}
.world-blink--purple{animation-duration:17s;animation-delay:-9s}
@keyframes world-character-blink{0%,44%,47%,100%{opacity:0}44.5%,46.5%{opacity:1}}
@keyframes world-wave-appear{0%,61%,100%{opacity:0}48%{opacity:1}}
@keyframes world-wave-hand{0%,48%,61%,100%{transform:rotate(0)}50%,54%,58%{transform:rotate(-13deg)}52%,56%,60%{transform:rotate(7deg)}}
.tl-world--still .world-blink,.tl-world--still /* Compact the introduction without overlapping the handwriting or map controls. */
.tl-world__header{margin-bottom:22px}
.tl-world__hint{margin-bottom:12px}
.tl-world__motion-toggle{margin:0 auto 6px}
html[lang="ja"] body .tl-world__handwritten{margin-top:8px;margin-bottom:-8px}
@media(max-width:700px){.tl-world__header{margin-bottom:18px}html[lang="ja"] body .tl-world__handwritten{margin-top:8px;margin-bottom:0}}

/* Second delivery route uses the opposite branch, staggered to separate arrivals. */
.world-delivery-route--second{animation:world-delivery-tour-two 48s linear -19s infinite}
@keyframes world-delivery-tour-two{0%,9%,100%{transform:translate(750px,832px)}25%,36%{transform:translate(704px,704px)}54%,66%{transform:translate(558px,604px)}82%{transform:translate(704px,704px)}}

/* Small four-line English signature overlaps the lower-right island rim. */
@font-face{font-family:WorldCaveat;src:url('/assets/fonts/caveat-world-note.woff') format('woff');font-style:normal;font-weight:500;font-display:swap}
html[lang="ja"] body .world-english-note text,html[lang="ja"] body .world-english-note tspan{font-family:WorldCaveat,cursive!important;font-size:32px;font-weight:500;letter-spacing:.2px;fill:#000;stroke:none;pointer-events:none}
