/* ID: WBT-0250 / v59 / 2026-11-02 — six services, with room to see and read. */
.gal[data-service-overview]{min-height:0;padding:clamp(72px,9svh,120px) clamp(20px,4vw,64px) 0;isolation:isolate}
.gal__head{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 30px;align-items:start}
.gal[data-service-overview] .gal__title{font-size:clamp(58px,8.6vw,148px);line-height:.98;letter-spacing:-.055em;min-width:0}
.gal[data-service-overview] .gal__title span:nth-child(2){padding-left:.22em}
.gal[data-service-overview] .gal__arrow{position:relative;inset:auto;width:clamp(70px,8vw,116px);grid-column:2;grid-row:1;margin:5px 0 0}
.gal[data-service-overview] .gal__copy{grid-column:1/-1;width:min(600px,100%);margin:0 0 0 auto;font-size:14px;line-height:1.95}
.gal[data-service-overview] .gal__by{font-size:12px;margin-top:12px}
@media(min-width:1100px){
 .gal__head{grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr) auto;gap:24px;align-items:center}
 .gal[data-service-overview] .gal__title{font-size:clamp(72px,7.2vw,132px)}
 .gal[data-service-overview] .gal__copy{grid-column:2;grid-row:1;margin:0;font-size:13px}
 .gal[data-service-overview] .gal__arrow{grid-column:3;grid-row:1;width:88px;margin:0}
}
.service-bubbles{position:relative;z-index:2;margin:36px calc(-1 * clamp(20px,4vw,64px)) 0}
html.service-overview-visible .gcta{visibility:hidden;opacity:0;pointer-events:none}
.service-bubbles__rail{display:flex;gap:clamp(18px,2.5vw,36px);overflow-x:auto;overflow-y:hidden;padding:22px clamp(20px,4vw,64px) 20px;scroll-padding-inline:clamp(20px,4vw,64px);scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.service-bubbles__rail::-webkit-scrollbar{display:none}
.service-bubble{display:block;flex:0 0 clamp(214px,22vw,286px);min-width:0;scroll-snap-align:start;text-decoration:none;color:#fff;text-align:center;outline-offset:5px;border-radius:44px}
.service-bubble__orb{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:50%;isolation:isolate;border:1px solid #e6fff65c;background:radial-gradient(ellipse at 31% 14%,#f0fff83d,transparent 46%),radial-gradient(ellipse at 78% 85%,var(--bubble-glow,#c5f28d) 0%,transparent 62%),linear-gradient(150deg,#e8fff018,#071b121a 60%,#e0fff312);box-shadow:inset 1px 2px 2px #fff8,inset -3px -5px 12px #c3ffd51a,0 18px 34px #0003;transition:transform .35s,box-shadow .35s}
.service-bubble__orb::before{content:"";position:absolute;inset:6%;border-radius:50%;border-top:3px solid #ffffffe0;border-left:1px solid #ffffff4f;transform:rotate(-25deg);mask-image:linear-gradient(#000 0%,transparent 58%);pointer-events:none}
.service-bubble__orb::after{content:"";position:absolute;left:19%;top:10%;width:22%;height:6%;border-radius:50%;background:#ffffffe0;filter:blur(5px);transform:rotate(-32deg);opacity:.5;pointer-events:none}
.service-bubble__orb img{position:absolute;left:14%;top:6%;width:72%;height:64%;object-fit:contain;filter:drop-shadow(0 8px 12px #0004);transition:transform .35s}
.service-bubble__name{position:absolute;left:10%;right:10%;bottom:11%;display:grid;gap:4px;font-family:var(--font-latin),sans-serif;font-size:clamp(18px,1.9vw,24px);font-weight:850;line-height:1.12;letter-spacing:-.035em;text-shadow:0 2px 12px #03130bd9}
.service-bubble__name small{font-size:9px;font-weight:700;letter-spacing:.16em;opacity:.78}
.service-bubble__purpose{display:block;margin:18px auto 0;max-width:100%;padding-inline:6px;font-size:13px;line-height:1.7;color:#e3efe5;overflow-wrap:anywhere;text-wrap:pretty;word-break:auto-phrase}
.service-bubble:focus-visible{outline:2px solid var(--lime)}
@media(hover:hover){.service-bubble:hover .service-bubble__orb{transform:translateY(-5px);box-shadow:inset 1px 2px 2px #fff9,inset -3px -5px 16px #d6ffcf38,0 22px 35px #0004}.service-bubble:hover img{transform:translateY(-3px) scale(1.035)}}
.service-bubbles__controls{display:flex;align-items:center;gap:20px;padding:4px clamp(20px,4vw,64px) 20px}
.service-bubbles__hint{font:600 10px/1.5 var(--font-latin),sans-serif;letter-spacing:.08em;color:#d0dfd0}
.service-bubbles__meter{position:relative;flex:1;height:2px;background:#ffffff24;max-width:300px;overflow:hidden}
.service-bubbles__meter i{display:block;width:28%;height:100%;background:var(--lime);transform:translateX(var(--bubble-progress,0%));transition:transform .12s linear}
.service-bubbles__arrows{display:flex;gap:9px;margin-left:auto}
.service-bubbles__arrows button{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff66;background:#ffffff0b;color:#fff;font-size:23px;line-height:1;cursor:pointer}
.service-bubbles__arrows button:disabled{opacity:.25;cursor:default}.service-bubbles__arrows button:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.service-bubbles__arrows button:not(:disabled):hover{background:#ffffff1f}
.gal__playground{position:relative;margin:0 calc(-1 * clamp(20px,4vw,64px));height:clamp(330px,50svh,520px);border-top:1px solid #ffffff14}
html.no-webgl .gal[data-service-overview]{padding-bottom:0}
html.no-webgl .gal__playground{height:auto;min-height:200px;padding:26px 20px 40px}
html.no-webgl .gal__playground .gal__fallback{margin:0;gap:12px}
html.no-webgl .gal__playground .gal__fallback img{width:90px;height:90px}
/* Gallery: real header and footer rows, with a scrolling body between them. */
.gmode[data-gallery-v59]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;background:#0b1911}
.gmode[data-gallery-v59][hidden]{display:none}
.gmode__head{position:relative;padding:26px clamp(20px,4vw,58px) 18px;border-bottom:1px solid #ffffff1a}
.gmode[data-gallery-v59] .gmode__title{position:static;max-width:calc(100% - 64px);font-size:clamp(28px,3.5vw,52px);line-height:1.12;letter-spacing:-.035em;margin:0;gap:.2em}
.gmode[data-gallery-v59] .gmode__close{position:absolute;right:clamp(16px,3vw,42px);top:20px;z-index:5}
.gmode__filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.gmode__filter{display:flex;align-items:center;gap:9px;min-height:42px;padding:10px 16px;border:1px solid #ffffff38;border-radius:999px;background:transparent;color:#e6f0e7;font-size:13px;font-weight:750;cursor:pointer;line-height:1.4}
.gmode__filter small{font:700 10px/1.2 var(--font-latin),sans-serif;opacity:.65}
.gmode__filter[aria-pressed="true"]{background:var(--lime);border-color:var(--lime);color:#0c2a17}
.gmode__filter:focus-visible{outline:2px solid #fff;outline-offset:3px}
.gmode__body{position:relative;min-height:0}
.gmode[data-gallery-v59] .gmode__grid{position:absolute;inset:0;padding:25px clamp(20px,4vw,58px) 30px;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-content:start;scrollbar-gutter:stable}
.gmode[data-gallery-v59] .gcard{display:flex;flex-direction:column;border:1px solid #ffffff29;border-radius:26px;background:#f0f1e7;color:#132a1d;box-shadow:0 12px 32px #0002;min-width:0}
.gmode[data-gallery-v59] .gcard[hidden]{display:none!important}
.gmode[data-gallery-v59] .gcard::before{display:none;content:none}
.gmode[data-gallery-v59] .gcard img{position:relative;inset:auto;display:block;width:100%;height:clamp(150px,20svh,230px);object-fit:cover;background:radial-gradient(ellipse at 50% 30%,#e2efd8,#f4f0e5 80%);padding:0}
.gmode[data-gallery-v59] .gcard--contain img{object-fit:contain;padding:15px 18px 4px}
.gmode[data-gallery-v59] .gcard__meta{position:static;display:flex;flex-direction:column;gap:8px;width:100%;padding:19px 22px 23px;background:none;color:inherit;text-shadow:none}
.gmode[data-gallery-v59] .gcard__tag{align-self:flex-start;max-width:100%;margin:0;padding:0;border-radius:0;background:transparent;color:#476b45;font-size:10px;line-height:1.5;letter-spacing:.035em}
.gmode[data-gallery-v59] .gcard__title{font-family:var(--font-latin),var(--font-jp),sans-serif;font-size:clamp(17px,1.65vw,23px);font-weight:850;line-height:1.3;letter-spacing:-.03em;overflow-wrap:anywhere}
.gmode[data-gallery-v59] .gcard__lead{display:block;font-size:13px;font-weight:500;line-height:1.7;opacity:1;margin:0;overflow-wrap:anywhere}
.gmode[data-gallery-v59] .gcard:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.gmode[data-gallery-v59] .gmode__focus{inset:0;position:absolute;min-height:0}
.gmode[data-gallery-v59] .gmode__track{width:max-content;gap:24px;min-height:100%;padding:24px 0}
.gmode[data-gallery-v59] .gmode__focus .gcard{flex-basis:min(56vw,640px);max-height:100%;flex-shrink:0}
.gmode[data-gallery-v59] .gmode__focus .gcard img{height:clamp(130px,24svh,240px)}
.gmode[data-gallery-v59] .gmode__bottom{position:relative;inset:auto;display:flex;align-items:center;flex-wrap:nowrap;gap:18px;margin:0;padding:16px clamp(20px,4vw,58px);border-top:1px solid #ffffff1a;background:#0b1911}
.gmode[data-gallery-v59] .gmode__count{flex:1;text-align:left;font-size:12px;min-width:0}
.gmode[data-gallery-v59] .gmode__progress{flex:0 1 180px}
.gmode[data-gallery-v59].is-grid .gmode__progress{display:none}
.gmode[data-gallery-v59] .gmode__actions{width:auto;justify-content:flex-end;gap:7px}
.gmode[data-gallery-v59].is-grid [data-gmode-prev],.gmode[data-gallery-v59].is-grid [data-gmode-next]{display:none}
.gmode[data-gallery-v59] .gbtn{min-height:42px;min-width:42px}.gmode[data-gallery-v59] .gbtn--txt{padding:10px 15px}
@media(max-width:1099px){.gmode[data-gallery-v59] .gmode__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .gal[data-service-overview]{padding-top:64px}.gal__head{gap:22px 14px}
 .gal[data-service-overview] .gal__title{font-size:clamp(36px,10vw,64px);line-height:1.02}.gal[data-service-overview] .gal__arrow{width:54px;margin-top:0}
 .gal[data-service-overview] .gal__copy{font-size:13px;margin:0;width:100%}.gal[data-service-overview] .gal__by{font-size:11px}
 .service-bubbles{margin-top:22px}.service-bubble{flex-basis:220px}.service-bubble__name{font-size:20px}.service-bubble__purpose{font-size:12px;max-width:100%}
 .service-bubbles__controls{gap:14px}.service-bubbles__hint{font-size:9px;letter-spacing:.02em}.service-bubbles__arrows button{width:44px;height:44px}.service-bubbles__meter{max-width:90px}
 .gal__playground{height:320px}.gmode__head{padding:22px 16px 15px}.gmode[data-gallery-v59] .gmode__title{font-size:clamp(25px,6.5vw,35px);max-width:calc(100% - 55px)}
 .gmode[data-gallery-v59] .gmode__close{right:14px;top:17px}.gmode__filters{gap:7px;margin-top:19px}.gmode__filter{font-size:11px;padding:9px 12px;gap:6px;min-height:40px}
 .gmode[data-gallery-v59] .gmode__grid{padding:18px 16px 24px;gap:16px}.gmode[data-gallery-v59] .gcard__meta{padding:16px 18px 20px}
 .gmode[data-gallery-v59] .gmode__focus .gcard{flex-basis:84vw}.gmode[data-gallery-v59] .gmode__track{gap:16px}.gmode[data-gallery-v59] .gcard__title{font-size:19px}
 .gmode[data-gallery-v59] .gmode__bottom{padding:12px 16px;gap:10px}.gmode[data-gallery-v59] .gmode__progress{display:none}.gmode[data-gallery-v59] .gmode__count{font-size:10px}.gmode[data-gallery-v59] .gbtn--txt{padding:9px 12px;font-size:11px}
}
@media(max-width:539px){.gmode[data-gallery-v59] .gmode__grid{grid-template-columns:minmax(0,1fr)}.gmode[data-gallery-v59] .gmode__grid .gcard img{height:180px}}
@media(max-height:550px) and (min-width:540px){.gmode__head{padding-block:14px 10px}.gmode__filters{margin-top:10px}.gmode[data-gallery-v59] .gmode__title{font-size:28px}.gmode[data-gallery-v59] .gmode__grid .gcard img{height:140px}.gmode[data-gallery-v59] .gmode__focus .gcard{display:grid;grid-template-columns:45% 55%;flex-basis:min(80vw,720px)}.gmode[data-gallery-v59] .gmode__focus .gcard img{height:100%;max-height:210px}}
@media(prefers-reduced-motion:reduce){.service-bubble *,.gmode[data-gallery-v59] .gcard,.gmode[data-gallery-v59] .gmode__track{transition:none!important}}
html.rm .service-bubble *,html.rm .gmode[data-gallery-v59] .gcard,html.rm .gmode[data-gallery-v59] .gmode__track{transition:none!important}

/* ID: WBT-0251 / v60 / 2026-11-02 — float without clipping; visible horizontal navigation. */
.service-bubbles{--bubble-columns:4;--bubble-gap:clamp(18px,2.5vw,36px)}
.service-bubbles__intro{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 clamp(20px,4vw,64px) 6px}
.service-bubbles__label{font:750 11px/1.4 var(--font-latin),sans-serif;letter-spacing:.14em;color:var(--lime)}
.service-bubbles__hint{display:flex;align-items:center;gap:9px;margin:0;padding:8px 12px;border:1px solid #e9fff33d;border-radius:999px;background:#edfff20a;color:#ecf7ec;font-size:11px;letter-spacing:.02em}
.service-bubbles__gesture{font-size:22px;line-height:1;color:var(--lime)}
.service-bubbles__rail{gap:var(--bubble-gap);padding-top:30px;padding-bottom:22px}
.service-bubble{flex-basis:calc((100% - (var(--bubble-columns) - 1) * var(--bubble-gap))/var(--bubble-columns))}
.service-bubble__float{display:block;width:100%;max-width:286px;margin-inline:auto;animation:bubble-drift 7.6s ease-in-out infinite;animation-play-state:paused;will-change:transform}
.service-bubbles.is-in-view .service-bubble__float{animation-play-state:running}
.service-bubble:nth-child(2) .service-bubble__float{animation-duration:8.8s;animation-delay:-3.1s}
.service-bubble:nth-child(3) .service-bubble__float{animation-duration:7s;animation-delay:-4.6s}
.service-bubble:nth-child(4) .service-bubble__float{animation-duration:9.4s;animation-delay:-1.8s}
.service-bubble:nth-child(5) .service-bubble__float{animation-duration:8.2s;animation-delay:-5.4s}
.service-bubble:nth-child(6) .service-bubble__float{animation-duration:7.3s;animation-delay:-2.7s}
.service-bubble:focus-within .service-bubble__float{animation-play-state:paused}
@media(hover:hover){.service-bubble:hover .service-bubble__float{animation-play-state:paused}}
@keyframes bubble-drift{0%,100%{transform:translate3d(0,5px,0) rotate(-.65deg)}50%{transform:translate3d(0,-8px,0) rotate(.65deg)}}
.service-bubbles__controls{gap:16px;padding-top:4px;padding-bottom:26px}
.service-bubbles__count{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font:700 13px/1.3 var(--font-latin),sans-serif;letter-spacing:.06em;color:#fff;margin:0}
.service-bubbles__count small{font-size:10px;color:#b2c8b8}
.service-bubbles__meter{height:4px;max-width:260px;border-radius:8px;background:#e6fff42b}
.service-bubbles__meter i{width:var(--bubble-thumb,66.666%);border-radius:inherit;transform:translateX(var(--bubble-progress,0%));background:var(--lime)}
.service-bubbles__arrows{gap:10px}
.service-bubbles__arrows button{width:48px;height:48px;border-color:#d6f7df80}
.service-bubbles__arrows [data-bubble-next]{display:flex;justify-content:center;gap:16px;width:auto;min-width:134px;padding:0 20px;background:var(--lime);border-color:var(--lime);color:#102d1c;font-size:22px;font-weight:750;box-shadow:0 0 26px #b7f26a1c}
.service-bubbles__next-label{font-size:12px;white-space:nowrap}
.service-bubbles__arrows [data-bubble-next]:not(:disabled):hover{background:#d6ff9c;transform:translateX(2px)}
.service-bubbles__arrows [data-bubble-next]:disabled{opacity:.35;background:#d3e8d2;color:#183020;box-shadow:none}
.gal__playground{border-top:0}
@media(max-width:1099px){.service-bubbles{--bubble-columns:2}}
@media(max-width:639px){.service-bubbles{--bubble-columns:1}.service-bubble__float{max-width:260px}.service-bubbles__intro{gap:10px}.service-bubbles__label{font-size:10px}.service-bubbles__hint{font-size:10px;padding:7px 10px;gap:6px}.service-bubbles__controls{gap:10px}.service-bubbles__count{font-size:12px;gap:5px}.service-bubbles__meter{max-width:none;min-width:12px}.service-bubbles__arrows{gap:7px}.service-bubbles__arrows button{width:44px;height:44px}.service-bubbles__arrows [data-bubble-next]{min-width:112px;padding:0 14px;gap:12px}}
@media(prefers-reduced-motion:reduce){.service-bubble__float{animation:none!important;will-change:auto}}
html.rm .service-bubble__float{animation:none!important;will-change:auto}

.service-bubbles__rail{clip-path:inset(0 max(0px,calc(clamp(20px,4vw,64px) - 8px)))}
.service-bubbles__arrows [data-bubble-next]{border-radius:999px}

/* ID: WBT-0252 / v61 / 2026-11-02 — compact the contained playground after live review. */
.gal__playground{height:clamp(200px,28svh,260px)}

/* ID: WBT-0253 / v62 / 2026-11-02 — compact services; give full-size balls their own room. */
.gal[data-service-overview] .gal__title{font-size:clamp(44px,7vw,70px)}
.service-bubble__float{max-width:216px}
.service-bubble__name{font-size:18px}
.service-bubble__name small{font-size:8px}
.service-bubble__purpose{margin-top:12px;font-size:12px}
.service-bubbles__rail{padding-top:26px;padding-bottom:18px}
.gal__playground{height:var(--ball-stage-height,420px)}
@media(min-width:1100px){.gal[data-service-overview] .gal__title{font-size:clamp(60px,5.6vw,104px)}}
@media(max-width:639px){.service-bubble__float{max-width:200px}.service-bubble__purpose{font-size:12px}.gal[data-service-overview] .gal__title{font-size:clamp(30px,8.4vw,48px)}}

/* ID: WBT-0255 / v64 / 2026-11-02 — all six services share one bubble stage. */
.service-bubbles__rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;overflow:visible;clip-path:none;scroll-snap-type:none}
.service-bubbles__rail .service-bubble{min-width:0}
.service-bubbles__controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.service-bubbles__summary{margin:0;min-height:2.5em;color:#d1e4d4;font-size:12px;line-height:1.7}
.service-bubbles__actions{display:none;gap:8px;margin-left:auto}
.service-bubbles__actions button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 16px;border:1px solid #e3ffeb59;border-radius:999px;background:#ecfff20b;color:#f2fff4;font-size:12px;font-weight:700;cursor:pointer}
.service-bubbles__actions [data-bubble-replay]{background:var(--lime);color:#102c1b;border-color:var(--lime)}
.service-bubbles__actions button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.service-bubbles__actions button:hover{filter:brightness(1.1)}
.service-bubbles.is-physics .service-bubbles__actions{display:flex}
.service-bubbles.is-physics.is-reduced .service-bubbles__actions{display:none}
.service-bubbles.is-physics .service-bubbles__rail{display:block;position:relative;height:var(--bubble-stage-height);padding:0;overflow:hidden;clip-path:none;touch-action:pan-y;isolation:isolate}
.service-bubbles.is-physics .service-bubble{position:absolute;left:0;top:0;display:block;width:var(--bubble-diameter);height:var(--bubble-diameter);border-radius:50%;will-change:transform;outline-offset:4px}
.service-bubbles.is-physics .service-bubble__float{display:block;width:100%;height:100%;max-width:none;margin:0;animation:none!important;will-change:auto}
.service-bubbles.is-physics .service-bubble__orb{width:100%;height:100%;transform:none!important;transition:box-shadow .25s}
.service-bubbles.is-physics .service-bubble__orb img{transform:none!important}
.service-bubbles.is-physics .service-bubble__name{font-size:clamp(14px,1.45vw,18px)}
.service-bubbles.is-physics .service-bubble__name small{font-size:8px}
.service-bubbles.is-physics .service-bubble__purpose{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.service-bubbles.is-physics .service-bubble:hover .service-bubble__orb,.service-bubbles.is-physics .service-bubble:focus-visible .service-bubble__orb{box-shadow:inset 1px 2px 2px #fff9,inset -3px -5px 16px #d6ffcf38,0 0 28px #c8ff7c3a}
@media(max-width:1099px){.service-bubbles__rail{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:599px){.service-bubbles__rail{grid-template-columns:repeat(2,minmax(0,1fr))}.service-bubbles__summary{width:100%;font-size:11px}.service-bubbles__actions{margin-left:0}.service-bubbles__actions button{padding:9px 13px;font-size:11px;gap:8px}.service-bubbles.is-physics .service-bubble__name{font-size:14px}}
