/* MAYAVI CINEMATIC — inner pages (loads after style.css) */
.page-main{position:relative;z-index:1}
.topbar{position:fixed;left:0;top:0;height:2px;width:100%;z-index:1100;background:linear-gradient(90deg,var(--p),var(--c));transform:scaleX(var(--p,0));transform-origin:left;pointer-events:none;box-shadow:0 0 10px var(--p)}
.sub-hero{position:relative;min-height:56svh;display:flex;align-items:flex-end;padding:150px var(--pad) 70px;overflow:hidden;border-bottom:1px solid var(--line)}
.sub-bg{position:absolute;inset:-8% 0;background-size:cover;background-position:center;opacity:.28;filter:saturate(.7);will-change:transform}
.sub-hero::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 80% 0,rgba(168,85,247,.32),transparent 55%),linear-gradient(180deg,rgba(5,5,7,.55),var(--bg))}
.sub-jp{position:absolute;z-index:1;right:var(--pad);top:96px;font:700 clamp(5rem,16vw,15rem)/1 'Noto Sans JP',sans-serif;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.14);pointer-events:none;user-select:none}
.sub-inner{position:relative;z-index:2;max-width:1360px;width:100%;margin:0 auto}
.sub-title{font-size:clamp(3rem,10vw,9rem);font-weight:700;letter-spacing:-.04em;text-transform:uppercase;line-height:.92}
.crumbs{display:flex;gap:10px;margin-top:1.6rem;font:500 11px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.crumbs a:hover{color:var(--p2)}.crumbs span+span::before{content:"/";margin-right:10px;color:var(--p)}
.sub-hud{position:absolute;z-index:2;right:var(--pad);bottom:26px;text-align:right;font:500 10px var(--f-mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase;line-height:1.6}
.sub-hud b{color:var(--ink);font-weight:500;display:block}
.wrap{max-width:calc(1360px + 2*var(--pad));margin:0 auto;padding:90px var(--pad)}
.wrap-head{margin-bottom:3rem;max-width:760px}.wrap-head h2{font-size:clamp(2rem,5vw,4rem);text-transform:uppercase;letter-spacing:-.03em}.wrap-head p{color:var(--dim);margin:1rem 0 0}
.corner-box{position:relative}
.back{display:inline-flex;margin-top:3rem}

/* about */
.about-grid{display:grid;gap:3rem}
.about-img{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line)}
.about-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.1)}
.about-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,5,7,.85));pointer-events:none}
.about-img figcaption{position:absolute;left:20px;bottom:16px;z-index:2;font:500 11px var(--f-mono);letter-spacing:.16em;color:#fff}
.about-copy h2{font-size:clamp(1.9rem,3.6vw,3.2rem);letter-spacing:-.03em;text-transform:uppercase;margin-bottom:2rem}
.about-copy h4{font:500 12px var(--f-mono);letter-spacing:.2em;color:var(--c);text-transform:uppercase;margin-bottom:.6rem}
.about-copy h3{font-size:1.6rem;margin-bottom:1rem}.about-copy p{color:var(--dim);max-width:60ch;margin:0 0 1rem}
@media(min-width:992px){.about-grid{grid-template-columns:1fr 1fr;gap:6vw;align-items:center}}
.stats{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);margin-top:1rem}
.stat{padding:2rem 1.4rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;display:flex;gap:1rem;align-items:center}
.stat i{font-size:1.6rem;color:var(--p2)}.stat b{display:block;font:700 clamp(2.4rem,5vw,4.2rem)/1 var(--f-head);letter-spacing:-.03em}.stat span{font:500 10px var(--f-mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
@media(min-width:992px){.stats{grid-template-columns:repeat(4,1fr)}}

/* cards (blogs index + posts) */
.cards{display:grid;gap:20px}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{position:relative;display:flex;flex-direction:column;gap:1rem;padding:1.8rem;border:1px solid var(--line);background:var(--bg2);overflow:hidden;transition:border-color .5s,transform .6s var(--out)}
.card::after{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--p),var(--c));transform:scaleX(0);transform-origin:left;transition:transform .8s var(--out)}
.card:hover{border-color:rgba(168,85,247,.5);transform:translateY(-6px)}.card:hover::after{transform:scaleX(1)}
.card .ico{font-size:28px;color:var(--p2)}.card h3,.card h4{font-size:clamp(1.5rem,2.2vw,2rem);letter-spacing:-.02em}.card p{margin:0;color:var(--dim);font-size:.95rem}
.card img{aspect-ratio:16/10;width:100%;object-fit:cover;border:1px solid var(--line)}
.card .more{margin-top:auto;font:500 11px var(--f-mono);letter-spacing:.16em;color:var(--p2);text-transform:uppercase}
.empty{color:var(--dim);border:1px dashed var(--line);padding:2rem}

