.hackathon-story { --ink: #102b3d; --teal: #39706d; --gold: #f1c400; --paper: #f7f5f0; color: #263941; font-family: 'Inter', sans-serif; padding-top: 0; }
.hackathon-shell { margin: 0 auto; width: min(1060px, calc(100% - 48px)); }
.hackathon-hero { background: var(--ink); color: #fff; padding: clamp(4.5rem, 10vw, 8.5rem) 0 clamp(3.75rem, 8vw, 6.5rem); }
.story-breadcrumb { display: flex; font-size: .76rem; font-weight: 700; gap: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.story-breadcrumb a { color: var(--gold); text-decoration: none; }.story-breadcrumb a:hover, .story-breadcrumb a:focus-visible { color: #fff; }
.hackathon-eyebrow { color: var(--gold); font-size: .75rem; font-weight: 700; letter-spacing: .13em; margin-top: 3.3rem; text-transform: uppercase; }.hackathon-eyebrow span { color: rgba(255,255,255,.55); margin: 0 .5rem; }
.hackathon-hero h1 { font-family: 'DM Serif Display', Georgia, serif; font-size: clamp(3rem, 6.8vw, 6.3rem); font-weight: 400; letter-spacing: -.05em; line-height: .94; margin: 1.2rem 0 1.8rem; max-width: 940px; }
.hackathon-dek { color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 1.8vw, 1.32rem); line-height: 1.6; max-width: 640px; }
.hackathon-image-wrap { background: var(--paper); margin: 0; padding: clamp(2rem, 5vw, 4.4rem) max(24px, calc((100% - 1060px) / 2)); }.hackathon-image-wrap img { display: block; height: min(67vw, 650px); margin: 0 auto; max-width: 100%; object-fit: cover; width: 800px; }.hackathon-image-wrap figcaption { color: #617077; font-size: .79rem; line-height: 1.5; margin: .9rem auto 0; max-width: 800px; }
.hackathon-layout { display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: 190px minmax(0, 660px); padding: clamp(4rem, 8vw, 7rem) 0; }.hackathon-meta { border-top: 2px solid var(--gold); padding-top: 1rem; }.hackathon-meta p { border-bottom: 1px solid #d9dedb; font-size: .79rem; line-height: 1.5; padding: 0 0 1rem; }.hackathon-meta p + p { padding-top: 1rem; }.hackathon-meta span { color: var(--teal); display: block; font-size: .68rem; font-weight: 700; letter-spacing: .1em; margin-bottom: .3rem; text-transform: uppercase; }
.hackathon-copy { font-size: 1.05rem; line-height: 1.75; }.hackathon-copy p { margin-bottom: 1.6rem; }.hackathon-copy h2 { color: var(--ink); font-family: 'DM Serif Display', Georgia, serif; font-size: clamp(2rem, 3.6vw, 3.1rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; margin: 3.3rem 0 1rem; }.hackathon-lead { color: var(--ink); font-family: 'DM Serif Display', Georgia, serif; font-size: clamp(1.55rem, 2.6vw, 2rem); line-height: 1.32; }
.story-source { background: var(--paper); border-left: 4px solid var(--gold); margin-top: 3.5rem; padding: 1.5rem; }.story-source p { font-size: .92rem; margin: 0 0 .7rem; }.story-source a, .hackathon-next a { color: var(--ink); font-size: .88rem; font-weight: 700; text-decoration: none; }.story-source a { border-bottom: 1px solid var(--ink); padding-bottom: .2rem; }.story-source a:hover, .story-source a:focus-visible, .hackathon-next a:hover, .hackathon-next a:focus-visible { color: var(--teal); }
.hackathon-next { border-top: 1px solid #d9dedb; padding: 2.2rem 0 3.5rem; }
@media (max-width: 760px) { .hackathon-shell { width: min(calc(100% - 32px), 1060px); }.hackathon-layout { display: block; }.hackathon-meta { margin-bottom: 3rem; }.hackathon-image-wrap { padding-left: 16px; padding-right: 16px; }.hackathon-image-wrap img { height: auto; width: 100%; } }
