body { background:#f6dc9f; color:#1a1207; }
.timetable_main { min-height:100vh; padding-bottom:70px; overflow-x:hidden; }
.tt_hero { position:relative; padding:130px 24px 44px; text-align:center; background:linear-gradient(180deg,#dab584 0%,#f6dc9f 100%); }
.tt_label { font-family:"Noto Sans JP",sans-serif; font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:rgba(26,18,7,.45); margin-bottom:12px; }
.tt_hero h1 { font-family:"Zen Old Mincho",serif; font-weight:900; font-size:clamp(30px,6vw,54px); letter-spacing:.08em; }
.tt_hero p:last-child { max-width:760px; margin:14px auto 0; font-family:"Shippori Mincho",serif; line-height:1.9; color:rgba(26,18,7,.68); }
.tt_notice { max-width:1080px; margin:22px auto 0; padding:16px 20px; border-radius:18px; background:rgba(255,255,255,.72); border:1px solid rgba(26,18,7,.08); box-shadow:0 12px 34px rgba(26,18,7,.08); font-family:"Noto Sans JP",sans-serif; font-weight:700; text-align:center; }
.tt_notice[data-weather="sunny"] { border-color:rgba(224,159,39,.35); background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(255,231,159,.58)); }
.tt_notice[data-weather="rainy"] { border-color:rgba(71,111,159,.35); background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(184,211,238,.58)); }
.tt_stage_intro { max-width:1080px; margin:18px auto; padding:0 20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.tt_intro_card { display:flex; gap:14px; padding:20px; border-radius:20px; background:rgba(255,255,255,.62); border:1px solid rgba(26,18,7,.08); box-shadow:0 10px 28px rgba(26,18,7,.07); }
.tt_intro_mark { font-family:"Zen Old Mincho",serif; font-size:24px; color:#8b6914; line-height:1; }
.tt_intro_card h2 { font-family:"Zen Old Mincho",serif; font-size:22px; font-weight:900; margin-bottom:8px; }
.tt_intro_card p { white-space:pre-line; font-family:"Shippori Mincho",serif; line-height:1.9; color:rgba(26,18,7,.72); }
.tt_day_tabs { max-width:760px; margin:24px auto 18px; padding:6px; display:grid; grid-template-columns:1fr 1fr; gap:6px; border-radius:999px; background:rgba(26,18,7,.08); }
.tt_day_tab { border:0; border-radius:999px; padding:12px 18px; background:transparent; color:rgba(26,18,7,.65); font-family:"Noto Sans JP",sans-serif; font-weight:700; cursor:pointer; transition:.25s ease; }
.tt_day_tab span { font-weight:400; opacity:.75; margin-left:4px; }
.tt_day_tab.active { background:#1a1207; color:#f6dc9f; box-shadow:0 8px 18px rgba(26,18,7,.18); }
.tt_board_section { max-width:1180px; margin:0 auto; padding:0 20px; }
.tt_board_hint { margin-bottom:10px; font-family:"Noto Sans JP",sans-serif; font-size:12px; color:rgba(26,18,7,.55); text-align:right; }
.tt_board_wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:22px; background:rgba(255,255,255,.72); border:1px solid rgba(26,18,7,.08); box-shadow:0 18px 44px rgba(26,18,7,.1); }
.tt_board { --time-col:72px; position:relative; min-width:900px; height:var(--tt-height); padding-left:var(--time-col); box-sizing:border-box; }
.tt_corner { position:absolute; left:0; top:0; width:var(--time-col); height:48px; display:flex; align-items:center; justify-content:center; font-family:"Noto Sans JP",sans-serif; font-size:12px; font-weight:700; color:rgba(26,18,7,.55); background:rgba(246,220,159,.8); border-right:1px solid rgba(26,18,7,.08); border-bottom:1px solid rgba(26,18,7,.08); z-index:5; }
.tt_time_label { position:absolute; left:0; width:var(--time-col); transform:translateY(-50%); text-align:center; font-family:"Noto Sans JP",sans-serif; font-size:11px; color:rgba(26,18,7,.55); z-index:4; }
.tt_grid_line { position:absolute; left:var(--time-col); right:0; height:1px; background:rgba(26,18,7,.07); z-index:1; }
.tt_stage_columns { position:absolute; left:var(--time-col); right:0; top:0; display:grid; }
.tt_stage_col { position:relative; border-right:1px solid rgba(26,18,7,.07); min-width:150px; }
.tt_stage_col:last-child { border-right:0; }
.tt_stage_head { height:48px; padding:8px 10px; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; gap:2px; text-align:center; background:rgba(246,220,159,.82); border-bottom:1px solid rgba(26,18,7,.08); position:sticky; top:0; z-index:3; }
.tt_stage_head strong { font-family:"Zen Old Mincho",serif; font-size:14px; line-height:1.2; }
.tt_stage_head span { font-family:"Noto Sans JP",sans-serif; font-size:10px; color:rgba(26,18,7,.48); }
.tt_stage_lane { position:absolute; inset:0 7px 0; }
.tt_event { position:absolute; left:0; right:0; display:flex; flex-direction:column; gap:2px; padding:7px 8px; box-sizing:border-box; border-radius:12px; color:#fff; text-decoration:none; background:linear-gradient(135deg,var(--event-color),color-mix(in srgb,var(--event-color),#111 24%)); box-shadow:0 7px 15px rgba(26,18,7,.18); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; z-index:2; }
.tt_event::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,255,255,.22),transparent); pointer-events:none; }
.tt_event:hover, .tt_event:focus { transform:translateY(-2px); box-shadow:0 10px 20px rgba(26,18,7,.25); outline:2px solid rgba(255,255,255,.7); outline-offset:2px; }
.tt_event_time { font-family:"Noto Sans JP",sans-serif; font-size:10px; opacity:.9; }
.tt_event strong { font-family:"Noto Sans JP",sans-serif; font-size:12px; line-height:1.25; position:relative; }
.tt_event_group, .tt_event_link { font-family:"Noto Sans JP",sans-serif; font-size:10px; opacity:.88; position:relative; }
.tt_event_link { margin-top:auto; align-self:flex-start; padding:1px 6px; border-radius:999px; background:rgba(255,255,255,.18); }
.tt_now_line { position:absolute; left:var(--time-col); right:0; height:2px; background:#df1f25; z-index:8; display:none; box-shadow:0 0 0 1px rgba(255,255,255,.7),0 0 12px rgba(223,31,37,.45); }
.tt_now_line.visible { display:block; }
.tt_now_line span { position:absolute; right:8px; top:-12px; padding:2px 7px; border-radius:999px; background:#df1f25; color:#fff; font-family:"Noto Sans JP",sans-serif; font-size:10px; }
.tt_error { padding:40px; font-family:"Noto Sans JP",sans-serif; text-align:center; }
@media (max-width:767px) { .tt_hero{padding:105px 18px 36px}.tt_stage_intro{grid-template-columns:1fr;padding:0 16px}.tt_day_tabs{margin-inline:16px}.tt_board_section{padding:0 12px}.tt_board_hint{text-align:left}.tt_board{--time-col:58px;min-width:820px}.tt_intro_card{padding:16px}.tt_stage_head strong{font-size:12px}.tt_event strong{font-size:11px} }
@media (max-width:400px) { .tt_notice{margin-inline:12px}.tt_day_tab{padding:10px 8px;font-size:13px}.tt_intro_card p{font-size:13px} }