/* blog details */
.post{max-width:900px;margin:0 auto}.post h2{font-size:clamp(2rem,5vw,3.6rem);text-align:center;letter-spacing:-.03em;margin-bottom:2rem}
.slider{position:relative;margin:0 0 2rem;border:1px solid var(--line);background:#000}
.slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.slides::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:center;display:grid;place-items:center;max-height:70svh}.slide img,.slide video{max-width:100%;max-height:70svh;object-fit:contain;cursor:zoom-in}
.sl-btn{position:absolute;top:50%;margin-top:-22px;width:44px;height:44px;border:1px solid var(--line);background:rgba(5,5,7,.7);color:#fff;font-size:20px;z-index:2}.sl-btn:hover{border-color:var(--p)}.sl-prev{left:12px}.sl-next{right:12px}
.post-body{color:#cfd0d8;line-height:1.85}.post-body img{display:block;margin:1.5rem auto;max-width:100%;cursor:zoom-in;border:1px solid var(--line)}.post-body strong{color:#fff}
.post-author{margin-top:2.5rem;text-align:right;font:500 12px var(--f-mono);letter-spacing:.1em;color:var(--p2)}.post-link{margin-top:1.5rem}.post-link a{color:var(--c);text-decoration:underline}
.lightbox{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.92);display:none;place-items:center;padding:30px}.lightbox.open{display:grid}.lightbox img{max-width:100%;max-height:100%}.lightbox button{position:absolute;right:20px;top:20px;background:none;border:1px solid var(--line);color:#fff;width:44px;height:44px;font-size:22px}

/* contact */
.info{display:grid;gap:16px}@media(min-width:900px){.info{grid-template-columns:2fr 1.2fr 1.2fr}}
.info-item{padding:2rem;border:1px solid var(--line);background:var(--bg2);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.7rem}.info-item i{font-size:1.8rem;color:var(--p2)}.info-item h3{font-size:1.3rem}.info-item p{margin:0;color:var(--dim)}
.contact-grid{display:grid;gap:20px;margin-top:20px}@media(min-width:992px){.contact-grid{grid-template-columns:1fr 1fr}}
.map{width:100%;min-height:384px;border:1px solid var(--line);filter:grayscale(1) invert(.9) contrast(.9) hue-rotate(230deg)}
.form{display:grid;gap:14px;align-content:start}.form-row{display:grid;gap:14px}@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.form input,.form textarea{width:100%;padding:16px 18px;background:var(--bg2);border:1px solid var(--line);color:#fff;font:400 15px var(--f-body);transition:border-color .3s,box-shadow .3s}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px rgba(168,85,247,.18)}
.form button{justify-self:start;cursor:pointer}.form-msg{font:500 12px var(--f-mono);letter-spacing:.1em;color:var(--c);min-height:1.4em}

/* team */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:3rem}
.tab{background:none;border:1px solid var(--line);color:var(--dim);padding:12px 22px;font:500 12px var(--f-mono);letter-spacing:.16em;transition:color .3s,border-color .3s,background .3s}
.tab:hover{color:#fff;border-color:var(--p2)}.tab.on{color:#fff;border-color:var(--p);background:rgba(168,85,247,.16);box-shadow:0 0 24px -8px var(--p)}
.team-year{display:none}.team-year.on{display:block}
.members{display:grid;gap:36px 24px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.member{display:flex;flex-direction:column;gap:1rem}
.m-img{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);background:var(--bg2)}
.m-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.6) contrast(1.05);transition:transform .9s var(--out),filter .6s}
.m-img::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 3px);opacity:0;transition:opacity .5s}
.m-img::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 55%,rgba(5,5,7,.7));pointer-events:none}
.member:hover .m-img img{transform:scale(1.07);filter:none}.member:hover .m-img::before{opacity:1}.member:hover .m-img{border-color:var(--p)}
.noimg{width:100%;height:100%;display:grid;place-items:center;font:700 3.5rem var(--f-head);color:transparent;-webkit-text-stroke:1px rgba(168,85,247,.6)}
.m-info h4{font-size:1.15rem;letter-spacing:-.01em;line-height:1.2}.m-info span{display:block;margin-top:.5rem;font:500 10px var(--f-mono);letter-spacing:.14em;color:var(--p2);text-transform:uppercase}
.batch-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.batch{position:relative;padding:3rem 2rem;border:1px solid var(--line);background:var(--bg2);overflow:hidden;transition:border-color .5s,transform .6s var(--out)}
.batch b{display:block;font:700 clamp(3.5rem,8vw,6rem)/1 var(--f-head);color:transparent;-webkit-text-stroke:1px rgba(168,85,247,.6);transition:color .5s}
.batch span{font:500 11px var(--f-mono);letter-spacing:.16em;color:var(--dim)}.batch:hover{border-color:var(--p);transform:translateY(-6px)}.batch:hover b{color:var(--p)}

