.country-list{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}.country-button{font-size:13px;gap:9px;min-height:62px}.country-code{width:21px;flex-shrink:0}.country-button>span:nth-child(2){flex:1}.country-button>span:last-child{font-size:16px;margin-left:0;flex-shrink:0}.globe-wrap canvas{touch-action:pan-y}.lotos-heading{display:flex;align-items:start;flex-direction:column;gap:9px}.lotos-heading img{height:43px;width:auto;max-width:90%;object-fit:contain;object-position:left}.lotos-expansion{font-size:13px;letter-spacing:-.01em;line-height:1.4;font-weight:500}.lotos-context{font-size:12px;letter-spacing:0;line-height:1.4;color:var(--muted)}.concept-card h3{min-height:115px}.festival-visual{background:#f7f7f3}.festival-map-view{position:relative;height:100%;width:100%}.festival-map{display:block;width:100%;height:100%}.festival-legend{position:absolute;top:30%;left:60%;right:5%;display:grid;gap:8px}.festival-zone{border:0;border-bottom:1px solid #c5c5be;background:transparent;padding:6px 0;font-size:12px;display:flex;align-items:center;gap:7px;text-align:left;line-height:1.35}.festival-zone>span:first-child{font-size:12px;color:#77776e}.festival-zone>span:last-child{margin-left:auto;font-size:13px;transition:transform .3s}.festival-zone[aria-pressed=true]{font-weight:700}.festival-zone[aria-pressed=true]>span:last-child{transform:rotate(45deg)}.festival-route{animation:festivalRoute 9s linear infinite}.map-point{transition:fill .3s,stroke .3s}.map-point.is-active{stroke:#151510;stroke-width:3;fill:#e3e3d8;animation:mapPulse 3s ease-in-out infinite}.festival-photo{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .5s;object-fit:cover}.festival-view-controls{position:absolute;top:12px;left:18px;display:flex;gap:7px;align-items:center;z-index:3;font-size:12px;background:#f7f7f3eb;padding:4px 7px}.festival-view-controls>button{border:0;background:transparent;padding:3px;font-size:12px;cursor:pointer;color:#77776d}.festival-view-controls>button[aria-pressed=true]{font-weight:700;color:var(--ink)}.festival-visual[data-festival-view=photo] .festival-photo{opacity:1}.festival-visual[data-festival-view=photo] .festival-legend{visibility:hidden}.festival-visual[data-festival-view=photo] .visual-caption{display:none}.city-visual{min-height:500px;background:#e5e4e0;isolation:isolate;perspective:1200px}.city-visual>img{object-position:center;transform:scale(1.02);animation:galleryBreathe 18s ease-in-out infinite}.city-visual:hover>img{transform:scale(1.025)}.city-visual>.city-art-caption{left:18px;right:auto;bottom:18px;background:#e5e4e0e8;color:var(--ink);padding:5px 7px;font-size:12px;letter-spacing:.04em}.city-visual>span:not(.city-art-caption){right:18px;bottom:18px;color:var(--ink);background:#e5e4e0e8;padding:5px 7px}.gallery-lights{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform:translate(calc(var(--panel-x,0)*-6px),calc(var(--panel-y,0)*-6px))}.gallery-trail{fill:none;stroke:#fff9db;stroke-width:1.4;stroke-dasharray:8 80;animation:galleryLight 12s linear infinite;opacity:.75}.gallery-bulbs{fill:#fff4c7}.gallery-bulbs circle{animation:bulbGlow 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.gallery-bulbs circle:nth-child(2){animation-delay:.7s}.gallery-bulbs circle:nth-child(3){animation-delay:1.4s}.gallery-bulbs circle:nth-child(4){animation-delay:2.1s}.gallery-bulbs circle:nth-child(5){animation-delay:2.8s}.egida{min-height:420px}.network-art{min-height:420px}.shield-emblem{position:relative;width:78%;max-width:300px;z-index:1;animation:shieldFloat 10s ease-in-out infinite;transform-style:preserve-3d}.shield-emblem>img{display:block;width:100%;height:auto;object-fit:contain}.shield-emblem:after{content:'';position:absolute;inset:0;mask-image:url(assets/egida-emblem.webp);mask-size:contain;mask-repeat:no-repeat;mask-position:center;background:linear-gradient(115deg,transparent 35%,#ffffffaa 50%,transparent 65%);background-size:300% 300%;animation:shieldScan 8s ease-in-out infinite;pointer-events:none}.network-ring{opacity:.4}.network-orbit-dot{height:5px;width:5px;position:absolute;left:50%;top:50%;margin:-2px;border-radius:50%;background:var(--ink);animation:networkOrbit 18s linear infinite}.network-caption{font-size:12px;bottom:20px}.motion-paused .festival-route,.motion-paused .map-point,.motion-paused .city-visual>img,.motion-paused .gallery-trail,.motion-paused .gallery-bulbs circle,.motion-paused .shield-emblem,.motion-paused .shield-emblem:after,.motion-paused .network-orbit-dot{animation-play-state:paused!important}
@keyframes festivalRoute{to{stroke-dashoffset:-110}}@keyframes mapPulse{50%{stroke-width:1.5;fill:#fff}}@keyframes galleryBreathe{0%,100%{transform:scale(1.025) translate(calc(var(--panel-x,0)*8px),calc(var(--panel-y,0)*8px))}50%{transform:scale(1.055) translate(calc(var(--panel-x,0)*8px),calc(var(--panel-y,0)*8px))}}@keyframes galleryLight{to{stroke-dashoffset:-176}}@keyframes bulbGlow{50%{opacity:.35;transform:scale(.75)}}@keyframes shieldFloat{0%,100%{transform:perspective(900px) translateY(0) rotateY(calc(var(--panel-x,0)*10deg)) rotateX(calc(var(--panel-y,0)*-8deg))}50%{transform:perspective(900px) translateY(-10px) rotateY(calc(var(--panel-x,0)*10deg)) rotateX(calc(var(--panel-y,0)*-8deg))}}@keyframes shieldScan{0%,20%{background-position:0% 0%}80%,100%{background-position:100% 100%}}@keyframes networkOrbit{from{transform:rotate(0deg) translateX(155px)}to{transform:rotate(360deg) translateX(155px)}}
@media(max-width:1100px){.country-list{column-gap:14px}.country-button{font-size:12px;gap:6px}.country-code{font-size:12px;width:18px}.city-visual{min-height:500px}.lotos-expansion{font-size:12px}.festival-zone{font-size:12px}.festival-legend{left:59%;gap:5px}.shield-emblem{width:72%;max-width:260px}}
@media(max-width:700px){.country-list{column-gap:16px}.country-button{min-height:61px;font-size:12px}.concept-card h3{min-height:0}.lotos-heading img{height:40px}.lotos-expansion{font-size:12px}.lotos-context{font-size:12px}.festival-view-controls{top:8px;left:10px;font-size:12px}.festival-view-controls>button{font-size:12px}.festival-legend{left:60%;right:4%;gap:3px;top:25%}.festival-zone{font-size:12px;gap:4px;padding:5px 0}.festival-zone>span:first-child{font-size:12px}.festival-zone>span:last-child{font-size:12px}.city-visual{height:auto;min-height:0;aspect-ratio:4/3}.city-visual>img{object-fit:cover}.city-visual>.city-art-caption{font-size:12px;left:10px;bottom:10px}.city-visual>span:not(.city-art-caption){font-size:12px;right:10px;bottom:10px}.network-art{min-height:320px}.shield-emblem{max-width:225px}.network-caption{bottom:12px;font-size:12px}@keyframes networkOrbit{from{transform:rotate(0deg) translateX(125px)}to{transform:rotate(360deg) translateX(125px)}}}
html{scroll-padding-top:100px}
@media(max-width:700px){html{scroll-padding-top:80px}.festival-visual{aspect-ratio:1.5}.festival-zone{font-size:12px;min-height:27px;padding:5px 0}.festival-zone>span:first-child{font-size:12px}.festival-zone>span:last-child{font-size:12px}.festival-legend{top:23%;gap:1px;left:58%;right:3%}.festival-view-controls>button{font-size:12px}.festival-view-controls{left:8px;top:6px}}
@media(prefers-reduced-motion:reduce){.festival-route,.map-point,.city-visual>img,.gallery-trail,.gallery-bulbs circle,.shield-emblem,.shield-emblem:after,.network-orbit-dot{animation:none!important}}

.interactive-ready .pelican{animation:none;user-select:none;-webkit-user-drag:none;pointer-events:none;opacity:1}
.hero-art{transform:translate(-50%,-50%) translate(var(--art-x,0px),var(--art-y,0px)) translate(var(--drag-x,0px),var(--drag-y,0px)) scale(var(--art-scale,1));touch-action:none}
.hero-art.is-dragging{cursor:grabbing}
.client-cell{border-top:0;border-left:0;font:inherit;width:100%}.client-cell img[src*=vbochonke-clean]{filter:none;mix-blend-mode:multiply}
.client-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:60px 40px 35px;width:min(720px,90vw);max-height:85svh;text-align:center;overflow:auto}
.client-dialog::backdrop{background:#1d1d1d88;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:14px;top:8px;border:0;background:transparent;font-size:32px;padding:4px 12px}
.client-preview-media{min-height:180px;display:flex;justify-content:center;align-items:center;margin:20px 0 35px}.client-preview-media img{max-width:100%;max-height:250px;object-fit:contain;filter:grayscale(1);mix-blend-mode:multiply}
.client-preview-media img[src*=viors],.client-preview-media img[src*=tmtattoo],.client-preview-media img[src*=latattoo],.client-preview-media img[src*=alpinc],.client-preview-media img[src*=valta]{filter:brightness(0)}
.client-dialog h2{font-size:32px}.client-preview-domain{font-size:12px;color:var(--muted);margin-top:12px}.festival-heading{display:flex;flex-direction:column;gap:9px}.festival-brand{display:flex;align-items:center;gap:14px;font-size:30px;letter-spacing:-.04em}.festival-brand img{width:60px;height:60px}.developer-credit{font-size:12px;color:var(--muted);padding-top:20px}
.project-grid{align-items:stretch;padding-bottom:0}.project{display:flex;flex-direction:column}.project:nth-child(even){margin-top:0;margin-bottom:0}.project .project-visual,.project-iworky .project-visual{aspect-ratio:1.75}.project-statement{min-height:58px}.project-copy{flex:1}.project-details{margin-top:auto}.project-offline{font-size:12px;color:var(--muted)}
.language{gap:9px}.header-right{gap:16px}.desktop-nav{gap:18px}
@media(max-width:1100px){.header{gap:15px}.brand{font-size:20px}.desktop-nav{gap:12px}.header-contact{display:none}}
@media(max-width:700px){.language{gap:7px}.header-right{gap:12px}.client-dialog{padding:50px 22px 28px}.festival-brand{font-size:27px}.project-statement{min-height:0}}
html[lang=zh-Hans] body{--font:'Manrope','PingFang SC','Microsoft YaHei','Noto Sans CJK SC',sans-serif}html[lang=zh-Hans] h1,html[lang=zh-Hans] h2,html[lang=zh-Hans] h3{letter-spacing:0;line-height:1.18}
@media(max-width:1000px){.desktop-nav{display:none}.menu-toggle{display:block}.header-contact{display:none}.mobile-nav{top:85px}}@media(max-width:700px){.brand{font-size:18px;gap:4px}.brand-symbol{width:28px}.header-right{gap:8px}.language{gap:6px;font-size:12px}.menu-toggle{width:30px}.mobile-nav{top:80px}}@media(max-width:370px){.brand{font-size:16px}.brand-symbol{width:25px}.header-right{gap:5px}.language{gap:5px;font-size:12px}.header{gap:5px}}
.country-button>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.hero-art .orbit{pointer-events:none}@media(max-width:700px){html[lang=fr] .hero-controls .scroll-link{max-width:80px;text-align:right;font-size:12px;line-height:1.5}.concept-card h3{min-height:115px}}
.project-top{min-height:26px}.project-top>.label{min-width:0}.project-offline{flex-shrink:0;text-align:right;font-size:12px}.project-top{gap:12px}@media(max-width:700px){.project-offline{max-width:95px;line-height:1.4}}

/* Interaction and compact layout refinements */
html{scrollbar-gutter:stable}body.preview-open{overflow:hidden}
.hero-art{touch-action:pan-y}
.client-cell[data-client-domain="metoilafrica.com"] .client-domain{display:none}
.festival-legend{overflow:visible}.festival-zone{min-width:0}.festival-zone>span:nth-child(2){min-width:0;flex:1}.festival-zone>span:last-child{flex-shrink:0;margin-right:5px}
@media(max-width:700px){.brand-symbol{width:34px;flex-shrink:0;transform:scale(.8);transform-origin:left center;margin-right:-7px}.festival-zone{min-height:30px}.festival-view-controls>button{min-height:30px;padding-inline:5px}.festival-view-controls{top:3px}.festival-legend{top:25%}}
@media(max-width:700px){.festival-visual .visual-caption{display:none}}@media(prefers-reduced-motion:reduce){.hero-art{transform:translate(-50%,-50%) translate(var(--drag-x,0px),var(--drag-y,0px))!important}}
@media(max-width:700px){.festival-visual{aspect-ratio:auto}.festival-map-view{height:auto;overflow:hidden}.festival-map{width:170%;height:auto;aspect-ratio:600/350;max-width:none}.festival-legend{position:relative;top:auto;left:auto;right:auto;grid-template-columns:1fr 1fr;gap:0 12px;padding:0 14px 14px;width:100%}.festival-zone{font-size:12px;line-height:1.35;min-height:44px}.festival-zone>span:first-child{font-size:12px}.festival-zone>span:last-child{font-size:13px;margin-right:3px}.festival-view-controls{top:6px;left:8px}.festival-view-controls>button{font-size:12px;min-height:36px}.festival-visual[data-festival-view=photo] .festival-map-view{visibility:hidden}}
@media(min-width:701px) and (max-height:760px){.hero-art{top:55%}}

/* Readable type scale */
.project-copy,.city-copy,.concept-card>p,.step p,.contact-right p,.egida-text>p:not(.label):not(.egida-subtitle){font-size:17px;line-height:1.7}
.project-details>p,.clients-heading>p,.work-heading p{font-size:16px;line-height:1.7}
.project-details summary,.text-link{font-size:15px;min-height:48px}
.tags span{font-size:12px;padding:7px 10px;line-height:1.45}.tags{gap:8px;flex-wrap:wrap}
.project-top .label,.project-status,.project-offline,.concept-status{font-size:12px;line-height:1.5;letter-spacing:.03em}
.project-top{min-height:38px;align-items:flex-start}.project-top .label{flex:1}.project-offline{max-width:130px}
.desktop-nav{font-size:14px}.outline-link{font-size:13px}.language{font-size:12px}.label{font-size:12px;line-height:1.5}
.client-domain,.client-footnote,.client-hint,.developer-credit,.footer-meta,.image-note{font-size:12px;line-height:1.6}
.client-cell{padding-bottom:45px}.client-domain{right:12px;overflow-wrap:anywhere}.client-hint{display:none}
.country-button{font-size:15px}.country-code{font-size:12px;width:25px}.country-list{max-width:500px}
.lotos-expansion{font-size:15px}.lotos-context{font-size:13px}.concept-card h3{min-height:140px}
.festival-zone{font-size:13px;line-height:1.4;min-height:36px}.festival-zone>span:first-child{font-size:12px}.festival-view-controls>button{font-size:13px;min-height:36px}.festival-legend{top:25%}
.visual-caption,.city-visual>.city-art-caption,.city-visual>span:not(.city-art-caption),.network-caption,.globe-hint{font-size:12px;letter-spacing:.02em}
.city-visual>.city-art-caption{max-width:55%}.city-visual>span:not(.city-art-caption){max-width:40%;text-align:right}.globe-hint{position:static;margin-top:12px}.globe-label{bottom:9%}
@media(max-width:1100px){.header-contact{display:none}.desktop-nav{gap:12px}.header{gap:15px}}
@media(max-width:700px){
 .header{display:grid;grid-template-columns:1fr auto;grid-template-rows:44px 28px;height:96px;padding-block:8px;gap:0 10px}.header-right{display:contents}.brand{grid-column:1;grid-row:1}.menu-toggle{grid-column:2;grid-row:1}.language{grid-column:1/-1;grid-row:2;justify-self:end;font-size:12px;gap:12px}.language a{padding:3px 5px}.mobile-nav{top:96px}html{scroll-padding-top:96px}
 .hero{height:calc(100svh - 96px)}.hero-bottom p{font-size:15px;line-height:1.6;max-width:none}.hero-bottom{flex-wrap:wrap;gap:22px;align-items:center}.hero-bottom>div:first-child{width:100%}.hero-controls{flex-direction:row;width:100%;justify-content:space-between;align-items:center}.scroll-link,html[lang=fr] .hero-controls .scroll-link{font-size:12px;max-width:none;text-align:left;line-height:1.5}.motion-toggle{width:40px;height:40px;font-size:14px}
 .project-copy,.city-copy,.concept-card>p,.step p,.contact-right p,.egida-text>p:not(.label):not(.egida-subtitle),.service-content p{font-size:16px}.project-top{min-height:38px;gap:10px}.project-offline{max-width:100px}.project-details summary{font-size:15px}.project-details>p{font-size:16px}
 .footer-meta{grid-template-columns:1fr;gap:10px;font-size:12px}.footer-meta>*:nth-child(even){text-align:left}.client-footnote{font-size:12px}.client-domain{font-size:12px;bottom:10px;left:10px}.client-cell{min-height:145px;padding-bottom:48px}.client-combined{flex-wrap:wrap;justify-content:center}.country-button{font-size:14px;min-height:70px}.country-code{font-size:12px;width:22px}.country-list{column-gap:12px}
 .concept-card h3{min-height:0}.lotos-expansion{font-size:15px}.lotos-context{font-size:13px}.festival-zone{font-size:13px;min-height:48px}.festival-zone>span:first-child{font-size:12px}.festival-view-controls>button{font-size:13px;min-height:40px}.city-support>.label{font-size:12px}.city-visual>.city-art-caption{font-size:12px}.city-visual>span:not(.city-art-caption){font-size:12px}.globe-hint{font-size:12px}.network-caption{font-size:12px}
}
