/* =========================================================================
   2026 DGIST AI Build Week — POSTER 시안 (3 directions)
   ========================================================================= */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --blue:#1538C9; --blue-bright:#3B6BFF; --blue-deep:#0B1F6B;
  --ink:#0A1330; --ink-2:#2A3354; --mute:#6B7493;
  --paper:#FFFFFF; --paper-2:#F3F5FA; --line:#D8DEEC; --line-2:#E8ECF5;
  --sans:'Pretendard',system-ui,sans-serif;
  --disp:'Space Grotesk','Pretendard',sans-serif;
  --mono:'IBM Plex Mono',monospace;
}
*{ box-sizing:border-box; }
body{ margin:0; font-family:var(--sans); color:var(--ink);
  background:#E7E9EF;
  background-image:linear-gradient(#DDE0E8 1px,transparent 1px),linear-gradient(90deg,#DDE0E8 1px,transparent 1px);
  background-size:32px 32px; -webkit-font-smoothing:antialiased; }

.wrap{ max-width:1880px; margin:0 auto; padding:56px 40px 110px; }
.wrap-head{ margin-bottom:46px; }
.wrap-head .kick{ font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--blue); display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.wrap-head .kick::before{ content:""; width:26px; height:2px; background:var(--blue); }
.wrap-head h1{ font-family:var(--disp); font-weight:600; font-size:34px; letter-spacing:-.02em; margin:0 0 12px; }
.wrap-head p{ max-width:74ch; color:var(--ink-2); font-size:14.5px; line-height:1.65; margin:0; }

.poster-grid{ display:flex; gap:40px; flex-wrap:wrap; align-items:flex-start; }
.col{ width:560px; }
.col .label{ display:flex; align-items:baseline; gap:12px; margin-bottom:16px; font-family:var(--mono);
  font-size:12.5px; letter-spacing:.04em; color:var(--ink); }
.col .label .ln{ color:var(--blue); font-weight:600; }
.col .label .ld{ color:var(--mute); margin-left:auto; font-size:11px; }

/* ---------- shared poster shell ---------- */
.poster{ width:560px; height:840px; position:relative; overflow:hidden; border-radius:4px;
  box-shadow:0 22px 50px -28px rgba(10,19,48,.45); display:flex; flex-direction:column; }
.poster .gridtex{ position:absolute; inset:0; pointer-events:none; }
.poster.dark{ background:linear-gradient(165deg,#0c1842 0%, #0a1330 58%, #070d24 100%); color:#fff; }
.poster.dark .gridtex{ background-image:linear-gradient(rgba(120,160,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,255,.08) 1px,transparent 1px); background-size:30px 30px; }
.poster.lite{ background:var(--paper); color:var(--ink); border:1px solid var(--line); }
.poster.lite .gridtex{ background-image:linear-gradient(rgba(21,56,201,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(21,56,201,.045) 1px,transparent 1px); background-size:30px 30px; }
.glow{ position:absolute; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(59,107,255,.40),transparent 62%); }
.pbody{ position:relative; padding:24px 32px 22px; display:flex; flex-direction:column; flex:1; }

/* lockup */
.lk{ display:flex; align-items:center; gap:13px; }
.lk svg{ flex:none; }
.lk .lky{ font-family:var(--mono); font-size:9px; letter-spacing:.3em; display:block; margin-bottom:4px; color:var(--blue); }
.dark .lk .lky{ color:var(--blue-bright); }
.lk .lkn{ font-family:var(--disp); font-weight:600; font-size:16px; line-height:1; letter-spacing:-.01em; white-space:nowrap; }
.lk .lkn b{ color:var(--blue); } .dark .lk .lkn b{ color:var(--blue-bright); }
.ptag{ font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); }
.dark .ptag{ color:var(--blue-bright); }
.ptop{ display:flex; justify-content:space-between; align-items:flex-start; }

.peyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue-bright); }
.dark .peyebrow{ color:var(--blue-bright); } .lite .peyebrow{ color:var(--blue); }

