:root{
  --bg:#F6F1E7; --sand:#E9E4D8; --ink:#17282E; --slate:#3a4a4f;
  --teal:#0F6F7A; --deep:#0B3A41; --coral:#E4572E; --coral-lt:#F0A088;
  --teal-lt:#7fd0d6; --muted:#6b6456; --faint:#8a8577;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}
a:hover{opacity:.72}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.mono{font-family:'IBM Plex Mono',monospace}
.serif{font-family:'Newsreader',serif}
h1,h2,h3{font-family:'Newsreader',serif;font-weight:500;letter-spacing:-.01em;margin:0}

/* header */
.site-header{background:var(--deep);color:#EAF3F2;position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:38px}
.brand span{font-family:'IBM Plex Mono',monospace;font-size:15px;font-weight:500;letter-spacing:.04em}
.nav{display:flex;align-items:center;gap:30px;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.04em;color:#bcd7d8}
.nav a.active{color:#fff;border-bottom:1.5px solid var(--coral);padding-bottom:3px}
.btn{background:var(--coral);color:#fff!important;padding:10px 20px;border-radius:3px;font-weight:600;opacity:1}
.btn:hover{opacity:.88}
.nav .btn{padding:9px 18px}
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0;margin:0;background:none;border:0;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#EAF3F2;border-radius:2px;transition:transform .25s,opacity .25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero band (subpages) */
.hero{background:var(--deep);color:#EAF3F2;position:relative;overflow:hidden;
  background-image:linear-gradient(rgba(234,243,242,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(234,243,242,.05) 1px,transparent 1px);
  background-size:44px 44px}
.hero .wrap{padding:74px 40px 84px}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.12em;color:var(--coral-lt);margin-bottom:20px}
.hero h1{font-weight:400;font-size:60px;line-height:1.02;letter-spacing:-.02em;margin-bottom:20px}
.hero p{font-size:19px;line-height:1.55;color:#bcd7d8;max-width:620px;margin:0}

/* home hero */
.home-hero{background:var(--deep);color:#EAF3F2;position:relative;overflow:hidden}
.home-hero .grid{display:grid;grid-template-columns:1.05fr .95fr;min-height:540px}
.home-hero .copy{padding:66px 0 66px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.home-hero .copy{padding-left:40px;padding-right:40px}
.home-hero h1{font-weight:400;font-size:66px;line-height:1;letter-spacing:-.02em;margin-bottom:26px}
.home-hero h1 em{color:var(--coral-lt);font-style:italic}
.home-hero p{font-size:19px;line-height:1.55;color:#bcd7d8;max-width:480px;margin:0 0 34px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.btn-ghost{border:1.5px solid rgba(234,243,242,.5);color:#EAF3F2!important;padding:15px 30px;border-radius:4px;font-weight:600}
.btn-lg{padding:15px 30px;font-size:16px}
.graph{border-left:1px solid rgba(234,243,242,.14);position:relative;
  background-image:linear-gradient(rgba(234,243,242,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(234,243,242,.06) 1px,transparent 1px);
  background-size:40px 40px}
.graph svg.net{position:absolute;inset:0;width:100%;height:100%;transform:rotate(90deg)}
.graph .cap{position:absolute;bottom:26px;left:28px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:#9ec4c6;z-index:2}
.meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(234,243,242,.14);font-family:'IBM Plex Mono',monospace;color:#EAF3F2}
.meta div{padding:22px 32px;border-right:1px solid rgba(234,243,242,.14)}
.meta div:last-child{border-right:0}
.meta .k{font-size:11px;letter-spacing:.1em;color:var(--teal-lt)}
.meta .v{font-size:15px;margin-top:6px}

/* content */
main{padding:64px 0 40px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.section-head h2{font-size:30px}
.tag{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--faint);border:1px solid rgba(23,40,46,.2);border-radius:999px;padding:6px 14px}
.note{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--faint);margin-top:22px}
.lead{font-size:17px;line-height:1.7;color:var(--slate);max-width:720px}

/* schedule */
.schedule{border-top:1px solid rgba(23,40,46,.14)}
.slot{display:grid;grid-template-columns:130px 1fr;gap:28px;padding:22px 4px;border-bottom:1px solid rgba(23,40,46,.14);align-items:start}
.slot .time{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--teal);padding-top:3px}
.slot .title{font-family:'Newsreader',serif;font-size:21px;margin-bottom:5px}
.slot .desc{font-size:14px;color:var(--muted)}
.slot .room{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--teal);margin-top:6px}

/* speakers */
.speakers{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.speaker .photo{aspect-ratio:1/1;border-radius:6px;background:var(--sand);border:1px dashed rgba(23,40,46,.28);
  display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:14px}
.speaker .photo img{width:100%;height:100%;object-fit:cover}
.speaker .name{font-family:'Newsreader',serif;font-size:20px}
.speaker .role{font-size:13px;color:var(--muted);margin-top:2px}

/* venue */
.venue-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start}
.map{aspect-ratio:4/3;border-radius:8px;background:var(--sand);border:1px dashed rgba(23,40,46,.28);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--faint);
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;overflow:hidden}
.map > img,.map > iframe{width:100%;height:100%;border:0;object-fit:cover}
.map-link{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--teal)}
.travel{display:flex;flex-direction:column;gap:22px}
.travel .block{border-top:1px solid rgba(23,40,46,.16);padding-top:18px}
.travel .k{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--teal);margin-bottom:8px}
.travel .t{font-size:15px;line-height:1.55;color:var(--slate)}
.travel .t a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}

/* about */
.themes{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:60px}
.theme{border-top:2px solid var(--teal);padding-top:18px}
.theme .num{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--coral);margin-bottom:10px}
.theme .title{font-family:'Newsreader',serif;font-size:22px;margin-bottom:8px}
.theme .text{font-size:14px;line-height:1.6;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:13px;margin-bottom:60px}
.chip{border:1px solid rgba(23,40,46,.22);border-radius:999px;padding:7px 16px}
.org-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;border-top:1px solid rgba(23,40,46,.16);padding-top:36px}
.k-label{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--teal);margin-bottom:14px}
.logos{display:flex;flex-wrap:wrap;gap:14px}
.logo-slot{width:150px;height:64px;border:1px dashed rgba(23,40,46,.28);border-radius:6px;
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--faint)}

