:root{
  --carbon:#141416;
  --asphalt:#1d1f22;
  --red:#e2231f;
  --red-deep:#a5140f;
  --gold:#c9a24b;
  --paper:#f2efe8;
  --paper-dim:#c9c6bd;
  --steel:#8d9095;
  --ink:#1c1c1e;
  --ink-dim:#6b6d72;
  --line:rgba(255,255,255,.09);
  --disp:'Barlow Semi Condensed', sans-serif;
  --body:'Noto Sans JP', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--carbon);color:var(--paper);font-family:var(--body);line-height:1.9;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
h2,h3{font-family:var(--disp);font-weight:700;letter-spacing:.01em;margin:0;color:#fff;background:none;}
.wrap-inner{max-width:1280px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap-inner{padding:0 20px;}}
.eyebrow {font-family: var(--disp);font-weight: 600;letter-spacing: .1em;color: #ffffff;}

#tas-page{width:100%;overflow-x:clip;}
.brand{display:flex;align-items:baseline;gap:10px;font-family:var(--disp);}
.brand .mark{font-weight:700;font-size:22px;letter-spacing:.03em;color:var(--paper);}
.brand .mark span{color:var(--red);}
.brand .tag{font-style:italic;font-size:12px;color:var(--gold);letter-spacing:.08em;border-left:1px solid var(--line);padding-left:10px;white-space:nowrap;}
nav.main-nav{display:flex;align-items:center;gap:26px;font-family:var(--disp);font-weight:600;letter-spacing:.04em;font-size:14px;}
nav.main-nav a{color:var(--paper-dim);transition:color .2s ease;}
nav.main-nav a:hover{color:var(--paper);}
.nav-cta{background:var(--red);color:#fff !important;padding:9px 20px;border-radius:2px;font-weight:700;}
.nav-cta:hover{background:var(--red-deep);}
@media(max-width:900px){nav.main-nav a:not(.nav-cta){display:none;}}
.hero{
  padding:130px 0 90px;
  text-align:center;
  background:url('/event/img/tas2027/tas2027_users_bg_main.jpg');
  background-size:cover;
  background-position:center 35%;
  border-bottom:1px solid var(--line);
}
.hero .eyebrow { display: block; margin-bottom: 24px; font-size: clamp(21px,5.5vw,43px); text-shadow: 1px 1px 12px #333; }
.hero-title{max-width:765px;width:100%;height:auto;margin:0 auto;filter:drop-shadow(0 10px 30px rgba(0,0,0,.55));}

section{padding:88px 0;position:relative;}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

#story{
  background:#a5140f url(/event/img/tas2027/tas2027_users_bg_memory.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color:#fff;
}
.story-head{margin:0 auto 20px;text-align:center;}
.story-head h2{font-size:clamp(22px,4vw,42px);text-transform:none;}
.story-head p{font-size:clamp(14px,3vw,17px);color:rgba(255,255,255,.92);margin-top:16px;}
.story-sub{text-align:center;font-family:var(--disp);font-weight:700;font-size:clamp(15px,3vw,19px);letter-spacing:.02em;margin:58px 0 55px;}

.episode-layout{display:grid;grid-template-columns:0.8fr 1fr;gap:22px;align-items:start;}
@media(max-width:860px){.episode-layout{grid-template-columns:1fr;}}
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:500px){.mini-grid{grid-template-columns:1fr;}}

.ig-post{background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.28);}
.ig-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;}
.ig-user{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:700;font-size:15px;}
.ig-user .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--red),var(--gold));}
.ig-photo{aspect-ratio:1/1;overflow:hidden;}
.ig-photo img{width:100%;height:100%;object-fit:cover;}
.ig-icons{display:flex;align-items:center;gap:14px;padding:12px 16px 4px;}
.ig-icons .spacer{flex:1;}
.ig-body{padding:6px 16px 20px;}
.ig-likes{font-family:var(--disp);font-weight:700;font-size:14px;margin-bottom:8px;}
.ig-caption{font-size:14.5px;color:var(--ink);line-height:1.85;}
.ig-caption b{margin-right:6px;}
.ig-tags{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--red);margin-top:8px;display:block;}

.mini-post{background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.22);}
.mini-photo{aspect-ratio:4/3;overflow:hidden;}
.mini-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.mini-body{padding:14px 16px 16px;}
.mini-body p{font-size:14.5px;color:var(--ink);margin:0 0 10px;line-height:1.8;}
.mini-tags{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--red);}

