
.ex-main {
  --ex-night: #0d0e11;
  --ex-wall: #e8e1d1;
  --ex-wall-edge: #dcd3bf;
  --ex-ink: #1d1c1a;
  --ex-ink-sub: #4b463d;
  --ex-rust: #8c3a17;
  --ex-base: #5e4c3a;
  --ex-tent: #e9b10c;
  --ex-tenant: #a8283f;
  --ex-light: #fff4d8;
  position: relative;
  background:
    radial-gradient(circle at 25% 30%, rgba(255, 244, 216, .025) 0 1px, transparent 1.5px) 0 0 / 16px 16px,
    repeating-linear-gradient(90deg, rgba(255, 244, 216, .035) 0 2px, transparent 2px 8px, rgba(0, 0, 0, .18) 8px 9px, transparent 9px 16px),
    linear-gradient(180deg, #1b1a18, #161513 50%, #121210);
}

.ex-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ex-main figure { margin: 0; }
.ex-main p, .ex-main li, .ex-main h2 { overflow-wrap: anywhere; }

.ex-kn-id { font-family: var(--k-font-en); font-weight: 800; font-size: 17px; letter-spacing: .08em; fill: #1d1c1a; text-anchor: middle; }
.ex-kn-sub { font-family: var(--k-font-head); font-weight: 900; font-size: 11px; letter-spacing: .1em; fill: #1d1c1a; text-anchor: middle; }
.ex-mk-n { font-family: var(--k-font-head); font-weight: 900; font-size: 30px; fill: #1c1d20; text-anchor: middle; }
.ex-mk-n.is-l { font-size: 36px; }
.ex-mk-n.is-w { fill: #fff; }
.ex-mk-n.is-y { font-family: var(--k-font-en); font-weight: 800; fill: var(--k-accent); }
.ex-wk-s { font-family: var(--k-font-en); font-weight: 800; font-size: 11px; letter-spacing: .12em; fill: var(--k-accent); text-anchor: middle; }

.ex-hero { position: relative; background: #0a0b0d; overflow: hidden; }
.ex-hero-scene { position: relative; }
.ex-room { display: block; width: 100%; height: 100%; }
.ex-night { fill: #06070a; opacity: .8; }
.ex-beam { mix-blend-mode: screen; filter: blur(5px); }
.ex-pool, .ex-moon { mix-blend-mode: screen; }
.ex-say-box { fill: #f3ecd9; stroke: #1c1d20; stroke-width: 3; }
.ex-say-tab { font-family: var(--k-font-head); font-weight: 900; font-size: 14px; letter-spacing: .08em; fill: var(--ex-tent); }
.ex-say-h { font-family: var(--k-font-head); font-weight: 900; font-size: 18px; fill: #1d1c1a; }
.ex-say-bill { font-family: var(--k-font-body); font-weight: 700; font-size: 16px; fill: #4b463d; }
.ex-say-chip { font-family: var(--k-font-head); font-weight: 900; font-size: 15px; fill: #1c1d20; text-anchor: middle; }
.ex-say-why { font-family: var(--k-font-head); font-weight: 900; font-size: 16px; fill: #1d1c1a; }
.ex-say-it[data-at="2"] { display: none; }
.ex-say[data-say="2"] .ex-say-it[data-at="1"] { display: none; }
.ex-say[data-say="2"] .ex-say-it[data-at="2"] { display: inline; }
.ex-anim .ex-say:not([data-say]) { opacity: 0; }
.ex-anim .ex-say { transition: opacity .2s var(--ease-out); }
@media (max-width: 699px) { .ex-say { display: none; } }
.ex-say { transform-box: view-box; transform-origin: 1263px 446px; }
@media (min-width: 700px) and (max-width: 1023px) { .ex-say { transform: scale(1.2); } }
@media (min-width: 1024px) and (max-width: 1279px) { .ex-say { transform: scale(1.1); } }

.ex-hero-text { position: relative; z-index: 2; padding: var(--k-sp-5) var(--k-gutter) var(--k-sp-4); max-width: 640px; }
.ex-case {
  display: flex; align-items: center; gap: var(--k-sp-2); margin-bottom: var(--k-sp-2);
  font-family: var(--k-font-en); font-weight: 800; font-size: 15px; letter-spacing: .14em; color: var(--k-ink-mid);
}
.ex-mark { width: 40px; height: 40px; flex: none; background: #fff; border-radius: 9px; padding: 3px; box-shadow: 0 0 0 2px #1c1d20, 0 6px 14px rgba(0, 0, 0, .6); }
.ex-title {
  position: relative; display: flex; align-items: flex-end; gap: clamp(12px, 1.6vw, 22px);
  font-weight: 900; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.14; letter-spacing: .03em; color: #f6f1e6;
  font-feature-settings: "palt";
}
.ex-title::before {
  content: ""; position: absolute; left: -40px; top: -30px; width: 520px; max-width: 110%; height: 180%; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse 50% 45% at 42% 48%, rgba(255, 236, 190, .16), rgba(255, 236, 190, 0) 70%);
}
.ex-tight { letter-spacing: -.16em; margin-right: .13em; }
.ex-title-t { text-shadow: 0 2px 0 #000, 0 0 30px rgba(0, 0, 0, .85); }
.ex-title-t::after {
  content: ""; display: block; width: 3.2em; height: 6px; margin-top: 12px;
  background: repeating-linear-gradient(-45deg, var(--ex-tent) 0 10px, #1c1d20 10px 20px);
}
.ex-title-tent { flex: none; width: clamp(64px, 7vw, 96px); height: auto; overflow: visible; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .7)); margin-bottom: 4px; }
.ex-title-tent .ex-mk-n { font-size: 27px; }
.ex-tagline {
  margin-top: var(--k-sp-3);
  font-weight: 700; font-size: clamp(19px, 1.9vw, 24px); line-height: 1.5; color: var(--ex-light);
  text-shadow: 0 0 18px rgba(255, 220, 150, .25);
}
.ex-lead { margin-top: var(--k-sp-2); font-size: var(--k-fs-lead); line-height: 1.9; color: var(--k-ink-mid); text-shadow: 0 1px 8px #000; }
.ex-terms { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; margin-top: var(--k-sp-2); }
.ex-terms li {
  position: relative; padding: 0 0 0 26px; font-weight: 700; font-size: 15px; line-height: 1.6; color: var(--k-ink);
  text-shadow: 0 1px 6px #000;
}
.ex-terms li::before {
  content: ""; position: absolute; left: 2px; top: .3em; width: 16px; height: 14px;
  background: var(--ex-tent); clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%);
}

.ex-key { margin-top: var(--k-sp-3); padding-top: 12px; border-top: 1px solid rgba(233, 177, 12, .4); text-shadow: 0 1px 6px #000; }
.ex-key-h { font-weight: 900; font-size: 15px; letter-spacing: .06em; color: var(--ex-tent); }
.ex-key-list { display: grid; gap: 10px; margin-top: 8px; }
.ex-key-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; }
.ex-key-no {
  position: relative; display: block; width: 34px; height: 32px; margin-top: 2px;
  font-family: var(--k-font-head); font-weight: 900; font-size: 19px; line-height: 38px; text-align: center; color: #1c1d20; text-shadow: none;
  background: linear-gradient(180deg, #1c1d20 0 6px, var(--ex-tent) 6px);
  clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%);
}
.ex-key-list p { font-size: 15px; line-height: 1.65; color: var(--k-ink-mid); }
.ex-key-list b { display: block; font-weight: 900; font-size: 16px; color: var(--k-ink); }
.ex-key-narrow, .ex-key-cut { display: none; }
@media (max-width: 699px) {
  .ex-key-wide, .ex-key-no { display: none; }
  .ex-key-narrow { display: inline; }
  .ex-key-list li { grid-template-columns: 76px minmax(0, 1fr); }
  .ex-key-cut {
    display: block; width: 76px; height: 57px; margin-top: 4px; overflow: hidden;
    border-radius: 4px; box-shadow: 0 0 0 2px var(--ex-tent), 0 6px 14px rgba(0, 0, 0, .6);
  }
}

@media (max-width: 699px) {
  .ex-hero-scene { position: absolute; inset: 0; z-index: 0; }
  .ex-hero-scene::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(6, 7, 10, 1) 0%, rgba(6, 7, 10, .82) 45%, rgba(6, 7, 10, .74) 100%);
  }
  .ex-room { position: absolute; left: 0; right: 0; top: 0; height: auto; aspect-ratio: 880 / 860; }
}
@media (min-width: 700px) and (max-width: 1279px) { .ex-hero-scene { aspect-ratio: 1100 / 760; width: 100%; } }
@media (min-width: 1280px) {
  .ex-hero { height: min(calc(100vw * 860 / 1440), 940px); }
  .ex-hero-scene { position: absolute; inset: 0; aspect-ratio: auto; }
  .ex-hero-text {
    position: absolute; left: max(var(--k-gutter), calc(50% - 560px)); top: 0;
    width: min(560px, calc(50% - 60px)); padding: 44px 0 0;
  }
}

.ex-walk { position: relative; padding: 0 0 var(--k-sp-5); display: grid; gap: 0; }
.ex-wall {
  --ex-floor: 64px;
  --ex-vg: 62% 92%;
  --ex-vg-f: 62% 160%;
  position: relative; width: 100%;
  padding: clamp(36px, 4vw, 56px) max(var(--k-gutter), calc((100% - var(--k-max)) / 2 + clamp(20px, 4.4vw, 64px))) calc(clamp(36px, 4.4vw, 56px) + var(--ex-floor));
  color: var(--ex-ink);
  background:
    radial-gradient(ellipse var(--ex-vg) at 50% 44%, rgba(14, 12, 10, 0) 62%, rgba(14, 12, 10, .86) 100%),
    radial-gradient(ellipse 50% 45% at 50% 40%, rgba(255, 250, 235, .55), rgba(255, 250, 235, 0) 100%),
    radial-gradient(circle at 25% 30%, rgba(120, 100, 70, .12) 0 1px, transparent 1.5px) 0 0 / 16px 16px,
    repeating-linear-gradient(90deg, rgba(120, 100, 70, .08) 0 2px, transparent 2px 16px),
    linear-gradient(180deg, #e6dfcd, var(--ex-wall) 50%, var(--ex-wall-edge));
  border-top: 12px solid #c4b99f;
  box-shadow: 0 3px 0 #8f836a inset, 0 7px 10px -4px rgba(60, 45, 30, .45) inset;
}
.ex-wall::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--ex-floor); pointer-events: none;
  background:
    radial-gradient(ellipse var(--ex-vg-f) at 50% 0%, rgba(8, 7, 6, 0) 55%, rgba(8, 7, 6, .85) 100%),
    linear-gradient(90deg, transparent 0 18%, rgba(30, 22, 16, .7) 18% 23%, transparent 23% 71%, rgba(30, 22, 16, .6) 71% 74%, transparent 74%) 0 9px / 100% 3px no-repeat,
    linear-gradient(180deg, #7d6750 0 3px, var(--ex-base) 3px 15px, #3d3128 15px 18px, rgba(0, 0, 0, .5) 18px 24px, transparent 24px),
    repeating-linear-gradient(90deg, transparent 0 171px, rgba(30, 20, 12, .8) 171px 173px) 0 18px / 100% 23px repeat-x,
    repeating-linear-gradient(90deg, transparent 0 86px, rgba(30, 20, 12, .8) 86px 88px, transparent 88px 171px) 0 41px / 100% 23px repeat-x,
    repeating-linear-gradient(180deg, transparent 0 21px, rgba(30, 20, 12, .85) 21px 23px),
    linear-gradient(180deg, #3a2a1c, #4c3825 60%, #58412b);
}
.ex-side { display: none; }
@media (min-width: 1420px) {
  .ex-side {
    display: block; position: absolute; z-index: 2; left: max(8px, calc((100% - var(--k-max)) / 2 - 142px)); top: 40px; bottom: 30px; width: 190px; pointer-events: none;
  }
  .ex-side::before {
    content: ""; position: absolute; left: 0; right: 0; top: 0; bottom: 440px;
    background: url("exit-checker/wall-marks.svg") 0 0 / 190px auto repeat-y;
  }
  @supports (height: calc(round(down, 100%, 650px) + mod(100%, 650px))) {
    .ex-side::before {
      --h: calc(100% - 440px);
      bottom: auto; height: calc(round(down, var(--h), 650px) + min(round(down, mod(var(--h), 650px), 200px), 200px));
    }
  }
  .ex-wall-bot { position: absolute; left: 0; bottom: 0; display: block; width: 190px; height: auto; overflow: visible; }
}
.ex-wall::after {
  content: ""; position: absolute; inset: -8px 0 0; z-index: 3; pointer-events: none;
  background: var(--ex-night); opacity: 0;
}
.ex-anim .ex-wall:not(.is-lit)::after { opacity: .94; }
.ex-anim .ex-wall.is-lit::after { transition: opacity .28s var(--ease-out); }

.ex-eyebrow { font-family: var(--k-font-en); font-weight: 800; font-size: 15px; letter-spacing: .2em; color: var(--ex-rust); }
.ex-h2 { margin-top: 4px; font-weight: 900; font-size: var(--k-fs-h2); line-height: 1.4; letter-spacing: .04em; color: var(--ex-ink); }
.ex-sub { margin-top: 4px; font-size: 15px; color: var(--ex-ink-sub); }
.ex-sec > p:not(.ex-eyebrow):not(.ex-sub), .ex-ai-text > p:not(.ex-eyebrow):not(.ex-sub) { margin-top: var(--k-sp-2); }
.ex-big { font-weight: 700; font-size: var(--k-fs-lead); line-height: 1.85; }
.ex-h2 + .ex-big, .ex-sub + .ex-big { margin-top: var(--k-sp-3) !important; }
.ex-wall b { font-weight: 900; }

.ex-wall-intro, .ex-wall-last { display: grid; gap: var(--k-sp-5); }
@media (min-width: 900px) {
  .ex-wall-intro { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
  .ex-wall-last { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ex-wall-intro > .ex-sec + .ex-sec, .ex-wall-last > .ex-sec + .ex-sec { padding-left: var(--k-sp-5); border-left: 2px solid rgba(90, 70, 45, .25); }
}
.ex-feats { display: grid; gap: var(--k-sp-2); margin-top: var(--k-sp-3); }
.ex-feats li {
  position: relative; padding: 10px 0 10px 40px; font-weight: 700; line-height: 1.7;
  border-bottom: 1px solid rgba(90, 70, 45, .28);
}
.ex-feats li::before {
  content: ""; position: absolute; left: 4px; top: 14px; width: 22px; height: 20px;
  background: var(--ex-tent); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .25);
  clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%);
}

.ex-sample-head { max-width: 860px; }
.ex-sample-case { margin-top: var(--k-sp-2); font-size: var(--k-fs-lead); line-height: 1.85; }
.ex-sample-how { margin-top: var(--k-sp-1); font-size: var(--k-fs-body); line-height: 1.85; color: var(--ex-ink); }
.ex-evs-head { display: none; }
@media (min-width: 900px) {
  .ex-evs-head {
    display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.6fr); gap: var(--k-sp-3);
    margin-top: var(--k-sp-4); padding: 10px var(--k-sp-3); background: #1c1d20; color: var(--k-ink); border-radius: var(--k-rs) var(--k-rs) 0 0;
    font-weight: 900; font-size: 15px; letter-spacing: .06em;
  }
  .ex-evs-head + .ex-evs { margin-top: 0; }
  .ex-evs-head + .ex-evs .ex-ev-k { display: none; }
}
.ex-plan { margin-top: var(--k-sp-4); }
.ex-plan-svg { display: block; width: 100%; height: auto; border: 3px solid #1c1d20; border-radius: var(--k-rs); background: #1c1d20; }
.ex-plan figcaption { margin-top: var(--k-sp-1); font-size: 15px; color: var(--ex-ink-sub); }
.ex-plan-night { fill: #07080a; opacity: 0; pointer-events: none; }
.ex-anim .ex-plan-night { opacity: .72; }
.ex-anim .ex-plan.is-done .ex-plan-night { opacity: 0; transition: opacity .6s var(--ease-out); }
.ex-plan-beam { mix-blend-mode: screen; }
.ex-anim .ex-plan:not(.is-done) .ex-ring:not(.is-now) { opacity: 0; }
.ex-anim .ex-ring { transition: opacity .2s var(--ease-out); }
.ex-plan-ghost { opacity: 0; pointer-events: none; }
.ex-anim .ex-plan:not(.is-done) .ex-plan-ghost { opacity: .24; }

.ex-mk-in { transform-box: fill-box; transform-origin: 50% 100%; }
.ex-anim .ex-mk:not(.is-up) .ex-mk-in { transform: scaleY(.35); opacity: 0; }
.ex-anim .ex-mk.is-up .ex-mk-in { transition: transform .26s var(--ease-out), opacity .2s var(--ease-out); }

.ex-evs { display: grid; gap: var(--k-sp-1); margin-top: var(--k-sp-4); }
.ex-ev.is-tenant { border-left-color: var(--ex-tenant); }
.is-tenant .ex-ev-no::before { background: linear-gradient(180deg, #1c1d20 0 10px, #b8324a 10px); }
.is-tenant .ex-ev-no span { color: #fff; }
.ex-ev {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.6fr); gap: var(--k-sp-3);
  align-items: start; padding: var(--k-sp-3); background: #f6f2e8; border: 1px solid #b9ad92; border-left: 6px solid var(--ex-tent); border-radius: var(--k-rs);
  box-shadow: 0 10px 20px -10px rgba(40, 30, 20, .6);
}
.ex-ev-no { position: relative; width: 56px; height: 52px; }
.ex-ev-no::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1d20 0 10px, var(--ex-tent) 10px);
  clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%);
}
.ex-ev-no span {
  position: absolute; left: 0; right: 0; bottom: 4px; text-align: center;
  font-family: var(--k-font-head); font-weight: 900; font-size: 28px; line-height: 1; color: #1c1d20;
}
.ex-ev-k { font-size: 15px; font-weight: 700; letter-spacing: .1em; color: var(--ex-ink-sub); }
.ex-ev-item { font-weight: 900; font-size: var(--k-fs-h3); line-height: 1.45; }
.ex-ev-amt { margin-top: 2px; font-family: var(--k-font-body); font-weight: 900; font-size: 24px; line-height: 1.3; letter-spacing: .02em; }
.ex-ev-amt.is-none { font-size: var(--k-fs-body); font-weight: 700; color: var(--ex-ink-sub); }
.ex-ev-where p:not(.ex-ev-k) { font-weight: 700; line-height: 1.6; }
.ex-verdict {
  display: inline-block; margin-top: 2px; padding: 2px 12px;
  font-weight: 900; font-size: var(--k-fs-body); color: #1c1d20; background: var(--ex-tent); border-radius: var(--k-rs);
}
.is-tenant .ex-verdict { color: #fff; background: var(--ex-tenant); }
.ex-ev-why { margin-top: var(--k-sp-1); font-size: var(--k-fs-body); line-height: 1.75; }
.ex-ev-pic { display: none; }
.ex-pic-beam { fill: #fff3d0; opacity: .3; mix-blend-mode: screen; }
.ex-anim .ex-evs:not(.is-done) .ex-ev:not(.is-up) .ex-ev-no { opacity: .35; }
.ex-anim .ex-ev-no { transition: opacity .2s var(--ease-out); }

.ex-sum {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--k-sp-4); margin-top: var(--k-sp-4);
  padding: var(--k-sp-3) var(--k-sp-4); background: #1c1d20; color: var(--k-ink); border-radius: var(--k-rs);
}
.ex-sum-row { display: grid; gap: 0; align-content: end; }
.ex-sum-k { font-weight: 700; font-size: 15px; line-height: 1.6; color: var(--k-ink-mid); }
.ex-sum-v { font-family: var(--k-font-body); font-weight: 900; font-size: clamp(34px, 4.4vw, 52px); line-height: 1.15; letter-spacing: .02em; }
.ex-sum-v small { font-size: .42em; margin-left: 4px; }
.ex-sum-row.is-hot .ex-sum-v { color: var(--ex-tent); }
.ex-sum-all { display: inline-block; margin-left: 10px; padding: 3px 10px; font-style: normal; font-size: .4em; vertical-align: .5em; color: #1c1d20; background: var(--ex-tent); border-radius: var(--k-rs); }
.ex-sum-note { grid-column: 1 / -1; margin-top: var(--k-sp-2); padding-top: var(--k-sp-2); border-top: 1px solid var(--k-line-strong); font-size: var(--k-fs-body); color: var(--k-ink-mid); }
.ex-sum-note b { color: var(--k-ink); }
.ex-quote { margin: var(--k-sp-3) 0 0; padding: var(--k-sp-2) var(--k-sp-3); border-left: 5px solid var(--ex-tent); background: rgba(255, 255, 255, .55); }
.ex-quote-k { font-weight: 900; font-size: 15px; color: var(--ex-ink-sub); }
.ex-quote p:not(.ex-quote-k) { margin-top: 4px; line-height: 1.85; }
.ex-quote p { word-break: normal; line-break: strict; }
.ex-fine { margin-top: var(--k-sp-2); font-size: 15px; color: var(--ex-ink-sub); }

.ex-shots { display: grid; gap: var(--k-sp-4); margin-top: var(--k-sp-4); }
@media (min-width: 900px) {
  .ex-shots { grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); grid-template-rows: auto auto; }
  .ex-shot-main { grid-row: span 2; }
}
.ex-shots figure { padding: 10px 10px 0; }
.ex-shot-solo { padding: 0 10px 10px; }
.ex-shots figure, .ex-shot-solo { background: #fbf9f3; border: 1px solid #b9ad92; box-shadow: 0 10px 22px -8px rgba(40, 30, 20, .55); }
.ex-shots li:nth-child(2) figure { transform: rotate(.6deg); }
.ex-shots li:nth-child(3) figure { transform: rotate(-.5deg); }
.ex-shots figcaption, .ex-shot-solo figcaption { padding: 8px 2px 10px; font-size: 15px; color: var(--ex-ink-sub); }
.ex-shot-solo figcaption { padding: 10px 2px 8px; }
.ex-shots figcaption b, .ex-shot-solo figcaption b {
  margin-right: 8px; padding: 1px 8px; font-weight: 900; color: #1c1d20; background: var(--ex-tent); border-radius: var(--k-rs);
}

.ex-wall-ai { display: grid; gap: var(--k-sp-5); }
@media (min-width: 1000px) { .ex-wall-ai { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; } }
.ex-ai-side { display: flex; flex-direction: column; gap: var(--k-sp-4); align-self: stretch; }
.ex-tech { padding-top: var(--k-sp-2); border-top: 1px dashed rgba(90, 70, 45, .45); font-size: 15px; line-height: 1.75; color: var(--ex-ink-sub); }
.ex-ai-bot {
  position: relative; z-index: 2; display: block; width: 100%; max-width: 460px; align-self: flex-end; height: auto;
  margin: calc(-1 * var(--k-sp-4)) 0 calc(-1 * (clamp(36px, 4.4vw, 56px) + 36px)); overflow: visible; pointer-events: none;
}
@media (max-width: 639px) { .ex-ai-bot { max-width: 300px; align-self: flex-start; } }
.ex-ai-side .ex-shot-solo { margin-top: auto; }
.ex-ai-beam { mix-blend-mode: screen; filter: blur(3px); }
.ex-match { position: relative; padding: var(--k-sp-3); background: #1c1d20; color: var(--k-ink); border-radius: var(--k-rs); }
.ex-match-k { font-weight: 700; font-size: 15px; color: var(--k-ink-mid); }
.ex-match-q { margin-top: 4px; font-weight: 900; font-size: var(--k-fs-lead); line-height: 1.7; }
.ex-match-row {
  display: flex; justify-content: space-between; align-items: center; gap: var(--k-sp-2); margin-top: var(--k-sp-2);
  padding: 8px 12px; font-weight: 700; border-radius: var(--k-rs);
}
.ex-match-row b { font-weight: 900; font-size: var(--k-fs-lead); }
.ex-match-row.is-miss { background: #2b2d31; color: var(--k-ink-mid); }
.ex-match-row.is-miss b { color: var(--k-ink); text-decoration: line-through; text-decoration-thickness: 2px; }
.ex-match-row.is-hit { background: radial-gradient(ellipse 80% 140% at 85% 50%, #fff4d8, #f1d98f); color: #1c1d20; }
.ex-match-note { margin-top: var(--k-sp-2); font-size: 15px; color: var(--k-ink-mid); }

.ex-link { margin-top: var(--k-sp-3) !important; }
.ex-link a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 var(--k-sp-3);
  font-weight: 900; text-decoration: none; color: var(--k-ink); background: #1c1d20; border-radius: var(--k-rs);
}
.ex-week { display: grid; gap: 0; margin-top: var(--k-sp-3); border-top: 2px solid #1c1d20; }
.ex-week li { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 0 var(--k-sp-2); padding: 10px 0; border-bottom: 1px solid rgba(90, 70, 45, .3); }
.ex-day { grid-row: span 2; font-family: var(--k-font-en); font-weight: 800; font-size: var(--k-fs-sm); letter-spacing: .12em; color: var(--ex-rust); padding-top: 3px; }
.ex-week b { font-weight: 900; }
.ex-week li > span:last-child { font-size: var(--k-fs-body); color: var(--ex-ink-sub); }
.ex-note { margin-top: var(--k-sp-2) !important; font-weight: 700; }
@media (min-width: 1200px) {
  .ex-week li { grid-template-columns: 104px 8.5em minmax(0, 1fr); align-items: baseline; }
  .ex-day { grid-row: auto; }
}

.ex-exit {
  position: relative; width: 100%; max-width: var(--k-max); margin-inline: auto; padding: var(--k-sp-6) var(--k-gutter) 0;
  display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: var(--k-sp-2);
}
.ex-door {
  position: relative; z-index: 1; grid-column: 1 / -1; width: min(100%, 620px); justify-self: center;
  padding: 14px 14px 0; background: linear-gradient(90deg, #3d3128, #5e4c3a 50%, #3d3128); border-radius: 3px 3px 0 0;
  box-shadow: 0 0 0 2px #1c1d20, 0 30px 80px rgba(255, 236, 190, .12);
}
.ex-cta {
  padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 48px) clamp(34px, 4vw, 52px);
  color: var(--ex-ink);
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, #fffaf0, #f3ead3 60%, #e6d9b8);
}
.ex-cta h2 { color: var(--ex-ink); }
.ex-cta p:not(.ex-eyebrow) { line-height: 1.85; }
.ex-cta .btn { font-size: var(--k-fs-body); }
.ex-exit { row-gap: 0; align-items: end; }
.ex-exit-bot { display: block; width: 80px; height: auto; margin: 0 0 6px; position: relative; z-index: 1; }
.ex-exit .ex-closed { min-height: 172px; flex-direction: column; align-items: flex-start; justify-content: center; }
.ex-door-leaf {
  position: absolute; right: -58px; top: 0; bottom: 0; width: 64px; z-index: -1;
  background: linear-gradient(90deg, #5e4c3a, #3d3128); clip-path: polygon(0 0, 100% 8%, 100% 92%, 0 100%);
}
.ex-door-knob { position: absolute; left: 12px; top: 52%; width: 9px; height: 22px; border-radius: 3px; background: linear-gradient(180deg, #d9d2c0, #8d887c); box-shadow: 0 2px 3px rgba(0, 0, 0, .5); }
.ex-door::after {
  content: ""; position: absolute; left: -40px; right: -40px; top: 100%; height: 70px; pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 240, 200, .28), rgba(255, 240, 200, 0));
  clip-path: polygon(8% 0, 92% 0, 100% 100%, 0 100%);
}
.ex-closed {
  display: flex; gap: 4px var(--k-sp-2); flex-wrap: wrap; align-self: stretch; align-items: center;
  font-family: var(--k-font-en); font-weight: 800; font-size: 15px; letter-spacing: .14em; color: var(--k-ink-mid);
  position: relative; z-index: 0; padding: 30px 0 22px; text-shadow: 0 1px 4px #000;
}
.ex-walk { overflow-x: clip; }
.ex-closed::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -100vw; right: -100vw;
  background:
    linear-gradient(180deg, #7d6750 0 3px, var(--ex-base) 3px 15px, #3d3128 15px 18px, rgba(0, 0, 0, .5) 18px 24px, transparent 24px),
    repeating-linear-gradient(90deg, transparent 0 171px, rgba(30, 20, 12, .8) 171px 173px) 0 18px / 100% 23px repeat-x,
    repeating-linear-gradient(180deg, transparent 0 21px, rgba(30, 20, 12, .85) 21px 23px),
    linear-gradient(180deg, #3a2a1c, #4c3825 60%, #58412b);
}
.ex-closed span + span { font-family: var(--k-font-head); font-weight: 700; letter-spacing: .06em; }
@media (min-width: 900px) {
  .ex-exit { grid-template-columns: 200px minmax(0, 620px) 200px; justify-content: center; align-items: end; }
  .ex-door { grid-column: 2; }
  .ex-exit-bot { grid-column: 1; grid-row: 1; width: 150px; justify-self: end; margin: 0 -8px 0 0; }
  .ex-exit .ex-closed { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: center; min-height: 0; }
}

.ex-nav { max-width: var(--k-max); margin: 0 auto; padding: 0 var(--k-gutter) var(--k-sp-6); }

@media (max-width: 899px) {
  .ex-wall { --ex-vg: 140% 100%; --ex-vg-f: 140% 160%; }
  .ex-ev { grid-template-columns: 56px minmax(0, 1fr); gap: var(--k-sp-2) var(--k-sp-2); }
  .ex-ev-where, .ex-ev-judge { grid-column: 1 / -1; }
  .ex-ev-where { display: block; padding-top: var(--k-sp-1); border-top: 1px dashed rgba(90, 70, 45, .45); }
}
@media (max-width: 639px) {
  .ex-plan-svg { display: none; }
  .ex-plan { margin-top: var(--k-sp-2); }
  .ex-ev-pic { display: block; grid-column: 1 / -1; width: 100%; height: auto; border: 3px solid #1c1d20; border-radius: var(--k-rs); background: #1c1d20; }
  .ex-door-leaf { display: none; }
  .ex-sum { grid-template-columns: minmax(0, 1fr); gap: var(--k-sp-2); padding: var(--k-sp-3); }
  .ex-week li { grid-template-columns: minmax(0, 1fr); }
  .ex-day { grid-row: auto; }
  .ex-title { gap: var(--k-sp-2); }
}

@media (prefers-reduced-motion: reduce) {
  .ex-anim .ex-wall.is-lit::after, .ex-anim .ex-mk.is-up .ex-mk-in { transition: none; }
}
