/* Native brand controls: die-cut edges follow the actual official logo alpha. */
.portal-tiktok{display:flex;align-items:center;justify-content:center;gap:4px;width:fit-content;max-width:100%;margin:8px auto 0;padding:2px 10px 2px 2px;border:1px solid #ffffffa6;border-radius:5px;background:#000;color:#fff;font-size:14px;font-weight:600;line-height:1.3;box-shadow:0 2px 8px #00101b44}
.portal-tiktok img{width:32px;height:32px;object-fit:contain;flex:none;border-radius:3px}
.tiktok-shop-mark{display:flex;align-items:center;gap:10px;width:fit-content;max-width:100%;padding:7px 20px 7px 5px;background:#000;border-radius:6px;color:#fff;margin:18px 0 22px}
.tiktok-shop-mark img{width:58px;height:58px;object-fit:contain;flex:none}.service-area .tiktok-shop-mark h3{font:600 29px/1.25 var(--display);margin:0}
.service-portal[data-detail=dpro]{--decal-logo:url('assets/dpro.png')}
.service-portal[data-detail='2ndbuzz']{--decal-logo:url('assets/2ndbuzz.png')}
.service-portal[data-detail=aporo]{--decal-logo:url('assets/aiaporo.png')}
.surf-services .portal-brand.brand-sticker{width:68%;height:auto;padding:0;background:none;border:0;border-radius:0;outline:0;box-shadow:none;overflow:visible;color:#112b43;transform:translate(-50%,-50%) rotate(-43deg) skewX(-3deg);filter:drop-shadow(0 1.5px 0 #b7c4cd) drop-shadow(1px 3px 1.5px #082c4659)}
.surf-services .brand-sticker img{display:block;width:100%;max-height:none;height:auto;object-fit:contain;background:transparent;opacity:1;filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(1px 1px 0 #fff) drop-shadow(-1px -1px 0 #fff)}
.brand-sticker::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,transparent 12%,#ffffff78 29%,transparent 46%,#ffffff30 71%,transparent 87%);mask-image:var(--decal-logo);mask-size:100% 100%;mask-repeat:no-repeat;opacity:.55}
.surf-services .brand-sticker.sns-wordmark{width:61%;height:29%;padding:5px 10px;border:3px solid white;border-radius:50%;background:linear-gradient(130deg,#fff,#edf3f8 52%,#fff 68%);outline:1px solid #d4dee6;font-size:24px;line-height:1;box-shadow:inset 0 0 0 2px #1a4165}
.brand-sticker.sns-wordmark::after{display:none}
.surf-services .brand-sticker.sns-wordmark>span{font-size:14px;line-height:1.2}

/* The private destination opens only by choice; its entry objects are balloons. */
.balloon-sprite{display:block;width:100%;aspect-ratio:1;background:url('assets/park-balloons-atlas-v1.webp') var(--atlas-x,0%) var(--atlas-y,0%)/300% 200% no-repeat}
.balloon-target .balloon-sprite{filter:drop-shadow(0 6px 12px #000b);transform-origin:50% 80%;animation:park-breeze var(--swim-speed,7s) ease-in-out infinite;animation-delay:var(--swim-delay,0s)}
.balloon-target .fish-label{margin-top:-17px;background:radial-gradient(ellipse,#0b163cce,transparent 75%);text-shadow:0 2px 6px #000,0 0 12px #000}
@keyframes park-breeze{0%,100%{transform:translate(-3px,5px) rotate(-3deg)}50%{transform:translate(4px,-7px) rotate(3deg)}}
.balloon-target:hover .balloon-sprite,.balloon-target:focus .balloon-sprite,.balloon-target:active .balloon-sprite{animation-play-state:paused;filter:drop-shadow(0 0 12px #e1bffff0)}
#detail-specimen.balloon-sprite{width:95px;margin:-35px 0 -10px;filter:drop-shadow(0 3px 8px #0a061980)}
body[data-place=private] .premium-family{background:#111c36}
body[data-place=private] .screen-tone{background:linear-gradient(90deg,#0a1429f2,#11193780 31%,transparent 58%),linear-gradient(0deg,#071229f2,transparent 28%),linear-gradient(180deg,#071b3780,transparent 20%)}
body[data-place=private] .scene-copy h1{font-size:clamp(60px,7vw,105px)}
body[data-place=private] .explore-hint{color:#d6d3f6}
body[data-motion=paused] .balloon-sprite,.detail-open .balloon-sprite{animation-play-state:paused}

@media(max-width:900px){
 .surf-services .portal-brand.brand-sticker{width:69%}
 .surf-services .brand-sticker.sns-wordmark{width:62%;height:31%;font-size:21px;padding:3px 6px}
 .surf-services .brand-sticker.sns-wordmark>span{font-size:12px}
 body[data-place=private] .screen-tone{background:linear-gradient(180deg,#0b1835 0%,#0b1835 18%,#0b1835aa 26%,transparent 41%,transparent 77%,#071229 96%)}
 body[data-place=private] .scene-copy h1{font-size:52px}
}
@media(max-width:600px) and (orientation:portrait){
 .surf-services .portal-brand.brand-sticker{width:71%}
 .surf-services .brand-sticker.sns-wordmark{width:64%;height:32%;font-size:18px;padding:3px 4px}
 body[data-place=private] .scene-copy h1{font-size:clamp(34px,10.1vw,47px)}
 .balloon-target .fish-label{margin-top:-14px}
}
@media(max-width:600px) and (orientation:portrait) and (max-height:740px){
 .surf-services .portal-brand.brand-sticker{width:73%}
 .surf-services .brand-sticker.sns-wordmark{width:65%;height:34%;font-size:15px;padding:2px 3px;border-width:2px}
 .surf-services .brand-sticker.sns-wordmark>span{font-size:12px}
 .balloon-target .fish-label{margin-top:-12px}
}
@media(max-width:900px) and (orientation:landscape){
 .surf-services .portal-brand.brand-sticker{width:74%}
 .surf-services .brand-sticker.sns-wordmark{width:66%;height:34%;font-size:15px;padding:2px}
 body[data-place=private] .scene-copy h1{font-size:33px}
 body[data-place=private] .screen-tone{background:linear-gradient(90deg,#09152df2,transparent 55%),linear-gradient(0deg,#071229ed,transparent 32%)}
}
@media(prefers-reduced-motion:reduce){.balloon-sprite{animation:none!important}}
@media(forced-colors:active){.brand-sticker{background:Canvas!important;color:CanvasText!important;border-color:ButtonText!important}.balloon-target .fish-label{color:CanvasText;background:Canvas;text-shadow:none}}