.stamp-inline{text-align:center;margin-top:56px;}
.stamp-inline .stamp-label { font-family: var(--disp); font-weight: 700; letter-spacing: 0.1em; font-size: clamp(14px,3vw,20px); color: #fff; opacity: .85; line-height: 46px; }
.stamp-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.tag-pill { background: #141416; color: #fff; font-family: var(--disp); font-weight: 700; font-size: clamp(16px,3vw,19px); padding: 14px 40px 18px; border-radius: 999px; letter-spacing: .1em; white-space: nowrap; line-height: 1.1; }

#keychain{background:var(--carbon);text-align:center;}
#keychain h2{font-size:clamp(22px,3.6vw,34px);max-width:640px;margin:0 auto 8px;line-height:1.4;}
section#keychain p { color: #deb965; }
.kc-badge { display: inline-block; margin: 14px 0 34px; font-family: var(--disp); font-weight: 700; color: var(--gold); border: 1px solid var(--gold); padding: 6px 18px; border-radius: 999px; font-size: clamp(18px,3.0vw,21px); letter-spacing: 0.1rem; }
.kc-photo{max-width:640px;margin:0 auto 30px;}
.kc-photo img{width:100%;height:auto;}
.kc-tagline { font-family: var(--disp); font-weight: 600; font-size: clamp(16px,3vw,20px); color: var(--paper); margin-bottom: 16px; }
.kc-note{font-size:16px;color:#cdd0d5;}

#prizes{background:#3b3c40;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
#prizes h2{text-align:center;font-size:clamp(22px,3.8vw,38px);margin-bottom:46px;}
.award-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
@media(max-width:860px){.award-grid{grid-template-columns:1fr;}}
.award-card{background:none;color:var(--paper);border-radius:0;padding:0 36px;text-align:center;position:relative;}
.award-card:not(:first-child){border-left:1px solid rgba(255,255,255,.16);}
@media(max-width:860px){
  .award-card{padding:36px 0 0;}
  .award-card:first-child{padding-top:0;}
  .award-card:not(:first-child){border-left:none;border-top:1px solid rgba(255,255,255,.16);}
}
.prize-label{font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--gold);margin-bottom:16px;}
.award-media{background:none;padding:0;margin-bottom:18px;display:flex;align-items:center;justify-content:center;min-height:auto;}
.award-media img{width:95%;}
.award-card h3{font-size:19px;color:var(--paper);margin-bottom:6px;}
.award-card .who{font-size:12.5px;color:var(--paper-dim);margin-bottom:14px;}
.award-ribbon{display:inline-block;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.03em;color:#fff;background:var(--red);padding:6px 16px;border-radius:999px;}

#howto{background:var(--carbon);text-align:center;}
#howto h2{font-size:clamp(22px,3.8vw,38px);margin-bottom:26px;}
.howto-copy{max-width:600px;margin:0 auto 30px;font-size:clamp(16px,2.8vw,18px);color:var(--paper);line-height:2;}
.howto-copy .plat{color:var(--gold);font-family:var(--disp);font-weight:700;}
.howto-sns{margin:0 auto 34px;}
.howto-sns img{height:48px;width:auto;margin:0 auto;}
.fine-print { max-width: 680px; margin: 0 auto; border-top: 1px solid var(--line); padding-top: 22px; font-size: 15px; color: #e0e1e4; line-height: 2; }

#tas-teaser{
  position:relative;
  background:linear-gradient(120deg, rgba(165,20,15,.9), rgba(226,35,31,.82)), url('/event/img/tas2027/tas2027_users_booth.jpg');
  background-size:cover;background-position:center 60%;
  padding:80px 0;
  text-align:center;
}
#tas-teaser h3{color:#fff;font-size:clamp(22px,3.4vw,32px);}
#tas-teaser p{color:rgba(255,255,255,.9);font-size:17px;margin-top:10px;}

#period{background:var(--asphalt);text-align:center;border-bottom:1px solid var(--line);}
#period .eyebrow{display:block;margin-bottom:12px;font-size:21px;}
.period-dates{font-family:var(--disp);font-weight:700;font-size:clamp(22px,4vw,32px);color:var(--paper);}
.period-dates .to{color:var(--red);margin:0 14px;}

#entry{background:var(--carbon);text-align:center;}
#entry h2{font-size:clamp(22px,3.6vw,32px);margin-bottom:26px;}
.tag-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:28px;}
.chip{font-family:var(--disp);font-weight:600;font-size:clamp(14px,2.4vw,16px);color:var(--paper);border:1px solid rgba(226,35,31,.5);background:rgba(226,35,31,.08);padding:8px 25px;border-radius:999px;}
.chip2{font-family:var(--disp);font-weight:600;font-size:clamp(14px,2.4vw,16px);color:#333;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.9);padding:8px 25px;border-radius:999px;}
.social-strip{display:flex;justify-content:center;}
.social-strip img{height:34px;width:auto;}

footer.legal{border-top:1px solid var(--line);padding:30px 0 60px;text-align:center;color:var(--steel);font-size:12px;}
@media(max-width:990px){footer.legal{display:none;}}
@media(max-width:640px){.hero {
    padding: 100px 0 90px;
    text-align: center;
    background: url(/event/img/tas2027/tas2027_users_bg_main.jpg);
    background-size: cover;
    background-position: 0 35%;
}section {
    padding: 56px 0;}
}