/* Hallmark · macrostructure: Marquee Hero · theme: studied-DNA (source: https://typesafe.ai/) · structure: https://cursorvictoria.com/ · nav: edge-aligned · footer: signature · tone: playful technical · pre-emit critique: P5 H5 E4 S5 R5 V4 */
@import url('tokens.css');
@font-face{font-family:Geist;font-weight:400;font-style:normal;src:url('assets/geist-regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Geist;font-weight:800;font-style:normal;src:url('assets/geist-extrabold.ttf') format('truetype');font-display:swap}
@font-face{font-family:'IBM Plex Mono';font-weight:400;font-style:normal;src:url('assets/ibm-plex-mono.ttf') format('truetype');font-display:swap}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem;overflow-x:clip}
body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.55;overflow-x:clip;-webkit-font-smoothing:antialiased}
::selection{background:var(--color-ink);color:var(--color-pink)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}
a{color:inherit;text-decoration:none;text-underline-offset:0.22em}
button{font:inherit;color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:not(:disabled),summary{cursor:pointer}
p,h1,h2,h3{margin:0}
h1,h2,h3{font-family:var(--font-display);font-style:normal;letter-spacing:-0.04em;min-width:0;overflow-wrap:anywhere}
h2{font-size:var(--text-heading);font-weight:800;line-height:1.02}
h3{font-weight:400;font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.2;letter-spacing:-0.03em}
svg{display:block}
.icon-defs{position:absolute;width:0;height:0;overflow:clip}
.icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square;stroke-linejoin:miter}
.section-wrap{width:min(100%,1440px);margin-inline:auto;padding-inline:var(--space-gutter)}
.skip-link{position:fixed;left:var(--space-sm);top:-100px;z-index:10;padding:0.75rem;background:var(--color-ink);color:var(--color-paper)}
.skip-link:focus{top:var(--space-sm)}
.site-header{position:absolute;inset:0 0 auto;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:1.45rem var(--space-gutter);gap:var(--space-lg)}
.wordmark{display:inline-flex;align-items:center;font-weight:800;font-size:2.25rem;line-height:1;letter-spacing:-0.04em;gap:0.3rem;white-space:nowrap}
.brand-star{width:0.45em;height:0.45em;align-self:flex-start;margin-top:0.13em}
.desktop-nav{display:flex;align-items:center;gap:2rem;font-size:1rem}
.desktop-nav a,.header-cta{white-space:nowrap}
.desktop-nav a:hover,.footer-top:hover{text-decoration:underline}
.header-cta{display:flex;gap:0.8rem;align-items:center;font-size:1rem;border-bottom:1px solid currentColor;padding-block:0.4rem}
.header-cta:hover .icon,.text-link:hover .icon{transform:translate(2px,-2px)}
.header-cta .icon,.text-link .icon{transition:transform var(--dur-short) var(--ease-out)}
.menu-toggle,.mobile-nav{display:none}
.hero{position:relative;min-height:790px;height:min(100svh,1020px);display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;background:var(--color-sky)}
.hero-sky{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.hero-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7rem var(--space-gutter) 3rem}
.hero h1{display:flex;flex-direction:column;align-items:center;text-align:center;font-weight:800;line-height:0.85;letter-spacing:-0.04em;width:100%}
.hero-jev{position:relative;display:block;font-size:clamp(11rem,19vw,18rem);padding-right:0.06em}
.hero-star{position:absolute;width:0.2em;height:0.2em;right:-0.27em;top:0.035em;transform:rotate(10deg)}
.hero-hackathon{font-size:clamp(4.8rem,10vw,9.25rem);margin-top:0.16em;line-height:1.02}
.hero-location{font-size:clamp(1.875rem,3vw,2.75rem);line-height:1.2;letter-spacing:-0.03em;margin-top:1.2rem}
.hero-actions{display:flex;align-items:center;gap:1.75rem;margin-top:1.8rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:0.75rem;padding:0.9rem 1.25rem;min-height:52px;white-space:nowrap;font-size:1rem;font-weight:400;border:1px solid var(--color-ink);border-radius:var(--radius-button);transition:transform var(--dur-micro) var(--ease-out)}
.button-dark{color:var(--color-paper);background:var(--color-ink)}
.button:hover{transform:translateY(-2px);background:var(--color-focus)}
.button:active{transform:translateY(0)}
.registration-note{display:flex;align-items:center;gap:0.5rem;white-space:nowrap;font-size:0.9375rem}
.registration-note .icon{width:16px;height:16px}
.registration-note:hover{text-decoration:underline}
.hero-details{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-inline:var(--space-gutter);padding:1.5rem 0 1.7rem;border-top:1px solid var(--color-ink);font-size:0.9375rem;line-height:1.4}
.hero-details a:hover{text-decoration:underline}
.about{display:grid;grid-template-columns:1.08fr 1fr;gap:6rem;padding-block:var(--space-section)}
.pink-underline{background:linear-gradient(transparent 76%,var(--color-pink) 76%,var(--color-pink) 94%,transparent 94%)}
.about-copy{max-width:33rem;padding-top:0.2rem}
.about-copy p:first-child{font-size:clamp(1.3rem,1.7vw,1.6rem);line-height:1.4;letter-spacing:-0.02em;margin-bottom:1.5rem}
.about-copy p:nth-child(2){color:var(--color-muted);margin-bottom:1.6rem}
.text-link{display:inline-flex;align-items:center;gap:0.75rem;border-bottom:1px solid currentColor;padding-bottom:0.25rem;white-space:nowrap;font-size:1rem}
.showcase{background:var(--color-pink);padding-block:clamp(4rem,7vw,6.5rem)}
.showcase h2{margin-bottom:2.25rem}
.showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.showcase-project{--showcase-mat:#e8f4ed;display:flex;flex-direction:column;gap:0.8rem;min-width:0;padding:1rem;border:1px solid var(--color-ink);border-radius:16px;background:var(--color-paper)}
.showcase-project--mint{--showcase-mat:#e8f4ed}
.showcase-project--lavender{--showcase-mat:#efebfa}
.showcase-project--peach{--showcase-mat:#fff0e4}
.showcase-project-header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;min-width:0}
.showcase-creator{display:flex;align-items:center;gap:0.7rem;min-width:0}
.showcase-initials{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--showcase-mat);font-family:var(--font-mono);font-size:0.72rem;color:var(--color-ink)}
.showcase-creator-copy{display:grid;min-width:0;line-height:1.3}
.showcase-creator-name{font-size:0.9rem;font-weight:700;overflow-wrap:anywhere}
.showcase-handle{font-size:0.78rem;color:var(--color-muted);overflow-wrap:anywhere}
.showcase-source{display:inline-flex;align-items:center;gap:0.25rem;flex:none;padding:0.35rem 0.45rem;border:1px solid var(--color-rule);border-radius:999px;font-family:var(--font-mono);font-size:0.72rem;line-height:1}
.showcase-source .icon{width:12px;height:12px}
.showcase-title{min-height:2.35em;font-size:clamp(1.15rem,1.55vw,1.4rem);font-weight:800;line-height:1.18;letter-spacing:-0.03em}
.showcase-demo{display:flex;flex-direction:column;margin-top:auto;color:inherit}
.showcase-media{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--color-rule);border-radius:10px;background:var(--showcase-mat)}
.showcase-media img{position:absolute;inset:0.45rem;display:block;width:calc(100% - 0.9rem);height:calc(100% - 0.9rem);object-fit:contain}
.watch-demo{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding:0.65rem 0.05rem 0.1rem;font-size:0.875rem;font-weight:700}
.showcase-demo .icon{width:16px;height:16px;transition:transform var(--dur-short) var(--ease-out)}
.showcase-demo:hover .watch-demo span{text-decoration:underline;text-underline-offset:0.22em}
.showcase-demo:hover .icon{transform:translate(2px,-2px)}
.showcase-toggle{display:flex;align-items:center;justify-content:center;gap:0.65rem;min-height:48px;margin:1.5rem auto 0;padding:0.65rem 1.05rem;border:1px solid var(--color-ink);border-radius:999px;background:var(--color-paper);font-size:0.9rem;font-weight:700}
.showcase-toggle[hidden]{display:none}
.showcase-toggle:hover{background:var(--color-ink);color:var(--color-paper)}
.showcase-toggle .icon{width:16px;height:16px;transition:transform var(--dur-short) var(--ease-out)}
.showcase-toggle[aria-expanded="true"] .icon{transform:rotate(180deg)}
.showcase-grid.is-collapsed .showcase-project:nth-child(n + 3){display:none}
.day{display:grid;grid-template-columns:1.08fr 1fr;gap:6rem;padding-bottom:var(--space-section);padding-top:1rem}
.day-heading{display:flex;flex-direction:column;align-items:flex-start}
.day-heading p{font-family:var(--font-mono);font-size:0.875rem;line-height:1.65;margin-top:1.65rem;color:var(--color-muted)}
.day-star{width:86px;height:86px;margin-top:3rem;color:var(--color-pink-bright)}
.day-list{border-top:1px solid var(--color-ink)}
.day-item{padding:1.7rem 0 1.8rem;border-bottom:1px solid var(--color-rule)}
.day-item h3{margin-bottom:0.65rem}
.day-item p{color:var(--color-muted);max-width:32rem}
.venue{background:var(--color-ink);color:var(--color-paper)}
.venue-inner{padding-block:5rem;display:grid;grid-template-columns:0.85fr 1.3fr 0.55fr;gap:4rem;align-items:stretch}
.venue-date{display:flex;flex-direction:column;color:var(--color-pink);align-items:flex-start;justify-content:center;font-variant-numeric:tabular-nums}
.month,.year{font-family:var(--font-mono);font-size:1.3rem;line-height:1.2}
.date-number{font-family:var(--font-display);font-weight:800;letter-spacing:-0.04em;line-height:0.95;font-size:clamp(9rem,16vw,16rem);margin:0.15em 0 0.1em}
.year{align-self:flex-end;margin-right:0.25rem}
.venue-copy{border-left:1px solid var(--color-dark-rule);padding-left:4rem}
.venue-copy h2{margin-bottom:1.7rem}
.venue-copy p{margin-bottom:1.6rem}
.venue-copy .text-link{color:var(--color-pink)}
.venue-side{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:0.875rem;white-space:nowrap}
.venue-arrow{width:100px;height:100px;stroke:var(--color-pink);stroke-width:0.9;fill:none}
.faq{display:grid;grid-template-columns:1.08fr 1fr;gap:6rem;padding-block:var(--space-section)}
.faq-list{border-top:1px solid var(--color-ink)}
details{border-bottom:1px solid var(--color-rule)}
summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;font-size:1.15rem;line-height:1.35;list-style:none}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--color-focus)}
.plus{position:relative;flex-shrink:0;width:16px;height:16px}
.plus::before,.plus::after{content:'';position:absolute;background:currentColor;left:0;top:7px;width:16px;height:1px}
.plus::after{transform:rotate(90deg);transition:transform var(--dur-short) var(--ease-out)}
details[open] .plus::after{transform:rotate(0)}
.faq-answer{padding:0 2.5rem 1.6rem 0;color:var(--color-muted);font-size:1rem;line-height:1.6}
.faq-answer .text-link{margin-top:1rem;color:var(--color-ink)}
.registration{background:var(--color-pink)}
.registration-inner{display:grid;grid-template-columns:0.35fr 1.35fr 0.8fr;gap:3rem;align-items:center;padding-block:4.7rem}
.closing-star{width:90px;height:90px}
.registration-inner h2{font-size:clamp(3.3rem,6.1vw,6rem)}
.registration-action{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem}
.registration-action p{font-size:1rem}
.site-footer{padding-block:2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;font-size:0.875rem}
.site-footer .wordmark{font-size:1.9rem}
.site-footer p{color:var(--color-muted)}
.footer-top{display:flex;align-items:center;gap:0.65rem;white-space:nowrap}
@media(min-width:1600px){.hero-content{padding-top:8rem}.hero-details{font-size:1rem}.hero-actions{margin-top:3.2rem}}
@media(max-width:1050px){.about,.day,.faq{gap:3rem}.venue-inner{gap:2rem;grid-template-columns:0.7fr 1.3fr}.venue-copy{padding-left:2rem}.venue-side{display:none}.registration-inner{grid-template-columns:0.3fr 1.3fr 1fr;gap:2rem}.closing-star{width:64px;height:64px}.hero-details{font-size:0.875rem}.desktop-nav{gap:1.3rem}.showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){
  .site-header{padding-block:1.25rem;gap:1.1rem}.wordmark{font-size:2rem}.desktop-nav{display:none}.header-cta{margin-left:auto;font-size:0.875rem;gap:0.5rem}.header-cta .icon{width:16px;height:16px}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;background:none;border:none;padding:10px;width:40px;height:40px}.menu-toggle span{width:20px;height:1px;background:currentColor;transition:transform var(--dur-short) var(--ease-out)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-nav:not([hidden]){display:flex;position:absolute;top:calc(100% - 0.5rem);left:var(--space-gutter);right:var(--space-gutter);background:var(--color-paper);border:1px solid var(--color-ink);padding:0.75rem 1.25rem;flex-direction:column}.mobile-nav a{padding:0.7rem 0;font-size:1rem}.mobile-nav a+a{border-top:1px solid var(--color-rule)}
  .hero{min-height:700px;height:92svh;max-height:840px}.hero-content{padding:6rem var(--space-gutter) 2.2rem;justify-content:center}.hero-sky{object-position:center;object-fit:fill}
  .hero-jev{font-size:clamp(8rem,34vw,15rem)}.hero-star{width:0.14em;height:0.14em;right:-0.11em;top:-0.09em}.hero-hackathon{font-size:clamp(3rem,11.9vw,5.5rem);margin-top:0.26em;letter-spacing:-0.04em}.hero-actions{flex-direction:column;gap:1.1rem;margin-top:2.5rem}.hero-details{display:grid;grid-template-columns:1fr;gap:0.6rem;padding-block:1.1rem 1.5rem;font-size:0.875rem}.hero-details span{display:none}
  .about,.day,.faq{grid-template-columns:minmax(0,1fr);gap:2.4rem}.about-copy{max-width:none}.about-copy p:first-child{font-size:1.35rem}.day{padding-top:0}.day-heading{position:relative;padding-right:3.5rem}.day-heading h2 br{display:none}.day-heading p{margin-top:1.25rem}.day-star{position:absolute;right:0;bottom:0.2rem;width:42px;height:42px;margin:0}.day-item{padding-block:1.5rem}.day-item p{font-size:1rem}.day-item h3{font-size:1.5rem}
  .venue-inner{padding-block:3.5rem;gap:1.5rem;grid-template-columns:0.65fr 1.35fr;align-items:start}.venue-copy{padding-left:1.5rem}.venue-copy h2{font-size:clamp(2.2rem,6.7vw,3.2rem)}.venue-copy p{font-size:0.9375rem;line-height:1.7}.venue-copy .text-link{font-size:0.875rem;gap:0.5rem}.date-number{font-size:clamp(5.2rem,20vw,9rem)}.month,.year{font-size:0.9375rem}.year{align-self:flex-start;margin:0}.venue-date{padding-top:0.2rem}
  .faq h2 br{display:none}.faq-list{min-width:0}.faq-answer{padding-right:1rem}.faq summary{font-size:1.0625rem}
  .showcase-grid{grid-template-columns:minmax(0,1fr);gap:1rem}.showcase h2{margin-bottom:1.75rem}.showcase-project{gap:0.7rem;padding:0.85rem}.showcase-title{min-height:0;font-size:1.375rem}.watch-demo{font-size:0.8125rem}
  .registration-inner{grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:3rem;position:relative}.closing-star{position:absolute;right:var(--space-gutter);top:3.4rem;width:46px;height:46px}.registration-inner h2{font-size:clamp(3rem,10vw,4.5rem);padding-right:3rem}.registration-action{gap:1rem}.registration-action p{font-size:1rem}
  .site-footer{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding-block:1.6rem}.site-footer .footer-top{justify-self:end}.site-footer p{grid-column:1/-1;grid-row:2;font-size:0.8125rem}.site-footer .wordmark{font-size:1.8rem}
}
@media(max-width:359px){.site-header{gap:0.65rem}.hero-details{font-size:0.8125rem}.hero{min-height:660px}.hero-jev{font-size:9rem}.hero-hackathon{font-size:3rem}.registration-note{font-size:0.8125rem}.venue-inner{gap:1rem}.venue-copy{padding-left:1rem}.venue-copy h2{font-size:2.2rem}.venue-copy .text-link{font-size:0.8125rem}.day-star{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
