@charset "EUC-JP";
:root{
  --ink:#2a2760;--sub:#5b58a8;--lav:#a9a5f5;--peri:#7b78ee;--sky:#bfe3ff;--pink:#f4a6d7;--night1:#150f45;--night2:#3b30b5;
  --glass:rgba(255,255,255,.62);--glass-b:rgba(255,255,255,.9);
  --h1:#cfe9ff;--h2:#d9cffb;--h3:#fbd3ec;--page:#e8e4ff;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  --disp:"Josefin Sans","Helvetica Neue",Arial,sans-serif;--body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#efeaff;--sub:#c3bfff;--glass:rgba(34,28,92,.6);--glass-b:rgba(160,150,255,.35);--h1:#262a78;--h2:#33268a;--h3:#4a2a78;--page:#1d1a55}}
:root[data-theme="dark"]{--ink:#efeaff;--sub:#c3bfff;--glass:rgba(34,28,92,.6);--glass-b:rgba(160,150,255,.35);--h1:#262a78;--h2:#33268a;--h3:#4a2a78;--page:#1d1a55}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--body);line-height:1.8;overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
/* nav: solid indigo glass pill */
nav{position:fixed;top:calc(26px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:30;display:flex;gap:2px;align-items:center;padding:6px 8px 6px 18px;border-radius:999px;background:rgba(24,16,78,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(190,185,255,.6);box-shadow:0 8px 28px rgba(21,15,69,.4),0 0 18px rgba(123,120,238,.45);color:#fff;white-space:nowrap;max-width:calc(100% - 16px)}
nav b{font-family:var(--disp);font-weight:600;letter-spacing:.3em;font-size:.85rem;margin-right:8px}
nav a{text-decoration:none;font-size:.9rem;font-weight:700;padding:8px 14px;border-radius:999px;color:#fff;transition:background .3s,transform .3s}
nav a:hover{background:rgba(255,255,255,.22);transform:translateY(-3px)}
nav a.on{background:linear-gradient(135deg,#e6e3ff,var(--lav));color:#150f45}
@media(max-width:620px){nav b{display:none}nav{padding:5px;gap:0}nav a{font-size:.74rem;padding:8px 9px}}
/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(180deg,var(--night1) 0%,var(--night2) 70%,#8f8cf0 100%);overflow:hidden;padding:110px 20px 150px}
#stars{position:absolute;inset:0;width:100%;height:100%}
.balloon{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:calc(var(--s)*1.12);border-radius:50% 50% 47% 47%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.75) 0 8%,transparent 9%),radial-gradient(circle at 35% 30%,var(--c1),var(--c2) 48%,var(--c3));box-shadow:inset 0 -10px 24px rgba(255,255,255,.22),0 0 30px var(--gl);border:1px solid rgba(255,255,255,.4);opacity:.9;cursor:pointer;transform:translateY(calc(var(--sy,0)*var(--p)*1px));animation:float var(--d) ease-in-out infinite alternate;z-index:1;-webkit-tap-highlight-color:transparent}
.balloon::after{content:"";position:absolute;left:50%;bottom:-9px;width:14%;height:9%;background:var(--kn);transform:translateX(-50%);clip-path:polygon(50% 0,100% 100%,0 100%)}
.balloon::before{content:"";position:absolute;left:50%;top:100%;width:1px;height:90px;background:linear-gradient(rgba(255,255,255,.6),transparent)}
.balloon:not(.rise):not(.pop):hover{animation:none;transform:translateY(calc(var(--sy,0)*var(--p)*1px)) scale(1.1);transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.balloon.pop{animation:pop .6s forwards}
@keyframes float{from{translate:0 0;rotate:-4deg}to{translate:0 -34px;rotate:5deg}}
@keyframes pop{30%{scale:1.35}100%{scale:0;opacity:0}}
.balloon.rise{animation:float var(--d) ease-in-out infinite alternate,rise var(--rt,3s) cubic-bezier(.3,.6,.4,1) both}
@keyframes rise{0%{translate:0 var(--rise)}35%{translate:14px calc(var(--rise)*.62)}68%{translate:-12px calc(var(--rise)*.28)}100%{translate:0 0}}
.hero-in{position:relative;z-index:2;pointer-events:none}
.hero-in>*{pointer-events:auto}
.kicker{font-size:clamp(.95rem,2.6vw,1.3rem);letter-spacing:.35em;margin:0 0 10px;font-weight:500}
h1{margin:0;font-family:var(--disp);font-weight:200;font-size:clamp(2.7rem,14vw,9.5rem);line-height:1;letter-spacing:.06em;text-shadow:0 0 6px #fff,0 0 22px #b7b2ff,0 0 60px #7b78ee}
h1 span,.neon span{display:inline-block;cursor:default;transition:text-shadow .3s}
h1 span:hover,.neon span:hover{animation:hop .6s cubic-bezier(.3,1.8,.5,1)}
@keyframes hop{40%{transform:translateY(-.25em) rotate(-8deg)}100%{transform:none}}
.date{margin-top:36px;font-family:var(--disp);font-weight:200;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.25em .5em;font-size:clamp(2.4rem,10vw,5.5rem);line-height:1}
.date small{font-weight:300;font-size:.46em;letter-spacing:.1em}
.sat{color:#9d9bff}.sun{color:#ff9fd0}
.time{font-family:var(--disp);font-weight:300;letter-spacing:.2em;margin:14px 0 30px;font-size:1.05rem}
/* balloon button */
.btn{position:relative;display:inline-block;padding:14px 34px;border:0;border-radius:999px;font:700 1rem var(--body);color:var(--ink);text-decoration:none;cursor:pointer;background:radial-gradient(circle at 22% 25%,#fff 0 7%,transparent 8%),linear-gradient(135deg,#e6e3ff,var(--lav));box-shadow:0 8px 24px rgba(123,120,238,.4),inset 0 -4px 8px rgba(123,120,238,.25);transition:transform .35s cubic-bezier(.3,1.8,.5,1),box-shadow .3s}
.btn::after{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:9px;background:var(--lav);transform:translateX(-50%);clip-path:polygon(50% 0,100% 100%,0 100%)}
.btn:hover{transform:translateY(-8px) scale(1.06) rotate(-2deg)}
.btn:active{transform:scale(.94)}
.btn.pink{background:radial-gradient(circle at 22% 25%,#fff 0 7%,transparent 8%),linear-gradient(135deg,#ffe3f3,var(--pink))}
.btn.pink::after{background:var(--pink)}
/* scallop badge (from the top-left sticker) */
.scal{clip-path:var(--clip,none);display:grid;place-items:center;text-align:center}
.badge{position:absolute;z-index:3;right:6%;bottom:14%;width:128px;height:128px;background:linear-gradient(135deg,#f6c8e8,#cbb6f7);color:var(--ink);font-weight:700;font-size:.78rem;line-height:1.4;rotate:calc(var(--sy,0)*.15deg);transition:scale .5s cubic-bezier(.3,1.8,.5,1)}
.badge:hover{scale:1.2}
.badge b{font-family:var(--disp);font-size:1.4rem;display:block}
@media(max-width:700px){.badge{right:4%;bottom:6%;width:100px;height:100px;font-size:.66rem}}
/* clouds edge */
.edge{position:absolute;left:0;right:0;bottom:-1px;height:90px;z-index:2;background:var(--h1);-webkit-mask:radial-gradient(circle at 25px 100%,#0000 0 28px,#000 29px) 0 0/50px 100%;mask:radial-gradient(circle at 25px 100%,#0000 0 28px,#000 29px) 0 0/50px 100%;-webkit-mask:radial-gradient(60px 50px at 50% 100%,#000 98%,#0000) 0 0/120px 100%;mask:radial-gradient(60px 50px at 50% 100%,#000 98%,#0000) 0 0/120px 100%;opacity:.95;height:50px}
/* holographic sections */
.holo{position:relative;padding:90px 20px;background:linear-gradient(120deg,var(--h1),var(--h2),var(--h3),var(--h1),var(--h2));background-size:300% 300%;animation:holo 18s ease-in-out infinite alternate}
@keyframes holo{to{background-position:100% 50%}}
.wrap{max-width:1000px;margin:0 auto}
.neon{font-family:var(--disp);font-weight:200;font-size:clamp(2rem,8vw,3.8rem);letter-spacing:.14em;line-height:1.1;margin:0 0 6px;color:#fff;text-shadow:0 0 4px #fff,0 0 14px var(--lav),0 0 34px var(--peri)}
.lead{color:var(--sub);margin:0 0 36px;max-width:36em}
.glass{position:relative;background:var(--glass);border:1px solid var(--glass-b);border-radius:30px;box-shadow:0 12px 30px rgba(123,120,238,.2)}
/* ruled notebook lines */
.ruled{background-image:repeating-linear-gradient(transparent 0 2.7rem,rgba(123,120,238,.28) 2.7rem calc(2.7rem + 1px))}
.about{display:grid;gap:24px;grid-template-columns:1.3fr 1fr;align-items:center}
@media(max-width:760px){.about{grid-template-columns:1fr}}
.about .glass{padding:30px}
.about p{margin:0;line-height:2.7rem}
.count{padding:30px;text-align:center}
.count .n{display:flex;justify-content:center;gap:10px}
.count .n div{min-width:62px}
.count .n b{display:block;font-family:var(--disp);font-weight:200;font-size:2.6rem;line-height:1.1;color:var(--peri)}
.count small{font-size:.75rem;color:var(--sub)}
/* tabs */
.tabs{display:flex;gap:18px;margin-bottom:28px;flex-wrap:wrap}
.tt{padding:26px 24px 20px}
.row{display:grid;grid-template-columns:76px 1fr;gap:12px;padding:12px 0;border-bottom:1px dotted rgba(123,120,238,.5);opacity:0;transform:translateY(14px);animation:rise .55s forwards}
@keyframes rise{to{opacity:1;transform:none}}
.row .t{font-family:var(--disp);font-weight:300;font-size:1.3rem;color:var(--peri)}
.row h3{margin:0;font-size:1.05rem}
.row p{margin:0;font-size:.82rem;color:var(--sub)}
.row.hl{margin:6px -10px;padding:14px 10px;border:1px solid var(--glass-b);border-radius:18px;background:linear-gradient(100deg,rgba(191,227,255,.65),rgba(217,207,251,.65));transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.row.hl:hover{transform:translateX(8px) rotate(-.6deg)}
/* highlight cards */
.cards{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{padding:34px 26px 28px;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;overflow:visible}
.card .stk{position:absolute;top:-22px;right:-12px;width:74px;height:74px;background:linear-gradient(135deg,#f6c8e8,#bfe3ff);font-family:var(--disp);font-weight:600;font-size:.72rem;transition:rotate .8s cubic-bezier(.3,1.4,.5,1)}
.card:hover .stk{rotate:360deg}
.card h3{margin:0 0 6px;font-family:var(--disp);font-weight:300;font-size:1.7rem;letter-spacing:.08em}
.card .ico{display:block;font-size:2.4rem;margin-bottom:6px;transition:transform .5s cubic-bezier(.3,1.8,.5,1)}
.card:hover .ico{transform:translateY(-10px) rotate(-12deg) scale(1.2)}
.card p{margin:0;font-size:.9rem;color:var(--sub)}
/* info band */
.band{background:linear-gradient(var(--lav),#9a96ee);color:#fff;padding:60px 20px 80px}
.info{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.info div{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.5);border-radius:26px;padding:22px;transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.info div:hover{transform:translateY(-8px) rotate(1.5deg)}
.info h4{margin:0 0 4px;font-family:var(--disp);font-weight:300;font-size:1.3rem;letter-spacing:.1em}
.info p{margin:0;font-size:.9rem}
.shoe{text-align:center;margin-top:34px;font-size:1.05rem;letter-spacing:.08em}
footer{background:var(--night1);color:#cfcaff;text-align:center;padding:36px 20px;font-size:.78rem}
footer b{font-family:var(--disp);font-weight:200;letter-spacing:.4em;font-size:1.4rem;color:#fff;display:block;text-shadow:0 0 14px var(--peri)}
.pgrid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:34px;align-items:center}
@media(max-width:760px){.pgrid{grid-template-columns:1fr}}
.frame{padding:14px;cursor:zoom-in;margin:0;transition:rotate .5s cubic-bezier(.3,1.6,.5,1),transform .5s cubic-bezier(.3,1.6,.5,1)}
.frame img{width:100%;display:block;border-radius:18px}
.frame figcaption{font-size:.8rem;color:var(--sub);padding:10px 6px 0}
.frame.p{rotate:-2.5deg}.frame.t{rotate:1.5deg}
.frame:hover{rotate:0deg;transform:translateY(-10px) scale(1.03)}
.frame .stk{position:absolute;top:22px;right:22px;width:62px;height:62px;background:linear-gradient(135deg,#f6c8e8,#bfe3ff);color:#1d1850;font-size:.8rem;font-weight:700;letter-spacing:.05em;z-index:2;transition:rotate .8s cubic-bezier(.3,1.4,.5,1)}
.frame:hover .stk{rotate:360deg}
dialog#lb{border:0;background:transparent;padding:0;max-width:94vw;max-height:94vh;overflow:auto}
dialog#lb::backdrop{background:rgba(15,10,50,.82);backdrop-filter:blur(6px)}
dialog#lb img{max-width:94vw;max-height:90vh;border-radius:18px;display:block;animation:zin .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes zin{from{scale:.6;opacity:0}}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
#sb{position:fixed;right:max(6px,env(safe-area-inset-right,0px));top:calc(78px + env(safe-area-inset-top,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));width:38px;z-index:25;touch-action:none}
#sbs{position:absolute;left:50%;top:50px;bottom:0;width:2px;margin-left:-1px;border-radius:2px;background:repeating-linear-gradient(rgba(255,255,255,.95) 0 6px,transparent 6px 12px);filter:drop-shadow(0 0 3px rgba(80,70,220,.9))}
#sbb{position:absolute;left:0;top:0;width:38px;height:44px;will-change:translate,rotate;border-radius:50% 50% 47% 47%;display:grid;place-items:center;background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.95) 0 8%,transparent 9%),radial-gradient(circle at 35% 30%,rgba(235,248,255,.78),rgba(150,214,255,.55) 55%,rgba(90,185,250,.5));border:1px solid rgba(255,255,255,.75);box-shadow:0 6px 16px rgba(40,120,200,.35),inset 0 -4px 8px rgba(70,170,245,.3);cursor:grab;touch-action:none;transform-origin:50% 130%;rotate:var(--tilt,0deg);transition:scale .35s cubic-bezier(.3,1.8,.5,1)}
#sbb::after{content:"";position:absolute;left:50%;bottom:-7px;width:10px;height:8px;background:rgba(110,195,250,.85);transform:translateX(-50%);clip-path:polygon(50% 0,100% 100%,0 100%)}
#sbb:hover{scale:1.15}#sbb.drag{scale:1.25 .9;cursor:grabbing}
.phead{position:relative;min-height:44vh;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(180deg,var(--night1),var(--night2) 72%,#8f8cf0);overflow:hidden;padding:120px 20px 90px}
.phead::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 70% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 45% 72%,#fff,transparent),radial-gradient(1px 1px at 88% 62%,#fff,transparent),radial-gradient(1px 1px at 10% 78%,#fff,transparent),radial-gradient(1px 1px at 58% 12%,#fff,transparent);animation:blink 3s infinite}
.phead h1{font-size:clamp(2rem,10.5vw,6rem)}
.page.enter{animation:pgin .7s cubic-bezier(.2,.9,.3,1)}
@keyframes pgin{from{opacity:0;translate:0 70px}}
nav a{font-family:var(--disp);letter-spacing:.06em}
@media(max-width:620px){nav a{font-size:.7rem;padding:8px 8px;letter-spacing:.02em}}
.news{padding:14px 24px;min-height:240px}
.nitem{display:grid;grid-template-columns:auto auto 1fr;gap:4px 14px;align-items:center;padding:14px 0;border-bottom:1px dotted rgba(123,120,238,.5);text-decoration:none;transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
a.nitem:hover{transform:translateX(8px)}
.nitem:last-child{border-bottom:0}
.nitem time{font-family:var(--disp);font-weight:300;color:var(--peri);letter-spacing:.06em}
.tag{font-size:.72rem;font-weight:700;padding:2px 12px;border-radius:999px;background:linear-gradient(135deg,#e6e3ff,var(--lav));color:#150f45}
.tag.imp{background:linear-gradient(135deg,#ffe3f3,var(--pink))}
@media(max-width:600px){.nitem{grid-template-columns:auto 1fr}.nt{grid-column:1/-1}}
.mapbox{position:relative;aspect-ratio:16/10;margin-bottom:22px}
.mapbox::before{content:"";position:absolute;left:4%;right:4%;top:45%;border-top:2px dotted rgba(123,120,238,.6)}
@media(max-width:620px){.mapbox{aspect-ratio:1/1.1}}
.zone{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border:1px solid #fff;border-radius:26px;font:700 clamp(.8rem,2.8vw,1.15rem) var(--body);color:#2a2760;background:linear-gradient(135deg,rgba(191,227,255,.9),rgba(217,207,251,.9));cursor:pointer;transition:transform .4s cubic-bezier(.3,1.8,.5,1),box-shadow .3s}
.zone:hover{transform:translateY(-8px) rotate(-1.2deg) scale(1.03)}
.zone.sel{box-shadow:0 0 0 3px #fff,0 0 28px var(--peri)}
.zone.tmp{border:2px dashed var(--peri);background:rgba(255,255,255,.72)}
.mapinfo{padding:22px 24px}.mapinfo h3{margin:0 0 6px;font-size:1.2rem}.mapinfo p{margin:0;line-height:2.7rem}
.btn.s{padding:10px 20px;font-size:.9rem}
.btn[aria-pressed="true"]{box-shadow:0 0 0 3px #fff,0 0 24px var(--peri),0 8px 24px rgba(123,120,238,.4);transform:translateY(-4px)}
.tabs2,.chips{display:flex;gap:16px 14px;margin-bottom:26px;flex-wrap:wrap}
.row{grid-template-columns:96px 1fr}
.row .t small{display:block;font-size:.78rem;color:var(--sub);letter-spacing:.04em}
.row.x{cursor:pointer}
.row.x h3::after{content:"¡Ü";margin-left:.5em;color:var(--peri);display:inline-block;transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.row.open h3::after{transform:rotate(45deg)}
.more{display:none;margin-top:10px}
.row.open .more{display:grid;gap:12px;animation:pp .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes pp{from{opacity:0;scale:.94}}
.more img{width:100%;max-width:440px;border-radius:16px;display:block}
.more p{margin:0;font-size:.92rem;color:var(--ink)}
.more ul{margin:0;padding:0;list-style:none}
.more li{display:flex;gap:14px;padding:6px 0;border-bottom:1px dotted rgba(123,120,238,.4);font-size:.9rem}
.more li b{font-family:var(--disp);font-weight:300;color:var(--peri);min-width:116px}
.fl{font-family:var(--disp);font-weight:300;font-size:1.8rem;letter-spacing:.14em;color:#fff;text-shadow:0 0 10px var(--peri);margin:36px 0 18px}
.card.jp h3{font-family:var(--body);font-weight:700;font-size:1.1rem;letter-spacing:0;line-height:1.5;padding-right:30px}
.card.jp p{margin-top:6px}
.mapinfo h4{margin:0;line-height:2.7rem;color:var(--peri);font-size:.95rem}
.mapinfo h3{line-height:2.7rem}
.mapinfo img{width:100%;max-width:520px;border-radius:16px;display:block;margin:10px 0;cursor:zoom-in}
.staff{padding:14px 24px}
.srow{display:grid;grid-template-columns:1fr auto 38px;gap:10px;padding:9px 0;border-bottom:1px dotted rgba(123,120,238,.5);align-items:baseline}
.srow:last-child{border-bottom:0}.srow.sub span{padding-left:1.2em;color:var(--sub);font-size:.9rem}
.srow i{font-style:normal;font-family:var(--disp);color:var(--peri);text-align:right}
.rt{margin:34px 0 8px;font-weight:700;font-size:1.1rem}
.rules{margin:0;padding:22px 26px 22px 46px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.5);border-radius:26px;line-height:1.9}
.rules li{margin:4px 0}
dialog#lb img.big{max-width:none;width:max(94vw,1100px)}
#ld{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center;color:#fff;background:linear-gradient(180deg,var(--night1),var(--night2) 75%,#8f8cf0);transition:opacity .8s ease,visibility .8s;--k:0}
#ld::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 70% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 45% 72%,#fff,transparent),radial-gradient(1px 1px at 88% 62%,#fff,transparent),radial-gradient(1px 1px at 10% 78%,#fff,transparent),radial-gradient(1px 1px at 58% 12%,#fff,transparent);animation:blink 3s infinite}
#ld.out{opacity:0;visibility:hidden}
.ldb{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:230px}
.ldballoon{position:relative;width:140px;height:156px;border-radius:50% 50% 47% 47%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.8) 0 8%,transparent 9%),radial-gradient(circle at 35% 30%,#e0deff,#a9a5f5 45%,#7f7bea);scale:calc(.28 + var(--k)*.72);transform-origin:50% 100%;box-shadow:0 0 40px rgba(169,165,245,.55);animation:bob 2s ease-in-out infinite alternate}
.ldballoon::after{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:9px;background:#8f8cf0;transform:translateX(-50%);clip-path:polygon(50% 0,100% 100%,0 100%)}
.ldstr{display:block;width:1px;height:46px;margin-top:8px;background:linear-gradient(rgba(255,255,255,.75),transparent)}
@keyframes bob{from{translate:0 0;rotate:-3deg}to{translate:0 -8px;rotate:3deg}}
.ldt{margin:6px 0 0;padding-left:.3em;font-family:var(--disp);font-weight:200;letter-spacing:.3em;font-size:clamp(1.6rem,8vw,2.6rem);text-shadow:0 0 6px #fff,0 0 22px #b7b2ff,0 0 50px #7b78ee}
.ldp{margin:0;font-family:var(--disp);font-weight:300;letter-spacing:.3em;font-size:.85rem}
.ldp b{font-weight:300;display:inline-block;min-width:2.2em;text-align:right}
#ld.pop .ldballoon{animation:ldpop .45s forwards}
@keyframes ldpop{35%{scale:1.25}100%{scale:0;opacity:0}}
#ld.pop .ldt{animation:ldfl .7s}
@keyframes ldfl{40%{text-shadow:0 0 10px #fff,0 0 40px #fff,0 0 90px #b7b2ff}}
.balloon{--c1:rgba(228,222,255,.88);--c2:rgba(176,170,250,.62);--c3:rgba(130,124,236,.5);--gl:rgba(169,165,245,.4);--kn:rgba(143,140,240,.85)}
.balloon.bl{--c1:rgba(236,249,255,.88);--c2:rgba(150,214,255,.6);--c3:rgba(92,186,250,.5);--gl:rgba(120,205,255,.4);--kn:rgba(110,195,250,.85)}
.balloon.pk{--c1:rgba(255,239,249,.88);--c2:rgba(250,172,216,.6);--c3:rgba(240,124,192,.5);--gl:rgba(250,150,210,.4);--kn:rgba(244,140,200,.85)}
.btn{border-radius:10px;background:linear-gradient(135deg,#e6e3ff,var(--lav))}
.btn.pink{background:linear-gradient(135deg,#ffe3f3,var(--pink))}
.btn::after{display:none}
.time{margin:14px 0 8px}
.shoeline{margin:0 0 30px;font-size:clamp(.9rem,3.3vw,1.1rem);letter-spacing:.14em}
.msg{padding:22px 26px;margin-bottom:20px}
.msg summary{cursor:pointer;list-style:none}
.msg summary::-webkit-details-marker{display:none}
.msg h3{margin:0 0 6px;font-size:1.15rem}
.msg .pv{margin:0;font-size:.92rem;color:var(--sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.msg[open] .pv{display:none}
.msg .tgl{display:inline-block;margin-top:8px;font-weight:700;color:var(--peri)}
.msg .tgl::after{content:" ¡Ü"}.msg[open] .tgl::after{content:" \ff0d "}
.msg[open] .tgl{display:none}
.msg .body{animation:pp .5s cubic-bezier(.3,1.6,.5,1)}
.msg .body p{margin:14px 0 0;line-height:2}
.msg[open] summary h3{margin-bottom:0}
footer p{margin:10px 0 0}
.fsp{margin:18px auto 4px;max-width:520px;padding:14px 18px;border:1px solid rgba(190,185,255,.45);border-radius:14px}
.fsp h4{margin:0;font-family:var(--disp);font-weight:300;letter-spacing:.3em;font-size:.95rem;color:#fff}
.fsp{max-width:640px}
.fsp .th{font-size:.82rem;line-height:1.8}
.sl{list-style:none;margin:12px 0 0;padding:0;font-size:.88rem;line-height:1.9}
.acc{padding:12px 26px}
.arow{display:grid;grid-template-columns:76px 1fr;gap:14px;padding:14px 0;border-bottom:1px dotted rgba(123,120,238,.5)}
.arow:last-child{border-bottom:0}
.arow b{font-family:var(--body);color:var(--peri)}
nav{padding:6px 8px}
@media(max-width:420px){nav a{font-size:.62rem;padding:8px 5px;letter-spacing:0}}
.edge{display:none}
.wv{position:relative;z-index:3;margin-top:-80px;padding-top:110px!important;-webkit-mask-image:var(--w),linear-gradient(#000,#000);mask-image:var(--w),linear-gradient(#000,#000);-webkit-mask-size:max(100%,1100px) 100px,100% calc(100% - 99px);mask-size:max(100%,1100px) 100px,100% calc(100% - 99px);-webkit-mask-position:40% 0,0 99px;mask-position:40% 0,0 99px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.hint{bottom:100px}
#p-home{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 48C38.3 42.7 151.7 12.3 230 16C308.3 19.7 378.3 68.7 470 70C561.7 71.3 691.7 22.3 780 24C868.3 25.7 930.0 77.3 1000 80C1070.0 82.7 1166.7 46.7 1200 40V100H0Z'/%3E%3C/svg%3E")}
#p-home .wv{-webkit-mask-position:40% 0,0 99px;mask-position:40% 0,0 99px}
#p-event{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 70C33.3 63.3 113.3 39.0 200 30C286.7 21.0 426.7 10.0 520 16C613.3 22.0 678.3 64.0 760 66C841.7 68.0 936.7 29.0 1010 28C1083.3 27.0 1168.3 54.7 1200 60V100H0Z'/%3E%3C/svg%3E")}
#p-event .wv{-webkit-mask-position:75% 0,0 99px;mask-position:75% 0,0 99px}
#p-exhibition{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 20C43.3 27.3 188.3 60.7 260 64C331.7 67.3 350.0 36.7 430 40C510.0 43.3 646.7 84.7 740 84C833.3 83.3 913.3 38.3 990 36C1066.7 33.7 1165.0 64.3 1200 70V100H0Z'/%3E%3C/svg%3E")}
#p-exhibition .wv{-webkit-mask-position:10% 0,0 99px;mask-position:10% 0,0 99px}
#p-food{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 60C30.0 63.3 105.0 86.3 180 80C255.0 73.7 363.3 27.3 450 22C536.7 16.7 601.7 49.3 700 48C798.3 46.7 956.7 13.7 1040 14C1123.3 14.3 1173.3 44.0 1200 50V100H0Z'/%3E%3C/svg%3E")}
#p-food .wv{-webkit-mask-position:90% 0,0 99px;mask-position:90% 0,0 99px}
#p-access{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 36C50.0 43.0 206.7 79.7 300 78C393.3 76.3 471.7 29.0 560 26C648.3 23.0 746.7 61.0 830 60C913.3 59.0 998.3 22.7 1060 20C1121.7 17.3 1176.7 40.0 1200 44V100H0Z'/%3E%3C/svg%3E")}
#p-access .wv{-webkit-mask-position:55% 0,0 99px;mask-position:55% 0,0 99px}
#p-information{--w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 80C40.0 73.3 160.0 50.3 240 40C320.0 29.7 400.0 15.3 480 18C560.0 20.7 645.0 45.0 720 56C795.0 67.0 850.0 88.3 930 84C1010.0 79.7 1155.0 39.0 1200 30V100H0Z'/%3E%3C/svg%3E")}
#p-information .wv{-webkit-mask-position:25% 0,0 99px;mask-position:25% 0,0 99px}
.days{display:grid;gap:34px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.days{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.day{--H:52px;padding:20px 16px 22px}
.dn{margin:0 0 4px;display:flex;align-items:baseline;gap:10px;line-height:1;font-family:var(--disp)}
.dn b{font-weight:200;font-size:3.6rem;font-style:italic;background:linear-gradient(135deg,#e88cf0,#a9a5f5);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 8px rgba(228,150,240,.55))}
.dn i{font-size:1.4rem;font-weight:600;color:#c58bf0;letter-spacing:.06em}
.tbl{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);column-gap:6px}
.th{text-align:center;font-weight:700;font-size:.85rem;padding:6px 0 10px}
.th.g1{color:#3d9fe6}.th.g2{color:#7b78ee}
.col{position:relative;height:calc(var(--H)*8);border-bottom:1px solid rgba(90,86,170,.55);background:repeating-linear-gradient(rgba(90,86,170,.5) 0 1px,transparent 1px var(--H))}
.tm{position:relative;height:calc(var(--H)*8)}
.tm span{position:absolute;left:0;right:0;top:calc(var(--H)*var(--s));transform:translateY(-50%);text-align:center;font-family:var(--disp);font-weight:600;font-size:.72rem;color:var(--sub)}
.ev{position:absolute;left:3px;right:3px;top:calc(var(--H)*var(--s) + 2px);height:calc(var(--H)*var(--l) - 4px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:3px 6px;overflow:hidden;border:1px solid rgba(255,255,255,.9);border-radius:10px;color:#2a2760;font:700 .74rem/1.35 var(--body);text-align:center;cursor:pointer;transition:transform .35s cubic-bezier(.3,1.8,.5,1),box-shadow .3s}
.ev.g1{background:linear-gradient(180deg,#dcf0ff,#bfe3ff)}
.ev.g2{background:linear-gradient(180deg,#e6e3fe,#cfc9fb)}
.ev.h{border-width:2px;font-size:.8rem}
.ev small{font-weight:500;font-size:.62rem;opacity:.85}
.ev.sh small{display:none}
.ev.sh{padding:1px 6px}
.ev.tall{font-size:.9rem}
.ev:hover{transform:scale(1.05) rotate(-.7deg);z-index:2;box-shadow:0 8px 22px rgba(123,120,238,.4)}
.ev:active{transform:scale(.97)}
.fwb{margin-top:18px;width:100%;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;justify-content:center;padding:14px 18px;border:1px solid #fff;border-radius:22px;background:linear-gradient(100deg,#ffe3f3,#e6e3ff);color:#2a2760;font:700 1rem var(--body);cursor:pointer;transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.fwb b{font-family:var(--disp);font-weight:300;font-size:1.4rem;letter-spacing:.06em;color:#e060b0}
.fwb:hover{transform:translateY(-5px) scale(1.02)}
dialog#evd{border:0;background:transparent;padding:0;width:min(92vw,520px);max-height:88vh;overflow:auto}
dialog#evd::backdrop{background:rgba(15,10,50,.78);backdrop-filter:blur(6px)}
.evc{position:relative;padding:28px 24px 26px;border-radius:28px;background:linear-gradient(160deg,#fff,#ece9ff);color:#2a2760;box-shadow:0 20px 60px rgba(60,50,180,.5);animation:zin .45s cubic-bezier(.3,1.5,.5,1)}
.evx{position:absolute;top:8px;right:14px;border:0;background:none;font-size:2rem;line-height:1;color:#7b78ee;cursor:pointer}
.evk{margin:0;font-family:var(--disp);color:#7b78ee;letter-spacing:.08em}
.evc h3{margin:4px 0 2px;font-size:1.3rem;line-height:1.5;padding-right:30px}
.evv{margin:0 0 10px;color:#5b58a8;font-size:.9rem}
.evc img{width:100%;border-radius:16px;margin:6px 0 10px;display:block}
.evc p{margin:8px 0}
.evc ul{list-style:none;margin:8px 0 0;padding:0}
.evc li{display:flex;gap:14px;padding:6px 0;border-bottom:1px dotted rgba(123,120,238,.5);font-size:.9rem}
.evc li b{font-family:var(--disp);font-weight:300;color:#7b78ee;min-width:116px}
#sp{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}
.btn{color:#2a2760}
.pr{margin:4px 0 0;font-family:var(--disp);font-weight:600;font-size:1.05rem;color:var(--peri)}
.card .by{margin:2px 0 0;font-size:.85rem;color:var(--sub)}
.fdm{max-width:560px;margin:0 auto 26px}
.note{margin:30px 0 0;text-align:center;font-weight:700;color:var(--ink)}
.card .stk{color:#1d1850;font-size:.95rem;font-weight:700}
.fdw .lead{font-size:1.08rem}
.fdw .mapinfo h3{font-size:1.35rem}
.fdw .mapinfo p{font-size:1.1rem}
.fdw .card.jp h3{font-size:1.45rem}
.fdw .pr{font-size:1.4rem;margin-top:6px}
.fdw .card .by{font-size:1.1rem}
.fdw .card .stk{font-size:1.15rem}
.fdw .frame figcaption{font-size:1rem}
.fdw .note{font-size:1.15rem}
.fdw .fdm{max-width:640px}
#fw{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:120}
.hint{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);z-index:3;font-size:.75rem;letter-spacing:.2em;opacity:.8;animation:blink 2.4s infinite}
@keyframes blink{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.row{opacity:1;transform:none}}
