:root{
 --bg:#0A0E1E;--bg2:#0E1530;--bg3:#141C3E;--ink:#F2EDE4;--mute:#A8AEC6;--line:rgba(242,237,228,.16);
 --red:#E4443B;
 --mincho:'Noto Sans JP',sans-serif;
 --gothic:'Zen Kaku Gothic New','Hiragino Sans','Noto Sans JP',sans-serif;
 --mono:'Space Grotesk','Inter',sans-serif;
 --g:16px;
 color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--gothic);font-size:16px;line-height:1.75;letter-spacing:.02em;overflow-x:hidden;word-break:auto-phrase;line-break:strict}
:lang(zh-Hant) body{font-family:'Noto Sans TC','Zen Kaku Gothic New',sans-serif}
a{color:inherit}
img,video,svg{display:block;max-width:100%}
button{font:inherit;color:inherit}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--g)}
.h2{font-family:var(--mincho);font-weight:800;font-size:28px;line-height:1.15;letter-spacing:.01em;margin:0}
:lang(en) .h2,:lang(en) .tt{font-family:var(--mono);font-weight:700;letter-spacing:-.01em}
:lang(zh-Hant) .h2,:lang(zh-Hant) .tt,:lang(zh-Hant) .md-t,:lang(zh-Hant) .big{font-family:'Noto Sans TC',sans-serif;font-weight:900}
.note{font-size:12px;color:var(--mute);line-height:1.7;margin:20px 0 0}
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;line-height:1;padding:5px 9px;border:1px solid rgba(242,237,228,.34);border-radius:99px;color:var(--ink);background:rgba(10,14,30,.5);white-space:nowrap}
.chip.pl-g::before,.chip.pl-p::before{content:"";width:7px;height:7px;border-radius:50%;box-sizing:border-box;background:var(--ink)}
.chip.pl-p::before{background:transparent;border:1.5px solid var(--ink)}
/* draft */
.draft{position:fixed;right:8px;bottom:8px;z-index:80;background:rgba(40,46,70,.78);color:#8d94ad;font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:3px 8px;border-radius:4px;pointer-events:none}
/* header */
header.bar{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .4s,transform .4s;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
header.bar.solid{background:rgba(10,14,30,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hdin{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:0 6px 0 var(--g);max-width:1400px;margin:0 auto;min-height:52px}
.brand{text-decoration:none;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;font-weight:500}
.brand .full,.brand .short{display:none}
.hnav{display:none}
.ctl{display:flex;align-items:center}
.ctl>span{display:flex}
.ctl button{background:none;border:0;cursor:pointer;min-height:44px;min-width:44px;padding:0 8px;letter-spacing:.1em;color:var(--mute);position:relative;text-transform:uppercase}
.ctl button[aria-pressed="true"]{color:var(--ink)}
.ctl [data-set][aria-pressed="true"]::after{content:"";position:absolute;left:8px;right:8px;bottom:9px;height:2px;background:var(--gold)}
.ctl .snd::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:var(--mute);vertical-align:middle}
.ctl .snd[aria-pressed="true"]::before{background:var(--red);box-shadow:0 0 8px var(--red)}
/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:520px;overflow:hidden;background:#02040b;display:flex;align-items:flex-end}
.bgph{position:absolute;top:0;right:0;bottom:0;left:0}
.bgph picture{display:block;width:100%;height:100%}
.bgph img{width:100%;height:100%;object-fit:cover;object-position:50% 34%;transform-origin:50% 40%;animation:kb 20s ease-in-out infinite alternate}
.bgph::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(10,14,30,.5) 0%,rgba(10,14,30,0) 22%,rgba(10,14,30,0) 52%,rgba(10,14,30,.82) 100%)}
@keyframes kb{from{transform:scale(1) translate(0,0)}to{transform:scale(1.09) translate(-1.6%,-1.2%)}}
#fx{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:manipulation}
.hin{position:relative;z-index:3;width:100%;padding:0 var(--g) 76px;pointer-events:none;max-width:1400px;margin:0 auto}
.evt{font-family:var(--mincho);font-weight:800;font-size:28px;line-height:1.25;margin:0 0 10px;text-shadow:0 2px 18px rgba(0,0,0,.7)}
:lang(en) .evt{font-family:var(--mono);font-weight:700;font-size:28px;line-height:1.15}
:lang(zh-Hant) .evt{font-family:'Noto Sans TC',sans-serif;font-weight:900}
.venue{margin:0 0 16px;font-size:14px;color:var(--ink);opacity:.92;text-shadow:0 1px 12px rgba(0,0,0,.8);line-height:1.5}
.date{font-family:var(--mono);font-weight:500;font-size:44px;line-height:1;letter-spacing:.01em;margin:0 0 12px;font-variant-numeric:tabular-nums;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.dd{display:block;white-space:nowrap}
.dd small{text-shadow:0 1px 12px #000,0 0 3px #000;font-size:16px;letter-spacing:.2em;color:var(--gold2);margin-left:.7em;vertical-align:.5em}
.dsep{display:none}
.free{display:inline-block;margin:0;background:var(--gold);color:#0A0E1E;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.2em;padding:8px 18px;border-radius:99px}
:lang(ja) .free,:lang(zh-Hant) .free{letter-spacing:.3em}
.cue{position:absolute;z-index:4;left:50%;bottom:14px;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink);border:1px solid var(--line);background:rgba(10,14,30,.35);animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,6px)}}
/* what */
.what{padding:64px 0 72px;background:var(--bg)}
.whead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin-bottom:20px}
.filt{display:none}
.filt button{min-height:44px;min-width:44px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:none;cursor:pointer;font-size:12px;color:var(--mute);transition:background .25s,color .25s,border-color .25s}
.filt button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#0A0E1E;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tile{position:relative;overflow:hidden;border-radius:10px;background:var(--bg3);cursor:pointer;isolation:isolate;outline-offset:3px;transition:opacity .35s,transform .25s;-webkit-tap-highlight-color:transparent}
.tile.big{grid-column:span 2;aspect-ratio:16/9}
.tile.half{grid-column:span 1;aspect-ratio:4/5}
.tile:active{transform:scale(.985)}
.tile.dim{opacity:.22}
.tm{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}
.tm img,.tm video,.tm .abs{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tile:hover .tm>img,.tile:hover .tm>video,.tile:hover .abs{transform:scale(1.045)}
.shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(10,14,30,0) 45%,rgba(10,14,30,.86) 100%)}
.badge{position:absolute;z-index:3;top:8px;right:8px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:4px 9px;border-radius:99px;background:var(--red);color:#fff;font-weight:700;line-height:1.2}
.tile.t-live .badge,.tile.t-goods .badge{background:rgba(10,14,30,.7);border:1px solid var(--line);font-weight:500;color:var(--ink)}
.tx{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:10px 12px 12px;display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.tt{position:relative;display:block;font-family:var(--mincho);font-weight:800;line-height:1.15;text-shadow:0 1px 14px rgba(0,0,0,.55);padding-bottom:5px}
.tt::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:width .4s}
.tile:hover .tt::after,.tile:focus-visible .tt::after{width:36px}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.big .tt{font-size:28px}.big .tx{padding:14px 16px 16px}
.half .tt{font-size:16px}.half .tx{padding:10px 10px 11px;gap:7px}
.tap{text-align:left;margin:16px 0 0;font-size:12px;color:var(--mute)}
/* sumi footage is dark: lift it for the tile only */
/* abstract */
.abs-live{background:#02040b;overflow:hidden}
.abs-live .c1{left:2%;transform:rotate(-8deg)}.abs-live .c2{left:33%}.abs-live .c3{right:2%;transform:rotate(8deg)}
.abs-live .truss{position:absolute;left:0;right:0;top:0;height:9%;background:#05070f;border-bottom:2px solid #1d2442}
.coll{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--bg)}
.coll img{position:static;width:100%;height:100%;object-fit:cover}
/* band */
.band{background:var(--gold);color:#0A0E1E;padding:64px 0 68px}
.band .h2{color:#0A0E1E;margin-bottom:28px}
.days{display:grid;gap:22px}
.day{display:grid;gap:8px}
.dl{display:flex;align-items:baseline;gap:10px;font-family:var(--mono)}
.dl b{font-size:28px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.dl small{font-size:12px;letter-spacing:.2em;font-weight:500}
.track{height:48px;border-radius:99px;background:rgba(10,14,30,.14);overflow:hidden;position:relative}
.fill{position:relative;height:100%;width:var(--w);background:#0A0E1E;border-radius:99px;display:flex;align-items:center;padding-left:18px;transform-origin:left;transform:scaleX(0);transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}
.day.in .fill{transform:scaleX(1)}
.fill em{font-style:normal;font-family:var(--mono);font-size:14px;font-weight:700;color:var(--gold2);letter-spacing:.06em;position:relative;z-index:2;white-space:nowrap}
.seg{position:absolute;top:7px;bottom:7px;background:var(--gold);border-radius:99px;display:flex;align-items:center;justify-content:center}
.seg{font-style:normal}
.seg b{font-style:normal;font-family:var(--mono);font-size:12px;color:#0A0E1E;font-weight:700}
.segcap{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:14px;font-weight:700}
.axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;font-weight:500;margin-top:-10px;padding:0 2px}
.sch{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px;font-size:16px}
.sch li{display:grid;gap:2px;padding-top:12px;border-top:1px solid rgba(10,14,30,.28)}
.sch time{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;display:flex;align-items:center;gap:7px}
.sq{width:12px;height:12px;border-radius:4px;background:#D9A94C;border:3px solid #0A0E1E;display:inline-block;box-sizing:border-box}
.sq::after{content:none}
.band .note{color:rgba(10,14,30,.75)}
/* access */
.access{padding:64px 0 28px}
.acc{margin-top:24px;display:grid;gap:14px}
.map{width:100%;height:auto;border-radius:14px;overflow:hidden}
.map text{font-family:var(--gothic)}
.cards{display:grid;gap:10px}
.card{border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:8px;justify-items:start;background:var(--bg2)}
.card b{font-family:var(--mincho);font-size:16px;font-weight:800;line-height:1.3}
:lang(en) .card b{font-family:var(--mono)}
.card p{margin:0;font-size:14px;color:var(--mute);line-height:1.7}
.lnk{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:14px;letter-spacing:.08em;color:var(--gold2);text-decoration:none;border-bottom:1px solid var(--gold)}
/* org */
.org{padding:44px 0 56px}
.orgl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:22px 0 0;font-size:14px;line-height:1.6}
.orgl dt{color:var(--gold2);font-size:12px;letter-spacing:.1em;padding-top:2px}
.orgl dd{margin:0;overflow-wrap:anywhere;min-width:0}
.contact{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.cbtn{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid var(--gold);border-radius:99px;font-family:var(--mono);font-size:14px;text-decoration:none;letter-spacing:.04em;transition:background .25s,color .25s}
.cbtn:hover{background:var(--gold);color:#0A0E1E}
footer{padding:48px 0 90px;border-top:1px solid var(--line)}
footer .big{font-family:var(--mincho);font-weight:800;font-size:28px;line-height:1.35;margin:0 0 8px}
:lang(en) footer .big{font-family:var(--mono);font-weight:500;font-size:28px}
/* reveal */
.rv{opacity:0;transform:translateY(8px);transition:opacity .55s ease var(--d,0ms),transform .55s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.rv.in{opacity:1;transform:none}
.tile.rv.dim.in{opacity:.22}
/* modal */
.md{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:stretch;justify-content:center}
.md-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(4,6,14,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.md-p{position:relative;width:100%;height:100%;max-width:1120px;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;animation:mdin .28s cubic-bezier(.2,.7,.2,1)}
@keyframes mdin{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.md-x{position:absolute;z-index:5;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(10,14,30,.7);cursor:pointer;display:flex;align-items:center;justify-content:center}
.md-g{position:relative;flex:0 0 auto;background:#000}
.md-gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;aspect-ratio:4/3;height:75vw;max-height:62vh;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.md-gal::-webkit-scrollbar{display:none}
.sl{position:relative;flex:0 0 100%;scroll-snap-align:center;margin:0;overflow:hidden;background:#05070f}
.sl>img,.sl>video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}
.sl.fit>img,.sl.fit>video{object-fit:contain;z-index:1}
.sl .bl{position:absolute;top:-10%;left:-10%;width:120%;height:120%;object-fit:cover;filter:blur(26px) brightness(.55);z-index:0}
.sl .abs{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}
.sl figcaption{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:26px 16px 12px;font-size:14px;line-height:1.5;background:linear-gradient(180deg,transparent,rgba(5,7,15,.85))}
.md-dots{position:absolute;z-index:4;left:0;right:0;top:12px;display:flex;justify-content:center;gap:5px;pointer-events:none}
.md-dots i{width:18px;height:3px;border-radius:2px;background:rgba(242,237,228,.35)}
.md-dots i.on{background:var(--gold)}
.md-b{padding:18px var(--g) 28px;display:flex;flex-direction:column;gap:12px}
.md-t{font-family:var(--mincho);font-weight:800;font-size:28px;line-height:1.15;margin:0;padding-right:48px}
:lang(en) .md-t{font-family:var(--mono);font-weight:700}
.md-one{font-size:16px;margin:0;line-height:1.7}
.md-more{border-top:1px solid var(--line);padding-top:4px}
.md-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-family:var(--mono);font-size:14px;letter-spacing:.1em;color:var(--gold2);list-style:none}
.md-more summary::-webkit-details-marker{display:none}
.md-more summary::after{content:"+";margin-left:10px;font-size:16px}
.md-more[open] summary::after{content:"–"}
#md-more{font-size:14px;color:var(--mute);line-height:1.85}
#md-more small{font-size:12px;display:block;margin-top:10px}
.md-nav{display:flex;align-items:center;justify-content:space-between;margin-top:6px;font-family:var(--mono);font-size:12px;color:var(--mute)}
.md-nav button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
body.mdopen{overflow:hidden}
/* desktop */
@media (min-width:900px){
 :root{--g:40px}
 .brand .full{display:inline}
 .hdin{padding-left:var(--g);padding-right:20px;min-height:60px}
 .hnav{display:flex;gap:6px;margin-left:auto;margin-right:20px}
 .hnav a{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;text-decoration:none;color:var(--mute)}
 .hnav a:hover{color:var(--ink)}
 .bgph img{object-position:50% 30%}
 .hin{padding-bottom:36px}
 .date{font-size:44px;display:flex;align-items:baseline;flex-wrap:wrap;margin-bottom:28px}
 .dsep{display:inline-block;width:.9em;height:2px;background:var(--gold);margin:0 .4em;align-self:center}
 .free{font-size:14px;padding:10px 26px}
  .cue{left:var(--g);transform:none;bottom:26px;animation:none}
 .what{padding:28px 0 90px}
 .h2{font-size:28px}
 .whead{margin-bottom:12px}
 .band .h2{font-size:28px}
 .whead{margin-bottom:12px}
 .grid{grid-template-columns:repeat(12,1fr);grid-template-rows:98px 98px 140px;gap:10px}
 .tile.big,.tile.half{aspect-ratio:auto}
 .grid .tile.t-hanabi{grid-column:1/5;grid-row:1/3}
 .grid .tile.t-vr{grid-column:5/9;grid-row:1/3}
 .grid .tile.t-sumi{grid-column:9/13;grid-row:1/3}
 .grid .tile.t-craft{grid-column:1/3;grid-row:3/4}
 .grid .tile.t-photo{grid-column:3/5;grid-row:3/4}
 .grid .tile.t-screen{grid-column:5/7;grid-row:3/4}
 .grid .tile.t-aug{grid-column:7/9;grid-row:3/4}
 .grid .tile.t-live{grid-column:9/11;grid-row:3/4}
 .grid .tile.t-goods{grid-column:11/13;grid-row:3/4}
 .big .tt{font-size:28px}.big .tx{padding:14px 16px 16px;gap:8px}
 .half .tt{font-size:16px}.half .tx{padding:8px 10px 9px;gap:5px}.half .badge{display:none}
 .hero{height:40vh;max-height:420px;min-height:320px}
 .cue{display:none}
 .evt{font-size:28px}:lang(en) .evt{font-size:28px}
 .venue{font-size:16px}
 .badge{top:14px;right:14px}
 .band{padding:96px 0 100px}
 .days{grid-template-columns:1fr 1fr;gap:40px}
 .axis{grid-column:1/-1;display:none}
 .dl b{font-size:44px}
 .track{height:56px}
 .sch{grid-template-columns:repeat(3,1fr);gap:28px}
 .access{padding:96px 0 40px}
 .acc{grid-template-columns:7fr 5fr;gap:24px;align-items:stretch}
 .cards{align-content:stretch}
 .org{padding:60px 0 80px}
 .orgl{grid-template-columns:140px 1fr;font-size:14px}
 footer .big{font-size:44px}:lang(en) footer .big{font-size:44px}
 .md{padding:3vh 0}
 .md-p{flex-direction:row;overflow:hidden;border-radius:14px;max-height:94vh}
 .md-g{flex:0 0 60%}
 .md-gal{aspect-ratio:auto;height:100%;max-height:none;min-height:520px}
 .md-b{flex:1;overflow-y:auto;padding:36px 32px 28px}
 .md-t{font-size:28px}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 .rv{opacity:1;transform:none}
 .fill{transform:none}
 html{scroll-behavior:auto}
}

.sch{display:none}
.coll{display:block}

.half .shade{background:linear-gradient(180deg,rgba(10,14,30,0) 30%,rgba(10,14,30,.9) 100%)}

.t-live .tm{background:#050816}.t-live{background:#050816}

.bgph::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(90deg,rgba(10,14,30,.72),rgba(10,14,30,.25) 50%,transparent 75%);pointer-events:none}
.more{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:0 16px;background:var(--bg2)}
.more summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-size:14px;list-style:none;font-weight:700}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:"+";margin-left:auto;font-size:16px}
.more[open] summary::after{content:"–"}
.more p{font-size:14px;color:var(--mute);margin:0 0 12px;line-height:1.7}
.card p{font-size:14px;color:var(--mute);margin:0;line-height:1.7}

/* round6: motion */
@keyframes fup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hin>.evt,.hin>.date,.hin>.venue,.hin>.free{animation:fup .7s cubic-bezier(.2,.7,.2,1) backwards}
.hin>.evt{animation-delay:0s}.hin>.date{animation-delay:.12s}.hin>.venue{animation-delay:.24s}.hin>.free{animation-delay:.36s}
@keyframes mdfade{from{opacity:0}to{opacity:1}}
@keyframes mdout{to{opacity:0;transform:translateY(16px)}}
.md-bg{animation:mdfade .25s ease both}
.md.out .md-p{animation:mdout .22s ease forwards}
.md.out .md-bg{opacity:0;transition:opacity .22s}
.tile{transition:opacity .35s,transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.tile:hover{transform:translateY(-2px)}
.tile:active{transform:scale(.97)}
.half .shade{background:linear-gradient(180deg,rgba(10,14,30,0) 22%,rgba(10,14,30,.92) 100%)}
.half .tx{background:linear-gradient(180deg,rgba(10,14,30,0),rgba(10,14,30,.85) 40%);padding-top:22px}
.half .tt{text-shadow:0 0 6px rgba(0,0,0,.95),0 1px 14px rgba(0,0,0,.95)}
.abs-live g{filter:drop-shadow(0 0 3px rgba(235,200,120,.9)) drop-shadow(0 0 8px rgba(217,169,76,.55))}
@media (prefers-reduced-motion:reduce){.hin>*{animation:none!important}.md-bg,.md-p{animation:none!important}}

/* round7: old-Safari / webview hardening (no aspect-ratio support) */
@supports not (aspect-ratio:1/1){
 .tile.big::before{content:"";display:block;padding-top:56.25%}
 .tile.half::before{content:"";display:block;padding-top:125%}
 .abs-screen{width:100%;height:100%}
}
@media (min-width:900px){@supports not (aspect-ratio:1/1){.tile.big::before,.tile.half::before{display:none}}}
.sl>img,.sl>video{object-position:50% 50%}
.sl.fit>video,.sl.fit>img{background:transparent}

.hin>.credit{margin:10px 0 0;font-size:12px;color:rgba(242,237,228,.72);text-shadow:0 1px 8px #000;letter-spacing:.02em}


/* ===== site3: multipage additions ===== */
body.sub{padding-top:60px}
body.sub main{display:block}
header.bar.solid{background:rgba(10,14,30,.94)}
.brand .short{display:inline}
.menu{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:0;background:none;border:0;cursor:pointer;color:var(--ink)}
.menu .m2{display:none}
body.navopen .menu .m1{display:none}
body.navopen .menu .m2{display:inline}
header.bar .hnav{display:none}
@media (max-width:899px){
 body.navopen .hnav{display:flex;flex-direction:column;position:fixed;top:52px;left:0;right:0;z-index:59;background:rgba(10,14,30,.98);padding:6px var(--g) 18px;border-bottom:1px solid var(--line);margin:0;gap:0}
 body.navopen .hnav a{min-height:54px;display:flex;align-items:center;font-size:16px;letter-spacing:.06em;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);text-transform:none}
 body.navopen .hnav a[aria-current]{color:var(--gold2)}
 .brand .full{display:none}
}
@media (min-width:900px){
 .brand .short{display:none}
 .menu{display:none}
 header.bar .hnav{display:flex}
 .hnav a{text-transform:none;font-size:13px;letter-spacing:.06em}
 .hnav a[aria-current]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--gold)}
 body.sub{padding-top:68px}
}
.phead{padding:36px 0 10px;background:var(--bg)}
.ph{font-size:32px;margin:0 0 6px}
.lead{margin:6px 0 0;color:var(--mute);font-size:16px;line-height:1.7}
.sub .what{padding-top:20px}
.sub .access{padding-top:56px}
/* home: facts */
.facts{padding:48px 0 12px;background:var(--bg)}
.fgrid{display:grid;gap:10px;margin-top:20px}
.fact{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--bg2);text-decoration:none;transition:border-color .25s,transform .25s}
.fact:hover{border-color:var(--gold);transform:translateY(-2px)}
.fk{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--gold2);text-transform:uppercase}
.fact b{font-family:var(--mincho);font-size:20px;line-height:1.35;font-weight:800}
:lang(en) .fact b{font-family:var(--mono);font-weight:700}
:lang(zh-Hant) .fact b{font-family:'Noto Sans TC',sans-serif;font-weight:900}
.fs{font-size:14px;color:var(--mute);line-height:1.6}
.hl{padding:44px 0 0;background:var(--bg)}
.hl .whead{align-items:baseline}
.more-l{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:14px;letter-spacing:.06em;color:var(--gold2);text-decoration:none;border-bottom:1px solid var(--gold)}
.hgrid{display:grid;grid-template-columns:1fr;gap:10px}
.hgrid .tile.big{grid-column:auto;aspect-ratio:16/9}
a.tile{display:block;text-decoration:none;color:inherit}
.ctas{padding:36px 0 64px;background:var(--bg)}
.ctas .wrap{display:grid;gap:10px}
.cta{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--bg3);text-decoration:none;transition:border-color .25s,background .25s}
.cta:hover{border-color:var(--gold);background:var(--bg2)}
.cta b{font-family:var(--mincho);font-size:20px;font-weight:800}
:lang(en) .cta b{font-family:var(--mono)}
.cta span{font-size:14px;color:var(--mute);line-height:1.6}
body.home .hero{height:84svh;min-height:480px}
.snd-h{position:absolute;z-index:5;right:12px;bottom:14px;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid var(--line);background:rgba(10,14,30,.55);cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);display:inline-flex;align-items:center}
.snd-h::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;background:var(--mute)}
.snd-h[aria-pressed="true"]{color:var(--ink);border-color:var(--gold)}
.snd-h[aria-pressed="true"]::before{background:var(--red);box-shadow:0 0 8px var(--red)}
.hero .cue{bottom:14px}
/* overview */
.ov{padding:12px 0 8px;background:var(--bg)}
.big-dl{font-size:16px;gap:16px 18px}
.big-dl dt{font-size:13px}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:14px;color:var(--mute);margin:0 0 16px}
/* faq */
.faq{padding:12px 0 8px;background:var(--bg)}
.qa{border:1px solid var(--line);border-radius:12px;background:var(--bg2);margin-bottom:10px;padding:0 18px}
.qa summary{cursor:pointer;min-height:56px;display:flex;align-items:center;gap:12px;font-size:16px;font-weight:700;list-style:none;line-height:1.5;padding:8px 0}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";margin-left:auto;font-family:var(--mono);font-size:20px;color:var(--gold2)}
.qa[open] summary::after{content:"–"}
.qa-a{padding:0 0 16px;font-size:15px;color:var(--mute);line-height:1.85}
.qa-a .lnk{margin-left:6px}
/* play */
.hero.mini{height:62svh;min-height:380px;background:radial-gradient(120% 90% at 50% 100%,#10183a,#02040b 70%)}
.hero.mini .hin{padding-bottom:84px}
.hero.mini .evt{font-size:26px}
.pl{padding:56px 0 28px;background:var(--bg)}
.pl.alt{background:var(--bg2)}
.pl-hd{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}
.pl-text{font-size:16px;line-height:1.85;margin:0 0 18px;max-width:46em;color:var(--ink)}
.pl-text small{display:block;color:var(--mute);font-size:13px;margin-top:8px}
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:18px}
.steps.three{grid-template-columns:repeat(3,1fr)}
.stp{margin:0;position:relative;border-radius:10px;overflow:hidden;background:#05070f}
.stp img{width:100%;aspect-ratio:4/3;object-fit:cover}
.stp figcaption{padding:8px 10px;font-size:13px;color:var(--mute);line-height:1.5}
/* footer */
footer .flinks{display:flex;flex-wrap:wrap;gap:4px 18px;margin:14px 0 6px}
footer .flinks a{min-height:44px;display:inline-flex;align-items:center;font-size:14px;color:var(--mute);text-decoration:none}
footer .flinks a:hover{color:var(--ink)}
footer .note a{color:var(--gold2)}
a:focus-visible,button:focus-visible,summary:focus-visible,.tile:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
@media (min-width:900px){
 .ph{font-size:44px}
 .fgrid{grid-template-columns:repeat(3,1fr);gap:14px}
 .fact{padding:22px 24px}
 .fact b{font-size:22px}
 .hgrid{grid-template-columns:repeat(3,1fr);gap:12px}
 .hgrid .tile.big{aspect-ratio:16/10}
 .ctas .wrap{grid-template-columns:repeat(3,1fr);gap:14px}
 body.home .hero{height:78vh;min-height:520px;max-height:760px}
 .hero.mini{height:56vh;max-height:560px}
 .hero.mini .evt{font-size:34px}
 .steps{grid-template-columns:repeat(4,1fr);gap:12px}
 .steps.three{grid-template-columns:repeat(3,1fr)}
 .big-dl{grid-template-columns:160px 1fr;font-size:17px}
 .qa{padding:0 24px}
 .sub .what{padding-top:24px}
 .snd-h{right:var(--g);bottom:24px}
 .hero.mini .hin,.home .hin{padding-bottom:44px}
}

.legend .lg{display:inline-flex;align-items:center;gap:8px}

.hnav a{min-width:44px;justify-content:center}
footer .flinks a{min-width:44px;justify-content:flex-start}
.what-l{margin:0 0 16px;font-size:15px;line-height:1.6;color:var(--ink);opacity:.92;text-shadow:0 1px 12px rgba(0,0,0,.85);max-width:30em}
@media (min-width:900px){.what-l{font-size:17px;margin-bottom:22px}}
.hin>.what-l{animation:fup .7s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:.3s}

/* round2 */
.hrs{margin:0 0 6px;font-family:var(--mono);font-size:15px;letter-spacing:.04em;color:var(--gold2);text-shadow:0 1px 12px rgba(0,0,0,.85);font-variant-numeric:tabular-nums}
@media (min-width:900px){.hrs{font-size:18px}}
.hin{padding-bottom:64px}
.cta{grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px 18px}
.cta .ci{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);color:var(--gold2)}
.cta .ct{display:grid;gap:3px}
.cta b{font-size:20px;line-height:1.3}
.cta .ct>span{font-size:15px;color:var(--mute)}
.cta .arw{color:var(--gold2)}
footer .flinks{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px;margin:14px 0 10px}
@media (min-width:900px){footer .flinks{display:flex;flex-wrap:wrap;gap:4px 24px}}
footer .fcontact{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:0 20px;border:1px solid var(--gold);border-radius:99px;text-decoration:none;color:var(--ink);font-weight:700;font-size:15px;margin:6px 0 14px;max-width:420px}
footer .fcontact:hover{background:var(--gold);color:#0A0E1E}
.orgl dd{word-break:keep-all;overflow-wrap:break-word}
.orgl{grid-template-columns:5.5em 1fr}
.card p+.lnk{margin-top:2px}

footer .flinks a{justify-content:flex-start!important}
@media (min-width:900px){.hgrid{grid-template-rows:none;grid-auto-rows:auto}.hgrid .tile.big{grid-column:auto;grid-row:auto}}

@media (min-width:900px){footer .flinks{gap:4px 8px}footer .flinks a{min-width:0;padding:0 14px}}

.steps.art .stp img{aspect-ratio:16/9}
@media(min-width:760px){.steps.art{grid-template-columns:repeat(4,1fr)}}

/* ===== V16: 墨+朱・灰紙・罫と表(調査 RESEARCH_anti_AI_design.md の10か条を適用) =====
   既存CSSの後ろに重ねる。色は変数で反転し、角丸・影・発光・グラデ・フェードイン・矢印ボタンを廃止する。 */
:root{
 --bg:#281E78;--bg2:#1F1668;--bg3:#2B2080;--ink:#FFFFFF;--mute:#C9C3F0;--line:rgba(255,255,255,.30);
 --gold:#FF96C8;--gold2:#FF96C8;--red:#FF96C8;--pink:#FF96C8;--blue:#96BEFF;--yellow:#FFCF73;
 --mono:'Noto Sans JP','Hiragino Sans',sans-serif;
 color-scheme:dark;
}
*,*::before,*::after{border-radius:0;box-shadow:none!important;text-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.rv,.rv.in{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
body{background:var(--bg);color:var(--ink);letter-spacing:.01em}
.shade,.bgph::before,.bgph::after,.cue{display:none!important}
.draft{background:var(--bg3);color:var(--mute);border:1px solid var(--line)}
.chip{border:1px solid var(--ink);color:var(--ink);background:transparent;font-family:var(--gothic);letter-spacing:.02em;padding:3px 7px}
.badge,.tile .badge{background:none!important;border:0!important;color:var(--red)!important;font-family:var(--gothic);font-weight:700;letter-spacing:.04em;padding:0!important}
.note{color:var(--mute)}
.h2{font-family:var(--mincho);font-weight:800;letter-spacing:0}
:lang(en) .h2,:lang(en) .tt,:lang(en) .evt{font-family:var(--mincho);font-weight:800;letter-spacing:0}

/* 見出し: 太い横罫(掲示の語彙) */
.facts .h2,.hl .h2,.pl .h2{border-top:3px solid var(--ink);padding-top:12px}

/* ヘッダ: 灰紙に罫 */
header.bar,header.bar.solid{position:sticky;top:0;background:var(--bg);color:var(--ink);border-bottom:1px solid var(--ink);text-transform:none;font-family:var(--gothic);font-size:13px;letter-spacing:.06em}
.brand{font-family:var(--mincho);font-weight:800;letter-spacing:.02em}
.hnav a{color:var(--ink);text-decoration:none}
.hnav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.ctl button{color:var(--mute);text-transform:none}
.ctl button[aria-pressed="true"]{color:var(--ink);font-weight:700}
.ctl [data-set][aria-pressed="true"]::after{background:var(--red);height:2px}
.ctl .snd::before,.ctl .snd[aria-pressed="true"]::before{box-shadow:none}
body.navopen .hnav{background:var(--bg)!important;border-bottom:1px solid var(--ink)}

/* ヒーロー: 全面の暗い写真+重ね文字をやめ、写真(断ち切り)と紙の上の文字に分ける */
.hero,body.home .hero,.hero.mini{height:auto!important;min-height:0!important;max-height:none!important;background:var(--bg)!important;display:block!important;overflow:visible!important}
.hero .bgph{position:relative!important;height:62vw;max-height:70svh;min-height:300px;background:#02040b}
.bgph img{animation:none!important;transform:none!important;object-position:50% 40%}
.hero #fx{position:absolute;left:0;right:0;top:0;height:62vw;max-height:70svh;min-height:300px;width:100%}
.hin{position:relative!important;max-width:1280px;margin:0 auto;padding:22px var(--g) 28px!important;pointer-events:auto!important}
.evt{font-family:var(--mincho);font-weight:800;color:var(--ink);font-size:30px;line-height:1.2;margin:0 0 12px}
.date{font-family:var(--gothic);font-weight:800;font-size:56px;line-height:1;letter-spacing:-.01em;color:var(--ink);margin:0 0 10px;display:flex;gap:.55em;flex-wrap:wrap}
.dd small{font-family:var(--mincho);font-weight:800;font-size:18px;letter-spacing:0;color:var(--ink);margin-left:.3em;vertical-align:.4em}
.hrs{color:var(--ink);font-family:var(--gothic);font-weight:700;letter-spacing:.02em;font-size:16px;margin:0 0 4px}
.venue,.what-l{color:var(--ink);opacity:1}
.free{background:none;color:var(--red);border:2px solid var(--red);font-family:var(--mincho);font-weight:800;font-size:15px;letter-spacing:.2em;padding:5px 12px;display:inline-block;margin-top:6px}
.credit{color:var(--mute)!important;font-size:12px;margin:14px 0 0}
.snd-h{position:absolute!important;right:12px;top:12px;bottom:auto!important;background:var(--bg)!important;color:var(--ink)!important;border:1px solid var(--ink)!important;font-family:var(--gothic)!important;letter-spacing:.06em}
.hero.mini{height:auto!important;min-height:0!important;background:var(--bg)!important}
body.playp .hero.mini{display:block!important}
body.playp .hero.mini #fx{position:relative;display:block;height:56svh;min-height:320px;max-height:520px;background:#05070f;border-bottom:1px solid var(--ink)}
body.playp .hero.mini .snd-h{top:12px}

/* ひと目でわかる: 表 */
.facts,.hl,.ctas,.pl,.phead{background:transparent}
.fgrid{display:block;border-bottom:1px solid var(--ink)}
.fact{display:grid;grid-template-columns:5.5em 1fr;gap:2px 14px;align-items:baseline;padding:14px 0;border-top:1px solid var(--line);background:none!important;border-left:0;border-right:0;color:var(--ink);text-decoration:none}
.fact:first-child{border-top:1px solid var(--ink)}
.fk{grid-row:1/3;font-family:var(--gothic);font-size:13px;font-weight:700;color:var(--mute);letter-spacing:.1em}
.fact b{font-family:var(--mincho);font-weight:800;font-size:20px;line-height:1.35}
.fs{grid-column:2;color:var(--mute);font-size:13px}

/* 見どころ: 3枚カード→1枚大+並び、文字は画像の外(下) */
.grid.hgrid{display:grid;grid-template-columns:1fr;gap:26px 18px}
.tile{display:block!important;position:relative;background:none!important;color:var(--ink);text-decoration:none;border:0}
.tile .tm{position:relative!important;display:block;aspect-ratio:16/9;overflow:hidden;background:#05070f}
.tile .tm img,.tile .tm video{width:100%;height:100%;object-fit:cover}
.tile .tx{position:static!important;display:block;background:none!important;padding:10px 0 0!important}
.tile .tt,.half .tt{font-family:var(--mincho);font-weight:800;font-size:20px;color:var(--ink);padding:0}
.tile .badge{position:static!important;display:block;margin-top:2px}
.more-l{color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;border:0;font-weight:700}
.whead{display:flex;justify-content:space-between;align-items:baseline;gap:12px}

/* 行き先リンク: 矢印ボタン→罫線の行 */
.ctas .wrap{display:block}
.cta{display:grid!important;grid-template-columns:1fr;gap:0;padding:14px 0;border:0;border-top:1px solid var(--line);background:none!important;color:var(--ink);text-decoration:none}
.cta:last-child{border-bottom:1px solid var(--ink)}
.cta .ci,.cta .arw{display:none!important}
.cta .ct b{font-family:var(--mincho);font-weight:800;font-size:19px;display:inline;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.cta .ct span{display:block;color:var(--mute);font-size:13px;margin-top:2px}

/* フッタ */
footer{background:transparent;border-top:3px solid var(--ink);color:var(--ink)}
footer .big{font-family:var(--mincho);font-weight:800}
.flinks a{color:var(--ink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;background:none!important;border:0!important}
footer .fcontact,footer .fcontact:hover{background:none!important;color:var(--ink);border:0!important;border-top:1px solid var(--ink)!important;padding-left:0;text-decoration:underline;text-underline-offset:5px;font-weight:700}
footer .fcontact svg{display:none}

/* サブページ共通 */
.phead{border-bottom:1px solid var(--ink)}
.ph{font-family:var(--mincho)}
.lead{color:var(--ink)}
.steps .stp,.stp{background:none;border:0}
.stp img{aspect-ratio:16/9;border:1px solid var(--ink)}
.stp figcaption{padding:6px 0 0;color:var(--ink);font-size:13px}
.pl.alt,.band{background:var(--bg2);color:var(--ink)}
.band .h2,.band .note{color:var(--ink)}
.qa,.card,.cards>*,.orgl,.day,.dl>*{background:none!important;border:0;border-top:1px solid var(--line);color:var(--ink)}
.track{background:var(--bg3);height:30px}
.fill{background:var(--ink);color:var(--bg)}
.sq{background:var(--red);border:0}
.sl{background:var(--bg3)}
.sl figcaption{position:static!important;background:none!important;color:var(--ink);padding:8px 0 0}
.md,.md-b,.md-g{background:var(--bg)!important;color:var(--ink)!important}
.md-x,.cbtn{background:var(--bg)!important;color:var(--ink)!important;border:1px solid var(--ink)!important}
.cbtn:hover{background:var(--ink)!important;color:var(--bg)!important}
.filt button{background:none;border:1px solid var(--ink);color:var(--ink)}
.filt button[aria-pressed="true"]{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}
a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:3px}

@media (min-width:700px){
 .hero .bgph,.hero #fx{height:42vw;max-height:76svh}
 .evt{font-size:44px}
 .date{font-size:96px}
 .grid.hgrid{grid-template-columns:2fr 1fr;grid-template-rows:auto auto}
 .grid.hgrid .tile:first-child{grid-row:1/3}
 .fact{grid-template-columns:8em 1fr}
 .fgrid .fact b{font-size:24px}
}
/* タイル: 画像の外に見出し(重ね文字をやめる) */
.tile,.tile.big,.tile.half{aspect-ratio:auto!important;overflow:visible!important;height:auto!important}
.tile.half .tm{aspect-ratio:4/3}
.tile .tm .abs,.tile .tm img,.tile .tm video{transition:none!important;transform:none!important}
.tile:hover .tm>img,.tile:hover .tm>video,.tile:hover .abs{transform:none!important}
.tile .tt::after{display:none!important}
.tile:active{transform:none}
.tile.dim{opacity:.35}
.tx{gap:2px}
/* プログラム一覧: 固定行高のタイル配置をやめ、画像+見出しの素直な並びに */
.grid:not(.hgrid){grid-template-columns:repeat(2,1fr)!important;grid-template-rows:none!important;grid-auto-rows:auto!important;gap:24px 16px!important}
.grid:not(.hgrid) .tile[class*="t-"]{grid-column:auto!important;grid-row:auto!important}
.grid:not(.hgrid) .tile.big,.grid:not(.hgrid) .tile.half{grid-column:auto!important}
@media (min-width:700px){.grid:not(.hgrid){grid-template-columns:repeat(3,1fr)!important}}
@media (max-width:420px){.evt{font-size:25px;word-break:keep-all}}
.tile .tm{aspect-ratio:16/9}
/* 時間の帯: 墨の帯に紙色の字 */
.fill{background:var(--ink)!important;color:var(--bg)!important}
.seg b,.fill b,.fill span{color:var(--bg)!important}
.days .day,.day{border-top:1px solid var(--ink)}
.map{background:var(--bg2)}

/* ===== フライヤー版: 藍(40,30,120)→(26,18,88)の色面・見出し=白+ピンク・Noto Sans JP 太字1書体 ===== */
html{background:#1A1258}
body{background:linear-gradient(180deg,#281E78 0%,#1A1258 100%) fixed;color:#fff;font-family:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;font-weight:500;letter-spacing:.01em}
:lang(zh-Hant) body{font-family:'Noto Sans TC','Noto Sans JP',sans-serif}
.h2,.evt,.tt,.ph,.brand,.big,.cta .ct b,.fact b,.md-t,.h3{font-family:inherit!important;font-weight:900!important;letter-spacing:0!important}
:lang(en) .h2,:lang(en) .tt,:lang(en) .evt{font-family:inherit!important}
.ph{font-size:34px}
.note,.fs,.fk,.lead{color:var(--mute)}
a{color:inherit}
.lnk,.more-l{color:var(--pink);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;font-weight:700}
.chip{border-color:rgba(255,255,255,.6);color:#fff}
.draft{background:rgba(26,18,88,.9);color:var(--mute);border:1px solid var(--line)}

/* ヘッダ */
header.bar,header.bar.solid{background:#281E78;border-bottom:1px solid rgba(255,255,255,.22);color:#fff;font-weight:700}
.brand{color:#fff}
.hnav a{color:#fff}
.hnav a[aria-current="page"]{text-decoration-color:var(--pink)}
.ctl [data-set][aria-pressed="true"]::after{background:var(--pink)}
body.navopen .hnav{background:#281E78!important;border-bottom:1px solid var(--line)}

/* ===== トップ ===== */
body.fl .fhero{display:block;background:transparent}
.fart{position:relative;height:66vw;max-height:76svh;min-height:300px;overflow:hidden;border-radius:0 0 50% 50% / 0 0 5vw 5vw;background:#1A1258}
.fart img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;display:block}
.fbody{padding-top:22px;padding-bottom:6px}
.ftag{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--mute)}
.frow{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.fsmall{margin:0;font-size:15px;font-weight:900;line-height:1.35}
.fyear{margin:0;font-size:22px;font-weight:500;color:var(--mute)}
.ftitle{margin:4px 0 0;font-size:clamp(24px,7.35vw,100px);font-weight:900;line-height:1.08;letter-spacing:-.01em;word-break:keep-all;white-space:nowrap}
.ftitle .w{color:#fff}
.ftitle .p{color:var(--pink)}
.frow2{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-top:14px}
.fdate{margin:0;display:flex;align-items:baseline;gap:.12em;font-size:clamp(36px,9.4vw,92px);font-weight:900;line-height:1;white-space:nowrap}
.fdate i{font-style:normal;font-size:.5em;color:var(--pink);margin-right:.3em}
.fdate em{font-style:normal;margin:0 .25em}
.ffree{margin:0;border:2px solid #fff;border-radius:8px;padding:6px 16px;font-weight:900;font-size:15px;white-space:nowrap}
.fopen{margin:14px 0 0;font-size:14.5px;font-weight:500;line-height:1.7}
.fopen b{font-weight:900}

.fcards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.3)}
.fc{display:block;border-radius:12px;padding:14px 18px 16px;color:#1A1258;text-decoration:none}
.fc.c-vr{background:#96BEFF}
.fc.c-game{background:#FFCF73}
.fc.c-ws,.fc.c-food{background:#FF96C8}
.fce{display:block;font-size:clamp(22px,6vw,30px);font-weight:900;line-height:1.15}
.fcj{display:block;margin-top:2px;font-size:15px;font-weight:900;line-height:1.4}
.fcs{display:block;margin-top:2px;font-size:12.5px;font-weight:700;line-height:1.45}
.fnote{margin-top:14px;margin-bottom:0;font-size:14px;font-weight:900;color:var(--pink);line-height:1.6}

.ftiles{margin-top:28px}
.ftgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 12px}
.ft{display:block;text-decoration:none;color:#fff}
.fti{display:block;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(255,255,255,.85);background:#0d0a33}
.fti img{width:100%;height:100%;object-fit:cover;display:block}
.ft b{display:block;margin-top:6px;font-size:14px;font-weight:900;line-height:1.35}
.ft small{display:block;font-size:12px;font-weight:500;color:var(--mute);line-height:1.45}
.fmore{margin:16px 0 0}

.finfo{margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,.3)}
.finfo p{margin:0 0 8px;font-size:14px;font-weight:500;line-height:1.7}

/* フッタ */
footer{background:#1A1258;border-top:1px solid rgba(255,255,255,.3);color:#fff;margin-top:36px}
footer .big{font-weight:900}
.flinks a{color:#fff}
footer .fcontact,footer .fcontact:hover{color:#fff;border-top:1px solid rgba(255,255,255,.3)!important}
.note{color:var(--mute)}

/* サブページ: 見出しの罫をピンクに / 写真は白縁 */
.facts .h2,.hl .h2,.pl .h2{border-top:3px solid var(--pink)}
.phead{border-bottom:1px solid rgba(255,255,255,.3)}
.pl.alt,.band{background:rgba(255,255,255,.05);color:#fff}
.band .h2,.band .note{color:#fff}
.stp img,.tile .tm{border:1px solid rgba(255,255,255,.85)}
.stp figcaption,.tile .tt{color:#fff}
.tile .badge{color:var(--pink)!important}
.dopen{margin:6px 0 0;font-size:20px;font-weight:900}
.day{border-top:1px solid rgba(255,255,255,.3);padding:12px 0}
.day .dl b{font-size:38px;font-weight:900}
.day .dl small{color:var(--pink);font-size:18px;font-weight:900;margin-left:.3em}
.segcap{margin:6px 0 0;color:#fff;font-weight:700}
.sq{background:var(--pink)}
.qa,.card,.orgl{border-top:1px solid rgba(255,255,255,.3);color:#fff}
.qa summary{font-weight:900}
.map{background:#1F1668}

@media (min-width:760px){
 .fart{height:34vw;max-height:70svh;border-radius:0 0 50% 50% / 0 0 3.2vw 3.2vw}
 .ftitle{font-size:min(7.7vw,100px)}
 .fcards{grid-template-columns:repeat(2,1fr);gap:14px}
 .ftgrid{grid-template-columns:repeat(3,1fr);gap:22px 16px}
 .fbody{padding-top:28px}
 .fopen,.finfo p{font-size:16px}
}
/* サブページ: ヘッダはsticky(固定ヘッダ用の上余白は不要)・時間軸の数字は使わない */
body.sub,body.sub.playp{padding-top:0!important}
.axis{display:none!important}
.tile.big::before{display:none!important}

/* ===== Opus評価(7.0)への対応 ===== */
/* トップ: 見出しを日付より大きく(スマホは2行)・英字・網点 */
.ftitle{font-size:clamp(24px,12.4vw,100px)!important;white-space:normal}
.ftitle .w,.ftitle .p{display:block}
.fenl{margin:6px 0 0;color:var(--pink);font-weight:900;font-size:clamp(15px,4.6vw,24px);letter-spacing:.01em}
.fenl:empty{display:none}
.fdate{font-size:clamp(30px,9vw,80px)!important}
.fart::after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;background-image:radial-gradient(rgba(14,8,60,.55) 1px,transparent 1.5px);background-size:4px 4px;opacity:.5}
@media (min-width:760px){
 .ftitle{font-size:min(7.7vw,100px)!important}
 .ftitle .w,.ftitle .p{display:inline}
 .fart{height:44vw;max-height:78svh}
}
/* 下半分: フライヤー裏面の組み方(つくる/みる/あそぶ・たべる/行き方) */
.fsec{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.3)}
.fpill{display:inline-flex;align-items:center;gap:8px;margin:0;border:2px solid rgba(255,255,255,.85);border-radius:999px;padding:5px 16px 5px 12px;font-size:17px;font-weight:900;border-top-width:2px}
.fpill i{width:9px;height:9px;border-radius:50%;display:inline-block}
.fpill .d1{background:#FF96C8}.fpill .d2{background:#96BEFF}.fpill .d3{background:#FFCF73}.fpill .d4{background:#7fe0b8}
.facts .h2,.hl .h2,.pl .h2{border-top-color:var(--pink)}
.fsub{margin:10px 0 14px;font-size:14px;font-weight:900;line-height:1.55}
.fdesc{margin:12px 0 0;font-size:14px;color:var(--mute);line-height:1.7}
.ftgrid{margin-top:0}
.ft b{font-size:14px}
.ft small{font-size:13px}
.fcs{font-size:13px}
.f2col{display:grid;grid-template-columns:1fr;gap:0 28px;margin-top:12px}
.f2col p,.finfo p{margin:0 0 8px;font-size:14px;line-height:1.7}
.flk{margin-top:10px!important;font-size:14px}
.finfo{border-top:1px solid rgba(255,255,255,.3)}
@media (min-width:760px){.f2col{grid-template-columns:1fr 1fr}.f2col p{font-size:16px}}
/* フッタ: 途中で切れた線をやめる */
footer .fcontact,footer .fcontact:hover{border:0!important;padding-left:0;background:none!important;color:#fff;text-decoration:underline;text-underline-offset:5px;font-weight:900}
/* サブページ: 上に作品画像の帯(凹カーブ) */
.pband{height:110px;background:#1A1258 url(media/flyer/hero_art_d.jpg) 50% 68%/cover no-repeat;border-radius:0 0 50% 50% / 0 0 24px 24px;position:relative}
.pband::after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background-image:radial-gradient(rgba(14,8,60,.55) 1px,transparent 1.5px);background-size:4px 4px;opacity:.5;border-radius:inherit}
@media (min-width:760px){.pband{height:170px;border-radius:0 0 50% 50% / 0 0 40px 40px}}
.phead{border-bottom:0;padding-top:24px}
/* 遊ぶ: 黒い面をやめ、作品画像の上で花火が上がる */
body.playp .hero.mini{background:#1A1258 url(media/flyer/hero_art_d.jpg) 50% 70%/cover no-repeat!important;border-radius:0 0 50% 50% / 0 0 24px 24px;overflow:hidden}
body.playp .hero.mini #fx{background:transparent!important;border-bottom:0!important}
body.playp .hero.mini .hin{background:rgba(26,18,88,.78);padding:14px var(--g)!important}
/* プログラム: イラスト風のタイルは色面に(フライヤーのカードの色) */
/* 開催概要: 曜日の左の線を消す・小さい文字を上げる */
.dl small,.day .dl small{border:0!important}
.dl small::before,.dl small::after{display:none!important}
.note,.segcap,.lead{font-size:14px}
body.playp .hero.mini #fx{height:44svh!important;min-height:300px!important;max-height:460px!important}
/* half タイルも他と同じ(画像の下に見出し・同じ比率) */
.grid .tile.half .tx,.grid .tile.big .tx,.tile.half .tx{position:static!important;background:none!important;padding:10px 0 0!important;display:block!important}
.grid .tile.half .tm,.tile.half .tm{aspect-ratio:16/9!important}
.tile .tx .chips{display:block;margin-top:4px}
/* タイルの並びを明示: 画像→見出し */
.tile,.tile.big,.tile.half{display:flex!important;flex-direction:column}
.tile .tm{order:0;flex:0 0 auto;width:100%}
.tile .shade{order:1}
.tile .tx{order:2;flex:0 0 auto;width:100%}

/* ===== Opus 2回目(7.8)への対応 ===== */
:root{--mincho:'Noto Sans JP','Hiragino Sans',sans-serif}
.card b,.fact b,.md-t,.dl b{font-family:inherit!important;font-weight:900!important}
.lnk,.more-l{border-bottom:0!important}
.more-l{text-decoration:underline}
/* 写真は4枚ずつ(PC)・2列(スマホ) */
@media (min-width:760px){.ftgrid{grid-template-columns:repeat(4,1fr)!important}}
/* 入場無料 + 開場 を日付の右に */
.fright{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.ffree{font-size:20px;padding:8px 24px}
.fopen2{margin:0;font-weight:900;font-size:16px;color:#fff}
.fopen{margin-top:12px}
@media (max-width:759px){.frow2{align-items:flex-start}.fright{align-items:flex-start}}
/* あそぶ・たべる: 裏面の組み(写真に WORKSHOP / ピンクの FOOD TRUCKS) */
.fplay{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.fp-ws{display:flex;align-items:flex-end;min-height:190px;border:1px solid rgba(255,255,255,.85);background-size:cover;background-position:50% 55%;text-decoration:none;color:#fff}
.fpt{display:block;width:100%;padding:12px 16px;background:rgba(26,18,88,.72)}
.fpt b{display:block;font-size:clamp(24px,7vw,32px);font-weight:900;line-height:1.1;color:var(--pink)}
.fpt span{display:block;font-size:15px;font-weight:900;margin-top:2px}
.fp-food{display:block;min-height:190px;border-radius:12px;background:#FF96C8;color:#1A1258;text-decoration:none;padding:18px 20px}
.fp-food b{display:block;font-size:clamp(24px,7vw,32px);font-weight:900;line-height:1.1}
.fp1{display:block;margin-top:8px;font-size:15px;font-weight:900}
.fp2{display:block;margin-top:10px;font-size:14px;font-weight:700}
@media (min-width:760px){.fplay{grid-template-columns:1fr 1fr}}
.fcredit{margin:14px 0 4px;font-size:13px;color:var(--mute)}
/* プログラム: ラベルの高さをそろえる */
.tile .badge{min-height:18px;display:block}
/* 開催概要「いつ？」を締める */
.day{padding:10px 0 14px}
.when,.sub .when{padding-top:28px;padding-bottom:30px}

/* ===== Opus 3回目(7.8)への対応 ===== */
/* PCの最初の画面に題・日付・入場無料が入るよう、画像を少し低く */
@media (min-width:760px){.fart{height:min(36vw,440px)!important}}
/* 見出しは全ページ同じ丸枠の札 */
main .h2:not(.ph),.when .h2,.access .h2,.org .h2,.pl .h2,.what .h2,.faq .h2,.ov .h2{display:inline-block;border:2px solid rgba(255,255,255,.85)!important;border-radius:999px;padding:6px 18px;font-size:18px!important;line-height:1.3;margin:0 0 14px}
.facts .h2,.hl .h2{border-top:2px solid rgba(255,255,255,.85)!important}
/* 開催概要: 背景の段切り替えをやめ地色1色に */
.ov,.when,.band,.access,.sub .access,.org,.pl.alt{background:transparent!important}
/* 日ごとの行をそろえる */
.day{display:grid;grid-template-rows:auto auto auto;align-content:start;min-height:0}
.day .dl::before,.day .dl::after{display:none!important}
.dl{border:0!important}
/* プログラム: ラベルの有無でタイトルの高さが変わらないように */
.tile .tx{position:relative!important;padding-top:28px!important}
.tile .badge{position:absolute!important;top:8px;left:0;margin:0}
/* 文字だけの色面は、名前が下と二重にならないよう下の見出しを隠す */
/* 作品画像の細い帯(セクションの間) */
.pband.mid{height:84px;margin-top:34px;background-position:50% 20%}
.pband.m2{background-position:50% 92%}
.pband.m1{background-position:50% 55%}
@media (min-width:760px){.pband.mid{height:130px}}
/* スマホ: FOOD TRUCKS の余白・フッタの主催名の途中改行 */
@media (max-width:759px){.fp-food{min-height:0}.fp-ws{min-height:160px}}
footer .note img.bbm{display:inline-block;width:140px;height:auto;margin-bottom:8px;opacity:.9}
.orgl dd{word-break:keep-all;overflow-wrap:anywhere}
/* 地図: 藍の地に白い線だけ */
.map{background:#1F1668!important}
/* バッジは画像の下の見出し枠の中に(half タイルでも) */
.grid .tile .tx,.grid .tile.half .tx,.grid .tile.big .tx,.tile.half .tx{position:relative!important;padding-top:28px!important}
.grid .tile .tx .badge{position:absolute!important;top:8px;left:0}
/* バッジは画像の下の見出し行(ラベルがないタイルも同じ高さを確保) */
.tile .badge,.grid .tile .tx .badge{position:static!important;order:1;display:block;height:18px;line-height:18px;margin:8px 0 0;padding:0!important}
.tile .tx,.grid .tile .tx,.grid .tile.half .tx,.tile.half .tx{padding-top:2px!important}
.tile:not(:has(.badge)) .tm{margin-bottom:26px}
.when{padding-bottom:20px!important}

/* ===== 情報の追加(詳しく)・fable差し戻し ===== */
.fpill .d5{background:#c9b6ff}.fpill .d6{background:#ffffff}
/* 2日間のながれ(色付き2枚) */
.dcards{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.dcard{border-radius:12px;padding:16px 18px;color:#1A1258}
.dcard.d7{background:#96BEFF}.dcard.d8{background:#FFCF73}
.dh{margin:0 0 6px;display:flex;align-items:baseline;gap:.2em;font-size:40px;font-weight:900;line-height:1}
.dh i{font-style:normal;font-size:.45em;font-weight:900}
.dcard ul{margin:6px 0 0;padding-left:1.1em}
.dcard li{margin:4px 0;font-size:14px;line-height:1.6;font-weight:700}
.dcard li b{font-weight:900}
.dnote{margin:10px 0 0;color:var(--mute);font-size:13px}
@media (min-width:760px){.dcards{grid-template-columns:1fr 1fr}.dcard li{font-size:15px}}
/* 前回のようす・会場のご案内・主催 */
.fpast figure{margin:0}
.fvenue{margin-top:14px}
.fh{margin:0 0 6px;font-weight:900;font-size:15px;color:var(--pink)}
.fvenue ul{margin:0 0 12px;padding-left:1.1em}
.fvenue li{margin:3px 0;font-size:14px;line-height:1.7}
@media (min-width:760px){.fvenue{grid-template-columns:1fr 1fr 1fr 1fr!important}.fvenue li{font-size:14.5px}}
.fdl{display:grid;grid-template-columns:5.5em 1fr;gap:6px 14px;margin:14px 0 0;font-size:14px;line-height:1.7}
.fdl dt{color:var(--mute);font-weight:700}.fdl dd{margin:0;font-weight:700}
/* プログラムのくわしい説明 */
.pdsec{margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.3)}
.pd{display:grid;grid-template-columns:1fr;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.2);scroll-margin-top:70px}
.pdi{display:block;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(255,255,255,.85);background:#0d0a33}
.pdi img{width:100%;height:100%;object-fit:cover;display:block}
.pdb h3{margin:0;font-size:22px;font-weight:900;line-height:1.3}
.pdc{margin:4px 0 8px;font-size:13px;font-weight:900;color:var(--pink)}
.pdl{margin:0 0 6px;font-size:15px;font-weight:700;line-height:1.7}
.pdb ul{margin:0 0 6px;padding-left:1.1em}
.pdb li{margin:4px 0;font-size:14px;line-height:1.7}
.pdn{margin:6px 0 0;font-size:12.5px;color:var(--mute);line-height:1.6}
@media (min-width:760px){.pd{grid-template-columns:360px 1fr;gap:24px;align-items:start}}
/* FAQ: ひと目の帯 */
.fqcards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:6px}
.fqc{border-radius:12px;padding:12px 16px;color:#1A1258}
.fqc.c-vr{background:#96BEFF}.fqc.c-game{background:#FFCF73}.fqc.c-ws,.fqc.c-food{background:#FF96C8}
.fqc b{display:block;font-size:18px;font-weight:900;line-height:1.3}
.fqc span{display:block;font-size:13px;font-weight:700;margin-top:2px}
@media (min-width:760px){.fqcards{grid-template-columns:repeat(4,1fr)}}
/* あそぶ・たべる 3列(WORKSHOP / FOOD TRUCKS / STAGE) */
.fplay{grid-template-columns:1fr}
@media (min-width:760px){.fplay{grid-template-columns:1fr 1fr 1fr!important}}
.fp-stage{display:block;min-height:190px;border-radius:12px;background:#FFCF73;color:#1A1258;text-decoration:none;padding:18px 20px}
.fp-stage b{display:block;font-size:clamp(24px,7vw,32px);font-weight:900;line-height:1.1}
@media (max-width:759px){.fp-stage{min-height:0}}
.pband.m1{background-image:url(media/flyer/t_vr_jiso.jpg)!important;background-position:50% 40%}
/* CSSの整理(旧指定の明朝・金を消す) */
.fdl dd,.fdl dt{min-width:0;overflow-wrap:anywhere}
.fdl{grid-template-columns:5em minmax(0,1fr)}

/* r3: いつ?を全幅・短い行き方・TSAPリンク */
body .days{display:block!important}
.fshort{list-style:none;margin:6px 0 10px;padding:0}.fshort li{padding:6px 0;border-bottom:1px solid var(--line);line-height:1.7}
.tile.t-hobiki{text-decoration:none;color:inherit}
footer .note img.bbm{filter:brightness(0) invert(1);opacity:.85}
.acc .cards{max-width:none!important;display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:759px){.acc .cards{grid-template-columns:1fr}}
.acc{display:block!important}
.fplay{align-items:start}.fplay .fp-ws{align-self:stretch}

#when.band{padding-top:8px;padding-bottom:8px}
.tile .tt{min-height:1.4em}
#when.band{margin-top:22px}
.grid .tile .tx,.grid .tile.big .tx,.grid .tile.half .tx{padding:2px 0 0!important;gap:4px!important}.grid .tile.big .tt,.grid .tile.half .tt{font-size:20px!important}

@media (max-width:759px){.grid .tile .tt{min-height:2.5em!important}}
.sl{position:relative}
.sl figcaption{position:absolute!important;left:0;right:0;bottom:0;top:auto;padding:28px 16px 22px!important;background:linear-gradient(180deg,transparent,rgba(5,7,15,.85))!important;color:#fff;font-size:14px;overflow-wrap:anywhere}

.fpph{display:flex;gap:8px;margin-top:12px}.fpph img{flex:1;min-width:0;height:130px;object-fit:cover;border-radius:6px;display:block}

/* ===== 2026-11-04 スマホ: トップの1画面目に4カードが覗くよう、ヒーローを低く・余白を詰める(トップ専用クラスのみ) ===== */
@media (max-width:759px){
 .fart{height:46vw;min-height:180px;max-height:none}
 .fbody{padding-top:14px}
 .ftag{margin-bottom:8px}
 .frow2{margin-top:8px}
 .fopen{margin-top:8px}
 .fcards{margin-top:14px;padding-top:12px}
}
