:root{--accent:#E4FF3A;--bg:#0A0A0A;--bg2:#0F0F0F;--line:#1F1F1F;--line2:#2A2A2A;--text:#F2F2F2;--muted:#A3A3A3;--muted2:#8A8A8A;--body:#BDBDBD;
--fut:Futura,'Futura PT',Jost,'Zen Kaku Gothic New',sans-serif;--jp:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--jp);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:var(--text);text-decoration:none}a:hover{color:var(--accent)}
img{max-width:100%;display:block}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.fut{font-family:var(--fut);font-weight:700}
.wrap{max-width:1360px;margin:0 auto;padding:120px 40px}
.sec{border-bottom:1px solid var(--line)}.sec--alt{background:var(--bg2)}
.eyebrow{font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.14em;color:var(--accent)}
.label{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.12em;color:var(--muted2)}
.h2{margin:0;font-family:var(--fut);font-weight:700;font-size:40px;line-height:1.15}
.split{display:flex;flex-wrap:wrap;gap:48px 80px}
.split__side{flex:0 1 320px;display:flex;flex-direction:column;gap:16px}
.split__main{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:32px}
.head-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px}
.head-row__title{display:flex;flex-direction:column;gap:16px}
.lead{margin:0;font-size:15px;line-height:1.9;color:var(--muted);max-width:440px}
.prose p{margin:0 0 1.2em;font-size:17px;line-height:2.1;color:#CFCFCF}.prose p:last-child{margin:0}
@media (max-width:640px){.wrap{padding:88px 20px}}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(10,10,10,.92);border-bottom:1px solid var(--line)}
.site-header__in{max-width:1360px;margin:0 auto;padding:18px 40px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px}
.logo{font-family:var(--fut);font-weight:700;font-size:18px;letter-spacing:.12em;white-space:nowrap}
.gnav{display:flex;flex-wrap:wrap;gap:8px 28px;font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.12em}
.gnav a{padding:12px 0}
.btn-pill{display:inline-flex;align-items:center;gap:12px;font-family:var(--fut);font-weight:700;letter-spacing:.1em;border-radius:999px;background:var(--accent);color:#0A0A0A;padding:13px 24px;font-size:13px;border:0;cursor:pointer}
.btn-pill:hover{color:#0A0A0A;filter:brightness(.92)}
.btn-line{display:inline-flex;align-items:center;padding:14px 28px;border-radius:999px;border:1px solid var(--text);font-weight:700;font-size:15px}
@media (max-width:640px){.site-header__in{padding:14px 20px}}

/* hero */
.hero .wrap{padding:96px 40px 72px;display:flex;flex-direction:column;gap:48px}
.hero__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.14em;color:var(--muted)}
.hero__logo{position:relative}
.hero__logo svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero__logo h1{position:relative;margin:0;font-family:var(--fut);font-weight:700;font-size:clamp(5.5rem,21vw,19rem);line-height:.86;letter-spacing:-.02em}
.hero__bottom{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px}
.hero__copy{margin:0;font-weight:700;font-size:clamp(1.75rem,3.4vw,3rem);line-height:1.35;letter-spacing:.02em;flex:1 1 520px;white-space:pre-line}
.hero__side{display:flex;flex-direction:column;gap:20px;flex:0 1 380px}
.hero__side p{margin:0;font-size:15px;line-height:2;color:var(--body)}
.link-under{display:inline-flex;align-items:center;gap:12px;font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.14em;padding:14px 0;border-bottom:1px solid var(--text);align-self:flex-start}
@media (max-width:640px){.hero .wrap{padding:64px 20px 56px}}

/* concept */
.concept__title{margin:0;font-weight:700;font-size:clamp(1.5rem,2.6vw,2.25rem);line-height:1.6}

/* service */
.svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:#262626;border:1px solid #262626}
.svc__item{background:var(--bg2);padding:36px 28px;display:flex;flex-direction:column;gap:20px;min-height:240px}
.svc__item h3{margin:0;font-size:24px}.svc__item p{margin:0;font-size:14px;line-height:1.9;color:var(--muted)}
.flow{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.flow__step{border-top:2px solid #3A3A3A;padding-top:16px;display:flex;flex-direction:column;gap:8px}
.flow__step:first-child{border-top-color:var(--accent)}
.flow__step strong{font-size:17px}.flow__step span:last-child{font-size:13px;line-height:1.8;color:var(--muted)}

/* works */
.thumb{position:relative;aspect-ratio:16/9;background:#141414;border:1px solid #262626;overflow:hidden}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thumb__num{position:absolute;left:20px;bottom:16px;font-family:var(--fut);font-weight:700;font-size:44px;color:#2E2E2E}
.play{position:absolute;right:20px;bottom:20px;width:48px;height:48px;border-radius:999px;border:1px solid var(--text);background:rgba(10,10,10,.7);color:var(--text);display:flex;align-items:center;justify-content:center}
.work:hover .thumb{border-color:var(--accent)}
.work:hover .play{background:var(--accent);color:#0A0A0A;border-color:var(--accent)}
.feature{display:flex;flex-wrap:wrap;gap:32px 56px;align-items:center}
.feature:nth-of-type(even){flex-direction:row-reverse}
.feature .thumb{flex:1 1 560px}
.feature .play{width:64px;height:64px;right:28px;bottom:28px}
.feature__big{position:absolute;left:28px;bottom:24px;font-family:var(--fut);font-weight:700;font-size:clamp(2rem,4vw,3.5rem);line-height:1;color:#2E2C28}
.feature__body{flex:1 1 380px;display:flex;flex-direction:column;gap:20px}
.feature__body h3{margin:0;font-size:30px;line-height:1.4}
.feature__body p{margin:0;font-size:15px;line-height:2;color:var(--body)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:56px 32px}
.card{display:flex;flex-direction:column;gap:16px}
.card h3{margin:0;font-size:21px}.card p{margin:0;font-size:14px;line-height:1.9;color:var(--muted)}
.works{display:flex;flex-direction:column;gap:64px}

/* awards */
.award{display:flex;flex-wrap:wrap;gap:12px 32px;padding:32px 0;border-top:1px solid var(--line2)}
.award:last-child{border-bottom:1px solid var(--line2)}
.award__label{font-family:var(--fut);font-weight:700;font-size:28px;line-height:1.15;flex:0 0 180px;white-space:pre-line}
.award__label.is-hl{color:var(--accent)}
.award__body{flex:1 1 320px;display:flex;flex-direction:column;gap:8px}
.award__body strong{font-size:19px}.award__body span{font-size:14px;line-height:1.9;color:var(--muted)}

/* series */
.series{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.series figure{margin:0;aspect-ratio:3/4;background:#161616;overflow:hidden}
.series img{width:100%;height:100%;object-fit:cover}
.series__ph{aspect-ratio:3/4;background:#161616;border:1px dashed #3A3A3A;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted2);text-align:center;padding:12px}

/* profile */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{padding:10px 18px;border:1px solid var(--accent);border-radius:999px;font-size:14px}
.tools{margin:0;font-family:var(--fut);font-weight:700;font-size:14px;line-height:2;color:#CFCFCF}

/* contact */
.contact .wrap{padding:140px 40px 64px;display:flex;flex-direction:column;gap:72px}
.contact__h{margin:0;font-family:var(--fut);font-weight:700;font-size:clamp(2.75rem,8vw,7.5rem);line-height:.95}
.contact__row{display:flex;flex-wrap:wrap;gap:56px 80px;align-items:flex-start}
.contact__form{flex:1 1 600px;min-width:0;display:flex;flex-direction:column;gap:28px}
.contact__side{flex:0 1 340px;display:flex;flex-direction:column;gap:32px}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:72px;padding:0 32px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:#0A0A0A;font-family:var(--fut);font-weight:700;font-size:18px;letter-spacing:.06em;cursor:pointer}
.toggle[aria-expanded="true"]{background:transparent;color:var(--text)}
.toggle__icon{font-size:28px;line-height:1}
#cf-panel{flex-direction:column;gap:28px;padding-top:12px}
#cf-panel:not([hidden]){display:flex}
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px 24px}
.field{display:flex;flex-direction:column;gap:10px}
.field label{font-size:14px;font-weight:700}.field label em{font-style:normal;color:var(--accent)}
.field input,.field select,.field textarea{height:52px;padding:0 16px;background:#141414;border:1px solid #3A3A3A;border-radius:6px;color:var(--text);font-size:16px;font-family:inherit;width:100%}
.field textarea{height:auto;padding:16px;line-height:1.8;resize:vertical}
.hp{position:absolute;left:-9999px}
.send-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.send-row .btn-pill{padding:18px 40px;font-size:16px}
#cf-submit[disabled]{opacity:.5;cursor:wait}
#cf-status{font-size:14px;line-height:1.8;color:var(--muted)}
#cf-status.is-ok{color:var(--accent)}#cf-status.is-err{color:#FF8A7A}
.footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-top:32px;border-top:1px solid var(--line2)}
.footer nav{display:flex;flex-wrap:wrap;gap:8px 32px;font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.12em}
.footer nav a{padding:12px 0}
@media (max-width:640px){.contact .wrap{padding:96px 20px 48px}.toggle{padding:0 24px;font-size:16px}}

/* generic pages */
.page-content{max-width:760px;margin:0 auto;padding:96px 20px}
.page-content h1{font-size:32px}.page-content p{line-height:2;color:#CFCFCF}

/* video modal */
.vmodal{padding:0;border:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;margin:0}
.vmodal::backdrop{background:rgba(5,5,5,.92)}
.vmodal__in{position:relative;width:min(1200px,92vw);margin:0 auto;top:50%;transform:translateY(-50%)}
.vmodal__frame{position:relative;aspect-ratio:16/9;background:#000}
.vmodal__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vmodal__title{margin:16px 0 0;color:var(--text);font-weight:700;font-size:16px}
.vmodal__close{position:absolute;right:0;top:-60px;width:48px;height:48px;border-radius:999px;border:1px solid var(--text);background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}
.vmodal__close:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A}

/* =========================================================
 * Motion
 * ======================================================= */
/* hero intro */
.hero__word{display:flex}
.hero__word span{display:inline-block}
.js .hero__word span{transform:translateY(105%);opacity:0;animation:rise 1.1s cubic-bezier(.2,.8,.15,1) forwards}
.js .hero__word span:nth-child(2){animation-delay:.08s}.js .hero__word span:nth-child(3){animation-delay:.16s}.js .hero__word span:nth-child(4){animation-delay:.24s}
@keyframes rise{to{transform:none;opacity:1}}
.hero__logo{overflow:hidden}
.flight{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s .5s cubic-bezier(.6,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.flight2{stroke-dasharray:6 10;animation:dash 18s linear infinite}
@keyframes dash{to{stroke-dashoffset:-320}}
.js .hero__meta,.js .hero__bottom{opacity:0;transform:translateY(16px);animation:rise .9s .9s cubic-bezier(.2,.8,.15,1) forwards}
.js .hero__meta{animation-delay:.4s}

/* marquee */
.marquee{overflow:hidden;border-bottom:1px solid var(--line);background:var(--accent);color:#0A0A0A}
.marquee__track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee__set{display:flex;align-items:center;gap:36px;padding:18px 18px;font-family:var(--fut);font-weight:700;font-size:clamp(18px,2.4vw,30px);letter-spacing:.06em;white-space:nowrap}
.marquee__set i{width:10px;height:10px;border-radius:999px;background:#0A0A0A;display:block}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* scroll reveal */
.js .reveal{opacity:0;transform:translateY(48px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .reveal.is-in{opacity:1;transform:none}
.js .reveal-line{position:relative}
.js .reveal-line::after{content:"";position:absolute;left:0;bottom:-10px;height:2px;width:0;background:var(--accent);transition:width 1.2s .3s cubic-bezier(.6,0,.2,1)}
.js .reveal-line.is-in::after{width:64px}

/* thumbnails */
.thumb img{transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .6s}
.work:hover .thumb img{transform:scale(1.06)}
.js .thumb::before{content:"";position:absolute;inset:0;z-index:2;background:var(--accent);transform-origin:right;transform:scaleX(1);transition:transform 1s cubic-bezier(.7,0,.2,1);transition-delay:calc(var(--d,0s) + .15s);pointer-events:none}
.js .reveal.is-in .thumb::before,.js .thumb.is-in::before{transform:scaleX(0)}
.play{z-index:3;transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s,color .3s}
.work:hover .play{transform:scale(1.15)}

/* header hide on scroll */
.site-header{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.site-header.is-hidden{transform:translateY(-100%)}

/* buttons */
.btn-pill,.toggle,.btn-line{transition:transform .3s cubic-bezier(.2,.7,.2,1),filter .3s,background .3s,color .3s}
.btn-pill:hover,.btn-line:hover{transform:translateY(-2px)}

/* bird: hero + cursor */
.hero-bird{position:absolute;left:0;top:0;width:68px;height:41px;margin:-20px 0 0 -34px;color:var(--accent);opacity:0;pointer-events:none;z-index:3;will-change:transform,opacity}
.cursor{display:none}
@media (pointer:fine){
 .js .cursor{display:block;position:fixed;left:0;top:0;width:46px;height:28px;margin:-14px 0 0 -23px;color:var(--accent);pointer-events:none;z-index:9999;opacity:0;transition:opacity .3s;will-change:transform}
 .js .cursor.is-on{opacity:1}
}
@media (prefers-reduced-motion:reduce){
 .js .hero__word span,.js .hero__meta,.js .hero__bottom{animation:none;opacity:1;transform:none}
 .flight{animation:none;stroke-dashoffset:0}.hero-bird{display:none}.flight2,.marquee__track{animation:none}
 .js .reveal{opacity:1;transform:none;transition:none}
 .js .thumb::before{display:none}
 .js .cursor{display:none!important}
}

/* SNS icons */
.sns{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.sns a{width:44px;height:44px;border-radius:999px;border:1px solid #3A3A3A;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text);transition:background .3s,border-color .3s,color .3s,transform .3s cubic-bezier(.2,.7,.2,1)}
.sns a:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A;transform:translateY(-2px)}
.sns--lg{flex-direction:column;gap:12px}
.sns--lg a{width:100%;max-width:300px;height:56px;justify-content:flex-start;padding:0 22px;font-family:var(--fut);font-weight:700;font-size:15px;letter-spacing:.06em}
.sns--lg a span{flex:1}
.sns--lg a::after{content:"↗";font-size:16px}
.site-header__right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.site-header .sns a{width:40px;height:40px}
.hero__follow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:8px}
@media (max-width:900px){.site-header .sns{display:none}}

/* flock (easter egg) */
.flock{position:fixed;inset:0;pointer-events:none;z-index:9998;overflow:hidden}
.flock span{position:absolute;left:0;top:0;width:44px;height:26px;margin:-13px 0 0 -22px;color:var(--accent);will-change:transform,opacity}

/* profile portrait (hero, top right) */
.hero__logo{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hero__portrait{position:relative;z-index:1;margin:0;flex:0 0 auto;width:clamp(120px,22vw,300px);aspect-ratio:1;border-radius:50%;padding:6px;border:2px solid var(--accent);box-sizing:border-box}
.hero__portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.js .hero__portrait{opacity:0;transform:scale(.85);animation:pop 1.1s .6s cubic-bezier(.2,.8,.15,1) forwards}
@keyframes pop{to{opacity:1;transform:none}}
@media (max-width:640px){.hero__logo{align-items:flex-start}.hero__portrait{width:96px;padding:4px}}
@media (prefers-reduced-motion:reduce){.js .hero__portrait{animation:none;opacity:1;transform:none}}

.prose p:first-child::first-line{font-family:var(--fut);font-weight:700;color:var(--text)}

/* =========================================================
 * v2 FLIGHT LOG
 * ======================================================= */
:root{--ultra:#1D1B9B}
/* showcase (horizontal slider) */
.show{position:relative;height:calc(100vh - 73px);height:calc(100svh - 73px);min-height:540px;overflow:hidden;background:#000;border-bottom:1px solid var(--line)}
.show__slides{display:flex;height:100%;will-change:transform;transition:transform .9s cubic-bezier(.77,0,.18,1)}
.show__slides.no-anim{transition:none}
.show__slide{position:relative;flex:0 0 100%;height:100%;overflow:hidden}
.show__bg{position:absolute;inset:-2% -4%;transition:transform .9s cubic-bezier(.77,0,.18,1),filter .45s}
.show__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.show__slide.is-active .show__bg img{animation:kenburns 7s linear forwards}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.14)}}
.show.is-moving .show__bg{transform:skewX(-5deg) scale(1.06);filter:blur(1.5px) brightness(.8)}
.show__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.86) 0%,rgba(8,8,8,.4) 50%,rgba(8,8,8,.1) 100%),linear-gradient(0deg,rgba(8,8,8,.75),transparent 50%)}
.show__big{position:absolute;right:-1vw;top:50%;transform:translateY(-55%);font-family:var(--fut);font-weight:700;font-size:clamp(10rem,30vw,30rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(242,242,242,.28);pointer-events:none;letter-spacing:-.04em}
.show__slide.is-active .show__big{animation:bigIn 1.1s cubic-bezier(.16,1,.3,1) both}
@keyframes bigIn{from{opacity:0;transform:translate(18%,-55%)}to{opacity:1;transform:translate(0,-55%)}}
.show__body{position:absolute;left:0;right:0;bottom:0;max-width:1360px;margin:0 auto;padding:0 40px 132px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.show__no{font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.22em;color:var(--accent)}
.show__cat{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.16em;color:#CFCFCF}
.show__title{margin:0;font-family:var(--fut);font-weight:700;font-size:clamp(2.2rem,6.2vw,6rem);line-height:1.02;max-width:15ch;overflow:hidden;padding-bottom:.06em}
.show__title span{display:inline-block}
.show__btns{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px}
.show__play{padding:15px 28px;font-size:14px}
.show__more{background:rgba(10,10,10,.35)}
.show__slide:not(.is-active) .show__body{opacity:0}
@keyframes slideIn{from{opacity:0;transform:translateX(90px)}to{opacity:1;transform:none}}
@keyframes titleIn{from{transform:translateY(105%)}to{transform:none}}
.show__slide.is-active .show__no,.show__slide.is-active .show__cat,.show__slide.is-active .show__btns{animation:slideIn .8s cubic-bezier(.16,1,.3,1) both}
.show__slide.is-active .show__cat{animation-delay:.06s}
.show__slide.is-active .show__title span{animation:titleIn .9s .12s cubic-bezier(.16,1,.3,1) both}
.show__slide.is-active .show__btns{animation-delay:.24s}
.show__ui{position:absolute;z-index:5;right:0;left:0;bottom:36px;max-width:1360px;margin:0 auto;padding:0 40px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.show__segs{display:flex;gap:8px;flex:1 1 auto;max-width:720px}
.show__seg{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:10px;padding:10px 0;background:none;border:0;color:#8A8A8A;font-family:var(--fut);font-weight:700;font-size:11px;letter-spacing:.14em;text-align:left;cursor:pointer;transition:color .3s}
.show__seg:hover,.show__seg.is-active{color:var(--text)}
.show__seg i{display:block;height:2px;background:rgba(255,255,255,.2);overflow:hidden}
.show__seg b{display:block;height:100%;background:var(--accent);transform-origin:left;transform:scaleX(0)}
.show__seg.is-done b{transform:scaleX(1);background:rgba(242,242,242,.55)}
.show__nav{display:flex;gap:10px;flex:0 0 auto}
.show__nav button{width:52px;height:52px;border-radius:999px;border:1px solid rgba(242,242,242,.6);background:rgba(10,10,10,.4);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .3s}
.show__nav button:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A;transform:scale(1.06)}
@media (max-width:640px){.show__body{padding:0 20px 120px}.show__ui{padding:0 20px;bottom:22px}.show__seg span{display:none}.show__nav button{width:44px;height:44px}.show__big{font-size:14rem;opacity:.7}}

/* index (flight log list) */
.index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
.index__row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,220px) 90px 32px;align-items:center;gap:16px;padding:26px 8px;border-bottom:1px solid var(--line2);transition:background .3s,padding .4s cubic-bezier(.2,.7,.2,1)}
.index__row:hover,.index__row:focus-visible{background:rgba(228,255,58,.06);padding-left:20px;color:var(--text)}
.index__no{font-family:var(--fut);font-weight:700;font-size:14px;letter-spacing:.1em;color:var(--muted2)}
.index__row:hover .index__no,.index__row.is-current .index__no{color:var(--accent)}
.index__title{font-family:var(--fut);font-weight:700;font-size:clamp(18px,2.2vw,28px);line-height:1.3}
.index__cat,.index__date{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.1em;color:var(--muted)}
.index__arrow{font-size:20px;color:var(--muted2);transition:transform .3s,color .3s}
.index__row:hover .index__arrow{transform:translateX(6px);color:var(--accent)}
.index__row.is-current{background:rgba(228,255,58,.04)}
@media (max-width:760px){.index__row{grid-template-columns:52px minmax(0,1fr) 24px;row-gap:6px}.index__cat{grid-column:2;grid-row:2}.index__date{display:none}.index__arrow{grid-column:3;grid-row:1}}
.index-preview{position:fixed;left:0;top:0;width:320px;aspect-ratio:16/9;pointer-events:none;z-index:50;opacity:0;transform:scale(.9);transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1);overflow:hidden;border:1px solid var(--accent)}
.index-preview.is-on{opacity:1;transform:scale(1)}
.index-preview img{width:100%;height:100%;object-fit:cover}
@media (hover:none){.index-preview{display:none}}

/* single flight */
.flight__hero{background:#000;border-bottom:1px solid var(--line)}
.flight__visual{position:relative;max-width:1600px;margin:0 auto;aspect-ratio:16/9;max-height:calc(100svh - 73px);overflow:hidden}
.flight__visual img{width:100%;height:100%;object-fit:cover;animation:kenburns 14s ease-out forwards}
.flight__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:radial-gradient(circle at center,rgba(10,10,10,.15),rgba(10,10,10,.55))}
.flight__playbtn{width:96px;height:96px;border-radius:999px;border:1px solid var(--text);display:flex;align-items:center;justify-content:center;background:rgba(10,10,10,.4);transition:background .3s,color .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
.flight__play:hover .flight__playbtn{background:var(--accent);border-color:var(--accent);color:#0A0A0A;transform:scale(1.08)}
.flight__playlabel{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.24em}
.flight__info{display:flex;flex-wrap:wrap;gap:48px 80px}
.flight__head{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px}
.flight__of{color:var(--muted2)}
.flight__title{margin:0;font-family:var(--fut);font-weight:700;font-size:clamp(2rem,4.6vw,4rem);line-height:1.1}
.flight__desc{margin:8px 0 0;font-size:16px;line-height:2.1;color:#CFCFCF;max-width:40em;overflow-wrap:break-word}
.flight__spec{flex:0 1 380px;margin:0;display:flex;flex-direction:column;border-top:1px solid var(--line2)}
.flight__spec>div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line2)}
.flight__spec dt{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.14em;color:var(--muted2);padding-top:3px}
.flight__spec dd{margin:0;font-size:15px;line-height:1.8}
.flight__spec .chips span{padding:6px 14px;font-size:13px}
.flight__pager{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.flight__pg{position:relative;display:flex;align-items:flex-end;min-height:220px;padding:28px 40px;overflow:hidden;background:#000}
.flight__pg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;transition:opacity .5s,transform 1s cubic-bezier(.2,.7,.2,1)}
.flight__pg:hover img{opacity:.6;transform:scale(1.05)}
.flight__pg--next{justify-content:flex-end;text-align:right;border-left:1px solid var(--line)}
.flight__pgtext{position:relative;display:flex;flex-direction:column;gap:8px}
.flight__pgtext strong{font-family:var(--fut);font-size:clamp(16px,2vw,24px)}
@media (max-width:640px){.flight__pager{grid-template-columns:1fr}.flight__pg--next{border-left:0;border-top:1px solid var(--line)}.flight__pg{min-height:160px;padding:20px}}

@media (prefers-reduced-motion:reduce){
 .show__bg img,.flight__visual img{animation:none!important}
 .show__slides{transition:none!important}.show.is-moving .show__bg{transform:none;filter:none}
 .show__slide *{animation:none!important}
}

/* back button (detail page) */
.flight__hero{position:relative}
.flight__back{position:absolute;z-index:4;left:24px;top:24px;display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;border:1px solid rgba(242,242,242,.6);background:rgba(10,10,10,.55);font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.12em;transition:background .3s,color .3s,border-color .3s,transform .3s}
.flight__back:hover{background:var(--accent);border-color:var(--accent);color:#0A0A0A;transform:translateX(-3px)}
.flight__back--inline{position:static;align-self:flex-start;padding:8px 0;border:0;background:none;font-size:12px;color:var(--muted)}
.flight__back--inline:hover{background:none;color:var(--accent)}

/* =========================================================
 * v2.4 Mobile / typography
 * ======================================================= */
html:lang(ja){word-break:auto-phrase;line-break:strict}
h1,h2,h3,.show__title,.flight__title,.hero__copy,.concept__title{text-wrap:balance}
p,dd,.lead{text-wrap:pretty}
.text-sep{border:0;height:1px;background:var(--line2);margin:22px 0;max-width:100%}
.award__body .text-sep{margin:12px 0}

/* menu button & drawer (mobile) */
.menu-btn{display:none}
.gnav__extra{display:none}
@media (max-width:900px){
 .site-header__in{padding:12px 20px;flex-wrap:nowrap;gap:12px}
 .logo{font-size:15px;letter-spacing:.1em}
 .site-header__right{display:none}
 .menu-btn{display:flex;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;margin-left:auto;padding:0 10px;border:1px solid #3A3A3A;border-radius:999px;background:transparent;cursor:pointer;position:relative;z-index:31}
 .menu-btn span{display:block;height:1.5px;background:var(--text);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
 .menu-btn[aria-expanded="true"] span:first-child{transform:translateY(4.25px) rotate(45deg)}
 .menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-4.25px) rotate(-45deg)}
 .gnav{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:96px 28px 40px;background:rgba(10,10,10,.97);font-size:28px;letter-spacing:.08em;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .35s,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s .35s}
 .gnav a{padding:10px 0}
 .site-header.is-open .gnav{opacity:1;visibility:visible;transform:none;transition:opacity .35s,transform .35s cubic-bezier(.2,.7,.2,1)}
 .gnav__extra{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:28px}
 .gnav__extra .btn-pill{font-size:15px;padding:16px 32px}
 .gnav__extra .sns a{width:48px;height:48px}
 body.menu-open{overflow:hidden}
 .show{height:calc(100svh - 69px)}
}

@media (max-width:640px){
 .h2{font-size:30px}
 .eyebrow{font-size:12px}
 .hero .wrap{gap:32px}
 .hero__meta span:last-child{display:none}
 .hero__meta{font-size:11px}
 .hero__copy{font-size:1.5rem;line-height:1.5;flex-basis:100%}
 .hero__side{flex-basis:100%}
 .hero__side p{font-size:14px}
 .show__body{gap:10px}
 .show__title{font-size:2rem;max-width:none}
 .show__no{font-size:11px;letter-spacing:.16em}
 .show__cat{font-size:11px}
 .show__btns{gap:10px;padding-top:6px}
 .show__play,.show__more{padding:12px 20px;font-size:13px}
 .show__big{font-size:9rem;top:28%;opacity:.6}
 .marquee__set{gap:24px;padding:14px}
 .split{gap:28px}
 .prose p{font-size:15px;line-height:2}
 .concept__title{font-size:1.4rem}
 .svc__item{min-height:0;padding:28px 22px}
 .svc__item h3{font-size:20px}
 .index__row{padding:20px 4px;column-gap:12px}
 .index__row:hover{padding-left:4px}
 .index__title{font-size:17px}
 .award{padding:24px 0;gap:8px}
 .award__label{flex-basis:100%;font-size:20px}
 .award__body strong{font-size:16px}
 .chips span{padding:8px 14px;font-size:13px}
 .tools{font-size:13px}
 .contact .wrap{gap:48px}
 .contact__h{font-size:2.6rem}
 .contact__row{gap:40px}
 .sns--lg a{max-width:none}
 .footer{flex-direction:column;align-items:flex-start;gap:16px}
 .flight__info{gap:32px}
 .flight__title{font-size:1.9rem}
 .flight__desc{font-size:15px;line-height:2}
 .flight__spec>div{grid-template-columns:96px 1fr;gap:12px;padding:14px 0}
 .flight__back{left:14px;top:14px;padding:10px 16px;font-size:12px}
 .flight__playbtn{width:72px;height:72px}
 .vmodal__close{top:-56px}
}

/* =========================================================
 * v2.5 credits / awards / language / inquiry
 * ======================================================= */
.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 10px;border-radius:999px;background:var(--accent);color:#0A0A0A;font-family:var(--fut);font-weight:700;font-size:11px;letter-spacing:.06em;line-height:1.3;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.badge svg{flex:0 0 auto}
.badge--lg{font-size:13px;padding:8px 16px 8px 13px;align-self:flex-start;white-space:normal}
.show__award{margin-bottom:2px}
.index__award{margin-left:12px;font-size:10px;padding:3px 10px 3px 8px;transform:translateY(-2px)}
.roles{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.roles li{padding:8px 16px;border:1px solid var(--accent);border-radius:999px;font-family:var(--fut);font-weight:700;font-size:13px;letter-spacing:.06em}
.lang{display:flex;align-items:center;gap:8px;margin-top:16px;font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.14em;color:var(--muted2)}
.lang__btn{background:none;border:0;padding:8px 2px;color:var(--muted2);font:inherit;letter-spacing:inherit;cursor:pointer;border-bottom:1px solid transparent}
.lang__btn.is-active{color:var(--text);border-bottom-color:var(--accent)}
.flight__text[hidden]{display:none}
.intent{margin-top:28px;padding:22px 24px;border-left:2px solid var(--accent);background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:10px;max-width:40em}
.intent__text{font-size:15px;line-height:2;color:#E6E6E6}
.flight__spec .spec-award{color:var(--accent);font-weight:700}
.flight__spec .spec-tools dt,.flight__spec .spec-tools dd{color:var(--muted2)}
.flight__spec .spec-tools dd{font-size:13px}
.inquiry{border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(29,27,155,.22),rgba(10,10,10,0) 70%)}
.inquiry__in{padding-top:56px;padding-bottom:56px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px}
.inquiry__text{display:flex;flex-direction:column;gap:10px}
.inquiry__lead{margin:0;font-size:16px;line-height:1.9}
.inquiry__lead span{color:var(--muted);font-size:14px}
.inquiry__btn{gap:10px}
@media (max-width:640px){
 .index__award{display:flex;width:max-content;margin:8px 0 0;transform:none}
 .badge--lg{font-size:12px}
 .roles li{font-size:12px;padding:7px 13px}
 .intent{padding:18px}
 .inquiry__in{padding-top:40px;padding-bottom:40px}
 .inquiry__btn{width:100%;justify-content:center}
}

.award__body .award__date{font-family:var(--fut);font-weight:700;font-size:12px;letter-spacing:.14em;color:var(--accent)}

/* v2.6.9：巨大な Bird をアクセントカラーに */
.hero__logo h1.hero__word{color:var(--accent)}
.hero__meta span:first-child{color:var(--accent)}

/* v2.6.11：プロフィール画像を正円に・Bird の文字の高さに合わせて右端へ */
.hero__logo{--pf:clamp(110px,17vw,260px);align-items:center}
.hero__logo h1.hero__word{flex:0 1 auto;min-width:0}
.hero__portrait{flex:0 0 auto;width:var(--pf);height:var(--pf);min-width:var(--pf);aspect-ratio:auto;margin:0 4px 0 auto;padding:5px;border-radius:50%;overflow:hidden;box-sizing:border-box}
.hero__portrait img{display:block;width:100%;height:100%;aspect-ratio:1/1;border-radius:50%;object-fit:cover;object-position:50% 40%}
@media (max-width:640px){
 .hero__logo{--pf:clamp(72px,22vw,96px);align-items:center}
 .hero__portrait{padding:3px;border-width:1.5px}
}

/* v2.6.12：見出しの下線を文字幅いっぱいに */
.h2{width:fit-content;max-width:100%}
.js .reveal-line::after{width:100%;transform:scaleX(0);transform-origin:left center;transition:transform 1.2s .3s cubic-bezier(.6,0,.2,1)}
.js .reveal-line.is-in::after{width:100%;transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.js .reveal-line::after{transition:none;transform:scaleX(1)}}

/* v2.6.13：タイトルのサブ（— 以降）を2段目にまとめて表示 */
.show__title{max-width:none}
.show__title>span{display:block}
.ttl-sub{display:block;font-size:.56em;line-height:1.35;margin-top:.3em;white-space:nowrap;letter-spacing:.04em;font-family:var(--fut);color:#E6E6E6}
.show__title .ttl-sub{display:block}
.flight__title .ttl-sub{font-size:.6em;margin-top:.35em}
@media (max-width:640px){.ttl-sub{white-space:normal;word-break:keep-all}}

/* v2.8：フォームの任意表示・補足 */
.field label .opt{display:inline-block;margin-left:6px;padding:1px 8px;border:1px solid #3A3A3A;border-radius:999px;font-size:11px;font-weight:500;color:var(--muted);vertical-align:1px}
.field .help{font-size:12px;line-height:1.7;color:var(--muted)}
.field select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23A3A3A3' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center}
