/* ===================== v20：賞の決まり方（?vt=v1〜v3）・本選の一日（?dy=d1〜d3） ===================== */

/* ---------- 賞の決まり方：共通 ---------- */
.vt{margin-top:64px;display:grid;grid-template-columns:minmax(0,1.25fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:clamp(16px,2.4vw,36px)}
.vt__k{font-size:clamp(18px,1.5vw,21px);font-weight:700;color:var(--v6-ink)}
.vt__d{margin-top:6px;font-size:14px;line-height:1.7;color:var(--v6-ink2)}
.vt__op{font-family:var(--f-en);font-weight:300;font-size:clamp(36px,3.4vw,52px);line-height:1;color:var(--v6-ink2)}
.vt__tubes{display:flex;align-items:flex-end;gap:8px;height:96px;margin-bottom:18px}
.vt__tubes i{position:relative;display:block;width:22px;height:96px;border:1.5px solid rgba(20,30,24,.28);border-top:0;border-radius:0 0 11px 11px;background:rgba(255,255,255,.85);overflow:hidden}
.vt__tubes i::after{content:"";position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(180deg,var(--a),var(--b));transition:height 1.4s cubic-bezier(.3,.7,.3,1);transition-delay:var(--dl,0s)}
.vt.in .vt__tubes i::after,html.static .vt__tubes i::after{height:82%}
.vt__a .vt__tubes i:nth-child(1){--a:#7ee0b4;--b:#14936b;--dl:.1s}.vt__a .vt__tubes i:nth-child(2){--a:#86dfe0;--b:#14929e;--dl:.2s}
.vt__a .vt__tubes i:nth-child(3){--a:#9cc2f2;--b:#2a72c4;--dl:.3s}.vt__a .vt__tubes i:nth-child(4){--a:#c4b2f2;--b:#6a4fc4;--dl:.4s}
.vt__b .vt__tubes i{--a:#ffc49a;--b:var(--c3);--dl:.6s;width:30px;border-radius:0 0 15px 15px}
.vt__flask{position:relative;width:96px;height:96px;margin-bottom:18px}
.vt__flask::before{content:"";position:absolute;left:36px;top:0;width:24px;height:34px;border:1.5px solid rgba(20,30,24,.28);border-bottom:0;background:rgba(255,255,255,.85)}
.vt__flask i{position:absolute;left:0;right:0;bottom:0;height:64px;clip-path:polygon(37.5% 0,62.5% 0,100% 100%,0 100%);background:rgba(20,30,24,.28)}
.vt__flask i::before{content:"";position:absolute;inset:1.5px 1.5px 1.5px;clip-path:polygon(37.5% 0,62.5% 0,100% 100%,0 100%);background:#fff}
.vt__flask i::after{content:"";position:absolute;left:2px;right:2px;bottom:2px;height:0;clip-path:polygon(25% 0,75% 0,100% 100%,0 100%);
  background:linear-gradient(100deg,#14936b,#14929e 30%,#2a72c4 55%,#6a4fc4 78%,var(--c3));transition:height 1.6s cubic-bezier(.3,.7,.3,1) 1.2s}
.vt.in .vt__flask i::after,html.static .vt__flask i::after{height:72%}

/* v1 試験管の式：地のまま、上に細い線。3つのまとまりを式で並べる */
html[data-vt="v1"] .vt{padding-top:40px;border-top:1px solid var(--v6-hair)}
html[data-vt="v1"] .vt__c .vt__k{font-size:clamp(20px,1.7vw,24px)}

@media (max-width:900px){
  .vt{grid-template-columns:1fr;row-gap:18px;margin-top:40px}
  .vt__op{font-size:32px;padding-left:4px}
  .vt__tubes,.vt__flask{height:72px;margin-bottom:12px}
  .vt__tubes i{height:72px}
  .vt__flask{width:72px}.vt__flask::before{left:27px;width:18px;height:26px}.vt__flask i{height:48px}
}
/* v1 見直し1：3つのまとまりを上端でそろえ、＋と＝は管の中ほどに */
.vt{align-items:start}
.vt__op{margin-top:26px}
@media (max-width:900px){.vt__op{margin-top:0}}

/* v2 2枚のカード＋結果：審査の c1b と同じ白いカード。結果だけ深緑のカードで、文字は虹色 */
html[data-vt="v2"] .vt{align-items:stretch;column-gap:14px}
html[data-vt="v2"] .vt>div{background:#fff;border-radius:14px;padding:28px 28px 30px;box-shadow:0 24px 48px -36px rgba(20,30,24,.35)}
html[data-vt="v2"] .vt__op{align-self:center;margin-top:0;font-size:32px}
html[data-vt="v2"] .vt__c{background:#03140b!important;color:#fff}
html[data-vt="v2"] .vt__c .vt__k{font-size:clamp(22px,1.9vw,28px);background:linear-gradient(100deg,#b5ffdc,#a8f0f2 40%,#c7dcff 70%,#efdcff);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-vt="v2"] .vt__c .vt__d{color:rgba(255,255,255,.78)}
html[data-vt="v2"] .vt__c .vt__flask::before{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}
html[data-vt="v2"] .vt__c .vt__flask i{background:rgba(255,255,255,.4)}
html[data-vt="v2"] .vt__c .vt__flask i::before{background:#03140b}
@media (max-width:900px){html[data-vt="v2"] .vt__op{justify-self:center}}

/* v3 深緑の帯に大きな式：帯を画面いっぱいに。式の記号を大きく、液の色が光る */
html[data-vt="v3"] .vt{position:relative;padding:56px 0 60px;margin-top:72px;color:#fff;isolation:isolate}
html[data-vt="v3"] .vt::before{content:"";position:absolute;inset:0 calc(50% - 50vw);background:#03140b;z-index:-1}
html[data-vt="v3"] .vt__k{color:#fff;font-size:clamp(20px,1.8vw,26px)}
html[data-vt="v3"] .vt__d{color:rgba(255,255,255,.72)}
html[data-vt="v3"] .vt__op{color:rgba(255,255,255,.55);font-size:clamp(48px,4.6vw,72px);margin-top:14px}
html[data-vt="v3"] .vt__tubes i{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35)}
html[data-vt="v3"] .vt__tubes i::after{box-shadow:0 0 18px var(--b)}
html[data-vt="v3"] .vt__flask::before{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35)}
html[data-vt="v3"] .vt__flask i{background:rgba(255,255,255,.35)}
html[data-vt="v3"] .vt__flask i::before{background:#03140b}
html[data-vt="v3"] .vt__c .vt__k{font-size:clamp(24px,2.2vw,32px);background:linear-gradient(100deg,#b5ffdc,#a8f0f2 40%,#c7dcff 70%,#efdcff);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-vt="v3"] .gauge{padding-bottom:0}
@media (max-width:900px){html[data-vt="v3"] .vt{padding:40px 0}}

/* ---------- 本選の一日：共通 ---------- */
.dy2{background:#fff}
.dy2__hd{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;padding-bottom:36px;border-bottom:1px solid var(--v6-hair)}
.dy2__date{margin-top:22px;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;line-height:1}
.dy2__date b{font-family:var(--f-en);font-weight:600;font-size:clamp(56px,6vw,92px);letter-spacing:-.03em;background:linear-gradient(100deg,#0c6b47 0%,#14936b 30%,#2a7fc4 62%,#7253c9 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dy2__date span{font-family:var(--f-en);font-weight:600;font-size:18px;letter-spacing:.12em;color:var(--v6-ink)}
.dy2__date em{font-style:normal;font-family:var(--f-en);font-weight:500;font-size:clamp(20px,1.8vw,26px);letter-spacing:.02em;color:var(--v6-ink)}
.dy2__place{margin-top:14px;font-size:15px;font-weight:700;color:var(--v6-ink2)}
.dy2__tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.dy2__tags li{font-size:13px;font-weight:700;letter-spacing:.04em;padding:8px 14px;border-radius:999px;background:#f3f4f1;color:var(--v6-ink)}
.dy2__tags li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--c3);margin-right:8px;transform:translateY(-2px)}
.dy2__stage{position:relative;overflow:hidden;border-radius:10px;background:#e9ebe8}
.dy2__stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);transition:opacity .8s ease,transform 4s ease}
.dy2__stage img.on{opacity:1;transform:none}
.dy2__now{position:absolute;left:24px;bottom:18px;z-index:2;margin:0}
.dy2__now b{font-family:var(--f-en);font-weight:600;font-size:clamp(56px,5.6vw,88px);line-height:1;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.dy2__stage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 55%,rgba(8,14,10,.6) 100%)}
.dy2__tt{list-style:none}
.dy2__tt li{--k:var(--v6-hair);--kc:var(--v6-ink2)}
.dy2__tt .hi{--k:#14936b;--kc:#0c6b47}
.dy2__tt .hi2{--k:var(--c3);--kc:var(--c3-ink,#b4541a)}
.dy2__tt .aw{--k:#6a4fc4;--kc:#5a40b4}
.dy2__tt b{display:block;font-size:clamp(18px,1.5vw,21px);font-weight:700;line-height:1.4;color:var(--v6-ink)}
.dy2__tt small{display:block;margin-top:4px;font-size:14px;line-height:1.7;color:var(--v6-ink2)}
.dy2__tt .tm{font-family:var(--f-en);font-weight:600;font-size:15px;letter-spacing:.02em;color:var(--kc)}

/* ---------- d1 写真と時刻が付いてくる時間割：左の写真は画面に留まり、時間帯に合わせて切り替わる ---------- */
html[data-dy="d1"] .dy2__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);column-gap:clamp(40px,6vw,96px);margin-top:48px;align-items:start}
html[data-dy="d1"] .dy2__stage{position:sticky;top:calc(var(--hd) + 32px);aspect-ratio:4/5;max-height:calc(100svh - var(--hd) - 64px)}
html[data-dy="d1"] .dy2__tt{position:relative;padding-left:32px}
html[data-dy="d1"] .dy2__tt::before{content:"";position:absolute;left:5px;top:12px;bottom:12px;width:1px;background:var(--v6-hair)}
html[data-dy="d1"] .dy2__tt li{position:relative;display:grid;grid-template-columns:64px 1fr;column-gap:20px;min-height:calc(56px + var(--m) * 1.5px);padding:12px 0 18px;opacity:.45;transition:opacity .4s}
html[data-dy="d1"] .dy2__tt li::before{content:"";position:absolute;left:-32px;top:15px;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--k);transition:background .3s,box-shadow .3s}
html[data-dy="d1"] .dy2__tt li::after{content:"";position:absolute;left:-28.5px;top:30px;width:4px;height:calc(100% - 30px);border-radius:2px;background:var(--k);opacity:.0;transition:opacity .4s}
html[data-dy="d1"] .dy2__tt li.past,html[data-dy="d1"] .dy2__tt li.on{opacity:1}
html[data-dy="d1"] .dy2__tt li.past::after,html[data-dy="d1"] .dy2__tt li.on::after{opacity:.9}
html[data-dy="d1"] .dy2__tt li.on::before{background:var(--k);box-shadow:0 0 0 5px color-mix(in srgb,var(--k) 22%,transparent)}
html[data-dy="d1"] .dy2__tt li.past::before{background:var(--k)}
html[data-dy="d1"] .dy2__tt .end::after{display:none}
html[data-dy="d1"] .dy2__tt .tm{padding-top:2px}
html.static .dy2__tt li{opacity:1!important}
@media (max-width:900px){
  .dy2__hd{grid-template-columns:1fr;gap:18px;padding-bottom:24px}
  html[data-dy="d1"] .dy2__body{grid-template-columns:1fr;margin-top:24px}
  html[data-dy="d1"] .dy2__stage{top:calc(var(--hd) + 8px);aspect-ratio:16/10;z-index:3;box-shadow:0 0 0 10px #fff}
  html[data-dy="d1"] .dy2__now b{font-size:48px}
  html[data-dy="d1"] .dy2__tt{margin-top:24px;padding-left:26px}
  html[data-dy="d1"] .dy2__tt li{grid-template-columns:52px 1fr;column-gap:12px;min-height:calc(52px + var(--m) * .9px)}
  html[data-dy="d1"] .dy2__tt li::before{left:-26px}html[data-dy="d1"] .dy2__tt li::after{left:-22.5px}
}

/* ---------- d2 1日を1本の帯に：11:30〜17:00 を横一本の帯で。区間の長さは時間どおり。下に時間割を3列で ---------- */
html[data-dy="d2"] .dy2__stage{display:none}
html[data-dy="d2"] .dy2__body{margin-top:56px}
html[data-dy="d2"] .dy2__tt{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 40px;padding-top:120px;counter-reset:dy}
/* 帯：各項目の ::before を帯の上の位置（--s/330）に置く */
html[data-dy="d2"] .dy2__tt li{counter-increment:dy;display:grid;grid-template-columns:56px 1fr;column-gap:14px;padding-top:14px;border-top:2px solid var(--k)}
html[data-dy="d2"] .dy2__tt li::before{content:"";position:absolute;top:28px;height:44px;left:calc(var(--s) / 330 * 100%);width:calc(var(--m) / 330 * 100% - 3px);border-radius:6px;background:var(--k);
  transform-origin:0 50%;transform:scaleX(0);transition:transform .7s var(--ease);transition-delay:calc(var(--s) / 330 * 1.6s)}
html[data-dy="d2"] .dy2.in .dy2__tt li::before,html.static .dy2__tt li::before{transform:none}
html[data-dy="d2"] .dy2__tt .lo,html[data-dy="d2"] .dy2__tt .br{--k:#d9ddd8}
html[data-dy="d2"] .dy2__tt .end{display:none}
/* 帯の上の目盛り（時刻） */
html[data-dy="d2"] .dy2__tt li::after{content:attr(data-t);position:absolute;top:0;left:calc(var(--s) / 330 * 100%);font-family:var(--f-en);font-size:12px;font-weight:600;color:var(--v6-ink2)}
html[data-dy="d2"] .dy2__tt li.hi,html[data-dy="d2"] .dy2__tt li.hi2,html[data-dy="d2"] .dy2__tt li.aw{}
@media (max-width:900px){
  html[data-dy="d2"] .dy2__tt{grid-template-columns:1fr;gap:14px;padding-top:96px}
  html[data-dy="d2"] .dy2__tt li::before{height:34px}
}
/* d2 見直し1：短い区間の時刻は重なるので外す／右端に終了 17:00 */
html[data-dy="d2"] .dy2__tt .br::after{content:none}
html[data-dy="d2"] .dy2__tt::after{content:"17:00";position:absolute;top:0;right:0;font-family:var(--f-en);font-size:12px;font-weight:600;color:var(--v6-ink2)}
html[data-dy="d2"] .dy2__tt li::before{top:26px;height:48px}

/* ---------- d3 3つの山場＋時間割：前回の写真3枚で「発表・ブース巡回・表彰」を大きく。その下に時間割を2列で ---------- */
.dy2__cap{display:none}
html[data-dy="d3"] .dy2__body{margin-top:48px}
html[data-dy="d3"] .dy2__stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:none;border-radius:0;overflow:visible}
html[data-dy="d3"] .dy2__stage::after,html[data-dy="d3"] .dy2__now{display:none}
html[data-dy="d3"] .dy2__stage img{display:none;position:relative;inset:auto;grid-row:1;aspect-ratio:4/3;height:auto;border-radius:10px;opacity:1;transform:none;transition:transform 1.2s var(--ease)}
html[data-dy="d3"] .dy2__stage img:nth-child(3),html[data-dy="d3"] .dy2__stage img:nth-child(6),html[data-dy="d3"] .dy2__stage img:nth-child(8){display:block}
html[data-dy="d3"] .dy2__cap{display:contents}
html[data-dy="d3"] .dy2__cap span{grid-row:2;display:block;padding-top:14px;font-size:clamp(18px,1.5vw,21px);font-weight:700;color:var(--v6-ink)}
html[data-dy="d3"] .dy2__cap b{display:block;margin-bottom:4px;font-family:var(--f-en);font-weight:600;font-size:14px;letter-spacing:.02em}
html[data-dy="d3"] .dy2__cap span:nth-child(1) b{color:#0c6b47}html[data-dy="d3"] .dy2__cap span:nth-child(2) b{color:var(--c3-ink,#b4541a)}html[data-dy="d3"] .dy2__cap span:nth-child(3) b{color:#5a40b4}
html[data-dy="d3"] .dy2__stage img,html[data-dy="d3"] .dy2__cap span{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
html[data-dy="d3"] .dy2.in .dy2__stage img,html[data-dy="d3"] .dy2.in .dy2__cap span,html.static .dy2__cap span,html.static[data-dy="d3"] .dy2__stage img{opacity:1;transform:none}
html[data-dy="d3"] .dy2__stage img:nth-child(6),html[data-dy="d3"] .dy2__cap span:nth-child(2){transition-delay:.15s}
html[data-dy="d3"] .dy2__stage img:nth-child(8),html[data-dy="d3"] .dy2__cap span:nth-child(3){transition-delay:.3s}
html[data-dy="d3"] .dy2__tt{margin-top:56px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(5,auto);column-gap:56px;border-top:2px solid var(--v6-ink)}
html[data-dy="d3"] .dy2__tt li{display:grid;grid-template-columns:64px 1fr;column-gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--v6-hair)}
html[data-dy="d3"] .dy2__tt li b{font-size:16px}
html[data-dy="d3"] .dy2__tt li small{font-size:13px}
html[data-dy="d3"] .dy2__tt .hi b,html[data-dy="d3"] .dy2__tt .hi2 b,html[data-dy="d3"] .dy2__tt .aw b{color:var(--kc)}
@media (max-width:900px){
  html[data-dy="d3"] .dy2__stage{grid-template-columns:1fr;gap:0}
  html[data-dy="d3"] .dy2__stage img,html[data-dy="d3"] .dy2__cap span{grid-row:auto}
  html[data-dy="d3"] .dy2__stage img:nth-child(3){order:1}html[data-dy="d3"] .dy2__cap span:nth-child(1){order:2}
  html[data-dy="d3"] .dy2__stage img:nth-child(6){order:3;margin-top:24px}html[data-dy="d3"] .dy2__cap span:nth-child(2){order:4}
  html[data-dy="d3"] .dy2__stage img:nth-child(8){order:5;margin-top:24px}html[data-dy="d3"] .dy2__cap span:nth-child(3){order:6}
  html[data-dy="d3"] .dy2__tt{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;margin-top:36px}
}
@media (max-width:900px){html[data-dy="d2"] .dy2__tt li:not(:first-child)::after{content:none}html[data-dy="d2"] .dy2__tt{padding-top:84px}html[data-dy="d2"] .dy2__tt li::before{top:24px}}
html[data-vt="v3"] .vt::before{content:none}html[data-vt="v3"] .vt{background:#03140b;box-shadow:0 0 0 100vmax #03140b;clip-path:inset(0 -100vmax)} /* v3 見直し1：帯は要素の背景＋影で広げる（はみ出しなし） */