/* Poster D speaker name list */
.dspk-names{ display:grid; grid-template-columns:max-content max-content; column-gap:30px; row-gap:9px; justify-content:start; margin-top:14px; }
.dspk-names .dn{ font-size:13px; line-height:1.2; color:#fff; font-weight:700; letter-spacing:-.01em; display:flex; align-items:baseline; gap:6px; white-space:nowrap; }
.dspk-names .dn .org{ font-family:var(--mono); font-size:9.5px; font-weight:500; letter-spacing:.04em; color:rgba(255,255,255,.55); }
.dspk-names .dn .key{ font-family:var(--mono); font-size:8px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#0a1330; background:var(--blue-bright); border-radius:3px; padding:2px 6px; }

/* prominent "open to all DGIST members" opener */
.opener{ font-family:var(--sans); font-weight:700; font-size:17px; line-height:1.28; letter-spacing:-.012em; }
.dark .opener{ color:#fff; } .lite .opener{ color:var(--ink); }
.opener b{ font-weight:800; }
.dark .opener b{ color:var(--blue-bright); } .lite .opener b{ color:var(--blue); }
.opener .tiny{ display:block; font-family:var(--mono); font-weight:500; font-size:9.5px; letter-spacing:.16em;
  text-transform:uppercase; margin-top:5px; }
.dark .opener .tiny{ color:rgba(255,255,255,.5); } .lite .opener .tiny{ color:var(--mute); }

/* big title */
.ptitle{ font-family:var(--disp); font-weight:600; letter-spacing:-.03em; line-height:.92; }
.ptitle em{ font-style:normal; color:var(--blue-bright); }
.lite .ptitle em{ color:var(--blue); }

/* meta row */
.pmeta{ font-family:var(--mono); font-size:11px; line-height:1.65; }
.pmeta .k{ color:var(--blue-bright); letter-spacing:.08em; }
.lite .pmeta .k{ color:var(--blue); }
.dark .pmeta{ color:rgba(255,255,255,.82); }
.lite .pmeta{ color:var(--ink-2); }

/* session list (Poster A) */
.sess{ display:flex; flex-direction:column; }
.sess .spk .av{ width:34px !important; height:34px !important; }
.sess .row{ display:flex; gap:14px; align-items:baseline; padding:2px 0; border-top:1px solid rgba(255,255,255,.14); }
.lite .sess .row{ border-top-color:var(--line); }
.sess .row:first-child{ border-top:none; }
.sess .n{ font-family:var(--mono); font-size:11px; width:26px; flex:none; color:var(--blue-bright); }
.lite .sess .n{ color:var(--blue); }
.sess .tm{ font-family:var(--mono); font-size:9.5px; line-height:1.25; width:56px; flex:none; color:var(--blue-bright); }
.lite .sess .tm{ color:var(--blue); }
.sess .tm .dy{ display:block; opacity:.7; font-size:8.5px; letter-spacing:.06em; }
.sess .t{ font-family:var(--disp); font-weight:600; font-size:18px; letter-spacing:-.01em; white-space:nowrap; flex:none; }
.sess .d{ margin-left:auto; flex:1; font-size:10px; color:rgba(255,255,255,.6); text-align:right; line-height:1.3; padding-left:12px; }
.lite .sess .d{ color:var(--mute); }
.sess .tba{ font-family:var(--mono); font-size:9px; letter-spacing:.04em; text-transform:uppercase; color:#0a1330; background:var(--blue-bright); padding:2px 7px; border-radius:3px; margin-left:8px; vertical-align:middle; white-space:nowrap; display:inline-block; }

/* awards callout */
.awards{ border:1px solid var(--blue-bright); border-radius:5px; padding:13px 16px; }
.lite .awards{ border-color:var(--blue); background:var(--paper-2); }
.dark .awards{ background:rgba(59,107,255,.08); }
.awards .at{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:7px; }
.lite .awards .at{ color:var(--blue); }
.awards .ai{ display:flex; flex-wrap:wrap; gap:7px; }
.awards .pill{ font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap; flex:none;
  background:rgba(255,255,255,.1); }
.lite .awards .pill{ background:#fff; border:1px solid var(--line); color:var(--ink); }
.awards .pill.hot{ background:var(--blue-bright); color:#0a1330; }
.lite .awards .pill.hot{ background:var(--blue); color:#fff; }

/* QR block */
.qr-blk-anchor{}

/* ===== workshop content rows ===== */
.wstrack{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.wscol{ border:1px solid var(--line); border-radius:5px; padding:6px 10px; background:var(--paper-2); }
.dark .wscol{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); }
.wscol .wt{ font-family:var(--disp); font-weight:600; font-size:13.5px; letter-spacing:-.01em; display:flex; align-items:baseline; gap:6px; }
.dark .wscol .wt{ color:#fff; }
.wscol .wt .wtag{ font-family:var(--mono); font-size:8px; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); }
.dark .wscol .wt .wtag{ color:var(--blue-bright); }
.wscol .wd{ font-size:9.5px; line-height:1.4; margin-top:4px; color:var(--mute); }
.dark .wscol .wd{ color:rgba(255,255,255,.66); }

/* ===== hackathon award tiers ===== */
.awardbox{ border-radius:6px; padding:5px 12px; margin-top:7px; }
.dark .awardbox{ background:rgba(59,107,255,.10); border:1px solid var(--blue-bright); }
.lite .awardbox{ background:var(--paper-2); border:1px solid var(--blue); }
.awardbox .at{ font-family:var(--mono); font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:3px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.lite .awardbox .at{ color:var(--blue); }
.awardbox .at .bud{ font-size:8.5px; letter-spacing:.03em; opacity:.85; }
.awardbox .tier{ display:flex; align-items:baseline; gap:9px; padding:0 0; }
.awardbox .tier .md{ font-family:var(--mono); font-size:11px; font-weight:600; color:var(--blue-bright); flex:none; width:14px; text-align:center; }
.lite .awardbox .tier .md{ color:var(--blue); }
.awardbox .tier .tn{ font-family:var(--sans); font-weight:700; font-size:11.5px; flex:none; width:104px; }
.dark .awardbox .tier .tn{ color:#fff; } .lite .awardbox .tier .tn{ color:var(--ink); }
.awardbox .tier .tn span{ font-family:var(--mono); font-weight:500; font-size:8.5px; opacity:.7; margin-left:5px; }
.awardbox .tier .tp2{ font-size:11px; }
.dark .awardbox .tier .tp2{ color:rgba(255,255,255,.82); } .lite .awardbox .tier .tp2{ color:var(--ink-2); }
.awardbox .anote{ font-size:9px; line-height:1.35; margin-top:4px; padding-top:4px; border-top:1px solid rgba(255,255,255,.14); }
.lite .awardbox .anote{ border-top-color:var(--line); color:var(--mute); }
.dark .awardbox .anote{ color:rgba(255,255,255,.62); }
.awardbox .anote .hot{ color:var(--blue-bright); font-weight:600; } .lite .awardbox .anote .hot{ color:var(--blue); }
.qr{ display:flex; align-items:center; gap:14px; }
.qr img{ width:84px; height:84px; border-radius:7px; display:block; background:#fff; padding:6px; }
.qr .qt{ font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; line-height:1.5; white-space:nowrap; }
.qr .qt b{ font-family:var(--disp); font-size:17px; font-weight:600; display:block; letter-spacing:-.01em; margin-bottom:3px; white-space:nowrap; }
.dark .qr .qt{ color:rgba(255,255,255,.7); } .lite .qr .qt{ color:var(--mute); }
.dark .qr .qt b{ color:#fff; } .lite .qr .qt b{ color:var(--ink); }
.qr .qt .url{ color:var(--blue-bright); } .lite .qr .qt .url{ color:var(--blue); }

/* floating QR CTA (Poster C right gutter) */
.qr-float{ position:absolute; right:36px; top:352px; width:118px; text-align:center; z-index:4; }
.qr-float img{ width:104px; height:104px; background:#fff; border-radius:9px; padding:7px; display:block; margin:0 auto;
  box-shadow:0 10px 26px -10px rgba(0,0,0,.55); }
.qr-float .qf-cap{ margin-top:9px; }
.qr-float .qf-cap b{ font-family:var(--disp); font-size:18px; font-weight:600; color:#fff; display:block; letter-spacing:-.01em; }
.qr-float .qf-cap span{ font-family:var(--mono); font-size:10.5px; color:var(--blue-bright); letter-spacing:.12em; display:block; margin-top:3px; }
.qr-float .qf-cap small{ font-family:var(--mono); font-size:9px; color:rgba(255,255,255,.5); letter-spacing:.04em; display:block; margin-top:6px; }

/* partner strip */
.partners{ display:flex; align-items:center; gap:16px; }
.partners .pl{ font-family:var(--mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.dark .partners .pl{ color:rgba(255,255,255,.45); } .lite .partners .pl{ color:var(--mute); }
.partners img{ width:auto; display:block; }

.divline{ height:1px; background:rgba(255,255,255,.16); }
.lite .divline{ background:var(--line); }

/* ===== speaker profile elements (shared) ===== */
.av{ border-radius:50%; flex:none; overflow:hidden; position:relative;
  background:linear-gradient(160deg,#20356f,#0e1c4a); display:flex; align-items:flex-end; justify-content:center; }
.lite .av{ background:linear-gradient(160deg,#e4eafb,#ccd7f2); }
.av svg{ width:72%; height:72%; display:block; }
.dark .av svg{ fill:rgba(255,255,255,.55); } .lite .av svg{ fill:var(--blue); opacity:.5; }
.av img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }   /* drop real photo here */
.av.blank{ background:#fff !important; border-radius:50% !important; }
.lite .av.blank{ box-shadow:0 0 0 1.5px var(--line); }
.dark .av.blank{ box-shadow:0 0 0 2px rgba(255,255,255,.25); }
.av.rnd{ border-radius:7px; }
.avstack{ display:flex; flex:none; gap:5px; }
.avstack .av{ box-shadow:0 0 0 2px rgba(255,255,255,.12); }
.lite .avstack .av{ box-shadow:0 0 0 2px var(--line); }
.spk{ display:flex; align-items:center; gap:11px; }
.spk .sn{ font-family:var(--sans); font-weight:700; font-size:12px; line-height:1.12; white-space:nowrap; }
.spk .sr{ font-family:var(--mono); font-size:9px; letter-spacing:.03em; line-height:1.3; margin-top:3px; white-space:nowrap; }
.dark .spk .sn{ color:#fff; } .lite .spk .sn{ color:var(--ink); }
.dark .spk .sr{ color:var(--blue-bright); } .lite .spk .sr{ color:var(--blue); }
.spk-label{ font-family:var(--mono); font-size:8.5px; letter-spacing:.14em; text-transform:uppercase; }
.dark .spk-label{ color:rgba(255,255,255,.5); } .lite .spk-label{ color:var(--mute); }

/* talk topic line + speaker list rows */
.topic{ font-size:11px; line-height:1.35; font-weight:600; letter-spacing:-.005em; margin-top:5px; }
.dark .topic{ color:rgba(255,255,255,.9); } .lite .topic{ color:var(--ink); }
.topic::before{ content:"\201C"; color:var(--blue-bright); margin-right:1px; }
.topic::after{ content:"\201D"; color:var(--blue-bright); margin-left:1px; }
.lite .topic::before, .lite .topic::after{ color:var(--blue); }
.spklist{ display:flex; flex-direction:column; gap:5px; }
.spkrow{ display:flex; align-items:center; gap:9px; }
.spkrow .av{ width:27px; height:27px; }
.spkrow .meta{ min-width:0; }
.spkrow .nm{ font-size:11.5px; font-weight:700; line-height:1.15; white-space:nowrap; }
.dark .spkrow .nm{ color:#fff; } .lite .spkrow .nm{ color:var(--ink); }
.spkrow .nm .org{ font-family:var(--mono); font-size:8.5px; font-weight:500; letter-spacing:.04em; margin-left:6px; }
.dark .spkrow .nm .org{ color:var(--blue-bright); } .lite .spkrow .nm .org{ color:var(--blue); }
.spkrow .tp{ font-size:9.5px; line-height:1.15; margin-top:1px; }
.dark .spkrow .tp{ color:rgba(255,255,255,.62); } .lite .spkrow .tp{ color:var(--mute); }

/* host / organizers line */
.host{ font-family:var(--mono); font-size:9px; letter-spacing:.05em; line-height:1.5; margin-bottom:5px; }
.dark .host{ color:rgba(255,255,255,.5); } .lite .host{ color:var(--mute); }
.host .hl{ letter-spacing:.13em; text-transform:uppercase; margin-right:8px; }
.dark .host .hl{ color:rgba(255,255,255,.4); } .lite .host .hl{ color:var(--blue); }

/* hype bar — 후원사 직접 진행 강조 */
.hypebar{ border-radius:5px; padding:9px 13px; font-size:11.5px; line-height:1.45; font-weight:600; }
.dark .hypebar{ background:var(--blue-bright); color:#08122e; }
.lite .hypebar{ background:var(--blue); color:#fff; }
.hypebar b{ font-weight:800; font-size:12.5px; }

/* benefits block */
.recruit{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:9px;
  font-family:var(--mono); font-size:10px; letter-spacing:.02em; }
.recruit .rc{ white-space:nowrap; padding:3px 10px; border-radius:999px; }
.recruit .rc b{ font-weight:700; }
.recruit .sep{ opacity:.4; }
.dark .recruit{ color:rgba(255,255,255,.9); } .dark .recruit .rc{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); } .dark .recruit .rc b{ color:var(--blue-bright); }
.lite .recruit{ color:var(--ink); } .lite .recruit .rc{ background:var(--paper-2); border:1px solid var(--line); } .lite .recruit .rc b{ color:var(--blue); }
.bene{ border-radius:6px; padding:6px 12px; }
.dark .bene{ background:rgba(59,107,255,.10); border:1px solid var(--blue-bright); }
.lite .bene{ background:var(--paper-2); border:1px solid var(--blue); }
.bene .bt{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-bright); margin-bottom:5px; display:flex; align-items:center; gap:8px; }
.lite .bene .bt{ color:var(--blue); }
.bene .bt .star{ font-size:12px; }
.bene .br{ display:flex; gap:11px; align-items:center; padding:3px 0; }
.bene .br + .br{ border-top:1px solid rgba(255,255,255,.12); }
.lite .bene .br + .br{ border-top-color:var(--line); }
.bene .bk{ font-family:var(--mono); font-size:9px; letter-spacing:.04em; text-transform:uppercase; color:var(--blue-bright); width:84px; flex:none; line-height:1.25; text-align:center; }
.lite .bene .bk{ color:var(--blue); }
.bene .bv{ font-size:11.5px; font-weight:600; line-height:1.3; letter-spacing:-.005em; }
.bene .bv .hot{ color:var(--blue-bright); }
.lite .bene .bv .hot{ color:var(--blue); }
.bene .bv .n{ font-family:var(--mono); font-size:11px; }

/* ---------- Poster B: program cards ---------- */
.cards{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.card2{ border:1px solid var(--line); border-radius:5px; padding:8px 12px; background:var(--paper-2); }
.card2 .cn{ font-family:var(--mono); font-size:10px; color:var(--blue); letter-spacing:.06em; display:flex; justify-content:space-between; gap:8px; }
.card2 .cn span{ white-space:nowrap; }
.card2 .cn .tm{ color:var(--mute); }
.card2 .ct{ font-family:var(--disp); font-weight:600; font-size:16px; margin:4px 0 3px; letter-spacing:-.01em; }
.card2 .ct .tba{ font-size:8.5px; }
.card2 .cd{ font-size:10.5px; color:var(--mute); line-height:1.4; }
.card2.wide{ grid-column:1 / -1; }
.card2.accent{ background:var(--blue); border-color:var(--blue); color:#fff; }
.card2.accent .cn{ color:#bcd0ff; } .card2.accent .cd{ color:rgba(255,255,255,.85); }

/* ---------- Poster C: timeline ---------- */
.tl{ position:relative; padding-left:30px; }
.tl::before{ content:""; position:absolute; left:8px; top:8px; bottom:8px; width:2px; background:rgba(59,107,255,.4); }
.tl .day{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--blue-bright); margin:4px 0 3px; position:relative; }
.tl .day:first-child{ margin-top:0; }
.tl .ev{ position:relative; padding:0 0 4px; }
.tl .ev:last-child{ padding-bottom:0; }
.tl .ev::before{ content:""; position:absolute; left:-25px; top:5px; width:10px; height:10px; border-radius:50%; background:var(--blue-bright); border:2px solid #0a1330; box-shadow:0 0 0 3px rgba(59,107,255,.18); }
.tl .ev .tt{ font-family:var(--disp); font-weight:600; font-size:16px; letter-spacing:-.01em; }
.tl .ev .tm{ font-family:var(--mono); font-size:10px; color:rgba(255,255,255,.55); }
.tl .ev .ds{ font-size:10px; color:rgba(255,255,255,.62); line-height:1.32; margin-top:2px; }

@media(max-width:1180px){ .poster-grid{ justify-content:center; } }

/* ---------- Poster D: minimal teaser (title · logo · partners · schedule only) ---------- */
.poster.teaser .pbody{ justify-content:flex-start; }
.teaser-hero{ margin-top:30px; }
.teaser-hero .ptitle{ font-size:72px; }
.teaser-sov{ font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--blue-bright); margin-top:16px; }
.teaser-date{ margin-top:26px; }
.teaser-date .dd{ font-family:var(--disp); font-weight:600; font-size:40px; letter-spacing:-.02em; color:#fff; line-height:1; }
.teaser-date .dv{ font-family:var(--mono); font-size:12.5px; color:rgba(255,255,255,.7); margin-top:11px; letter-spacing:.04em; }
.mini{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:30px; }
.mini .md{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-bright);
  margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.16); }
.mini .mr{ display:flex; gap:13px; align-items:baseline; padding:5px 0; }
.mini .mt{ font-family:var(--mono); font-size:12.5px; color:var(--blue-bright); width:46px; flex:none; }
.mini .mn{ font-family:var(--disp); font-weight:600; font-size:16px; letter-spacing:-.01em; white-space:nowrap; }