/* footer */
.site-footer{background:var(--ink);color:#c9d4d3;margin-top:60px}
.site-footer .wrap{padding:44px 40px;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;align-items:flex-start}
.site-footer .title{font-family:'Newsreader',serif;font-size:22px;color:#fff;margin-bottom:10px}
.site-footer .small{font-size:14px;line-height:1.6}
.site-footer .col{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;line-height:2}
.site-footer .col .h{color:var(--teal-lt);margin-bottom:6px}
.site-footer .links{display:flex;gap:24px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em}

@media(max-width:900px){
  .wrap{padding:0 24px}
  .nav{gap:18px;font-size:12px}
  .home-hero .grid{grid-template-columns:1fr}
  .graph{min-height:280px}
  .hero h1,.home-hero h1{font-size:44px}
  .speakers{grid-template-columns:repeat(2,1fr)}
  .venue-grid,.themes,.org-grid,.meta{grid-template-columns:1fr}
  .meta div{border-right:0;border-bottom:1px solid rgba(234,243,242,.14)}
}
@media(max-width:820px){
  .nav-toggle{display:flex}
  .nav{
    position:absolute;top:100%;left:0;right:0;
    display:none;flex-direction:column;align-items:stretch;gap:0;
    background:var(--deep);padding:8px 0 16px;
    border-top:1px solid rgba(234,243,242,.14);
    box-shadow:0 12px 24px rgba(0,0,0,.22);font-size:14px
  }
  .nav.open{display:flex}
  .nav a{padding:14px 24px}
  .nav a.active{border-bottom:0;color:var(--coral-lt)}
  .nav .btn{margin:12px 24px 0;text-align:center}
}