/* events */
.ev-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.ev-card{position:relative;display:block;overflow:hidden;border:1px solid var(--line);background:var(--bg2);transition:border-color .5s,transform .7s var(--out)}
.ev-card:hover{border-color:var(--p);transform:translateY(-6px)}
.ev-poster{position:relative;aspect-ratio:4/5;overflow:hidden;background:#0b0b10}
.ev-poster img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--out),filter .6s;filter:saturate(.85)}
.ev-card:hover .ev-poster img{transform:scale(1.07);filter:none}
.ev-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,7,.1) 35%,rgba(5,5,7,.95));pointer-events:none}
.ev-meta{position:absolute;z-index:2;left:18px;right:18px;top:16px;display:flex;justify-content:space-between;font:500 10px var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.ev-no{color:#fff;border:1px solid var(--p);padding:4px 9px;background:rgba(5,5,7,.6)}.ev-cat{color:var(--c);padding:4px 0;text-align:right}
.ev-text{position:absolute;z-index:2;left:18px;right:18px;bottom:18px}
.ev-text h3{font-size:1.45rem;letter-spacing:-.02em;line-height:1.1;transform:translateY(6px);transition:transform .6s var(--out)}
.ev-card:hover .ev-text h3{transform:none}
.ev-date{margin:.6rem 0 0;font:500 10px var(--f-mono);letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.ev-noimg{display:grid;place-items:center;width:100%;height:100%;font:700 5rem var(--f-head);color:transparent;-webkit-text-stroke:1px rgba(168,85,247,.45)}
.ev-detail{display:grid;gap:3rem}@media(min-width:992px){.ev-detail{grid-template-columns:1.8fr 1fr;gap:5vw;align-items:start}.ev-info{position:sticky;top:110px}}
.ev-main h2{font-size:clamp(2rem,4.4vw,3.8rem);letter-spacing:-.03em;margin-bottom:1.6rem;text-transform:uppercase}
.ev-main p{color:#cfd0d8;line-height:1.85;margin:0 0 1.2rem}
.ev-info{border:1px solid var(--line);background:var(--bg2);padding:2rem;position:relative}
.ev-info h3{font:500 11px var(--f-mono);letter-spacing:.2em;color:var(--p2);text-transform:uppercase;margin-bottom:1.4rem}
.ev-info dl{margin:0;display:grid;gap:1.1rem}.ev-info dt{font:500 10px var(--f-mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase}.ev-info dd{margin:.25rem 0 0;font-size:1.05rem;color:#fff}
.ev-nav{display:flex;justify-content:space-between;gap:12px;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line);font:500 10px var(--f-mono);letter-spacing:.14em;text-transform:uppercase}.ev-nav a{color:var(--dim)}.ev-nav a:hover{color:var(--p2)}
.ip-box{max-width:620px;margin:18vh auto;text-align:center;padding:3rem 2rem;border:1px solid var(--line);background:var(--bg2);position:relative;z-index:1}
.ip-box b{display:block;margin-top:1rem;font:700 clamp(1.8rem,5vw,3rem) var(--f-head);color:var(--p2);letter-spacing:.02em}

.btn-admin-portal{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(168,85,247,0.12);border:1px solid rgba(168,85,247,0.35);color:#c084fc;font:600 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:all .3s cubic-bezier(0.16,1,0.3,1);box-shadow:0 0 12px rgba(168,85,247,0.15)}
.btn-admin-portal:hover{background:rgba(168,85,247,0.28);border-color:#a855f7;color:#fff!important;box-shadow:0 0 20px rgba(168,85,247,0.45);transform:translateY(-1px)}
