/* The Whole Package · Smurfit Westrock × The Ryder Cup · Maverick Social */

:root{
  --navy:#00205B;
  --navy-deep:#00153D;
  --blue:#003DA5;
  --cyan:#08B2FF;
  --cyan-deep:#0A8FD0;
  --ice:#E9F4FD;
  --paper:#FFFFFF;
  --paper-alt:#F4F7FB;
  --ink:#0B1B33;
  --dim:#56677F;
  --faint:#8C99AD;
  --hair:rgba(0,32,91,.14);
  --hair-d:rgba(255,255,255,.16);
  --on-dark:#C9D8EE;
  --on-dark-dim:#8FA6C9;
  --sans:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --wrap:1280px;
  --pad:clamp(24px,7vw,128px);
  --ease:cubic-bezier(.22,1,.36,1);
  --bar:64px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15px,0.95vw,17px);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
strong{font-weight:700}
::selection{background:var(--cyan);color:var(--navy)}

/* ---------- type ---------- */
.eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--cyan-deep);margin-bottom:clamp(18px,2.4vw,30px);
}
.eyebrow .n{color:var(--faint);margin-right:.9em}
.dark .eyebrow{color:var(--cyan)}
.dark .eyebrow .n{color:var(--on-dark-dim)}
.display{
  font-weight:900;letter-spacing:-.035em;line-height:.94;
  font-size:clamp(2.4rem,6.4vw,6.2rem);text-transform:uppercase;
}
.display.xl{font-size:clamp(2.8rem,8vw,8.2rem)}
.h2{
  font-weight:800;letter-spacing:-.025em;line-height:1.04;
  font-size:clamp(1.8rem,3.6vw,3.3rem);max-width:24ch;
}
.h2.wide{max-width:32ch}
.h3{font-weight:800;letter-spacing:-.015em;line-height:1.05;font-size:clamp(1.5rem,2.6vw,2.3rem)}
.lead{font-size:clamp(1.1rem,1.35vw,1.3rem);font-weight:500;line-height:1.42;max-width:36ch;color:var(--ink)}
.dark .lead{color:#fff}
.aside{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.15rem,1.5vw,1.5rem);line-height:1.42;letter-spacing:-.005em;
  color:var(--dim);max-width:46ch;
}
.aside b,.aside strong{font-weight:600;font-style:italic;color:var(--ink)}
.dark .aside{color:var(--on-dark)}
.dark .aside b,.dark .aside strong{color:#fff}
.body{max-width:58ch;color:var(--ink)}
.body p+p{margin-top:1em}
.dark .body{color:var(--on-dark)}
.dark .body strong{color:#fff}
.caps{font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.rule{width:64px;height:4px;background:var(--cyan);margin:clamp(20px,2.6vw,34px) 0}
.dark .rule{background:var(--cyan)}
.muted{color:var(--dim)}
.dark .muted{color:var(--on-dark-dim)}
.small{font-size:.86rem}
.cyan{color:var(--cyan-deep)}
.dark .cyan{color:var(--cyan)}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(84px,11vw,176px) 0;position:relative}
.sec.tight{padding:clamp(56px,6.5vw,100px) 0}
.paper{background:var(--paper);color:var(--ink)}
.alt{background:var(--paper-alt);color:var(--ink)}
.ice{background:var(--ice);color:var(--ink)}
.dark{background:var(--navy);color:#fff}
.deep{background:var(--navy-deep);color:#fff}
.grid{display:grid;gap:clamp(32px,5vw,80px)}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.g6{grid-template-columns:repeat(6,1fr)}
.g-7-5{grid-template-columns:7fr 5fr}
.g-5-7{grid-template-columns:5fr 7fr}
.g-4-8{grid-template-columns:4fr 8fr}
.center{align-items:center}
.mt{margin-top:clamp(32px,4.5vw,64px)}
.mt-l{margin-top:clamp(56px,8vw,112px)}
.mb{margin-bottom:clamp(28px,4vw,56px)}
@media (max-width:900px){
  .g2,.g3,.g4,.g5,.g6,.g-7-5,.g-5-7,.g-4-8{grid-template-columns:1fr}
  .g3.keep-2,.g4.keep-2,.g6.keep-3{grid-template-columns:1fr 1fr}
  .g6.keep-3{grid-template-columns:repeat(3,1fr)}
}

/* ---------- photo blocks ---------- */
.ph{position:relative;overflow:hidden;background:var(--navy-deep)}
.ph img{width:100%;height:100%;object-fit:cover}
.ph.r{aspect-ratio:3/2}
.ph.r43{aspect-ratio:4/3}
.ph.r45{aspect-ratio:4/5}
.ph.r169{aspect-ratio:16/9}
.ph.r21{aspect-ratio:21/9}
.ph.tall{aspect-ratio:auto;min-height:100%}
.ph .cap{
  position:absolute;left:0;right:0;bottom:0;padding:14px 18px;
  font-size:.74rem;letter-spacing:.06em;color:#fff;
  background:linear-gradient(to top,rgba(0,21,61,.72),rgba(0,21,61,0));
}
.bleed{position:relative;overflow:hidden;background:var(--navy-deep)}
.bleed img{width:100%;height:100%;object-fit:cover;display:block}
.bleed.h60{height:clamp(320px,60vh,720px)}
.bleed.h70{height:clamp(380px,72vh,860px)}
.bleed .over{
  position:absolute;inset:0;display:flex;align-items:flex-end;
  background:linear-gradient(to top,rgba(0,21,61,.82) 0%,rgba(0,21,61,.28) 45%,rgba(0,21,61,0) 100%);
  color:#fff;padding:clamp(24px,4vw,60px) 0;
}
.bleed .over .wrap{width:100%}
.bleed .cap{font-size:.74rem;letter-spacing:.06em;color:rgba(255,255,255,.78);margin-top:10px}

/* ---------- top bar ---------- */
.bar{
  position:fixed;top:0;left:0;right:0;z-index:50;height:var(--bar);
  display:flex;align-items:center;
  transition:background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease);
  color:#fff;
}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;width:100%;gap:20px}
.bar.solid{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--navy);box-shadow:0 1px 0 var(--hair)}
.bar .lock{display:flex;align-items:center;gap:14px;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.bar .lock img{height:26px;width:auto}
.bar .lock .sw-w{display:block}.bar .lock .sw-c{display:none}
.bar.solid .lock .sw-w{display:none}.bar.solid .lock .sw-c{display:block}
.bar .lock .x{opacity:.55;font-size:.8rem;font-weight:500}
.bar .lock .rc{height:30px;width:auto}
.bar nav{display:flex;gap:clamp(14px,2vw,30px);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.bar nav a{opacity:.72;transition:opacity .2s;padding:6px 0;border-bottom:2px solid transparent}
.bar nav a:hover,.bar nav a.on{opacity:1;border-bottom-color:var(--cyan)}
.bar .cta{
  font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:10px 16px;border:1.5px solid currentColor;border-radius:999px;white-space:nowrap;
  transition:background .2s,color .2s;
}
.bar .cta:hover{background:var(--cyan);border-color:var(--cyan);color:var(--navy)}
.bar .prog{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--cyan);transition:width .1s linear}
@media (max-width:1040px){.bar nav{display:none}}
@media (max-width:560px){.bar .lock{gap:10px}.bar .lock .x{display:none}.bar .lock .rc{height:28px}.bar .cta{padding:8px 12px}}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:flex-end;
  color:#fff;background:var(--navy-deep);overflow:hidden;
}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:55% 30%;transform:scale(1.04);animation:heroIn 2.2s var(--ease) both}
@keyframes heroIn{from{transform:scale(1.12);opacity:0}to{transform:scale(1.04);opacity:1}}
.hero .shade{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(0,21,61,.94) 0%,rgba(0,21,61,.55) 40%,rgba(0,21,61,.18) 70%,rgba(0,21,61,.35) 100%);
}
.hero .wrap{position:relative;padding-bottom:clamp(44px,7vw,96px);padding-top:calc(var(--bar) + 40px);width:100%}
.hero .kick{font-size:.78rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:#fff;text-shadow:0 1px 14px rgba(0,21,61,.7);margin-bottom:clamp(16px,2vw,26px)}
.hero .kick .x{color:var(--cyan);margin:0 .5em}
.hero .display{max-width:12ch}
.hero .aside{color:#fff;margin-top:clamp(18px,2.4vw,30px);max-width:40ch;font-size:clamp(1.2rem,1.8vw,1.75rem)}
.hero .meta{
  margin-top:clamp(28px,4vw,52px);display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;
  font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.78);
}
.hero .meta .dot{width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.hero .lockup{display:flex;align-items:center;gap:22px;margin-bottom:clamp(28px,4vw,56px)}
.hero .lockup img{height:clamp(34px,4.2vw,58px);width:auto}
.hero .lockup .sep{width:1px;height:clamp(34px,4.2vw,58px);background:rgba(255,255,255,.4)}
.hero .scroll{
  position:absolute;right:var(--pad);bottom:clamp(44px,7vw,96px);
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7);
  writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;
}
.hero .scroll:after{content:"";width:1px;height:56px;background:linear-gradient(to bottom,var(--cyan),transparent)}
@media (max-width:760px){.hero .scroll{display:none}}

/* ---------- stats ---------- */
.stats{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat{
  background:var(--ice);border-top:4px solid var(--cyan);padding:clamp(20px,2.4vw,32px) clamp(14px,1.6vw,22px) clamp(18px,2vw,28px);
  min-height:130px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;
}
.stat .v{font-weight:900;letter-spacing:-.04em;line-height:.95;font-size:clamp(1.8rem,2.6vw,3rem);color:var(--navy);white-space:nowrap}
.stat .v.cy{color:var(--cyan-deep)}
.stat .l{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);line-height:1.4}
.dark .stat{background:rgba(255,255,255,.06);border-top-color:var(--cyan)}
.dark .stat .v{color:#fff}
.dark .stat .v.cy{color:var(--cyan)}
.dark .stat .l{color:var(--on-dark-dim)}
.stat.big .v{font-size:clamp(2.2rem,4.2vw,4.6rem)}

/* ---------- cards ---------- */
.card{
  background:var(--paper);border:1px solid var(--hair);padding:clamp(22px,2.6vw,34px);
  display:flex;flex-direction:column;gap:12px;
}
.card.ice{background:var(--ice);border-color:transparent}
.card .num{font-weight:900;font-size:clamp(2rem,3vw,3rem);letter-spacing:-.04em;color:var(--cyan-deep);line-height:1}
.card .t{font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
.card p{color:var(--ink)}
.card.side{border:0;border-left:4px solid var(--navy);background:var(--paper-alt)}
.card.side.cy{border-left-color:var(--cyan)}
.dark .card{background:rgba(255,255,255,.05);border-color:var(--hair-d)}
.dark .card .t{color:#fff}
.dark .card p{color:var(--on-dark)}
.dark .card .num{color:var(--cyan)}

/* ---------- band ---------- */
.band{
  background:var(--navy);color:#fff;border-left:6px solid var(--cyan);
  padding:clamp(24px,3vw,44px) clamp(24px,3.4vw,48px);
}
.band .big{font-size:clamp(1.25rem,2vw,1.8rem);font-weight:600;line-height:1.3;letter-spacing:-.01em;max-width:36ch}
.band .aside{color:var(--on-dark);margin-top:14px;font-size:clamp(1.05rem,1.35vw,1.3rem)}

/* ---------- verbs ---------- */
.verbs{display:flex;flex-wrap:wrap;gap:.35em 1.2em;font-weight:900;letter-spacing:-.035em;line-height:.95;font-size:clamp(2.4rem,6.2vw,5.8rem);color:var(--navy);text-transform:uppercase}
.verbs span{position:relative}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.values .val{border-top:1px solid var(--hair);padding-top:14px}
.values .val .t{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-deep);margin-bottom:6px}
.values .val p{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--ink)}
@media (max-width:900px){.values{grid-template-columns:1fr 1fr}}

/* ---------- voices ---------- */
.voice{padding:clamp(24px,3vw,40px) 0;border-top:1px solid var(--hair)}
.voice .t{font-size:.74rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.voice .t.cy{color:var(--cyan-deep)}
.voice .q{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2rem,4.4vw,4.2rem);line-height:1.05;letter-spacing:-.02em;color:var(--navy)}

/* ---------- pillars ---------- */
.pillar{background:var(--paper);border:1px solid var(--hair);border-left:6px solid var(--navy);padding:clamp(24px,2.8vw,40px)}
.pillar.cy{border-left-color:var(--cyan)}
.pillar .t{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:1.25rem;color:var(--navy);margin-bottom:10px}
.pillar p{color:var(--dim)}

/* ---------- receipts ---------- */
.receipt{border-top:1px solid var(--hair);padding-top:16px;font-size:.98rem;color:var(--ink)}
.receipt b{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-deep);margin-bottom:8px}

/* ---------- quote ---------- */
.quote{border-left:4px solid var(--cyan);padding-left:clamp(18px,2.4vw,32px)}
.quote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.42;color:var(--ink)}
.quote cite{display:block;font-style:normal;margin-top:14px;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.quote cite span{display:block;font-weight:500;letter-spacing:.08em;color:var(--faint);margin-top:4px;text-transform:none;font-size:.8rem}
.dark .quote p{color:#fff}
.dark .quote cite{color:var(--on-dark)}
.dark .quote cite span{color:var(--on-dark-dim)}
.quote.lg p{font-size:clamp(1.35rem,2vw,1.9rem)}

/* ---------- equation ---------- */
.eq{background:var(--paper);border-top:6px solid var(--navy);padding:clamp(22px,2.6vw,36px)}
.eq.cy{border-top-color:var(--cyan)}
.eq .t{font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan-deep);margin-bottom:18px}
.eq .row{font-weight:700;font-size:clamp(1rem,1.25vw,1.2rem);letter-spacing:.02em;text-transform:uppercase;color:var(--navy);padding:10px 0}
.eq .row small{display:block;font-weight:500;letter-spacing:0;text-transform:none;color:var(--dim);font-size:.9rem;margin-top:2px}
.eq .op{font-weight:900;color:var(--cyan-deep);font-size:1.8rem;line-height:1;padding:4px 0}
.eq .row.sum{border-top:1px solid var(--hair);margin-top:6px;padding-top:16px;color:var(--blue)}

/* ---------- shared value split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
.split .w{font-weight:800;font-size:clamp(1.6rem,2.6vw,2.6rem);color:var(--cyan-deep);letter-spacing:.02em}
.split p{margin-top:8px;font-size:1.05rem}
.split p b{font-weight:800;letter-spacing:.08em;color:var(--navy)}
@media (max-width:760px){.split{grid-template-columns:1fr}}

/* ---------- smart line ---------- */
.lines{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(16px,3vw,40px);align-items:stretch}
.lines .box{padding:clamp(26px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center;min-height:200px}
.lines .box.a{background:var(--ice)}
.lines .box.b{background:var(--navy);color:#fff}
.lines .box .t{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-bottom:18px}
.lines .box.b .t{color:var(--cyan)}
.lines .box .l{font-weight:900;letter-spacing:-.03em;line-height:.98;font-size:clamp(1.7rem,3.2vw,3.2rem)}
.lines .arr{display:flex;align-items:center;justify-content:center;font-size:2.4rem;font-weight:900;color:var(--cyan-deep)}
@media (max-width:760px){.lines{grid-template-columns:1fr}.lines .arr{transform:rotate(90deg);padding:4px 0}}

/* ---------- theme map ---------- */
.map{display:grid;gap:14px}
.map .row{
  display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(14px,3vw,40px);align-items:center;
  background:var(--paper);border:1px solid var(--hair);border-left:6px solid var(--navy);padding:clamp(18px,2.2vw,30px) clamp(18px,2.4vw,34px);
}
.map .row.cy{border-left-color:var(--cyan)}
.map .row .t{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:1.05rem;color:var(--navy)}
.map .row .t.th{color:var(--blue)}
.map .row.cy .t.th{color:var(--cyan-deep)}
.map .row p{color:var(--dim);font-size:.95rem;margin-top:4px}
.map .row .ar{font-weight:900;color:var(--cyan-deep);font-size:1.8rem}
@media (max-width:760px){.map .row{grid-template-columns:1fr}.map .row .ar{transform:rotate(90deg);justify-self:start}}

/* ---------- theme blocks ---------- */
.theme{padding:clamp(64px,8vw,128px) 0;border-top:1px solid var(--hair)}
.theme:first-of-type{border-top:0}
.theme .k{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.theme .k b{color:var(--cyan-deep)}
.theme .title{font-weight:900;letter-spacing:-.03em;line-height:.96;font-size:clamp(2rem,3.8vw,3.6rem);text-transform:uppercase;color:var(--navy)}
.theme .strap{margin-top:18px}
.points{display:grid;gap:28px;margin-top:clamp(36px,5vw,72px)}
.pt{border-top:1px solid var(--hair);padding-top:16px}
.pt b{display:block;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.86rem;color:var(--navy);margin-bottom:6px}
.pt p{color:var(--ink);font-size:1rem}
.tp{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tp span{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--hair);border-radius:999px;color:var(--navy)}

/* ---------- record / people ---------- */
.person{display:grid;grid-template-columns:5fr 7fr;gap:clamp(20px,3vw,40px);align-items:center;background:var(--paper);border:1px solid var(--hair)}
.person .ph{aspect-ratio:auto;height:100%;min-height:380px;min-width:0}
.person .ph img{object-position:center 8%}
.person .txt{padding:clamp(20px,2.6vw,36px)}
.person .name{font-weight:800;font-size:clamp(1.4rem,2vw,1.9rem);letter-spacing:-.02em;color:var(--navy)}
.person .role{font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-deep);margin:6px 0 14px}
@media (max-width:760px){.person{grid-template-columns:1fr}.person .ph{aspect-ratio:4/3;height:auto;min-height:0}}

/* ---------- difference ---------- */
.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.logos .lg{
  background:#fff;border-radius:6px;min-height:96px;display:flex;align-items:center;justify-content:center;padding:18px 22px;
  border:2px solid transparent;
}
.logos .lg img{max-height:44px;width:auto;max-width:100%;object-fit:contain}
.logos .lg.rolex img{max-height:56px}
.logos .lg.sw{border-color:var(--cyan);box-shadow:0 0 0 6px rgba(8,178,255,.18)}
.logos .lg .nm{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
@media (max-width:900px){.logos{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.logos{grid-template-columns:repeat(2,1fr)}}
.three{display:grid;gap:18px}
.three .it{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2.4vw,32px);align-items:baseline;border-left:3px solid var(--cyan);padding:14px 0 14px clamp(16px,2vw,28px)}
.three .it .n{font-weight:400;font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.4rem);color:var(--cyan);line-height:1}
.three .it p{font-size:clamp(1.1rem,1.5vw,1.45rem);line-height:1.35;color:#fff;font-weight:500}

/* ---------- matrix ---------- */
.legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.legend button{
  display:flex;align-items:center;gap:10px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  padding:9px 14px;border:1px solid var(--hair);border-radius:999px;background:var(--paper);color:var(--navy);transition:all .2s;
}
.legend button i{width:12px;height:12px;display:inline-block;background:var(--navy)}
.legend button i.cy{background:var(--cyan)}
.legend button i.all{background:linear-gradient(90deg,var(--navy) 50%,var(--cyan) 50%)}
.legend button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.matrix{border:1px solid var(--hair);background:var(--paper)}
.matrix .blk{display:grid;grid-template-columns:44px 1fr}
.matrix .blk+.blk{border-top:1px solid var(--hair)}
.matrix .rail{
  background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg);padding:18px 0;
}
.matrix .rows{display:grid}
.matrix .r{
  display:grid;grid-template-columns:170px 1fr;gap:18px;padding:16px clamp(16px,2vw,28px);border-top:1px solid var(--hair);
  transition:opacity .3s;
}
.matrix .r:first-child{border-top:0}
.matrix .r .lab{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding-top:3px}
.matrix .r.ext .lab{color:var(--blue)}
.matrix .r .val{font-size:.98rem;color:var(--ink)}
.matrix .r.ext .val{color:var(--blue)}
.matrix .r .val.big{font-weight:900;letter-spacing:.04em;text-transform:uppercase;font-size:1.2rem}
.matrix .r .val.line{font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:1.15rem}
.matrix .r .val b.k{font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.matrix.show-int .r.ext,.matrix.show-ext .r.int{opacity:.22}
.matrix .two{display:grid;grid-template-columns:1fr 1fr;gap:0}
.matrix .two .r{border-top:0}
.matrix .two .r+.r{border-left:1px solid var(--hair)}
.mtheme{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,32px)}
.mtheme .c .t{font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:1rem;color:var(--ink)}
.mtheme .c .s{font-family:var(--serif);font-style:italic;color:var(--dim);font-size:.98rem;margin:8px 0 12px}
.mtheme .c ul{list-style:none;font-size:.86rem;color:var(--ink)}
.mtheme .c ul li{padding:5px 0;border-top:1px solid var(--hair)}
.mtheme .c ul li b{font-weight:800}
@media (max-width:860px){
  .matrix .r{grid-template-columns:1fr;gap:6px}
  .matrix .two{grid-template-columns:1fr}
  .matrix .two .r+.r{border-left:0;border-top:1px solid var(--hair)}
  .mtheme{grid-template-columns:1fr}
}

/* ---------- venues ---------- */
.venue{background:var(--paper);border:1px solid var(--hair);display:flex;flex-direction:column}
.venue .ph{aspect-ratio:4/3}
.venue .txt{padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:10px;flex:1}
.venue .yr{font-weight:900;font-size:clamp(1.8rem,2.6vw,2.6rem);letter-spacing:-.04em;color:var(--cyan-deep);line-height:1}
.venue .nm{font-weight:800;font-size:1.25rem;letter-spacing:-.01em;color:var(--navy)}
.venue .where{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.venue p{color:var(--ink);font-size:.98rem}

/* ---------- world ---------- */
.world{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,36px)}
.world .col .t{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:1.05rem;color:var(--navy);padding-bottom:14px;border-bottom:4px solid var(--navy);margin-bottom:8px}
.world .col.cy .t{border-bottom-color:var(--cyan)}
.world .idea{padding:18px 0;border-top:1px solid var(--hair)}
.world .idea b{display:block;font-weight:800;font-size:1.05rem;color:var(--navy);margin-bottom:6px;letter-spacing:-.01em}
.world .idea p{color:var(--ink);font-size:.98rem}
@media (max-width:860px){.world{grid-template-columns:1fr}}

/* ---------- timeline ---------- */
.tl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px 14px;border-top:1px solid var(--hair);padding-top:22px}
.tl .t{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan-deep)}
.tl p{font-size:.92rem;color:var(--ink);margin-top:6px}

/* ---------- close ---------- */
.close{position:relative;overflow:hidden;color:#fff;background:var(--navy-deep);padding:clamp(90px,12vw,190px) 0}
.close .bg{position:absolute;inset:0;opacity:.34}
.close .bg img{width:100%;height:100%;object-fit:cover}
.close .shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,21,61,.55),rgba(0,21,61,.92))}
.close .wrap{position:relative;text-align:center}
.close .lockup{display:inline-flex;align-items:center;gap:22px;margin-bottom:clamp(30px,4vw,56px)}
.close .lockup img{height:clamp(34px,4vw,54px);width:auto}
.close .lockup .sep{width:1px;height:clamp(34px,4vw,54px);background:rgba(255,255,255,.4)}
.close .display{margin:0 auto;max-width:14ch;font-size:clamp(2.4rem,6.4vw,6.4rem)}
.close .aside{margin:clamp(20px,3vw,36px) auto 0;color:var(--on-dark)}
.close .talk{margin-top:clamp(40px,6vw,80px);display:flex;flex-direction:column;align-items:center;gap:18px}
.close .talk .t{font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--cyan)}
.close .talk a.mail{font-weight:800;font-size:clamp(1.2rem,2.4vw,2.2rem);letter-spacing:-.02em;color:#fff;border-bottom:2px solid var(--cyan);padding-bottom:4px}
.close .talk img{height:22px;width:auto;opacity:.9;margin-top:10px}

/* ---------- footer ---------- */
footer{background:var(--navy-deep);color:var(--on-dark-dim);font-size:.8rem;padding:clamp(40px,5vw,72px) 0;border-top:1px solid var(--hair-d)}
footer .t{font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark);margin-bottom:14px}
footer ol,footer ul{list-style:none;display:grid;gap:8px}
footer a{color:var(--on-dark);border-bottom:1px solid rgba(255,255,255,.18)}
footer a:hover{border-bottom-color:var(--cyan)}
footer .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px)}
footer .fine{margin-top:clamp(28px,4vw,48px);padding-top:22px;border-top:1px solid var(--hair-d);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;font-size:.74rem}
@media (max-width:860px){footer .cols{grid-template-columns:1fr}}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  .hero .bg img{animation:none;transform:none}
}

