@import "tailwindcss";

:root { --ink:#080808; --paper:#f3f1ea; --red:#ed3326; --line:rgba(255,255,255,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; background:var(--ink); color:#fff; font-family:var(--font-geist-sans), Pretendard, Arial, sans-serif; }
a { color:inherit; text-decoration:none; }
em { color:var(--red); font-style:normal; }
.site-header { position:fixed; z-index:50; top:0; left:0; right:0; height:84px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(180deg,rgba(0,0,0,.86),transparent); }
.wordmark { display:flex; align-items:center; gap:12px; }
.wordmark-k { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.6); font-size:21px; font-weight:900; }
.wordmark strong,.wordmark small { display:block; letter-spacing:.09em; }
.wordmark strong { font-size:16px; }.wordmark small { font-size:8px; opacity:.6; margin-top:2px; }
nav { display:flex; gap:28px; font-size:12px; letter-spacing:.08em; }
nav a { opacity:.72; transition:.2s; } nav a:hover { opacity:1; color:var(--red); }
.header-cta { border:1px solid rgba(255,255,255,.42); padding:12px 18px; font-size:12px; }.header-cta span,.button span,.text-link span,.pathway-card a span { color:var(--red); }
.hero { min-height:100svh; position:relative; display:flex; align-items:center; overflow:hidden; padding:120px 5vw 90px; }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.85) contrast(1.08); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.42) 58%,rgba(0,0,0,.68) 100%),linear-gradient(0deg,rgba(0,0,0,.9),transparent 45%); }
.hero-content { position:relative; z-index:2; width:min(900px,80vw); }
.kicker,.section-index { font-family:var(--font-geist-mono); font-size:10px; letter-spacing:.22em; color:var(--red); }
.hero-logo-wrap { width:min(520px,62vw); height:125px; overflow:hidden; display:flex; align-items:center; margin:18px 0 12px; }
.hero-logo { width:100%; height:auto; filter:brightness(0) invert(1); object-fit:contain; }
.hero h1 { font-size:clamp(52px,7.6vw,112px); line-height:.9; letter-spacing:-.065em; margin:10px 0 26px; max-width:1000px; }
.hero-copy { font-size:clamp(16px,1.5vw,21px); line-height:1.65; max-width:650px; color:rgba(255,255,255,.7); }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:36px; }
.button { min-height:48px; padding:0 22px; display:inline-flex; align-items:center; gap:18px; justify-content:center; font-size:12px; letter-spacing:.04em; transition:.25s; }
.button-primary { background:var(--red); color:#fff; }.button-primary span { color:#fff; }.button-primary:hover { background:#fff; color:#000; }
.button-ghost { border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.16); backdrop-filter:blur(10px); }.button-ghost:hover { border-color:#fff; }
.hero-meta { position:absolute; z-index:2; bottom:28px; left:5vw; right:5vw; display:flex; justify-content:space-between; font-family:var(--font-geist-mono); font-size:9px; letter-spacing:.16em; color:rgba(255,255,255,.48); }
.section { padding:120px 6vw; }.manifesto { background:var(--paper); color:#0b0b0b; }
.manifesto-grid,.section-heading { display:grid; grid-template-columns:1.45fr .65fr; gap:8vw; margin-top:48px; align-items:start; }
.manifesto h2,.section-heading h2,.creator-copy h2,.awards-copy h2,.membership h2,.contact h2,.festival-copy h2 { margin:0; font-size:clamp(42px,6.2vw,90px); line-height:.98; letter-spacing:-.06em; }
.manifesto-copy>p,.section-heading>p,.creator-copy>p,.awards-copy>p,.festival-copy>p { font-size:17px; line-height:1.8; color:#5b5b56; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ccc8bd; margin-top:50px; padding-top:22px; gap:20px; }
.stats strong,.stats span { display:block; }.stats strong { font-size:28px; }.stats span { font-size:8px; letter-spacing:.14em; margin-top:7px; color:#777; }
.festival-feature { display:grid; grid-template-columns:1.15fr .85fr; min-height:820px; background:#0a0a0a; }
.festival-visual { position:relative; min-height:700px; overflow:hidden; }.festival-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.festival-copy { position:relative; padding:100px 6vw; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.justdo-mark { position:absolute; width:360px; height:360px; right:-120px; top:-70px; object-fit:contain; opacity:.08; transform:rotate(12deg); }
.festival-copy h2 { margin:28px 0; }.festival-copy>p { color:rgba(255,255,255,.6); max-width:560px; }
.festival-facts { display:flex; gap:26px; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; margin:25px 0 30px; font-size:9px; letter-spacing:.11em; }.festival-facts strong { color:var(--red); font-size:14px; margin-right:5px; }
.button-light { background:#fff; color:#000; }.stack-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; }.text-link { font-size:12px; border-bottom:1px solid rgba(255,255,255,.3); padding:8px 0; }
.ecosystem { background:#101010; }.section-heading { margin-bottom:58px; }.section-heading>p { color:rgba(255,255,255,.55); }
.pathway-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.pathway-card { min-height:400px; padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:.3s; }.pathway-card:hover { background:var(--red); }.pathway-card:hover a span { color:#fff; }
.card-top { display:flex; justify-content:space-between; font-family:var(--font-geist-mono); font-size:9px; letter-spacing:.12em; color:rgba(255,255,255,.5); }.pathway-card h3 { margin:95px 0 18px; font-size:27px; letter-spacing:-.04em; }.pathway-card p { font-size:13px; line-height:1.75; color:rgba(255,255,255,.55); }.pathway-card a { margin-top:auto; font-size:11px; }
.creator-strip,.awards-section { display:grid; grid-template-columns:1fr 1fr; min-height:720px; }.creator-logo,.awards-image { position:relative; background:#000; overflow:hidden; }.creator-logo img,.awards-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }.creator-copy,.awards-copy { padding:90px 7vw; display:flex; flex-direction:column; justify-content:center; background:#ece9e1; color:#090909; }.creator-copy h2,.awards-copy h2 { font-size:clamp(42px,5.2vw,78px); margin:28px 0; }.creator-copy>p,.awards-copy>p { color:#5f5c55; }.creator-copy .button { align-self:flex-start; margin-top:24px; }
.organization { background:#090909; }.org-board { max-width:1100px; margin:65px auto 0; text-align:center; }.org-lead,.org-exec { border:1px solid var(--line); width:min(380px,100%); margin:auto; padding:25px; display:flex; flex-direction:column; gap:7px; }.org-board small { font-family:var(--font-geist-mono); font-size:8px; letter-spacing:.15em; color:var(--red); }.org-board strong { font-size:20px; }.org-board span { color:rgba(255,255,255,.45); font-size:11px; }.org-line { width:1px; height:34px; background:var(--line); margin:auto; }.committee-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:36px; }.committee-grid div { padding:22px; background:#0d0d0d; display:flex; justify-content:space-between; font-size:13px; }.org-board>p { font-family:var(--font-geist-mono); font-size:8px; letter-spacing:.16em; color:rgba(255,255,255,.28); margin-top:22px; }
.awards-image { background:#fff; }.awards-image img { object-fit:contain; }.awards-copy { background:var(--red); color:#fff; }.awards-copy em { color:#000; }.awards-copy>p { color:rgba(255,255,255,.75); }.awards-copy .text-link { align-self:flex-start; margin-top:20px; }
.membership { background:#111; }.membership-panel { margin-top:45px; padding:65px; border:1px solid var(--line); display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; background:radial-gradient(circle at 90% 10%,rgba(237,51,38,.18),transparent 42%); }.membership-panel p { max-width:600px; color:rgba(255,255,255,.55); line-height:1.7; }.membership-types { display:flex; flex-direction:column; justify-content:center; }.membership-types span { border-bottom:1px solid var(--line); padding:17px 0; font-family:var(--font-geist-mono); font-size:10px; letter-spacing:.12em; }
.contact { background:var(--paper); color:#090909; padding:110px 6vw; display:grid; grid-template-columns:1fr 1fr; gap:8vw; }.contact h2 { margin-top:30px; }.contact-links a { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid #ccc8bd; }.contact-links span { color:#777; font-size:12px; }.contact-links strong { font-size:13px; }
footer { padding:55px 6vw; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; border-top:1px solid var(--line); }.footer-logo { font-size:42px; font-weight:900; letter-spacing:-.05em; }.footer-logo::first-letter { color:var(--red); } footer p,footer small,footer a { font-size:9px; letter-spacing:.12em; line-height:1.8; color:rgba(255,255,255,.4); } footer div:last-child { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
@media (max-width:1000px) { nav { display:none; }.pathway-grid { grid-template-columns:repeat(2,1fr); }.festival-feature,.creator-strip,.awards-section { grid-template-columns:1fr; }.festival-visual { min-height:62vw; }.creator-logo,.awards-image { min-height:600px; }.festival-copy { padding:80px 7vw; }.manifesto-grid,.section-heading { grid-template-columns:1fr; gap:30px; }.membership-panel { grid-template-columns:1fr; }.contact { grid-template-columns:1fr; } }
@media (max-width:640px) { .site-header { height:70px; padding:0 18px; }.header-cta { padding:10px 12px; font-size:10px; }.hero { padding:105px 20px 90px; }.hero-content { width:100%; }.hero-logo-wrap { width:80vw; height:90px; }.hero h1 { font-size:49px; }.hero-copy { font-size:14px; }.hero-actions { flex-direction:column; align-items:stretch; }.hero-meta span:nth-child(2) { display:none; }.section { padding:82px 22px; }.manifesto h2,.section-heading h2,.membership h2,.contact h2 { font-size:42px; }.stats { grid-template-columns:1fr; }.festival-visual { min-height:88vw; }.festival-copy { padding:75px 22px; }.pathway-grid { grid-template-columns:1fr; }.pathway-card { min-height:330px; }.pathway-card h3 { margin-top:65px; }.creator-logo,.awards-image { min-height:105vw; }.creator-copy,.awards-copy { padding:75px 24px; }.committee-grid { grid-template-columns:1fr 1fr; }.membership-panel { padding:34px 24px; }.contact { padding:80px 22px; }.contact-links a { flex-direction:column; gap:5px; } footer { grid-template-columns:1fr; gap:28px; } footer div:last-child { align-items:flex-start; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

/* Readability pass: preserve the cinematic hierarchy while lifting small copy. */
.wordmark strong { font-size:17px; }
.wordmark small { font-size:10px; opacity:.72; }
nav { font-size:14px; }
.header-cta { font-size:13px; }
.kicker,.section-index { font-size:13px; line-height:1.55; letter-spacing:.16em; }
.button { min-height:50px; font-size:14px; }
.hero-meta { font-size:11px; color:rgba(255,255,255,.62); }
.stats span { font-size:11px; color:#686863; }
.festival-facts { font-size:12px; }
.festival-facts strong { font-size:16px; }
.text-link { font-size:14px; }
.card-top { font-size:11px; color:rgba(255,255,255,.64); }
.pathway-card h3 { font-size:29px; }
.pathway-card p { font-size:15px; color:rgba(255,255,255,.66); }
.pathway-card a { font-size:14px; }
.org-board small { font-size:11px; }
.org-board strong { font-size:22px; }
.org-board span { font-size:13px; color:rgba(255,255,255,.58); }
.committee-grid div { font-size:15px; }
.org-board>p { font-size:10px; color:rgba(255,255,255,.42); }
.membership-types span { font-size:13px; }
.contact-links span { font-size:14px; color:#666; }
.contact-links strong { font-size:15px; }
footer p,footer small,footer a { font-size:11px; color:rgba(255,255,255,.56); }

@media (max-width:640px) {
  .header-cta { font-size:12px; }
  .hero-copy { font-size:16px; }
  .hero-meta { font-size:10px; }
}
