/* ============================================================
   IMD2026 LP — bundled stylesheet (self-contained, no CDN)
   Order: @font-face → design tokens → base → responsive layer
   Fonts are self-hosted under ../fonts/ (relative paths).
   Source: Claude Design "JIMA / Internet Media Day" design system.
   ============================================================ */

/* ---------- @font-face (self-hosted) ---------- */
/* Latin unicode-ranges mirror Google Fonts' latin / latin-ext splits. */

/* Archivo (display) */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/archivo-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/archivo-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/archivo-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/archivo-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/archivo-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/archivo-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/archivo-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/archivo-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/archivo-900-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/archivo-900-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Space Mono (labels / mono) */
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/spacemono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/spacemono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/spacemono-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/spacemono-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Noto Sans JP (body / Japanese) — self-hosted subset, JP + basic Latin */
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/notosansjp-400.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/notosansjp-700.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/notosansjp-900.woff2') format('woff2')}

/* ---------- Design tokens: colors ---------- */
:root{
  --blue:#2A34DB;--blue-700:#1B2196;--blue-600:#3541E4;--blue-200:#AEB6FA;--blue-100:#E6E9FC;
  --magenta:#C9146E;--magenta-700:#9C0F54;--magenta-100:#FBE3EF;
  --teal:#16B5B0;--teal-100:#DDF4F2;
  --ink:#16181D;--ink-soft:#2C2F38;--ink-2:#3A3E4A;
  --muted:#6A6F7E;--muted-soft:#9AA0AE;
  --surface:#FFFFFF;--surface-tint:#F5F8FD;--surface-tint-2:#EAF0F9;--surface-navy:#0F1A4D;
  --border:#E2E8F2;--border-strong:#C9D3E3;--border-onink:rgba(255,255,255,0.16);
  --hero-bg:linear-gradient(180deg,#F7F9FE 0%,#EEF3FC 100%);
  --gradient-brand:linear-gradient(92deg,#2A34DB 0%,#3D34D0 100%);
  --grad-a:#2A34DB;--grad-b:#C9146E;--grad-c:#16B5B0;
  --jima-brand:#5B2A86;--jima-brand-100:#EBE1F5;
  --text-strong:var(--ink);--text-body:var(--ink-soft);--text-muted:var(--muted);
  --text-onink:#FFFFFF;--text-onink-muted:rgba(255,255,255,0.66);
  --surface-page:var(--surface-tint);--surface-card:var(--surface);
  --accent:var(--blue);--accent-soft:var(--blue-100);--accent-strong:var(--blue-700);
}

/* ---------- Design tokens: typography ---------- */
:root{
  --font-display:'Archivo','Noto Sans JP',system-ui,sans-serif;
  --font-sans:'Noto Sans JP','Archivo',system-ui,sans-serif;
  --font-mono:'Space Mono','SFMono-Regular',ui-monospace,monospace;
  --fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-heavy:800;--fw-black:900;
  --fs-hero:clamp(56px,9vw,136px);--fs-d1:clamp(40px,5.2vw,72px);--fs-d2:clamp(30px,3.6vw,48px);
  --fs-h1:32px;--fs-h2:24px;--fs-h3:20px;--fs-lead:clamp(20px,2.2vw,30px);
  --fs-body:17px;--fs-body-sm:15px;--fs-cap:13px;--fs-eyebrow:13px;
  --lh-tight:0.98;--lh-snug:1.15;--lh-normal:1.5;--lh-relaxed:1.85;
  --tr-hero:-0.02em;--tr-tight:-0.01em;--tr-normal:0;--tr-eyebrow:0.22em;--tr-label:0.14em;
}

/* ---------- Design tokens: spacing ---------- */
:root{
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
  --sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;
  --container:1200px;--container-wide:1360px;--gutter:clamp(20px,5vw,72px);--section-y:clamp(64px,9vw,128px);
}

/* ---------- Design tokens: effects ---------- */
:root{
  --r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;
  --bd-hair:1px solid var(--border);--bd-strong:1px solid var(--border-strong);
  --sh-sm:0 1px 2px rgba(20,18,31,0.04);--sh-md:0 6px 24px -12px rgba(46,28,86,0.18);--sh-lg:0 24px 60px -24px rgba(46,28,86,0.28);
  --ring:0 0 0 3px rgba(124,58,237,0.32);
  --ease:cubic-bezier(0.22,1,0.36,1);--dur:180ms;--dur-slow:320ms;
}

/* ---------- Base ---------- */
html,body{margin:0}
/* Ensure the hidden attribute wins over inline display (modal starts hidden). */
[hidden]{display:none!important}
body{background:var(--surface);font-family:var(--font-sans);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--magenta)}
*{box-sizing:border-box}
img{max-width:100%}

/* Interactive states (ported from the DC style-hover attribute) */
.spk-card{transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.spk-card:hover,.spk-card:focus-visible{box-shadow:var(--sh-md);transform:translateY(-2px);outline:none}
.spk-card:focus-visible{box-shadow:var(--ring)}

/* ---------- Responsive layer (data-r hooks) ---------- */
h1[data-r="hero"]{font-size:clamp(56px,13vw,150px)!important}
[data-r="h-lg"]{font-size:clamp(30px,7vw,48px)!important}
[data-r="h-md"]{font-size:clamp(24px,5.5vw,40px)!important}
[data-r="h-sub"]{font-size:clamp(22px,5vw,38px)!important}

@media (max-width:900px){
  [data-r="two"]{grid-template-columns:1fr!important;gap:20px!important}
  [data-r="info"]{grid-template-columns:1fr!important}
  [data-r="info-label"]{border-bottom:none!important;padding-bottom:6px!important}
  [data-r="info-value"]{border-left:none!important;padding-top:6px!important}
}
@media (max-width:820px){
  [data-r="spk-grid"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:560px){
  [data-r="sec"]{padding-left:20px!important;padding-right:20px!important}
  [data-r="sec"][style*="padding: 96px"]{padding-top:56px!important;padding-bottom:56px!important}
  [data-r="pad"]{padding:22px!important}
  [data-r="pad-lg"]{padding:26px 22px!important}
  [data-r="hero-cta"]{width:100%!important}
  [data-r="hero-cta"] a{width:100%!important;justify-content:center!important}
  [data-r="spk-card"]{flex-direction:column!important;align-items:center!important;text-align:center!important;gap:10px!important;padding:14px 12px!important}
  [data-r="spk-photo"]{width:96px!important;height:96px!important}
}
@media print{
  html,body{background:#fff !important}
  [style*="sticky"]{position:static !important}
  *,*::before,*::after{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
}