/* ---------- focus ---------- */
a:focus-visible,button:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:2px}

/* ---------- mobile menu ---------- */
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:6px;margin-left:2px;flex:none}
.burger span{display:block;width:22px;height:2px;background:currentColor;transition:transform .3s var(--ease)}
.bar.open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
.bar.open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
@media (max-width:1040px){.burger{display:flex}}
.menu{position:fixed;inset:0;z-index:49;background:var(--navy);color:#fff;padding:calc(var(--bar) + 20px) var(--pad) 28px;display:flex;flex-direction:column;justify-content:space-between;overflow:auto}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{display:flex;align-items:baseline;gap:18px;padding:15px 0;border-bottom:1px solid var(--hair-d);font-weight:800;font-size:clamp(1.45rem,6vw,2.2rem);letter-spacing:-.02em;color:#fff}
.menu nav a span{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1rem;color:var(--cyan);min-width:2ch}
.menu nav a.talk{color:var(--cyan)}
.menu-foot{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-dim);margin-top:24px}
.bar.open{background:var(--navy);color:#fff;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.bar.open .lock .sw-w{display:block}.bar.open .lock .sw-c{display:none}
body.menu-open{overflow:hidden}
@media (max-width:560px){.hero .kick{letter-spacing:.2em;font-size:.68rem}}
@media (max-width:560px){.g4.keep-2,.g3.keep-2{grid-template-columns:1fr}}
