:root{--paper:#f8f9fa;--ink:#181818;--muted:#61615e;--line:#d6d6d3;--accent:#a17acb;--accent-ink:#75449d;--accent-light:#ede4f6;--brand-only:#ffd500;--brand-channel:#0919a6;--brand-live:#ff00bd;--dark:#181818;--max:1360px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Avenir Next","Helvetica Neue","PingFang TC","Noto Sans TC",sans-serif;font-size:16px;line-height:1.65}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:default}img{display:block;max-width:100%;height:auto}figure,p,h1,h2,h3{margin:0}h1,h2,h3{line-height:1.13}button{border:0;background:none}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{width:calc(100% - 96px);max-width:var(--max);margin-inline:auto}.section{padding-block:104px}.accent{color:var(--accent)}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:white;z-index:20}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{font-weight:800;font-size:27px;line-height:1;letter-spacing:-1.5px;white-space:nowrap}.brand span{color:var(--accent);font-size:43px;vertical-align:middle;padding-left:3px}#site-nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}#site-nav a:not(.nav-contact):hover,.text-link:hover{color:var(--accent-ink)}.nav-contact{border:1px solid var(--ink);padding:12px 18px;display:flex;gap:30px}.nav-contact:hover{background:var(--ink);color:var(--paper)}.menu-toggle{display:none}.hero{padding-top:62px}.hero-top{display:grid;grid-template-columns:1.35fr 1fr;gap:70px;align-items:end;padding-bottom:58px}.hero h1{font-size:clamp(78px,8.6vw,134px);font-weight:750;line-height:.99;letter-spacing:-.072em}.hero h1 span{color:var(--accent)}.hero-copy{max-width:355px;padding-bottom:4px;justify-self:end}.hero h2{font-size:32px;line-height:1.35;letter-spacing:-.04em;margin-bottom:20px}.hero-copy p{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:26px}.text-link{display:inline-flex;align-items:center;gap:40px;font-size:14px;font-weight:650;border-bottom:1px solid;padding-bottom:6px}.hero-photo{display:block;width:100%;position:relative;padding:0;background:#252525;text-align:left}.hero-photo img{width:100%;height:auto;aspect-ratio:2.15;object-fit:cover;object-position:50% 42%}.photo-label{position:absolute;bottom:24px;left:24px;padding:18px 22px;background:#f8f9fa;font-weight:600;line-height:1.35;font-size:21px}.photo-label>span{display:inline-block;padding-left:25px;color:var(--accent-ink)}.showcase-caption{display:flex;justify-content:space-between;padding-top:14px;font-size:12px;color:var(--muted)}.intro{padding-block:104px;display:grid;grid-template-columns:1fr 2fr 72px;gap:32px;align-items:start;border-bottom:1px solid var(--line)}.section-label{font-size:13px;line-height:1.6;font-weight:550}.intro h2{font-size:clamp(26px,3vw,42px);line-height:1.45;letter-spacing:-.035em;margin-bottom:24px}.intro p:not(.section-label){max-width:580px;color:var(--muted);font-size:15px;line-height:1.9}.square-link{width:64px;height:64px;display:grid;place-items:center;border:1px solid var(--ink);font-size:28px}.square-link:hover{background:var(--ink);color:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:46px}.section-heading h2{font-size:clamp(36px,4.4vw,66px);font-weight:650;line-height:1.03;letter-spacing:-.055em;margin-top:18px}.section-heading>p{color:var(--muted);font-size:14px;line-height:1.9;padding-bottom:4px}.filters{display:flex;gap:30px;margin-bottom:40px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.filters button{padding:12px 0 16px;border-bottom:2px solid transparent;font-size:14px;color:var(--muted)}.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--ink);font-weight:650}.filters span{font-size:11px;vertical-align:super;margin-left:5px}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 30px}.work[hidden]{display:none}.work-image{display:block;padding:0;position:relative;width:100%;background:#eee;overflow:hidden}.work-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#efefed}.work:first-child .work-image img{object-fit:cover}.image-cta{position:absolute;right:14px;bottom:14px;width:42px;height:42px;background:var(--paper);display:grid;place-items:center;font-size:23px}.work-image:hover .image-cta{background:var(--accent)}.work-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px;font-size:12px;color:var(--muted)}.work h3{font-size:23px;line-height:1.3;letter-spacing:-.025em;margin-top:9px}.work h3 button{text-align:left;padding:0;font-weight:650;line-height:inherit}.work h3 button:hover{text-decoration:underline;text-underline-offset:4px}.work>p{font-size:13px;color:var(--muted);margin-top:8px}.archive{margin-top:70px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.archive>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:23px;font-size:20px;font-weight:600}.archive>summary span{font-size:13px;font-weight:500;color:var(--muted)}.archive-row{width:100%;display:grid;grid-template-columns:125px 1fr 24px;text-align:left;gap:16px;border-top:1px solid var(--line);padding:20px 0}.archive-row time{font-size:12px;color:var(--muted)}.archive-row:hover{color:var(--accent-ink)}.credits{font-size:11px;line-height:1.7;color:var(--muted);margin-top:24px}.services{background:var(--dark);color:var(--paper)}.services .section-heading>p{color:#b8b8b3}.service{border-top:1px solid #484848}.service:last-child{border-bottom:1px solid #484848}.service summary{display:grid;grid-template-columns:12% 1fr 36px;align-items:center;gap:16px;padding-block:30px;font-size:25px;line-height:1.5}.service-no{font-size:13px;color:#b8b8b3}.service-en{display:block;font-size:13px;color:#b8b8b3;font-weight:400;margin-top:5px}.service-toggle{font-size:26px;justify-self:end}.service[open] .service-toggle{font-size:0}.service[open] .service-toggle:after{content:'−';font-size:26px}.service-body{padding:0 8% 30px 13.4%;display:grid;grid-template-columns:1fr 1fr;gap:48px;color:#c8c8c3;font-size:14px;line-height:1.9}.service-body p:first-child{color:var(--paper)}.tech-list{border-top:1px solid var(--ink)}.tech-list article{display:grid;grid-template-columns:48px 1fr 1.4fr .7fr;gap:24px;align-items:start;border-bottom:1px solid var(--line);padding:30px 0}.tech-list h3{font-size:22px;line-height:1.5}.tech-list p{font-size:14px;color:var(--muted);line-height:1.9}.tech-list article>span{font-size:12px;color:var(--muted);padding-top:7px}.tech-list article>span:last-child{text-align:right}.tech-foot{display:flex;justify-content:space-between;gap:32px;align-items:start;padding-top:32px;font-size:12px;color:var(--muted)}.tech-foot p{max-width:560px}.tech-foot a{flex-shrink:0;color:var(--ink)}.contact{background:var(--accent)}.contact-intro{display:flex;justify-content:space-between;align-items:end;gap:50px}.contact h2{font-size:clamp(54px,7.3vw,110px);letter-spacing:-.06em;line-height:1.03;font-weight:700;margin-top:22px}.contact h2 span{color:#fff}.contact-intro>p{font-size:17px;line-height:1.9;padding-bottom:9px}.contact-bottom{border-top:1px solid #60437b60;margin-top:50px;padding-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.contact-email{font-size:25px;letter-spacing:-.03em;border-bottom:1px solid var(--ink);justify-self:start}.brief summary{display:flex;justify-content:space-between;padding:8px 0 14px;border-bottom:1px solid #60437b60}.brief form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}.field{font-size:13px;display:grid;gap:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #60437b;background:#fcf9ff;color:var(--ink);padding:11px;min-width:0;border-radius:0}.field textarea{resize:vertical}.wide{grid-column:1/-1}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.button{padding:12px 16px;background:var(--ink);color:white;font-size:13px;border:1px solid var(--ink)}.button.secondary{background:transparent;color:var(--ink)}.button:hover{background:#333;color:#fff}.form-note,#form-status{font-size:12px;line-height:1.7}.site-footer{min-height:130px;display:flex;align-items:center;gap:40px;font-size:12px}.site-footer .brand{font-size:22px}.site-footer .brand span{font-size:35px}.site-footer p{margin-right:auto;color:var(--muted)}.site-footer>a:not(.brand){border-bottom:1px solid transparent}.site-footer>a:hover{border-color:var(--ink)}.case-dialog{color:var(--ink);border:0;background:var(--paper);padding:0;max-width:960px;width:calc(100% - 48px);max-height:90dvh;overflow:auto}.case-dialog::backdrop{background:#000a}.dialog-top{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:18px 24px;position:sticky;top:0;background:var(--paper);z-index:1;font-size:12px;border-bottom:1px solid var(--line)}.dialog-top button{padding:8px 0;white-space:nowrap}.dialog-image{width:100%;max-height:56dvh;object-fit:contain;background:#ededeb}.dialog-content{padding:32px}.dialog-content h2{font-size:36px;line-height:1.2;letter-spacing:-.03em;margin:12px 0 24px}.dialog-content>p:not(.section-label){font-size:15px;line-height:1.9;max-width:720px}.dialog-content dl{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-block:24px;border-block:1px solid var(--line);margin-block:24px;font-size:14px}.dialog-content dt{font-size:11px;color:var(--muted);margin-bottom:8px}.dialog-content dd{margin:0}.dialog-sources{display:flex;flex-wrap:wrap;gap:24px;font-size:13px}.dialog-sources a{border-bottom:1px solid}.dialog-sources a:hover{color:var(--accent-ink)}#dialog-thumbnails{display:flex;gap:8px;padding:12px 24px}#dialog-thumbnails:empty{display:none}#dialog-thumbnails button{padding:0;width:74px;border:2px solid transparent}#dialog-thumbnails button[aria-pressed=true]{border-color:var(--accent)}#dialog-thumbnails img{height:55px;width:70px;object-fit:contain;background:white}
@media(min-width:1500px){.wrap{width:calc(100% - 160px)}}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.header-inner{min-height:82px}#site-nav{gap:23px}.nav-contact{gap:15px}.hero-top{gap:32px}.hero h1{font-size:clamp(66px,9vw,95px)}.hero h2{font-size:27px}.intro{grid-template-columns:1fr 2fr 48px;gap:20px}.square-link{width:48px;height:48px}.section{padding-block:80px}.tech-list article{grid-template-columns:32px 1fr 1.3fr}.tech-list article>span:last-child{display:none}.contact-bottom{gap:32px}.contact-email{font-size:22px}.site-footer{gap:24px}.site-footer p{display:none}.site-footer .brand{margin-right:auto}}
@media(max-width:700px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:76px;gap:16px;flex-wrap:wrap}.brand{font-size:24px}.brand span{font-size:35px}.menu-toggle{display:block;font-size:13px;padding:13px 0}.site-header{position:relative}#site-nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-bottom:18px}#site-nav[data-open=true]{display:flex}#site-nav a{padding:15px 0;border-top:1px solid var(--line)}#site-nav .nav-contact{border:0;border-top:1px solid var(--line)}.hero{padding-top:38px}.hero-top{display:block;padding-bottom:30px}.hero h1{font-size:clamp(40px,13vw,88px);letter-spacing:-.07em;line-height:1}.hero-copy{max-width:none;margin-top:30px;justify-self:stretch}.hero-copy h2{font-size:25px;line-height:1.4;margin-bottom:14px}.hero-copy h2 br{display:none}.hero-copy p{max-width:430px;font-size:14px;margin-bottom:18px}.text-link{font-size:13px}.hero-photo img{aspect-ratio:1.2;object-position:50% 40%}.photo-label{position:static;display:block;padding:16px;background:var(--ink);color:white;font-size:18px}.photo-label>span{float:right;color:var(--accent);font-size:28px}.showcase-caption{font-size:10px;gap:18px}.intro{padding-block:58px;grid-template-columns:1fr 42px;gap:22px}.intro>.section-label{grid-column:1/-1}.intro h2{font-size:25px;margin-bottom:18px}.intro p:not(.section-label){font-size:14px}.square-link{width:42px;height:42px;font-size:24px}.section{padding-block:58px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:40px;line-height:1.08;margin-top:14px}.section-heading>p{margin-top:22px;font-size:13px}.filters{gap:12px 22px;margin-bottom:28px}.filters button{font-size:12px;padding-bottom:10px}.works-grid{grid-template-columns:1fr;gap:34px}.work-image img{aspect-ratio:4/3}.work-meta{font-size:11px;margin-top:15px;gap:14px}.work h3{font-size:21px;margin-top:7px}.work>p{font-size:12px}.archive{margin-top:40px}.archive>summary{font-size:16px;gap:14px}.archive>summary span{font-size:11px}.archive-row{grid-template-columns:72px 1fr 16px;gap:12px;font-size:13px;padding-block:17px}.archive-row time{font-size:10px}.credits{font-size:10px}.service summary{grid-template-columns:26px 1fr 24px;gap:12px;font-size:20px;padding-block:23px}.service-en{font-size:11px;margin-top:4px}.service-no{font-size:11px}.service-body{padding:0 0 26px 38px;grid-template-columns:1fr;gap:12px;font-size:13px}.tech-list article{grid-template-columns:24px 1fr;gap:14px;padding-block:24px}.tech-list h3{font-size:20px}.tech-list p{grid-column:2;font-size:13px}.tech-list article>span{padding-top:5px;font-size:10px}.tech-foot{display:block;padding-top:24px;font-size:12px}.tech-foot a{margin-top:20px}.contact-intro{display:block}.contact h2{font-size:64px;margin-top:22px}.contact-intro>p{font-size:15px;margin-top:24px}.contact-bottom{grid-template-columns:1fr;gap:30px;margin-top:30px;padding-top:25px}.contact-email{font-size:22px}.brief form{gap:15px}.field{font-size:12px}.site-footer{min-height:140px;flex-wrap:wrap;gap:18px 28px;padding-block:30px;font-size:11px}.site-footer .brand{width:100%}.case-dialog{width:calc(100% - 24px);max-height:94dvh}.dialog-top{padding:12px 16px;font-size:11px}.dialog-content{padding:22px}.dialog-content h2{font-size:26px}.dialog-content>p:not(.section-label){font-size:14px}.dialog-content dl{grid-template-columns:1fr;gap:20px;font-size:13px}.dialog-image{max-height:48dvh}.dialog-sources{gap:16px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* The contact section uses a directly visible form on all screen sizes. */
.contact-bottom{display:block}
.brief-form{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin-left:auto}
.brief-form .field{font-size:14px;gap:10px}
.brief-form .field input,.brief-form .field select,.brief-form .field textarea{padding:14px;background:#fcf9ff}
.brief-form .button{min-width:180px;padding:15px 24px;font-size:15px}
.brief-form .button:disabled{opacity:.6;cursor:wait}
.brief-form [aria-invalid=true]{border:2px solid #851f13}
.brief-form .field :focus-visible,.brief-form .button:focus-visible{outline-color:var(--ink)}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#form-status:empty{display:none}
@media(max-width:700px){.brief-form{gap:20px 16px}.brief-form .field{font-size:13px}.brief-form .field input,.brief-form .field select,.brief-form .field textarea{font-size:16px;padding:11px}.brief-form .form-actions{justify-content:stretch}.brief-form .button{width:100%}}
@media(max-width:420px){.brief-form{grid-template-columns:1fr}.brief-form .wide{grid-column:auto}}

/* Native scrolling keeps touch, wheel and keyboard navigation responsive. */
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height,94px) + 24px)}
.site-header{position:sticky;top:0;z-index:10;transition:border-color .2s ease}
.site-header.has-scrolled{border-bottom-color:#18181840}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}
#site-nav a[aria-current=location]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.inquiry-heading{font-size:24px;letter-spacing:-.03em;margin-bottom:4px}
.field:focus-within{color:#1b1b1b}
.field input,.field textarea,.field select{transition:background-color .18s ease,border-color .18s ease}
.field input:focus,.field textarea:focus,.field select:focus{background:#fff;border-color:#181818}
.hero-photo img,.work-image img{transition:transform .7s cubic-bezier(.22,1,.36,1)}
.hero-photo{overflow:hidden}
.photo-label{z-index:2}
.dialog-image-frame{position:relative}
.dialog-gallery{overflow:hidden}
.image-cta,.nav-contact,.square-link,.button{transition:background-color .18s ease,color .18s ease}
@media(hover:hover) and (pointer:fine){
  .hero-photo:hover>img,.work-image:hover>img{transform:scale(1.025)}
}

/* A single random block dissolve, with no looping or strobe. */
.pixel-host{position:relative}
.pixel-host>.pixel-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;margin:0;padding:0;font-size:0;line-height:0}
.pixel-grid>span{display:block;margin:0;padding:0;background:#f8f9fa;border:.5px solid #1818181a;opacity:0;pointer-events:none;animation:pixel-dissolve .55s cubic-bezier(.22,1,.36,1) var(--delay) both}
.pixel-grid>span.pixel-accent{background:var(--accent);border-color:#18181830}
.pixel-host>.pixel-grid--control{opacity:.32}
@keyframes pixel-dissolve{
  0%{opacity:.95;transform:translateY(0) scaleY(1)}
  38%{opacity:.8;transform:translateY(-2px) scaleY(.9)}
  100%{opacity:0;transform:translateY(-14px) scaleY(.4)}
}
@keyframes menu-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
  html{scroll-padding-top:calc(var(--header-height,76px) + 16px)}
  .site-header{position:sticky}
  #site-nav[data-open=true]{animation:menu-reveal .25s ease-out}
  .inquiry-heading{font-size:22px}
  .filters{gap:8px 22px}
  .filters button{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pixel-grid{display:none!important}
  .hero-photo img,.work-image img,.site-header,.field input,.field textarea,.field select,.image-cta,.nav-contact,.square-link,.button{transition:none}
  .hero-photo:hover>img,.work-image:hover>img{transform:none}
  #site-nav[data-open=true]{animation:none}
}

/* Full-width artwork stays uncropped; titles and navigation sit below it. */
.hero-stage{display:grid;overflow:hidden;touch-action:pan-y pinch-zoom}
.hero-slide{grid-area:1 / 1;min-width:0;background:var(--paper)}
.hero-slide[hidden]{display:none}
.hero-carousel .hero-photo{background:#efefed;touch-action:pan-y pinch-zoom}
.hero-carousel .hero-photo img{aspect-ratio:16/9;object-fit:contain;object-position:center;transform:none;user-select:none;-webkit-user-drag:none}
.hero-carousel .hero-photo:focus-visible{outline-offset:-5px}
.hero-slide-caption{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:22px 0;min-height:116px}
.hero-slide-caption>div{min-width:0}
.hero-slide-caption p{font-size:12px;color:var(--muted);margin-bottom:7px}
.hero-slide-caption h3{font-size:23px;line-height:1.4;letter-spacing:-.025em}
.hero-slide-caption h3 button{display:block;text-align:left;font:inherit;padding:0}
.hero-slide-caption h3 button>span{color:var(--accent-ink);white-space:nowrap}
.hero-slide-meta{white-space:nowrap;font-size:12px;color:var(--muted)}
.hero-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:14px}
.hero-controls[hidden],.hero-play[hidden]{display:none}
.hero-pagination{display:flex;align-items:center;gap:8px}
.hero-controls button{height:44px;min-width:44px;padding:8px 12px;border:1px solid transparent;font-size:13px;transition:background-color .18s,color .18s,border-color .18s}
.hero-controls button:hover{border-color:var(--ink)}
.hero-pagination button[aria-current=true]{background:var(--ink);color:white}
.hero-count{min-width:64px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.hero-play{min-width:82px!important;white-space:nowrap}
@media(max-width:700px){
  .hero-slide-caption{display:block;padding:16px 0;min-height:142px}
  .hero-slide-caption h3{font-size:19px;line-height:1.4}
  .hero-slide-caption p,.hero-slide-meta{font-size:11px}
  .hero-slide-meta{display:block;margin-top:8px}
  .hero-controls{display:grid;grid-template-columns:1fr auto;gap:10px;padding-top:12px}
  .hero-pagination{grid-row:2;grid-column:1/-1;justify-content:center;gap:12px}
  .hero-play{grid-column:2;grid-row:1}
}
@media(prefers-reduced-motion:reduce){.hero-controls button{transition:none}}

/* Overlay navigation follows the banner's 16:9 image, independently of its caption. */
.hero-carousel{position:relative}
.hero-side-controls{position:absolute;inset:0 0 auto;width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:space-between;padding:0 18px;z-index:4;pointer-events:none}
.hero-side-controls[hidden]{display:none}
.hero-side-arrow{--arrow-cut:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));position:relative;isolation:isolate;display:grid;place-items:center;flex:none;width:58px;height:66px;padding:0;color:var(--accent);pointer-events:auto;transition:color .18s ease}
.hero-side-arrow::before,.hero-side-arrow::after{content:"";position:absolute;inset:0;clip-path:var(--arrow-cut);pointer-events:none}
.hero-side-arrow::before{background:var(--accent);z-index:0}
.hero-side-arrow::after{inset:2px;background:#fff;z-index:1;transition:background-color .18s ease}
.hero-side-arrow--next{--arrow-cut:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.hero-side-arrow svg{position:relative;z-index:4;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linejoin:miter}
.hero-arrow-ticks{position:absolute;left:50%;bottom:8px;width:16px;height:2px;transform:translateX(-50%);z-index:4;background:repeating-linear-gradient(90deg,currentColor 0 3px,transparent 3px 6px);opacity:.7}
.hero-side-arrow>.pixel-grid{clip-path:var(--arrow-cut)}
.hero-side-arrow:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.hero-side-arrow:focus-visible::after,.hero-side-arrow:active::after{background:var(--accent)}
.hero-side-arrow:focus-visible,.hero-side-arrow:active{color:var(--ink)}
@media(hover:hover) and (pointer:fine){.hero-side-arrow:hover{color:var(--ink)}.hero-side-arrow:hover::after{background:var(--accent)}}
@media(max-width:700px){.hero-side-controls{padding:0 7px}.hero-side-arrow{width:44px;height:50px}.hero-side-arrow svg{width:26px;height:26px}.hero-arrow-ticks{bottom:6px}.hero-count{justify-self:start}}
@media(prefers-reduced-motion:reduce){.hero-side-arrow,.hero-side-arrow::after{transition:none}}

/* Text-only transforms retain the service accordion's layout and hit targets. */
.service-title,.assemble-copy{display:block}
.assemble-word{display:inline-block;white-space:nowrap}
.assemble-char{display:inline-block}
.service summary>span:nth-child(2){min-width:0}

/* Event type accompanies names in banners, cards, the complete list and case details. */
.event-type,.hero-slide-caption h3 button>.event-type{display:inline-block;padding:3px 7px;margin-right:7px;border:1px solid #a7a7a2;color:var(--ink);font-size:12px;font-weight:550;letter-spacing:0;line-height:1.5;vertical-align:middle;white-space:nowrap}
.archive-title{min-width:0;line-height:1.7}
.archive-row .event-type{font-size:11px}
.archive>summary{gap:20px}
.archive>summary>span{white-space:nowrap}
#dialog-title .event-type{font-size:13px}
.dialog-instagram{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}
.dialog-instagram[hidden],.instagram-posts[hidden]{display:none}
.dialog-instagram h3{font-size:20px;line-height:1.4;margin-bottom:18px}
.instagram-posts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.instagram-posts button{padding:8px 12px;border:1px solid var(--line);font-size:13px}
.instagram-posts button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.instagram-embed{max-width:540px;margin-inline:auto;background:white}
.instagram-embed iframe{display:block;width:100%;height:680px;border:1px solid var(--line)}
.instagram-fallback{font-size:12px!important;color:var(--muted);margin-top:15px;line-height:1.8}
.instagram-fallback a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.event-type,.hero-slide-caption h3 button>.event-type{font-size:11px;padding:2px 6px;margin-right:5px}.archive>summary{align-items:flex-start;flex-direction:column;gap:4px}.archive-row{grid-template-columns:78px 1fr 16px}.archive-row .event-type{font-size:10px}.instagram-embed iframe{height:580px}.instagram-posts button{min-height:44px}.hero-slide-caption{min-height:158px}}

/* Official artwork, an independent brand carousel and on-demand video portfolios. */
.brand{display:flex;align-items:center;letter-spacing:normal;flex-shrink:0}
.brand img{display:block;width:218px;height:auto;mix-blend-mode:multiply}
.site-footer .brand img{width:190px}
.brands{border-top:1px solid var(--line);padding-bottom:0}
.brand-selectors{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);gap:0 24px;margin-bottom:32px}
.brand-selectors button{padding:14px 0;min-height:48px;font-size:13px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.brand-selectors button[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}
.brand-selectors button:hover{color:var(--accent-ink)}
.brand-slides{overflow:hidden}
.brand-slide{display:grid;grid-template-columns:1fr 1fr;min-height:340px;gap:48px;align-items:center}
.brand-slide[hidden]{display:none}
.brand-art{height:340px;display:grid;place-items:center;overflow:hidden;touch-action:pan-y}
.brand-art img{width:72%;max-height:185px;object-fit:contain;user-select:none;height:auto}
.brand-art--company{background:#fff}
.brand-art--company img{width:92%;max-height:none}
.brand-art--umbrella{background:#fff}
.brand-art--only{background:var(--brand-only)}
.brand-art--channel{background:var(--brand-channel)}
.brand-art--live{background:var(--brand-live)}
.brand-story{padding:20px 0}
.brand-purpose{font-size:13px;color:var(--muted);margin-bottom:12px}
.brand-story h3{font-size:clamp(27px,3vw,42px);letter-spacing:-1.5px;line-height:1.12;margin-bottom:22px}
.brand-story>p:not(.brand-purpose){font-size:16px;line-height:1.9;max-width:490px;color:var(--muted);margin-bottom:26px}
.brand-story .text-link{font-size:14px}
.brand-channel-link{display:block;width:fit-content;font-size:13px;margin-top:16px;text-decoration:underline;text-underline-offset:4px}
.brand-controls{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:20px 0;gap:16px}
.brand-controls p{font-size:12px;color:var(--muted)}
.brand-controls>div{display:flex;gap:8px}
.brand-arrow{width:52px;height:48px;background:var(--accent);padding:1px;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);display:grid;place-items:center;isolation:isolate;position:relative}
.brand-arrow::before{content:"";position:absolute;inset:1px;background:#fff;clip-path:inherit;z-index:-1;transition:background .18s}
.brand-arrow svg{width:28px;height:28px;stroke:var(--accent);stroke-width:2;fill:none}
.brand-arrow:hover::before{background:var(--accent-light)}
.brand-arrow:focus-visible{outline:0;background:var(--ink)}
.brand-arrow:focus-visible::before{inset:3px}
#channel-portfolio,#live-videos,#retail-partner{scroll-margin-top:120px}
.channel-portfolio{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start;padding-bottom:60px;border-bottom:1px solid var(--line)}
.video-section-intro{background:var(--brand-channel);color:#fff;padding:40px;align-self:stretch}
.video-brand-logo{width:100%;max-width:310px;height:auto;display:block;margin:0 0 44px}
.video-section-intro h3,.retail-story h3{font-size:28px;line-height:1.4;margin-bottom:18px;letter-spacing:-.6px}
.video-section-intro p{font-size:15px;line-height:1.9;color:#e2e2fb;margin-bottom:28px}
.video-section-intro .text-link{color:white;border-color:#bbbcef;font-size:13px}
.video-subheading{display:flex;gap:24px;align-items:center;margin-bottom:30px}
.video-subheading h3{font-size:27px;margin-bottom:6px;letter-spacing:-.5px}
.video-subheading p{font-size:14px;color:var(--muted);line-height:1.7}
.live-brand-strip{background:var(--brand-live);padding:26px 30px;width:220px;flex-shrink:0;display:grid;place-items:center}
.live-brand-strip img{width:100%;height:auto;display:block}
.live-videos{padding:60px 0;border-bottom:1px solid var(--line)}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px}
.video-work{min-width:0}
.video-screen{aspect-ratio:16/9;background:#181818;position:relative;overflow:hidden}
.video-preview{width:100%;height:100%;display:block;position:relative;background:#181818}
.video-preview img{width:100%;height:100%;display:block;object-fit:cover}
.video-play{position:absolute;bottom:18px;left:18px;display:flex;align-items:center;gap:10px;background:#fff;color:var(--ink);padding:12px 17px;font-size:13px;font-weight:650;z-index:4;pointer-events:none}
.video-play svg{width:20px;height:20px;fill:var(--accent)}
.video-preview:hover .video-play{background:var(--accent-ink);color:#fff}
.video-preview:hover .video-play svg{fill:#fff}
.video-preview:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.video-screen iframe{display:block;width:100%;height:100%;border:0}
.video-copy{padding-top:18px}
.video-copy h4{font-size:20px;line-height:1.5;letter-spacing:-.35px;margin:10px 0}
.video-copy>p{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:16px}
.video-links{display:flex;gap:12px 22px;flex-wrap:wrap;font-size:12px;line-height:1.7}
.video-links a{text-decoration:underline;text-underline-offset:4px}
.video-links a:hover{color:var(--accent-ink)}
.retail-partner{padding-top:60px;display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.retail-logo{width:245px;max-width:80%;height:auto;display:block;margin:18px 0}
.retail-story>p:not(.section-label){font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:22px}
.retail-story .text-link{font-size:13px}
.dialog-videos{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}
.dialog-videos[hidden]{display:none}
.dialog-videos h3{font-size:20px;margin-bottom:18px}
.dialog-videos .text-link{margin-top:18px;font-size:13px}
/* Fixed-width text labels keep all event names aligned. Colour is supplemented by text. */
.event-type,.hero-slide-caption h3 button>.event-type,.archive-row .event-type,#dialog-title .event-type{width:84px;min-width:84px;box-sizing:border-box;text-align:center;flex-shrink:0;font-size:11px;line-height:18px;padding:3px 5px;letter-spacing:0;border-color:var(--tag-border,#a7a7a2);color:var(--tag-ink,#333);background:var(--tag-bg,#eee)}
.event-type[data-event-type="見面會"]{--tag-bg:#e1edf9;--tag-ink:#174e7d;--tag-border:#96b5d5}
.event-type[data-event-type="演唱會"]{--tag-bg:#eee3f8;--tag-ink:#693384;--tag-border:#bea1d0}
.event-type[data-event-type="同人即賣會"]{--tag-bg:#fff0c2;--tag-ink:#725204;--tag-border:#c6b064}
.event-type[data-event-type="展銷合作"]{--tag-bg:#dfefe5;--tag-ink:#286041;--tag-border:#9dbca9}
.event-type[data-event-type="活動合作"]{--tag-bg:#ffe8d9;--tag-ink:#873d16;--tag-border:#d4a183}
.event-type[data-event-type="創作合作"]{--tag-bg:#fbe1ea;--tag-ink:#873852;--tag-border:#d1a0b0}
.event-type[data-event-type="IP 聯乘"]{--tag-bg:#e0edec;--tag-ink:#285f61;--tag-border:#8bb9b6}
.event-type[data-event-type="直播活動"]{--tag-bg:#e3e4fa;--tag-ink:#3c3c83;--tag-border:#aaa9d5}
.event-type[data-event-type="媒體報道"]{--tag-bg:#e9e9e9;--tag-ink:#454545;--tag-border:#acacac}
.archive-title{display:flex;align-items:center;gap:12px}
.archive-title>.event-type{margin-right:0}
@media(max-width:1000px){.brand img{width:180px}.brand-slide{gap:28px}.brand-art{height:300px}.brand-story h3{font-size:30px}.channel-portfolio,.retail-partner{gap:28px;grid-template-columns:1fr 1.25fr}.video-section-intro{padding:28px}.video-section-intro h3{font-size:24px}.video-brand-logo{margin-bottom:30px}}
@media(max-width:700px){.brand img{width:168px}.site-footer .brand img{width:170px}.brand-selectors{gap:0 18px;margin-bottom:22px}.brand-selectors button{font-size:11px;padding:10px 0;min-height:44px}.brand-slide{grid-template-columns:1fr;gap:0}.brand-art{height:240px}.brand-art img{max-height:125px}.brand-art--company img{max-height:none}.brand-story{padding:26px 0 10px;min-height:270px}.brand-story h3{font-size:29px;letter-spacing:-1px;margin-bottom:16px}.brand-story>p:not(.brand-purpose){font-size:14px;line-height:1.85;margin-bottom:22px}.brand-controls{padding:12px 0}.brand-controls p{font-size:10px}.brand-arrow{width:46px;height:44px}.channel-portfolio,.retail-partner{grid-template-columns:1fr;gap:26px}.channel-portfolio{padding-bottom:40px}.video-section-intro{padding:30px}.video-brand-logo{max-width:265px;margin-bottom:30px}.video-subheading{align-items:flex-start;flex-direction:column;gap:18px}.live-brand-strip{width:180px;padding:22px}.video-subheading h3{font-size:25px}.live-videos{padding:40px 0}.video-grid{grid-template-columns:1fr;gap:32px}.video-play{left:12px;bottom:12px;padding:10px 12px}.video-copy h4{font-size:18px}.retail-partner{padding-top:40px}.retail-logo{width:220px}.archive-row{grid-template-columns:76px 1fr 16px;gap:10px}.archive-title{gap:9px;align-items:flex-start}.event-type,.hero-slide-caption h3 button>.event-type,.archive-row .event-type,#dialog-title .event-type{width:76px;min-width:76px;font-size:10px;padding:2px 4px}.archive-title>.event-type{margin-top:2px}.video-links a{min-height:32px;display:inline-flex;align-items:center}}
@media(max-width:420px){.archive-title{display:grid;grid-template-columns:1fr;gap:6px}}
@media(prefers-reduced-motion:reduce){.brand-arrow::before{transition:none}}

/* Channel's complete public catalogue. Switching slides stops an active preview. */
.channel-carousel{min-width:0}
.channel-slide[hidden]{display:none}
.channel-carousel .video-copy{min-height:235px}
.channel-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;border-top:1px solid var(--line);padding-top:18px}
.channel-controls>p{font-size:12px;color:var(--muted);white-space:nowrap}
.channel-pagination{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.channel-pagination button{font-size:11px;min-width:30px;min-height:44px;border-bottom:2px solid transparent}
.channel-pagination button[aria-pressed=true]{color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.channel-arrows{display:flex;gap:8px;margin-left:auto}
.channel-carousel .video-preview{touch-action:pan-y}
.online-shop{margin-top:60px;padding-top:60px;border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.shop-brand{background:#f4e8ed;display:grid;place-items:center;min-height:310px;padding:30px}
.shop-brand img{display:block;width:100%;max-width:320px;height:auto}
.shop-story h3{font-size:36px;line-height:1.2;letter-spacing:-1.2px;margin:12px 0 22px}
.shop-story>p:not(.section-label){font-size:15px;line-height:1.9;color:var(--muted)}
.shop-features{list-style:none;margin:22px 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 20px;font-size:12px}
.shop-features li{border-bottom:1px solid var(--line);padding-bottom:7px}
.shop-story .text-link{font-size:14px}
/* Opt-in sample only: real selectable HTML text, not an image or SVG wordmark. */
@font-face{font-family:"VV Racing";src:url('/event-planning-assets/fonts/racing-sans-one.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.site-header .wordmark-preview{display:none}
.preview-text-wordmark .site-header .brand>img{display:none}
.preview-text-wordmark .site-header .wordmark-preview{display:flex;flex-direction:column;align-items:center;gap:0;width:285px;line-height:1;color:#802d91}
.site-header .wordmark-preview .wordmark-main{display:block;white-space:nowrap;font-family:"VV Racing","Avenir Next",sans-serif;font-weight:400;font-size:44px;letter-spacing:-1.3px;transform:skewX(-6deg);line-height:1.05}
.site-header .wordmark-preview .wordmark-main>span{font:inherit;color:#802d91;background:linear-gradient(118deg,#802d91 0 31%,#b52d91 31% 40%,#802d91 40% 67%,#9053ac 67% 80%,#802d91 80%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}



@media(max-width:1000px){.online-shop{grid-template-columns:1fr 1.25fr;gap:28px}.preview-text-wordmark .site-header .wordmark-preview{width:250px}.site-header .wordmark-preview .wordmark-main{font-size:38px}.channel-pagination{order:3;flex-basis:100%;justify-content:space-between}}
@media(max-width:700px){.channel-carousel .video-copy{min-height:255px}.channel-controls{gap:12px}.channel-pagination{order:3;flex-basis:100%;justify-content:space-between;gap:0}.channel-pagination button{min-width:28px}.online-shop{margin-top:40px;padding-top:40px;grid-template-columns:1fr;gap:26px}.shop-brand{min-height:250px;padding:24px}.shop-brand img{max-width:260px}.shop-story h3{font-size:30px}.preview-text-wordmark .site-header .wordmark-preview{width:220px}.site-header .wordmark-preview .wordmark-main{font-size:34px}}
.video-loading{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;background:#eee;color:var(--muted);font-size:13px;z-index:5}
.video-fallback-note{position:absolute;top:12px;left:12px;right:12px;background:#181818;color:white;padding:8px 10px;font-size:11px;line-height:1.5}
.video-screen:has(iframe){min-height:200px}

/* Original brand palette: ONLY / CHANNEL / LIVE share tokens with their swatches. */

.contact{background:#cdb6e6}
.brand-selectors{align-items:stretch;gap:0 24px}
.brand-selectors button{white-space:nowrap;padding-top:25px;padding-bottom:14px}
.brand-family{display:flex;min-width:0;align-items:stretch}
.brand-family-trigger{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-swatches{display:inline-flex;gap:4px;align-items:center;transition:gap .35s ease}
.brand-swatches i,.brand-tab-swatch{display:block;width:10px;height:10px;flex-shrink:0}
.brand-swatch--only{background:var(--brand-only)}
.brand-swatch--channel{background:var(--brand-channel)}
.brand-swatch--live{background:var(--brand-live)}
.brand-family-children{max-width:0;overflow:hidden;visibility:hidden;transition:max-width .5s cubic-bezier(.22,1,.36,1),visibility 0s .5s}
.brand-family-list{display:flex;gap:24px;padding-left:24px;width:max-content}
.brand-family-list button{position:relative;opacity:0;transform:translateX(-24px);transition:opacity .25s ease,transform .4s cubic-bezier(.22,1,.36,1)}
.brand-tab-swatch{position:absolute;top:7px;left:0}
.brand-family[data-expanded=true] .brand-family-children{max-width:520px;visibility:visible;transition-delay:0s}
.brand-family[data-expanded=true] .brand-family-list button{opacity:1;transform:translateX(0)}
.brand-family[data-expanded=true] .brand-family-list button:nth-child(2){transition-delay:70ms}
.brand-family[data-expanded=true] .brand-family-list button:nth-child(3){transition-delay:140ms}
.brand-family-list .brand-tab--only[aria-pressed=true]{border-color:var(--brand-only)}
.brand-family-list .brand-tab--channel[aria-pressed=true]{border-color:var(--brand-channel)}
.brand-family-list .brand-tab--live[aria-pressed=true]{border-color:var(--brand-live)}
.brand-family-trigger:focus-visible{outline-offset:4px}
.retail-story h3{line-height:1.4;text-wrap:balance}
@media(max-width:850px){
 .brand-selectors{display:grid;grid-template-columns:max-content 1fr;gap:0 22px}
 .brand-family{display:contents}
 .brand-family-trigger{justify-self:start}
 .brand-family-children{grid-column:1/-1;max-width:none;max-height:0;transition:max-height .4s ease,visibility 0s .4s}
 .brand-family[data-expanded=true] .brand-family-children{max-width:none;max-height:90px}
 .brand-family-list{width:100%;padding-left:0;justify-content:space-between;gap:12px}
 .brand-family-list button{font-size:11px;flex:1;text-align:left}
}
@media(max-width:420px){
 .brand-family-list{gap:8px}
 .brand-family-list button{font-size:12px;letter-spacing:0}
 .brand-swatches i,.brand-tab-swatch{width:9px;height:9px}
}
@media(prefers-reduced-motion:reduce){
 .brand-family-children,.brand-family-list button,.brand-swatches{transition:none!important}
}

@media(max-width:700px){.brand-tab-prefix{display:none}.brand-family-list button{font-size:12px}}

/* The same three colour squares travel between the parent and the child tabs. */
.brand-swatch-origin{display:block;width:10px;height:10px;flex-shrink:0}
.brand-tab-swatch>i{display:block;width:100%;height:100%}
.brand-family[data-expanded=true] .brand-swatches{display:none}
.brand-family[data-expanded=true] .brand-family-trigger{gap:0}
.brand-family-list button{transform:none;transition-property:opacity}
@media(max-width:420px){.brand-swatch-origin{width:9px;height:9px}}
.brand-family-list button:focus-visible{outline-offset:-3px}

/* Original X artwork and contextual captions; the existing card frame remains 4:3. */
.work-image{isolation:isolate;background:#eee9f3}
.work-image::before{content:"";position:absolute;inset:-24px;background-image:var(--work-art);background-size:cover;background-position:center;filter:blur(18px) saturate(.75);opacity:.52;pointer-events:none}
.work-image::after{content:"";position:absolute;inset:0;background-image:linear-gradient(#ad88ca24 1px,transparent 1px),linear-gradient(90deg,#ad88ca24 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
.work-image>img{position:relative;z-index:1;background:transparent}
.work-image>.image-cta{z-index:2}
.work-detail-link{display:inline-block;margin-top:12px;padding:0 0 3px;border-bottom:1px solid var(--line);font-size:12px;color:var(--accent-ink);text-align:left}
.work-detail-link:hover{border-color:currentColor}
.dialog-image-caption{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:0;padding:14px 24px 2px;font-size:12px;line-height:1.7;color:var(--muted)}
.dialog-image-caption a{white-space:nowrap;color:var(--accent-ink);border-bottom:1px solid}
.dialog-details{display:grid;gap:22px;margin-top:28px}
.dialog-details h3{font-size:18px;line-height:1.5;margin:0 0 8px}
.dialog-details p{font-size:15px;line-height:1.9;margin:0;max-width:720px;color:var(--muted)}
.dialog-image-caption[hidden],.dialog-details[hidden]{display:none}
#dialog-thumbnails{overflow-x:auto}
#dialog-thumbnails button{flex:0 0 74px}
.site-footer{display:grid;grid-template-columns:minmax(190px,1fr) auto auto;gap:32px;padding-block:36px}
.footer-identity{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.footer-identity p{margin:0}
.footer-links{display:grid;grid-template-columns:repeat(2,max-content);gap:14px 26px;line-height:1.6}
.footer-links a{width:fit-content;border-bottom:1px solid var(--line)}
.footer-links a:hover{color:var(--accent-ink);border-color:currentColor}
.footer-top{white-space:nowrap}
@media(max-width:700px){
 .dialog-image-caption{display:block;padding:12px 16px 2px;font-size:11px}
 .dialog-image-caption a{display:inline-block;margin-left:8px}
 .dialog-details{gap:20px;margin-top:24px}
 .dialog-details h3{font-size:16px}
 .dialog-details p{font-size:14px}
 .site-footer{grid-template-columns:minmax(0,1fr) auto;gap:26px 16px}
 .footer-links{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 14px}
}
@media(max-width:360px){
 .preview-text-wordmark .site-header .wordmark-preview{width:200px}
 .site-header .wordmark-preview .wordmark-main{font-size:31px}
}

/* Team portraits retain the supplied composition inside matching square frames. */
.team{border-top:1px solid var(--line)}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.team-member{min-width:0}
.team-photo{position:relative;isolation:isolate;overflow:hidden;background:var(--accent-light)}
.team-photo::before{content:"";position:absolute;inset:-22px;background-image:var(--team-art);background-size:cover;background-position:center;filter:blur(18px);opacity:.58;pointer-events:none}
.team-photo>img{position:relative;width:100%;height:auto;aspect-ratio:1;object-fit:contain;z-index:1}
.team-member-copy{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.team-member h3{font-size:28px;letter-spacing:-.035em;line-height:1.2}
.team-member-copy p{font-size:13px;color:var(--accent-ink);line-height:1.6;flex-shrink:0}
@media(min-width:701px) and (max-width:1000px){
 #site-nav{gap:14px;font-size:13px}
 .nav-contact{padding-inline:12px;gap:18px}
 .header-inner{gap:20px}
 .team-grid{gap:22px}
 .team-member-copy{display:block}
 .team-member-copy p{margin-top:8px}
}
@media(max-width:700px){
 .team-grid{grid-template-columns:1fr;gap:36px}
 .team-member-copy{margin-top:16px;padding-top:14px}
 .team-member h3{font-size:27px}
}

/* Root brands share the child tabs' colour-marker rhythm. */
.brand-root-label{position:relative;display:inline-block;padding-right:22px}
.brand-root-swatch{position:absolute;display:block;width:10px;height:10px;left:calc(100% - 10px);top:calc(50% - 5px);transition:left .42s cubic-bezier(.22,1,.36,1),top .42s cubic-bezier(.22,1,.36,1)}
.brand-root-swatch--violet{background:var(--accent)}
.brand-root-swatch--on{background:#85888b}
.brand-root-tab:is(:hover,:focus-visible,[aria-pressed=true]) .brand-root-swatch,
.brand-family-trigger:is(:hover,:focus-visible) .brand-root-swatch,
.brand-family[data-expanded=true] .brand-root-swatch{left:0;top:-18px}
.work:first-child .work-image[data-artwork-kind=product]>img{object-fit:contain}
@media(max-width:420px){.brand-root-swatch{width:9px;height:9px}}
@media(prefers-reduced-motion:reduce){.brand-root-swatch{transition:none}}

/* Event social accounts sit beside the portfolio and remain accessible in the footer. */
.activity-social{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;margin-bottom:28px;border-block:1px solid var(--line)}
.activity-social h3{font-size:16px;line-height:1.5;font-weight:650;letter-spacing:0}
.activity-social p{font-size:12px;color:var(--muted);margin-top:4px}
.activity-social-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.activity-social-links a{display:inline-flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid var(--line);font-size:14px}
.activity-social-links a:hover,.footer-sns a:hover{color:var(--accent-ink);border-color:currentColor}
.footer-sns{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;flex-basis:100%;font-size:12px}
.footer-sns>span{color:var(--muted)}
.footer-sns a{display:inline-flex;align-items:center;gap:6px;min-height:32px;border-bottom:1px solid var(--line)}
@media(max-width:700px){
 .activity-social{align-items:flex-start;flex-direction:column;gap:12px;padding-block:18px;margin-bottom:20px}
 .activity-social h3{font-size:15px}
 .activity-social-links{gap:12px 24px}
 .activity-social-links a{font-size:13px;gap:8px}
 .footer-sns{gap:6px 16px}
 .footer-sns>span{flex-basis:100%}
}

/* Language controls share the header; narrow layouts keep them above the menu. */
.header-navigation{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding-block:8px;min-width:0}
.language-switch{display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.4}
.language-switch a{display:inline-flex;align-items:center;min-height:28px;padding:3px 2px;border-bottom:2px solid transparent;color:var(--muted)}
.language-switch a[aria-current=page]{color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.language-switch a:hover{color:var(--accent-ink)}
html[lang=en] .service-en{display:none}
html[lang=en] .event-type{width:auto;min-width:84px;max-width:100%;padding-inline:10px}
html[lang=en] .archive-title{flex-wrap:wrap}
html[lang=en] .section-heading>p{max-width:360px}
html[lang=ja] .hero h1{font-size:clamp(48px,6.2vw,92px);line-height:1.22;letter-spacing:-.035em}
html[lang=ja] .section-heading h2{font-size:clamp(32px,3.7vw,52px);line-height:1.3;letter-spacing:-.025em}
html[lang=ja] .contact h2{font-size:clamp(44px,5.8vw,82px);line-height:1.3;letter-spacing:-.025em}
html[lang=ja] .work h3{line-height:1.45}
@media(max-width:1100px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding-block:12px;min-height:94px}
 .header-inner>.brand{grid-column:1;grid-row:1;justify-self:start}
 .header-navigation{display:contents}
 .menu-toggle{display:block;grid-column:2;grid-row:1;font-size:13px;padding:10px 0}
 .language-switch{grid-column:1/-1;grid-row:2;justify-self:end;gap:14px}
 #site-nav{display:none;grid-column:1/-1;grid-row:3;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-bottom:8px}
 #site-nav[data-open=true]{display:flex}
 #site-nav a{padding:12px 0;border-top:1px solid var(--line)}
 #site-nav .nav-contact{border:0;border-top:1px solid var(--line)}
}
@media(max-width:700px){
 html[lang=en] .hero h2{font-size:24px}
 html[lang=en] .filters{gap:10px 18px}
 html[lang=en] .event-type{font-size:10px;min-width:76px}
 html[lang=en] .team-member-copy{display:block}
 html[lang=en] .team-member-copy p{margin-top:6px}
 html[lang=ja] .hero h1{font-size:clamp(38px,10.5vw,64px)}
 html[lang=ja] .section-heading h2{font-size:32px}
 html[lang=ja] .contact h2{font-size:42px}
 .language-switch a{min-height:30px}
}
/* Translated category names keep their full label instead of the Chinese fixed width. */
html:is([lang=en],[lang=ja]) .event-type,
html:is([lang=en],[lang=ja]) .hero-slide-caption h3 button>.event-type,
html:is([lang=en],[lang=ja]) .archive-row .event-type,
html:is([lang=en],[lang=ja]) #dialog-title .event-type{width:auto;min-width:84px;max-width:100%;padding-inline:9px}
@media(max-width:700px){
 html:is([lang=en],[lang=ja]) .hero-copy h2 br{display:initial}
 html:is([lang=en],[lang=ja]) .event-type{min-width:76px}
}
@media(max-width:360px){
 html[lang=ja] .site-header .wordmark-preview{width:188px}
 html[lang=ja] .site-header .wordmark-preview .wordmark-main{font-size:29px}
}

/* Decorative link markers are CSS blocks, never emoji/font glyphs. */
.link-block{display:inline-block;width:10px;height:10px;flex:0 0 10px;background:var(--link-block-color,var(--accent));vertical-align:middle;margin-inline-start:.35em;pointer-events:none}
.text-link>.link-block,.nav-contact>.link-block,.activity-social-links .link-block,.footer-sns .link-block,.video-play>.link-block{margin-inline-start:0}
.square-link>.link-block,.image-cta>.link-block{width:14px;height:14px;margin:0}
.archive-row>.link-block{margin:0;align-self:center;justify-self:center}
.video-section-intro .link-block,.button .link-block{--link-block-color:var(--accent-light)}
.square-link:hover,.nav-contact:hover,.work-image:hover .image-cta,.video-preview:hover .video-play{--link-block-color:#fff}
.nav-contact{align-items:center}
