1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 <title>305 Hackathon Series · Code Crunch Worldwide</title> 7 <!-- cc-jsonld:start (managed) --> 8
8<script type="application/ld+json"> 9{ 10 "@context": "https://schema.org", 11 "@type": "BreadcrumbList", 12 "itemListElement": [ 13 { 14 "@type": "ListItem", 15 "position": 1, 16 "name": "Home", 17 "item": "https://codecrunchglobal.vercel.app/" 18 }, 19 { 20 "@type": "ListItem", 21 "position": 2, 22 "name": "Hackathons", 23 "item": "https://codecrunchglobal.vercel.app/hackathons" 24 }, 25 { 26 "@type": "ListItem", 27 "position": 3, 28 "name": "305 Hackathon Series", 29 "item": "https://codecrunchglobal.vercel.app/hackathons/305-hackathon-series" 30 } 31 ] 32} 33 </script>
33 34 <!-- cc-jsonld:end --> 35 <!-- cc-seo:start (managed) --> 36 <link rel="canonical" href="https://codecrunchglobal.vercel.app/hackathons/305-hackathon-series"> 37 <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1"> 38 <meta name="author" content="Code Crunch Worldwide"> 39 <meta name="theme-color" content="#2463EB"> 40 <meta name="keywords" content="Code Crunch, Code Crunch Worldwide, coding community, learn to code, tech community, coding workshops, technical interview prep, hackathons"> 41 <meta property="og:type" content="website"> 42 <meta property="og:site_name" content="Code Crunch Worldwide"> 43 <meta property="og:title" content="305 Hackathon Series · Code Crunch Worldwide"> 44 <meta property="og:description" content="Seven hackathon brands, twelve editions across the year, June through May. Hosted by Code Crunch and partner orgs in Miami."> 45 <meta property="og:url" content="https://codecrunchglobal.vercel.app/hackathons/305-hackathon-series"> 46 <meta property="og:image" content="https://codecrunchglobal.vercel.app/codecrunchworldwide-brand-assets/codecrunchworldwide-official-logo.png"> 47 <meta property="og:image:alt" content="Code Crunch Worldwide"> 48 <meta property="og:locale" content="en_US"> 49 <meta name="twitter:card" content="summary_large_image"> 50 <meta name="twitter:title" content="305 Hackathon Series · Code Crunch Worldwide"> 51 <meta name="twitter:description" content="Seven hackathon brands, twelve editions across the year, June through May. Hosted by Code Crunch and partner orgs in Miami."> 52 <meta name="twitter:image" content="https://codecrunchglobal.vercel.app/codecrunchworldwide-brand-assets/codecrunchworldwide-official-logo.png"> 53 <!-- cc-seo:end --> 54 <meta 55 name="description" 56 content="Seven hackathon brands, twelve editions across the year, June through May. Hosted by Code Crunch and partner orgs in Miami." 57 /> 58 <link rel="preconnect" href="https://fonts.googleapis.com" /> 59 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 60 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@700;800&display=swap" rel="stylesheet" /> 61 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" /> 62 63 <style> 64 :root { 65 --cc-blue: #2463EB; 66 --cc-blue-deep: #1d4ed8; 67 --cc-blue-soft: #eff6ff; 68 --cc-blue-line: #c7dafd; 69 --cc-orange: #F59E0B; 70 --cc-red: #EF4444; 71 --cc-dark: #111827; 72 --cc-ink: #1f2937; 73 --cc-muted: #4b5563; 74 --cc-line: #e5e7eb; 75 --cc-paper: #ffffff; 76 --cc-paper-2: #f8fbff; 77 --cc-amber-soft: #fff8ef; 78 --cc-amber-line: #f5c98b; 79 --shadow-sm: 0 8px 24px rgba(2, 16, 44, 0.08); 80 --shadow-md: 0 18px 36px rgba(2, 16, 44, 0.10); 81 --radius-lg: 20px; 82 --radius-md: 16px; 83 --radius-sm: 12px; 84 --maxw: 1140px; 85 --nav-h: 70px; 86 } 87 88 * { box-sizing: border-box; } 89 html { scroll-behavior: smooth; } 90 91 body { 92 margin: 0; 93 font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 94 color: var(--cc-ink); 95 background: linear-gradient(180deg, var(--cc-paper-2) 0%, #ffffff 60%); 96 padding-top: var(--nav-h); 97 } 98 99 a { color: inherit; text-decoration: none; } 100 101 .container { 102 max-width: var(--maxw); 103 margin: 0 auto; 104 padding: 0 20px; 105 } 106 107 /* Navbar */ 108 .navbar { 109 position: fixed; 110 inset: 0 0 auto 0; 111 z-index: 1000; 112 height: var(--nav-h); 113 background: rgba(255, 255, 255, 0.95); 114 backdrop-filter: blur(10px); 115 border-bottom: 1px solid var(--cc-line); 116 } 117 .nav-row { 118 height: 100%; 119 display: flex; 120 align-items: center; 121 justify-content: space-between; 122 gap: 16px; 123 flex-wrap: wrap; 124 } 125 .brand { 126 display: flex; 127 align-items: center; 128 gap: 10px; 129 } 130 .brand-logo { 131 width: 36px; 132 height: 36px; 133 display: inline-flex; 134 align-items: center; 135 justify-content: center; 136 border-radius: 10px; 137 background: linear-gradient(135deg, var(--cc-blue), var(--cc-blue-deep)); 138 color: #fff; 139 font-weight: 800; 140 font-size: 14px; 141 letter-spacing: -0.02em; 142 } 143 .brand-title { 144 font-family: "Plus Jakarta Sans", sans-serif; 145 font-weight: 800; 146 font-size: 1.05rem; 147 letter-spacing: -0.02em; 148 color: var(--cc-dark); 149 } 150 .brand-sub { 151 display: block; 152 font-family: "Inter", sans-serif; 153 font-size: 11px; 154 font-weight: 600; 155 color: var(--cc-muted); 156 letter-spacing: 0.04em; 157 text-transform: uppercase; 158 } 159 .nav-actions { display: flex; gap: 8px; flex-wrap: wrap; } 160 .nav-link { 161 padding: 9px 14px; 162 border-radius: 999px; 163 font-size: 14px; 164 font-weight: 700; 165 color: var(--cc-muted); 166 } 167 .nav-link:hover { color: var(--cc-blue); background: var(--cc-blue-soft); } 168 .nav-cta { 169 padding: 10px 18px; 170 border-radius: 999px; 171 background: var(--cc-blue); 172 color: #fff; 173 font-weight: 700; 174 font-size: 14px; 175 box-shadow: 0 8px 18px rgba(36, 99, 235, 0.25); 176 } 177 .nav-cta:hover { background: var(--cc-blue-deep); } 178 179 /* Hero */ 180 .hero { padding: 36px 0 16px; } 181 .hero-grid { 182 display: grid; 183 grid-template-columns: 1.4fr 1fr; 184 gap: 28px; 185 align-items: center; 186 } 187 .hero h1 { 188 margin: 14px 0 12px; 189 font-family: "Plus Jakarta Sans", sans-serif; 190 font-size: clamp(2.1rem, 5vw, 3.4rem); 191 line-height: 1.05; 192 letter-spacing: -0.03em; 193 color: var(--cc-dark); 194 } 195 .hero h1 .accent { color: var(--cc-blue); } 196 .hero p { color: var(--cc-muted); line-height: 1.65; font-size: 1.02rem; max-width: 560px; } 197 .eyebrow { 198 display: inline-flex; 199 align-items: center; 200 gap: 8px; 201 padding: 6px 12px; 202 border-radius: 999px; 203 background: var(--cc-blue-soft); 204 color: var(--cc-blue); 205 font-size: 12px; 206 font-weight: 700; 207 letter-spacing: 0.04em; 208 border: 1px solid var(--cc-blue-line); 209 } 210 .hero-stats { 211 display: grid; 212 grid-template-columns: repeat(3, 1fr); 213 gap: 10px; 214 padding: 20px; 215 background: #fff; 216 border: 1px solid var(--cc-blue-line); 217 border-radius: var(--radius-lg); 218 box-shadow: var(--shadow-sm); 219 } 220 .hero-stat-num { 221 font-family: "Plus Jakarta Sans", sans-serif; 222 font-size: 1.9rem; 223 font-weight: 800; 224 color: var(--cc-blue); 225 letter-spacing: -0.03em; 226 } 227 .hero-stat-label { 228 font-size: 12px; 229 color: var(--cc-muted); 230 font-weight: 600; 231 letter-spacing: 0.03em; 232 text-transform: uppercase; 233 } 234 235 @media (max-width: 760px) { 236 .hero-grid { grid-template-columns: 1fr; } 237 } 238 239 /* Section */ 240 main section { padding: 30px 0; } 241 .section-title { 242 font-family: "Plus Jakarta Sans", sans-serif; 243 font-size: clamp(1.55rem, 3vw, 2.1rem); 244 font-weight: 800; 245 letter-spacing: -0.03em; 246 color: var(--cc-dark); 247 margin: 0 0 6px; 248 } 249 .section-sub { 250 color: var(--cc-muted); 251 margin: 0 0 22px; 252 font-size: 0.98rem; 253 line-height: 1.6; 254 } 255 256 /* Hackathon cards */ 257 .hack-grid { 258 display: grid; 259 grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); 260 gap: 18px; 261 } 262 .hack-card { 263 position: relative; 264 background: #fff; 265 border: 1px solid var(--cc-blue-line); 266 border-radius: var(--radius-lg); 267 box-shadow: var(--shadow-sm); 268 padding: 22px; 269 display: flex; 270 flex-direction: column; 271 gap: 14px; 272 transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; 273 } 274 .hack-card:hover { 275 transform: translateY(-3px); 276 box-shadow: var(--shadow-md); 277 border-color: var(--cc-blue); 278 } 279 .hack-card-top { 280 display: flex; 281 justify-content: space-between; 282 align-items: start; 283 gap: 12px; 284 } 285 .hack-badge { 286 display: inline-flex; 287 align-items: center; 288 gap: 6px; 289 padding: 5px 10px; 290 border-radius: 8px; 291 background: var(--cc-blue-soft); 292 color: var(--cc-blue-deep); 293 border: 1px solid var(--cc-blue-line); 294 font-size: 11px; 295 font-weight: 800; 296 letter-spacing: 0.04em; 297 text-transform: uppercase; 298 } 299 .hack-name { 300 font-family: "Plus Jakarta Sans", sans-serif; 301 font-size: 1.3rem; 302 font-weight: 800; 303 letter-spacing: -0.02em; 304 margin: 0; 305 line-height: 1.2; 306 } 307 .hack-name a { 308 color: var(--cc-dark); 309 display: inline-flex; 310 align-items: center; 311 gap: 8px; 312 transition: color 0.15s ease; 313 } 314 .hack-name a:hover { color: var(--cc-blue); } 315 .hack-name a .arrow { 316 font-size: 0.9rem; 317 color: var(--cc-blue); 318 transition: transform 0.15s ease; 319 } 320 .hack-name a:hover .arrow { transform: translateX(3px); } 321 .hack-host { 322 font-size: 13px; 323 color: var(--cc-muted); 324 line-height: 1.5; 325 margin: 4px 0 0; 326 } 327 .hack-host i { color: var(--cc-blue); margin-right: 6px; } 328 .edition-list { 329 list-style: none; 330 padding: 0; 331 margin: 0; 332 display: grid; 333 gap: 8px; 334 } 335 .edition-row { 336 display: flex; 337 align-items: center; 338 justify-content: space-between; 339 gap: 10px; 340 padding: 10px 12px; 341 border-radius: var(--radius-sm); 342 background: var(--cc-paper-2); 343 border: 1px solid var(--cc-line); 344 font-size: 13.5px; 345 } 346 .edition-date { font-weight: 700; color: var(--cc-dark); } 347 .edition-format { 348 font-size: 11px; 349 font-weight: 700; 350 padding: 3px 8px; 351 border-radius: 6px; 352 letter-spacing: 0.03em; 353 text-transform: uppercase; 354 } 355 .edition-format.friday { background: var(--cc-blue-soft); color: var(--cc-blue-deep); } 356 .edition-format.summer { background: #fff7ed; color: #b45309; border: 1px solid #fde6c2; } 357 .edition-format.virtual { background: #f5f3ff;
357 color: #6d28d9; border: 1px solid #ddd6fe; } 358 .hack-cta { 359 margin-top: auto; 360 padding: 10px 14px; 361 border-radius: 10px; 362 background: var(--cc-dark); 363 color: #fff; 364 font-weight: 700; 365 font-size: 13.5px; 366 text-align: center; 367 display: inline-flex; 368 align-items: center; 369 justify-content: center; 370 gap: 8px; 371 transition: background 0.15s ease; 372 } 373 .hack-cta:hover { background: var(--cc-blue); } 374 375 /* Past / completed editions â muted treatment over the native hack-card */ 376 .hack-card.is-past { opacity: 0.82; background: var(--cc-paper-2); border-color: var(--cc-line); } 377 .hack-card.is-past:hover { opacity: 1; border-color: var(--cc-blue-line); } 378 .hack-card.is-past .hack-cta { background: var(--cc-muted); } 379 .hack-card.is-past .hack-cta:hover { background: var(--cc-blue); } 380 .hack-badge.is-past { background: #f3f4f6; color: var(--cc-muted); border-color: var(--cc-line); } 381 .edition-format.past { background: #f3f4f6; color: var(--cc-muted); border: 1px solid var(--cc-line); } 382 383 /* Format rules */ 384 .rules { 385 background: #fff; 386 border: 1px solid var(--cc-line); 387 border-radius: var(--radius-lg); 388 padding: 24px; 389 box-shadow: var(--shadow-sm); 390 } 391 .rules-grid { 392 display: grid; 393 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); 394 gap: 16px; 395 margin-top: 16px; 396 } 397 .rule-item { 398 padding: 16px; 399 border-radius: var(--radius-md); 400 background: var(--cc-paper-2); 401 border: 1px solid var(--cc-line); 402 } 403 .rule-item h4 { 404 margin: 0 0 6px; 405 font-family: "Plus Jakarta Sans", sans-serif; 406 font-size: 0.98rem; 407 font-weight: 800; 408 color: var(--cc-dark); 409 } 410 .rule-item p { 411 margin: 0; 412 font-size: 13.5px; 413 color: var(--cc-muted); 414 line-height: 1.6; 415 } 416 .rule-icon { 417 width: 36px; 418 height: 36px; 419 display: inline-flex; 420 align-items: center; 421 justify-content: center; 422 border-radius: 10px; 423 background: var(--cc-blue-soft); 424 color: var(--cc-blue); 425 margin-bottom: 10px; 426 } 427 .rule-icon.orange { background: #fff7ed; color: var(--cc-orange); } 428 .rule-icon.purple { background: #f5f3ff; color: #6d28d9; } 429 .rule-icon.red { background: #fef2f2; color: var(--cc-red); } 430 431 /* Footer (CC unified) */ 432 .c305-footer { background:#3b5bdb; color:#fff; padding:3rem 1.25rem; font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; box-sizing:border-box; margin-top: 24px; } 433 .c305-footer * { box-sizing:border-box; } 434 .c305-footer a { color:#fff; text-decoration:none; } 435 .c305-footer a:hover { opacity:.85; text-decoration:underline; } 436 .c305-wrap { max-width:1100px; margin:0 auto; } 437 .c305-cols { display:grid; grid-template-columns:1fr; gap:2rem; } 438 @media (min-width: 760px) { .c305-cols { grid-template-columns:1.2fr 1fr 1fr; } } 439 .c305-footer h3 { font-size:1.1rem; font-weight:700; margin:0 0 .75rem; } 440 .c305-footer h4 { font-size:.85rem; font-weight:700; margin:1rem 0 .6rem; text-transform:uppercase; letter-spacing:.06em; opacity:.9; } 441 .c305-footer p { margin:.25rem 0; font-size:.9rem; opacity:.92; } 442 .c305-website a { text-decoration:underline; opacity:.95; } 443 .c305-links { list-style:none; padding:0; margin:0; } 444 .c305-links li { padding:.18rem 0; font-size:.9rem; opacity:.92; } 445 .c305-orgs { margin-top:2rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.18); } 446 .c305-orgs h4 { margin:0 0 .9rem; } 447 .c305-orglist { display:flex; flex-wrap:wrap; gap:.6rem .7rem; } 448 .c305-org { display:inline-flex; align-items:center; gap:.5rem; padding:.42rem .8rem .42rem .5rem; font-size:.82rem; font-weight:600; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:999px; transition:background .15s, border-color .15s, transform .15s; } 449 .c305-org:hover { background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); transform:translateY(-1px); text-decoration:none; opacity:1; } 450 .c305-org-mark { width:24px; height:24px; border-radius:7px; display:grid; place-items:center; font-size:10px; font-weight:800; letter-spacing:-.02em; color:#fff; background:var(--oc,#111827); } 451 .c305-bottom { margin-top:2rem; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.18); text-align:center; } 452 .c305-bottom .c305-copy { font-size:.85rem; opacity:.85; margin:0; } 453 .c305-bottom .c305-credit { font-size:.78rem; opacity:.7; margin:.6rem 0 0; } 454 .c305-bottom .c305-credit a { color:#4ecdc4; font-weight:600; text-decoration:none; } 455 .c305-bottom .c305-legal { display:none; font-size:.72rem; color:#9AA2AC; opacity:1; margin:.7rem 0 0; line-height:1.6; max-width:78ch; } 456 .c305-bottom .c305-legal:target { display:block; } 457 </style> 458 <!-- mobile-safety-auto: small-phone hardening; desktop untouched --> 459 <style> 460 @media (max-width:640px){ 461 html,body{max-width:100%;overflow-x:hidden} 462 img,svg,video,canvas,iframe,table{max-width:100%!important;height:auto} 463 pre,code{white-space:pre-wrap;word-break:break-word} 464 *{overflow-wrap:break-word} 465 } 466 </style> 467 468<style>/* cc-nav-rollout: neutralise old fixed-nav offset; cc-subhead carries its own spacer */ body{padding-top:0 !important;}</style> 469 <style id="cc-navfix"> 470 /* Mobile nav: keep the CLOSED bar to one row so it stays ~80px and the fixed 471 sub-header (Eastern-Time clock) directly below it can't overlap a wrapped 472 toggle row. The menu still expands below when the hamburger is tapped. */ 473 @media (max-width:1024px){ 474 .cc-global-nav .nav-brand, .cc-global-nav .nav-brand-menu{ min-width:0; flex:1 1 auto; overflow:hidden; } 475 .cc-global-nav .nav-brand-menu>summary{ min-width:0; overflow:hidden; } 476 .cc-global-nav .brand-text{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } 477 .cc-global-nav .nav-toggle{ flex:0 0 auto; } 478 } 479 @media (max-width:520px){ .cc-global-nav .nav-toggle-label{ display:none; } } 480 </style> 481<link rel="stylesheet" href="../css/cc-org-identity.css"> 482</head> 483<body> 484 <!-- cc-global-nav:start â Shared ecosystem primary nav (Explore mega-menu). 485 Drop-in, fully self-contained: all CSS is scoped under .cc-global-nav so it 486 never collides with Tailwind / bespoke page styles, and uses explicit values 487 (no dependency on page design tokens). Mega-menu columns are GLOBAL â identical 488 on every org; only the brand block + accent color change per org via the 489 {{PLACEHOLDERS}} below. Fixed 80px bar; sits directly above the cc-subhead 490 (clock + "On this page"), which is positioned at top:5rem. 491 492 Per-org placeholders (filled by scripts/rollout_global_nav.py): 493 https://codecrunchglobal.vercel.app/ brand link / org home URL 494 https://github.com/user-attachments/assets/c359ccd5-2470-4ba5-a8fe-a32ee12a4e0a <img src alt=""> for the square brand mark (or leave the text mark) 495 CODE big brand word (e.g. CODE / "Hack University") 496 CRUNCH small sub word (e.g. CRUNCH / WORLDWIDE) 497 #2463EB accent / CTA color (e.g. #2463EB) 498 https://hack-university-fundraiser.vercel.app/ Support Us / donate link 499--> 500<style> 501 .cc-global-nav{ 502 position:fixed; top:0; left:0; right:0; z-index:50; 503 background:#fff; border-bottom:1px solid #e5e7eb; 504 min-height:80px; display:flex; align-items:center;
505 -webkit-transform:translate3d(0,0,0); transform:translate3d(0,0,0); isolation:isolate; 506 --cc-gnav-accent: #2463EB; 507 } 508 .cc-global-nav *{ box-sizing:border-box; } 509 .cc-global-nav .nav-container{ width:100%; max-width:1280px; margin:0 auto; padding:0 24px; 510 display:flex; align-items:center; justify-content:space-between; gap:16px; } 511 512 .cc-global-nav .nav-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; } 513 .cc-global-nav .brand-mark{ width:40px; height:40px; border-radius:10px; background:#2463EB; 514 display:flex; align-items:center; justify-content:center; overflow:hidden; flex:0 0 auto; 515 color:#fff; font-weight:900; font-size:14px; letter-spacing:.02em; } 516 .cc-global-nav .brand-mark img{ width:100%; height:100%; object-fit:contain; } 517 .cc-global-nav .brand-text{ display:block; font-size:18px; font-weight:800; color:#111827; line-height:1.05; white-space:nowrap; } 518 .cc-global-nav .brand-sub{ display:block; font-size:10.5px; font-weight:800; color:#2463EB; letter-spacing:.16em; } 519 520 .cc-global-nav .nav-links{ display:flex; align-items:center; gap:14px; } 521 .cc-global-nav .nav-link{ display:inline-flex; align-items:center; gap:6px; 522 color:#374151; font-weight:600; font-size:14px; padding:8px 12px; border-radius:8px; 523 text-decoration:none; cursor:pointer; transition:color .15s ease, background .15s ease; } 524 .cc-global-nav .nav-link:hover{ color:#2463EB; background:#f1f3f4; } 525 .cc-global-nav .nav-cta{ background:#2463EB; color:#fff !important; border-radius:999px; 526 padding:9px 18px; font-weight:800; } 527 .cc-global-nav .nav-cta:hover{ filter:brightness(.93); background:#2463EB; } 528 529 /* cc-nav-dropdowns â Explore + Hackathons + Learn + Get Involved popovers */ 530 .cc-global-nav .nav-menu{ position:relative; } 531 .cc-global-nav .nav-menu > .nav-link{ background:none; border:0; font:inherit; } 532 .cc-global-nav .chev{ transition:transform .2s ease; font-size:11px; } 533 .cc-global-nav .nav-menu.is-open > .nav-link{ color:var(--cc-gnav-accent,#2463EB); background:#f1f3f4; } 534 .cc-global-nav .nav-menu.is-open .chev{ transform:rotate(180deg); } 535 /* Keeps hover alive while the pointer crosses the gap to the panel. */ 536 .cc-global-nav .nav-menu.is-open::after{ content:""; position:absolute; left:0; right:0; top:100%; height:14px; } 537 .cc-global-nav .menu-pop{ 538 position:absolute; top:calc(100% + 12px); left:0; width:min(340px,92vw); 539 background:#fff; border:1px solid #e5e7eb; border-radius:14px; 540 box-shadow:0 24px 48px rgba(15,23,42,.16); padding:16px 18px; 541 max-height:calc(100vh - 120px); overflow-y:auto; overscroll-behavior:contain; 542 opacity:0; visibility:hidden; transform:translateY(-8px); 543 transition:opacity .18s ease, transform .18s ease, visibility .18s; z-index:60; 544 } 545 .cc-global-nav .nav-menu.is-open .menu-pop{ opacity:1; visibility:visible; transform:translateY(0); } 546 .cc-global-nav .menu-pop--wide{ width:min(640px,92vw); } 547 .cc-global-nav .menu-pop h4{ font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; 548 color:var(--cc-gnav-accent,#2463EB); margin:0 0 12px; } 549 .cc-global-nav .menu-pop-list{ display:block; } 550 .cc-global-nav .menu-pop--wide .menu-pop-list{ column-count:2; column-gap:26px; } 551 .cc-global-nav .menu-pop a{ display:block; padding:7px 0; color:#111827; font-weight:700; font-size:14.5px; 552 line-height:1.25; text-decoration:none; break-inside:avoid; -webkit-column-break-inside:avoid; } 553 .cc-global-nav .menu-pop a:hover{ color:var(--cc-gnav-accent,#2463EB); } 554 .cc-global-nav .menu-pop a small{ display:block; font-weight:500; font-size:12.5px; color:#6b7280; margin-top:1px; } 555 /* Mobile toggle */ 556 .cc-global-nav .nav-toggle{ display:none; align-items:center; justify-content:center; gap:8px; 557 width:auto; min-height:42px; padding:0 14px; border-radius:8px; border:1px solid #e5e7eb; background:#fff; color:var(--cc-gnav-accent); cursor:pointer; font-weight:800; font-size:14px; } 558 .cc-global-nav .nav-toggle-label{ white-space:nowrap; } 559 .cc-global-nav .nav-toggle:hover{ background:#f1f3f4; color:#2463EB; } 560 561 @media (max-width:1024px){ 562 .cc-global-nav .nav-toggle{ display:inline-flex; } 563 .cc-global-nav .nav-container{ flex-wrap:wrap; } 564 .cc-global-nav .nav-links{ display:none; width:100%; flex-direction:column; align-items:stretch; gap:6px; padding:8px 0 12px; } 565 .cc-global-nav .nav-links.is-open{ display:flex; max-height:calc(100vh - 80px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; } 566 .cc-global-nav .nav-brand{ min-width:0; } 567 .cc-global-nav .nav-brand > span{ min-width:0; overflow:hidden; } 568 .cc-global-nav .brand-text{ overflow:hidden; text-overflow:ellipsis; } 569 .cc-global-nav .nav-link{ width:100%; } 570 .cc-global-nav .menu-pop{ position:static; width:auto; max-height:none; padding:4px 0 8px; 571 opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; border-radius:0; display:none; } 572 .cc-global-nav .nav-menu.is-open .menu-pop{ display:block; } 573 .cc-global-nav .nav-menu.is-open::after{ display:none; } 574 .cc-global-nav .menu-pop--wide{ width:auto; } 575 .cc-global-nav .menu-pop--wide .menu-pop-list{ column-count:1; } 576 .cc-global-nav .nav-cta{ width:100%; justify-content:center; } 577 } 578</style> 579 580<style id="nav-brand-menu-css"> 581.nav-brand-menu{position:relative;display:inline-flex;align-items:center}
582.nav-brand-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px} 583.nav-brand-menu>summary::-webkit-details-marker{display:none} 584.nav-brand-menu>summary:focus-visible{outline:2px solid #93c5fd;outline-offset:3px;border-radius:8px} 585.nav-brand-menu .brand-chev{margin-left:4px;font-size:11px;color:#6b7280;transition:transform .2s ease} 586.nav-brand-menu[open] .brand-chev{transform:rotate(180deg)} 587.nav-brand-menu[open]::after{content:"";position:absolute;top:100%;left:0;right:0;height:10px} 588.nav-brand-pop{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e4e7ec;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.16);padding:6px;min-width:220px;z-index:2000} 589.nav-brand-pop a{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:7px;color:#0d0d0d!important;text-decoration:none;font-size:.9rem;white-space:nowrap;font-weight:600} 590.nav-brand-pop a:hover{background:#f1f4f9} 591</style> 592<style id="cc-unified-nav-css">.cc-secnav{display:none!important}.cc-subhead-spacer{height:40px!important}body.cc-hdr-collapsed .cc-subhead-spacer{height:0!important}</style> 593<nav class="cc-global-nav" aria-label="Primary"> 594 <div class="nav-container"> 595 <details class="nav-brand-menu" id="ccBrandMenu"> 596 <summary class="nav-brand" aria-label="Home and brand menu"><span class="brand-mark"><img src="https://github.com/user-attachments/assets/c359ccd5-2470-4ba5-a8fe-a32ee12a4e0a" alt="" aria-hidden="true" data-cc="logo" /></span> 597 <span> 598 <span class="brand-text" data-cc="nav-big">CODE</span> 599 <span class="brand-sub" data-cc="nav-sub">CRUNCH</span> 600 </span><i class="fa-solid fa-chevron-down brand-chev" aria-hidden="true"></i></summary> 601 <div class="nav-brand-pop"> 602 <a href="https://codecrunchglobal.vercel.app/" data-cc-link="home"><i class="fa-solid fa-house" aria-hidden="true"></i> Home</a> 603 <a href="/codecrunchworldwide-brand-assets/"><i class="fa-solid fa-swatchbook" aria-hidden="true"></i> Brand assets & logos</a> 604 </div> 605 </details> 606
606<script> 607 (function(){var d=document.getElementById('ccBrandMenu');if(!d)return; 608 if(window.matchMedia('(min-width: 769px)').matches){d.addEventListener('mouseenter',function(){d.open=true;});d.addEventListener('mouseleave',function(){d.open=false;});} 609 document.addEventListener('click',function(e){if(!d.contains(e.target))d.open=false;}); 610 document.addEventListener('keydown',function(e){if(e.key==='Escape')d.open=false;});})(); 611 </script>
611 612 613 614 <button class="nav-toggle" type="button" aria-label="Toggle navigation" aria-controls="ccGnavLinks" aria-expanded="false"> 615 <i class="fa-solid fa-bars" aria-hidden="true"></i><span class="nav-toggle-label">On this page</span> 616 </button> 617 618 <div class="nav-links" id="ccGnavLinks"> 619 <div class="nav-menu" id="ccGnavExplore"> 620 <button class="nav-link" type="button" aria-expanded="false" aria-controls="ccGnavMega"> 621 Explore <i class="fa-solid fa-chevron-down chev" aria-hidden="true"></i> 622 </button> 623 <div class="menu-pop" id="ccGnavMega" role="region" aria-label="Explore the ecosystem"> 624 <h4>Organizations</h4> 625 <div class="menu-pop-list"> 626 <a href="https://hackuniversity.vercel.app/">Hack University <small>Where learners become founders</small></a> 627 <a href="https://codecrunchglobal.vercel.app/">Code Crunch Worldwide <small>Worldwide tech & innovation org</small></a> 628 <a href="https://codecrunchlabs.vercel.app/">Code Crunch Labs <small>R&D and experiments</small></a> 629 <a href="https://colorstackatfiu.vercel.app/">ColorStack at FIU <small>Black & Latinx engineers</small></a> 630 <a href="https://gdgatfiu.vercel.app/">Google Developer Group at FIU <small>On-campus Google developers</small></a> 631 <a href="https://cahsiatfiu.vercel.app/">CAHSI at FIU <small>Hispanic-Serving CS alliance</small></a> 632 <a href="https://swiftclubatfiu.vercel.app/">Swift Club at FIU <small>Apple-platform dev</small></a> 633 <a href="https://upsilonphiepsilon.vercel.app/">Upsilon Phi Epsilon (UPE) <small>Tech honor society</small></a> 634 <a href="https://raspberrypicodecrunch.vercel.app/">Raspberry Pi Code Crunch <small>Hardware & IoT</small></a> 635 <a href="https://crunch305drop.vercel.app/">Crunch305 Drop <small>Ecosystem news</small></a> 636 </div> 637 </div> 638 </div> 639 <a class="nav-link" href="https://hackuniversity.vercel.app/student-volunteer">Intern With Us</a> 640 <a class="nav-link" href="https://codecrunchglobal.vercel.app/home#events">Events</a> 641 <div class="nav-menu" id="ccGnavHackathons"> 642 <button class="nav-link" type="button" aria-expanded="false" aria-controls="ccGnavHackathonsMenu"> 643 Hackathons <i class="fa-solid fa-chevron-down chev" aria-hidden="true"></i> 644 </button> 645 <div class="menu-pop menu-pop--wide" id="ccGnavHackathonsMenu" role="region" aria-label="Hackathons"> 646 <h4>Hackathons</h4> 647 <div class="menu-pop-list"> 648 <a href="https://codecrunchglobal.vercel.app/hackathons/305-hackathon-series.html">Hackathon Series <small>All 305 editions</small></a> 649 <a href="https://codecrunchglobal.vercel.app/hackathons/swiftclubatfiu-hackathons/hackshells-series.html">305 HackShells <small>Cybersecurity & shells</small></a> 650 <a href="https://codecrunchglobal.vercel.app/hackathons/colorstackatfiu-hackathons/codefest-series.html">305 CodeFest <small>Full-stack build sprint</small></a> 651 <a href="https://codecrunchglobal.vercel.app/hackathons/codecrunchworldwide-hackathons/empowher-series.html">305 EmpowHER <small>Bringing all perspectives together</small></a> 652 <a href="https://codecrunchglobal.vercel.app/hackathons/gdgatfiu-hackathons/hackfiesta-miami-series.html">305 HackFiesta Miami <small>Miami's flagship hackathon</small></a> 653 <a href="https://codecrunchglobal.vercel.app/hackathons/cahsiatfiu-hackathons/summercodex-series.html">305 SummerCodeX <small>Summer coding intensive</small></a> 654 <a href="https://codecrunchglobal.vercel.app/hackathons/gdgatfiu-hackathons/veterans-hackathon-series.html">305 Veterans Hackathon <small>Building alongside veterans</small></a> 655 <a href="https://hackuniversity.vercel.app/hackuniversity-photo-albums.html">Photo Albums <small>Hackathon memories</small></a> 656 <a href="https://hackuniversity.vercel.app/hackuniversity-hackwinners.html">Winners & Certificates <small>Past winners & awards</small></a> 657 <a href="https://codecrunchglobal.vercel.app/hacks-toolkit.html">Hacker Toolkit <small>Starter kit & templates</small></a> 658 <a href="https://codecrunchglobal.vercel.app/hack1-resources.html">
658Hack Resources <small>Guides & references</small></a> 659 <a href="https://codecrunchglobal.vercel.app/hack3-judging-criteria.html">Judging Criteria <small>How projects are scored</small></a> 660 <a href="https://codecrunchglobal.vercel.app/hack5-code-of-conduct.html">Code of Conduct <small>Community standards</small></a> 661 </div> 662 </div> 663 </div> 664 <div class="nav-menu" id="ccGnavLearn"> 665 <button class="nav-link" type="button" aria-expanded="false" aria-controls="ccGnavLearnMenu"> 666 Learn <i class="fa-solid fa-chevron-down chev" aria-hidden="true"></i> 667 </button> 668 <div class="menu-pop menu-pop--wide" id="ccGnavLearnMenu" role="region" aria-label="Learn"> 669 <h4>Learn</h4> 670 <div class="menu-pop-list"> 671 <a href="https://codecrunchglobal.vercel.app/courses">All Courses <small>Find the course you are already taking</small></a> 672 <a href="https://codecrunchglobal.vercel.app/ide">Online IDE <small>Write and run code in your browser</small></a> 673 <h4 style="column-span:all;-webkit-column-span:all;break-after:avoid;margin:16px 0 10px">Programs</h4> 674 <a href="https://codecrunchglobal.vercel.app/academy/">Crunch Academy <small>Free K-12 Curriculum</small></a> 675 <a href="https://codecrunchglobal.vercel.app/hackthelearn">HackTheLearn <small>Bootcamp tracks · deep fundamentals, bootcamp pace</small></a> 676 <h4 style="column-span:all;-webkit-column-span:all;break-after:avoid;margin:16px 0 10px">Schools</h4> 677 <a href="https://codecrunchglobal.vercel.app/courses?school=Programming%20And%20Development">School of Programming And Development <small>14 courses · Python, web, mobile, and systems</small></a> 678 <a href="https://codecrunchglobal.vercel.app/courses?school=Languages">School of Languages <small>11 courses · Speak365 and Habla365, a language a day</small></a> 679 <a href="https://codecrunchglobal.vercel.app/courses?school=Data%20Science">School of Data Science <small>8 courses · SQL, statistics, pipelines, and visualization</small></a> 680 <a href="https://codecrunchglobal.vercel.app/courses?school=Artificial%20Intelligence">School of Artificial Intelligence <small>7 courses · neural nets, language models, and agents</small></a> 681 <a href="https://codecrunchglobal.vercel.app/courses?school=Cybersecurity">School of Cybersecurity <small>7 courses · red team, blue team, forensics, and AppSec</small></a> 682 <a href="https://codecrunchglobal.vercel.app/courses?school=Autonomous%20Systems">School of Autonomous Systems <small>6 courses · robotics, drones, navigation, and control</small></a> 683 <a href="https://codecrunchglobal.vercel.app/courses?school=Business">School of Business <small>5 courses · founders, finance, capital, and scale</small></a> 684 <a href="https://codecrunchglobal.vercel.app/courses?school=Cloud%20Computing">School of Cloud Computing <small>5 courses · AWS, GCP, DevOps, and service mesh</small></a> 685 <a href="https://codecrunchglobal.vercel.app/courses?school=Career%20Resources">School of Career Resources <small>4 courses · interview prep, Excel, and the job search</small></a> 686 <a href="https://codecrunchglobal.vercel.app/courses?school=Product%20Management">School of Product Management <small>3 courses · Agile, project management, and product</small></a> 687 <a href="https://codecrunchglobal.vercel.app/courses?school=Hardware%20%26%20Electronics">School of Hardware & Electronics <small>3 courses · circuits, silicon, and edge devices</small></a> 688 <a href="https://codecrunchglobal.vercel.app/courses?school=Law%20%26%20Policy%20Tech">School of Law & Policy Tech <small>3 courses · legal tech, privacy, and governance</small></a> 689 <a href="https://codecrunchglobal.vercel.app/courses?school=Executive%20Leadership">School of Executive Leadership <small>2 courses · leading teams and technical strategy</small></a> 690 <a href="https://codecrunchglobal.vercel.app/courses?school=Bioinformatics%20%26%20Life%20Sciences">School of Bioinformatics & Life Sciences <small>2 courses · genomics and machine learning for biology</small></a> 691 <a href="https://codecrunchglobal.vercel.app/courses?school=Health%20%26%20Medical%20Technology">School of Health & Medical Technology <small>2 courses · health data and medical imaging</small></a> 692 </div> 693 </div> 694 </div> 695 <div class="nav-menu" id="ccGnavGetInvolved"> 696 <button class="nav-link" type="button" aria-expanded="false" aria-controls="ccGnavGetInvolvedMenu"> 697 Get Involved <i class="fa-solid fa-chevron-down chev" aria-hidden="true"></i> 698 </button> 699 <div class="menu-pop menu-pop--wide" id="ccGnavGetInvolvedMenu" role="region" aria-label="Get involved"> 700 <h4>Get Involved</h4> 701 <div class="menu-pop-list"> 702 <a href="https://hackuniversity.vercel.app/hackuniversity-onestopform-user-login.html">Membership <small>Sign in or join through the OneStop Portal</small></a> 703 <a href="https://hackuniversity.vercel.app/membership-and-event-perks">Member Perks <small>Discounts, credits, swag, and event perks through OneStop Portal</small></a> 704 <a href="https://hackuniversity.vercel.app/member-resources-and-opportunities">Resources & Opportunities <small>Tools, jobs, programs, scholarships, and community opportunities</small></a> 705 <a href="https://hackuniversity.vercel.app/hackuniversity-certifcatemembership.html">Membership Certificate <small>Download your certificate for LinkedIn through OneStop Portal</small></a> 706 <a href="https://hackuniversity.vercel.app/#calendar">Events Calendar <small>
706View all tech community events</small></a> 707 <a href="https://gdgatfiubevycalendar.vercel.app/">Google Developer Group at FIU Calendar <small>RSVP for all events and Google Developer Group events through Bevy</small></a> 708 <a href="https://hackuniversity.vercel.app/hackuniversity-attendance-check-in.html">Event Check-In <small>Log your attendance after events</small></a> 709 <a href="https://hackuniversity.vercel.app/hackuniversity-photo-albums.html">Photo Album <small>View official organization photos</small></a> 710 <a href="https://hackuniversity.vercel.app/hackuniversity-community-platforms.html">Community Platforms <small>Join Discord, WhatsApp, and the private Instagram group</small></a> 711 <a href="https://hackuniversity.vercel.app/student-volunteer">Intern With Us <small>Student Ambassador internships and volunteer roles</small></a> 712 <a href="https://hackuniversity.vercel.app/hackuniversity-volunteer-industry-professionals.html">Industry Volunteers <small>Mentor, judge, or support students as an industry professional</small></a> 713 <a href="https://hackuniversity.vercel.app/hackuniversitydonate.html">Support Us <small>Sponsor, donate, or partner with our community</small></a> 714 </div> 715 </div> 716 </div> 717 <a class="nav-link nav-cta" href="https://hack-university-fundraiser.vercel.app/" data-cc-link="support"><i class="fa-solid fa-heart" aria-hidden="true"></i> Support Us</a> 718 </div> 719 </div> 720</nav>
721<script> 722(function(){ 723 var root = document.currentScript ? document.currentScript.previousElementSibling : null; 724 // Fallback: grab by class if previousElementSibling isn't the nav. 725 if(!root || !root.classList || !root.classList.contains('cc-global-nav')){ 726 root = document.querySelector('.cc-global-nav'); 727 } 728 if(!root) return; 729 var links = root.querySelector('#ccGnavLinks'); 730 var toggle = root.querySelector('.nav-toggle'); 731 if(toggle && links){ 732 toggle.addEventListener('click', function(){ 733 var open = links.classList.toggle('is-open'); 734 toggle.setAttribute('aria-expanded', String(open)); 735 }); 736 } 737 var menus = [].slice.call(root.querySelectorAll('.nav-menu')); 738 // Desktop = the burger is hidden. Reads the real breakpoint, which differs 739 // between nav variants (768px on most pages, 1024px on a few). 740 var desktop = function(){ 741 return !toggle || window.getComputedStyle(toggle).display === 'none'; 742 }; 743 // Keep a panel inside the viewport: right-align it when it would run off the 744 // right edge, then nudge it back in if that pushes it off the left edge. 745 var place = function(menu){ 746 var pop = menu.querySelector('.menu-pop'); 747 if(!pop || !desktop()) return; 748 var pad = 12; 749 pop.style.left = ''; pop.style.right = ''; 750 if(pop.getBoundingClientRect().right > window.innerWidth - pad){ 751 pop.style.left = 'auto'; pop.style.right = '0'; 752 } 753 var r = pop.getBoundingClientRect(); 754 if(r.left < pad){ 755 pop.style.right = ''; 756 pop.style.left = (pad - menu.getBoundingClientRect().left) + 'px'; 757 } 758 }; 759 var setOpen = function(menu, open){ 760 menu.classList.toggle('is-open', open); 761 var btn = menu.querySelector('.nav-link'); 762 if(btn) btn.setAttribute('aria-expanded', String(open)); 763 if(open) place(menu); 764 }; 765 var closeAll = function(except){ 766 menus.forEach(function(m){ if(m !== except) setOpen(m, false); }); 767 }; 768 menus.forEach(function(menu){ 769 var btn = menu.querySelector('.nav-link'); 770 if(!btn) return; 771 btn.addEventListener('click', function(e){ 772 e.preventDefault(); 773 // On desktop the pointer opened it on the way in â a click must not 774 // immediately close what the user is reaching for. 775 if(desktop() && menu.classList.contains('is-open')) return; 776 var open = !menu.classList.contains('is-open'); 777 closeAll(menu); 778 setOpen(menu, open); 779 }); 780 menu.addEventListener('mouseenter', function(){ if(desktop()){ closeAll(menu); setOpen(menu, true); } }); 781 menu.addEventListener('mouseleave', function(){ if(desktop()) setOpen(menu, false); }); 782 }); 783 document.addEventListener('click', function(e){ 784 menus.forEach(function(m){ if(!m.contains(e.target)) setOpen(m, false); }); 785 }); 786 document.addEventListener('keydown', function(e){ if(e.key === 'Escape') closeAll(null); }); 787 window.addEventListener('resize', function(){ 788 menus.forEach(function(m){ if(m.classList.contains('is-open')) place(m); }); 789 }); 790})(); 791</script>
791 792 793<!-- Org-aware brand: fills brand block + accent from ?org= / came-from / 794 this page's default. Regression-safe; see js/cc-org.js. -->
795<script>window.CC_DEFAULT_ORG = 'codecrunch';</script>
vendor: 1 bytes, line 795
795
796<script src="/js/cc-org.js"></script>
vendor: 1 bytes, line 796
796
797<script>window.CC_ORG && window.CC_ORG.apply && window.CC_ORG.apply(document);</script>
vendor: 1 bytes, line 797
797
798<script src="/js/cc-pagezoom.js?v=20260828a-clockbar"></script>
798 799<!-- cc-global-nav:end --> 800 801<!-- cc-subhead:start â Line 2 (Eastern Time clock) + Line 3 ("On this page" nav). 802 Drops in after a page's fixed blue navbar (h-20 / 80px). Both lines live in one 803 fixed container so they slide up together and hide on scroll-down (body.cc-hdr-collapsed). 804 The primary navbar (.cc-global-nav) collapses with them, so on mobile all three nav 805 lines clear off-screen on scroll-down and slide back in on scroll-up (no button). The 806 in-flow spacer reserves their height and animates to 0 on collapse so content rises smoothly. 807 808 App mode: when the page is loaded inside the native Code Crunch app (URL ?app=1, or a 809 prior app=1 in this tab via sessionStorage), <html> gets .cc-app and the web nav lines 810 are hidden entirely â the app supplies its own header + bottom nav, so the web hamburger 811 and these bars would only duplicate/overlap it. 812 813 Also ships the shared mobile content-fit pass: media/tables never exceed the viewport, 814 and wide tables/pre/code blocks become horizontally scrollable instead of bleeding off. 815 Inserted by scripts/rollout_subhead.py; re-synced in place by scripts/refresh_subhead.py. -->
816<script> 817 // Set app mode as early as possible (this block parses right after the navbar) 818 // so the nav lines are hidden before first paint instead of flashing in. 819 (function(){ 820 try{ 821 var p = new URLSearchParams(location.search); 822 if(p.get('app') === '1') { try{ sessionStorage.setItem('cc_app','1'); }catch(e){} } 823 if(p.get('app') === '1' || (function(){ try{ return sessionStorage.getItem('cc_app') === '1'; }catch(e){ return false; } })()){ 824 document.documentElement.classList.add('cc-app'); 825 } 826 }catch(e){} 827 })(); 828</script>
828 829<style> 830 .cc-subhead{ position:fixed; top:5rem; left:0; right:0; z-index:40; transition:transform .25s ease; } 831 .cc-subhead-spacer{ height:82px; transition:height .25s ease; } 832 body.cc-hdr-collapsed .cc-subhead{ transform:none; } 833 .cc-clockbar{ transition:height .25s ease, opacity .2s ease, padding .25s ease; overflow:hidden; } 834 body.cc-hdr-collapsed .cc-clockbar{ height:0; opacity:0; border-bottom:0; padding-top:0; padding-bottom:0; } 835 body.cc-hdr-collapsed .cc-subhead-spacer{ height:42px; } 836 837 /* Item 3: the primary navbar collapses with the sub-header, and the in-flow 838 pt-20 wrapper that reserves its 80px reclaims that space â so all three nav 839 lines clear away and content uses the full screen. */ 840 .cc-global-nav{ transition:transform .25s ease; } 841 .cc-subhead-spacer ~ .pt-20{ transition:padding-top .25s ease; } 842 body.cc-hdr-collapsed .cc-subhead-spacer ~ .pt-20{ padding-top:0 !important; } 843 844 .cc-clockbar{ height:40px; background:#fff; border-bottom:1px solid #e5e7eb; display:flex; align-items:center; justify-content:center; gap:10px; padding:0 14px; } 845 .cc-clock-label{ font-size:12.5px; color:#5f6368; font-weight:700; white-space:nowrap; } 846 .cc-clock-time{ font-size:13px; font-weight:900; color:#202124; white-space:nowrap; } 847 .cc-clock-date{ font-size:12.5px; color:#5f6368; white-space:nowrap; } 848 .cc-clock-mini{ display:none; align-items:center; gap:7px; font-size:13px; font-weight:800; color:#5f6368; white-space:nowrap; } 849 850 .cc-secnav{ position:relative; height:42px; background:#fff; border-bottom:1px solid #e5e7eb; } 851 .cc-secnav-summary{ display:none; width:100%; border:0; background:none; font:inherit; cursor:pointer; } 852 .cc-secnav-links{ list-style:none; margin:0; padding:0 14px; height:42px; display:flex; align-items:center; justify-content:center; gap:4px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; } 853 .cc-secnav-links::-webkit-scrollbar{ display:none; } 854 .cc-secnav-links a{ display:inline-flex; align-items:center; padding:6px 12px; border-radius:6px; color:#2463EB; font-weight:700; font-size:13.5px; white-space:nowrap; text-decoration:none; transition:background .15s ease,color .15s ease; } 855 .cc-secnav-links a:hover{ background:#eef3ff; color:#1d4ed8; } 856 857 @media (max-width:768px){ 858 .cc-clock-full{ display:none; } 859 .cc-clock-mini{ display:inline-flex; } 860 .cc-secnav-summary{ display:flex; align-items:center; justify-content:center; gap:8px; height:42px; color:#2463EB; font-weight:800; font-size:13.5px; } 861 .cc-secnav-caret{ transition:transform .2s ease; font-size:11px; } 862 .cc-secnav.is-open .cc-secnav-caret{ transform:rotate(180deg); } 863 .cc-secnav-links{ display:none; position:absolute; top:100%; left:0; right:0; height:auto; flex-direction:column; gap:2px; padding:6px 10px 10px; background:#fff; border-bottom:1px solid #e5e7eb; box-shadow:0 8px 16px rgba(15,23,42,.10); max-height:60vh; overflow:auto; z-index:41; } 864 .cc-secnav.is-open .cc-secnav-links{ display:flex; } 865 .cc-secnav-links a{ width:100%; justify-content:center; padding:10px 12px; } 866 } 867 868 /* App mode: hide the web nav lines entirely (item 1 â no duplicate hamburger / 869 stacked bars over the native app chrome) and tighten the layout. */ 870 html.cc-app .cc-global-nav{ display:none !important; } 871 html.cc-app .cc-subhead{ display:none !important; } 872 html.cc-app .cc-subhead-spacer{ height:0 !important; } 873 html.cc-app .cc-subhead-spacer ~ .pt-20{ padding-top:0 !important; } 874 html.cc-app body{ padding-bottom:96px; } 875 876 /* Item 7: mobile content-fit â nothing exceeds the viewport, and wide tables / 877 pre / code scroll horizontally inside their own box instead of bleeding off 878 or forcing the whole page sideways. Pinch-zoom stays available for fine print. */ 879 @media (max-width:768px){ 880 /* Nothing forces the page wider than the screen â no sideways scroll. */ 881 html, body{ overflow-x:hidden; max-width:100%; } 882 img, video, canvas, svg, iframe{ max-width:100%; } 883 img, video, canvas{ height:auto; } 884 table{ max-width:100%; } 885 pre{ max-width:100%; overflow:auto; -webkit-overflow-scrolling:touch; } 886 .cc-x-scroll{ display:block; width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; } 887 .cc-x-scroll > table{ min-width:max-content; } 888 } 889</style> 890<div class="cc-subhead" id="ccSubhead"> 891 <div class="cc-clockbar" role="status" aria-label="Organization Clock - Eastern Time"> 892 <span class="cc-clock-full">
893 <span class="cc-clock-label">Organization Clock — <strong>Eastern Time (ET)</strong> · Miami, FL</span> 894 <span class="cc-clock-time" id="ccClock"></span> 895 <span class="cc-clock-date">(<span id="ccDate"></span>)</span> 896 </span> 897 <span class="cc-clock-mini"><i class="fas fa-clock" aria-hidden="true"></i> Eastern Time · <span id="ccClockM"></span></span> 898 </div> 899 <nav class="cc-secnav" id="ccSecnav" aria-label="On this page"> 900 <button class="cc-secnav-summary" type="button" id="ccSecnavToggle" aria-expanded="false" aria-controls="ccSecnavLinks"> 901 <i class="fas fa-list-ul" aria-hidden="true"></i> On this page 902 <i class="fas fa-chevron-down cc-secnav-caret" aria-hidden="true"></i> 903 </button> 904 <ul class="cc-secnav-links" id="ccSecnavLinks"> 905 <li><a href="https://codecrunchglobal.vercel.app/home#team">Our Team</a></li> 906 <li><a href="https://codecrunchglobal.vercel.app/home#mission">Mission</a></li> 907 <li><a href="https://codecrunchglobal.vercel.app/courses">Courses</a></li> 908 <li><a href="https://codecrunchglobal.vercel.app/home#events">Events</a></li> 909 <li><a href="https://hackuniversity.vercel.app/hackuniversity-onestopform-user-login.html">Membership</a></li> 910 <li><a href="https://codecrunchglobal.vercel.app/hackathons/305-hackathon-series.html">Hackathons</a></li> 911 <li><a href="https://hackuniversity.vercel.app/member-resources-and-opportunities">Resources</a></li> 912 </ul> 913 </nav> 914</div> 915<div class="cc-subhead-spacer" aria-hidden="true"></div>
915<script> 916 (function(){ 917 // Live Eastern Time clock (full + compact). 918 var f=document.getElementById('ccClock'),d=document.getElementById('ccDate'),m=document.getElementById('ccClockM'); 919 if(f||d||m){ 920 var tick=function(){ 921 var now=new Date(); 922 if(f)f.textContent=new Intl.DateTimeFormat('en-US',{timeZone:'America/New_York',hour:'numeric',minute:'2-digit',second:'2-digit',hour12:true}).format(now)+' ET'; 923 if(d)d.textContent=new Intl.DateTimeFormat('en-US',{timeZone:'America/New_York',weekday:'short',year:'numeric',month:'short',day:'numeric'}).format(now); 924 if(m)m.textContent=new Intl.DateTimeFormat('en-US',{timeZone:'America/New_York',weekday:'short',hour:'numeric',minute:'2-digit',hour12:true}).format(now); 925 }; 926 tick();setInterval(tick,1000); 927 } 928 // "On this page" mobile disclosure. 929 var sn=document.getElementById('ccSecnav'),btn=document.getElementById('ccSecnavToggle'); 930 if(sn&&btn){ 931 btn.addEventListener('click',function(){var o=sn.classList.toggle('is-open');btn.setAttribute('aria-expanded',o?'true':'false');}); 932 sn.querySelectorAll('.cc-secnav-links a').forEach(function(a){a.addEventListener('click',function(){sn.classList.remove('is-open');btn.setAttribute('aria-expanded','false');});}); 933 } 934 // Item 3: collapse all three nav lines on scroll-down, reveal them again on 935 // scroll-up (no button). Hysteresis keeps momentum / elastic scroll from 936 // strobing it. Disabled in app mode (the lines are hidden there). 937 var isApp = document.documentElement.classList.contains('cc-app'); 938 if(!isApp && !window.__ccHdrCollapse){ 939 window.__ccHdrCollapse=true; 940 window.__ccLastY=Math.max(0,window.scrollY||0); window.__ccAcc=0; 941 var ticking=false; 942 var TOP=90,DOWN=64,UP=48; // px: stay open near top; cumulative travel to collapse/reveal 943 var upd=function(){ 944 var y=Math.max(0,window.scrollY||0),dy=y-window.__ccLastY;window.__ccLastY=y;ticking=false; 945 if(y<TOP){document.body.classList.remove('cc-hdr-collapsed');window.__ccAcc=0;return;} 946 if((dy>0)!==(window.__ccAcc>0))window.__ccAcc=0; // reset on direction change 947 window.__ccAcc+=dy; 948 if(window.__ccAcc>DOWN){document.body.classList.add('cc-hdr-collapsed');window.__ccAcc=0;} 949 else if(window.__ccAcc<-UP){document.body.classList.remove('cc-hdr-collapsed');window.__ccAcc=0;} 950 }; 951 window.addEventListener('scroll',function(){if(!ticking){window.requestAnimationFrame(upd);ticking=true;}},{passive:true}); 952 } 953 // Item 7: make wide tables (and oversized pre/code blocks) horizontally 954 // scrollable on small screens instead of overflowing the page. 955 var wrapWide=function(){
956 try{ 957 document.querySelectorAll('table').forEach(function(t){ 958 var p=t.parentElement; 959 if(p && p.classList && p.classList.contains('cc-x-scroll')) return; 960 if(t.closest && t.closest('.cc-x-scroll')) return; 961 var box=document.createElement('div'); box.className='cc-x-scroll'; 962 t.parentNode.insertBefore(box,t); box.appendChild(t); 963 }); 964 }catch(e){} 965 }; 966 if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',wrapWide);}else{wrapWide();} 967 })(); 968</script>
968 969<!-- cc-subhead:end --> 970 971 <header class="hero"> 972 <div class="container"> 973 <div class="hero-grid"> 974 <div> 975 <span class="eyebrow"><i class="fa-solid fa-calendar-week"></i> June â May</span> 976 <h1>The <span class="accent">305 Hackathon Series.</span></h1> 977 <p>Seven hackathons. Twelve editions across the year. Each one hosted by a Miami learner tech org. Pick a hackathon to see all of its editions.</p> 978 </div> 979 <div class="hero-stats"> 980 <div> 981 <div class="hero-stat-num">7</div> 982 <div class="hero-stat-label">Hackathons</div> 983 </div> 984 <div> 985 <div class="hero-stat-num">12</div> 986 <div class="hero-stat-label">Editions</div> 987 </div> 988 <div> 989 <div class="hero-stat-num">6</div> 990 <div class="hero-stat-label">Host orgs</div> 991 </div> 992 </div> 993 </div> 994 </div> 995 </header> 996 997 <!-- "Happening now / Up next" â rotates through live + upcoming editions vs 998 today's date, rendered by CCHackSeries.renderNow (js/cc-hack-series.js). --> 999 <div id="hack-now"></div> 1000 1001 <main> 1002 <section id="hackathons"> 1003 <div class="container"> 1004 <h2 class="section-title">Hackathons</h2> 1005 <p class="section-sub">Click a hackathon name to open its page and see every edition. Ordered by the next upcoming edition â the current month comes first.</p> 1006 1007 <!-- Rendered from js/hackathons-data.js via CCHackSeries.renderIndex (see 1008 the script block before </body>). Series are auto-ordered current-month 1009 first, then upcoming, then those with only past editions. The 'general' 1010 editions render in their own curated section below, so they're excluded 1011 here. --> 1012 <div class="hack-grid" id="hack-grid"></div> 1013 </div> 1014 </section> 1015 1016 <section id="format"> 1017 <div class="container"> 1018 <h2 class="section-title">Session format</h2> 1019 <p class="section-sub">Every edition runs two sessions. Session A is in person, starting May 2026. Session B is virtual. Promos unlock at the start of the event for both Session A and Session B. In-person Session A participants must demo at the closing ceremony, and a bonus challenge is unveiled live at that ceremony.</p> 1020 1021 <div class="rules"> 1022 <div class="rules-grid"> 1023 <div class="rule-item"> 1024 <div class="rule-icon orange"><i class="fa-solid fa-sun"></i></div> 1025 <h4>Summer (May - Aug)</h4> 1026 <p>One month asynchronous window. Session B virtual only.</p> 1027 </div> 1028 <div class="rule-item"> 1029 <div class="rule-icon"><i class="fa-solid fa-building"></i></div> 1030 <h4>Friday 12hr (Sep - Apr)</h4> 1031 <p>Non-holiday Friday with no FIU event overlap. 12 hours. Session A in person, Session B virtual.</p> 1032 </div> 1033 <div class="rule-item"> 1034 <div class="rule-icon purple"><i class="fa-solid fa-laptop"></i></div> 1035 <h4>December</h4> 1036 <p>Fully virtual edition for both sessions.</p> 1037 </div> 1038 <div class="rule-item"> 1039 <div class="rule-icon red"><i class="fa-solid fa-trophy"></i></div> 1040 <h4>Demos & bonus</h4> 1041 <p>Promos unlock at the start. In-person Session A must demo and gets a bonus challenge live at the ceremony.</p> 1042 </div> 1043 </div> 1044 </div> 1045 </div> 1046 </section> 1047 </main> 1048 1049 <!-- BEGIN crunch305 unified footer --> 1050<style> 1051 .c305-footer { background:#ffffff; color:#5B6470; border-top:1px solid #E6E8EC; padding:56px 20px 40px; font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; line-height:1.6; box-sizing:border-box; width:100%; flex:0 0 auto; align-self:stretch; } 1052 .c305-footer * { box-sizing:border-box; } 1053 .c305-footer a { color:#5B6470; text-decoration:none; transition:color 120ms ease; } 1054 .c305-footer a:hover { color:#3b5bdb; opacity:1; text-decoration:underline; } 1055 .c305-wrap { max-width:1120px; margin:0 auto; } 1056 .c305-cols { display:grid; grid-template-columns:1fr; gap:2rem; } 1057 @media (min-width: 760px) { .c305-cols { grid-template-columns:1.3fr 1fr 1fr; gap:34px; } } 1058 .c305-footer h3 { font-size:1.35rem; font-weight:300; letter-spacing:-.02em; color:#0a0a0a; margin:0 0 .6rem; } 1059 .c305-footer h4 { font-size:.68rem; font-weight:600; color:#8A929C; margin:1.2rem 0 .6rem; text-transform:uppercase; letter-spacing:.12em; opacity:1; } 1060 .c305-footer p { margin:.25rem 0; font-size:.88rem; color:#8A929C; opacity:1; } 1061 .c305-website a { text-decoration:underline; } 1062 .c305-socials { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:.5rem; } 1063 .c305-soc { display:inline-flex; flex-direction:row; align-items:center; gap:7px; padding:0; font-size:.82rem; text-align:left; transition:color .15s ease; } 1064 .c305-soc i { font-size:.95rem; line-height:1; color:#8A929C; } 1065 .c305-soc span { font-size:.82rem; font-weight:500; } 1066 .c305-soc:hover { color:#3b5bdb; transform:none; text-decoration:none; } 1067 .c305-soc:hover i { color:#3b5bdb; } 1068 .c305-links { list-style:none; padding:0; margin:0; } 1069 .c305-links li { padding:.22rem 0; font-size:.9rem; opacity:1; } 1070 .c305-bottom { margin-top:2.2rem; padding-top:1rem; border-top:1px solid #E6E8EC; text-align:left; } 1071 .c305-bottom .c305-copy { font-size:.78rem; color:#8A929C; opacity:1; margin:0; } 1072 .c305-bottom .c305-credit { font-size:.78rem; color:#8A929C; opacity:1; margin:.4rem 0 0; line-height:1.7; } 1073 .c305-bottom .c305-credit a { color:#5B6470; font-weight:600; text-decoration:underline; } 1074 .c305-bottom .c305-legal { display:none; font-size:.72rem; color:#9AA2AC; opacity:1; margin:.7rem 0 0; line-height:1.6; max-width:78ch; } 1075 .c305-bottom .c305-legal:target { display:block; } 1076</style> 1077<footer id="connect" class="c305-footer"> 1078 <div class="c305-wrap"> 1079 <div class="c305-cols"> 1080 <div> 1081 <h3>Code Crunch Worldwide</h3> 1082 <p>Worldwide tech and innovation org. Coding workshops, technical interview prep, project-based learning.</p> 1083 <p class="c305-website"><a href="https://codecrunchglobal.vercel.app/">codecrunchglobal.vercel.app</a></p> 1084 <h4>Connect With Us</h4> 1085 <div class="c305-socials"> 1086 <a href="https://www.linkedin.com/company/codecrunchworldwide" class="c305-soc"><i class="fab fa-linkedin" aria-hidden="true"></i><span>LinkedIn</span></a> 1087 <a href="https://www.instagram.com/codecrunchworldwide/" class="c305-soc"><i class="fab fa-instagram" aria-hidden="true"></i><span>Instagram</span></a> 1088 <a href="https://github.com/CODECRUNCHWORLDWIDE" class="c305-soc"><i class="fab fa-github" aria-hidden="true"></i><span>GitHub</span></a> 1089 <a href="https://www.youtube.com/@CODECRUNCHWORLDWIDE" class="c305-soc"><i class="fab fa-youtube" aria-hidden="true"></i><span>YouTube</span></a> 1090 <a href="https://fiu.campuslabs.com/engage/organization/codecrunch" class="c305-soc"><i class="fas fa-university" aria-hidden="true"></i><span>Panther Connect</span></a> 1091 <a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html" class="c305-soc"><i class="fab fa-whatsapp" aria-hidden="true"></i><span>WhatsApp</span></a> 1092 <a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html" class="c305-soc"><i class="fab fa-discord" aria-hidden="true"></i><span>Discord</span></a> 1093 <a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html" class="c305-soc"><i class="fab fa-instagram" aria-hidden="true"></i><span>IG Group</span></a> 1094 <a href="https://crunch305drop.vercel.app/" class="c305-soc"><i class="fas fa-newspaper" aria-hidden="true"></i><span>News</span></a> 1095 <a href="https://lu.ma/CODECRUNCH" class="c305-soc"><i class="far fa-calendar-alt" aria-hidden="true"></i><span>Events</span></a> 1096 <a href="https://hackuniversity.vercel.app/" class="c305-soc"><i class="fas fa-video" aria-hidden="true"></i><span>Streaming platform</span></a> 1097 <a href="https://witty-suede-4a1.notion.site/ebd/1fe7f868cc8c8042b1ebfebc42034954" class="c305-soc"><i class="fas fa-book" aria-hidden="true"></i><span>Courses</span></a> 1098 <a href="https://hackuniversityattendance.vercel.app/" class="c305-soc"><i class="fas fa-clipboard-check" aria-hidden="true"></i><span>Attendance</span></a> 1099 </div> 1100 </div> 1101 <div> 1102 <h4>Quick Links</h4> 1103 <ul class="c305-links"> 1104 <li><a href="https://codecrunchglobal.vercel.app/">Home</a></li> 1105 <li><a href="https://codecrunchglobal.vercel.app/#mission">Mission</a></li> 1106 <li><a href="https://codecrunchglobal.vercel.app/#events">Events</a></li> 1107 <li><a href="https://codecrunchglobal.vercel.app/hackathons.html">
1107Hackathons</a></li> 1108 <li><a href="https://codecrunchglobal.vercel.app/#learn">Learn</a></li> 1109 <li><a href="https://codecrunchglobal.vercel.app/#membership">Membership</a></li> 1110 <li><a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html">WhatsApp</a></li> 1111 <li><a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html">Join E-Board</a></li> 1112 <li><a href="https://crunch305drop.vercel.app/">News · Crunch305 Drop</a></li> 1113 <li><a href="https://codecrunchglobal.vercel.app/#resources">Resources</a></li> 1114 <li><a href="https://codecrunchglobal.vercel.app/#connect">Connect</a></li> 1115 <li><a href="https://hackuniversity.vercel.app/hackuniversity-onestopform.html">Join Discord / WhatsApp / IG Group</a></li> 1116 <li><a href="#third-party-disclaimer">Disclaimer</a></li> 1117 </ul> 1118 </div> 1119 <div> 1120 <h4>Contact</h4> 1121 <p>Florida International University<br>Miami, FL<br><a href="mailto:[email protected]">[email protected]</a></p> 1122 </div> 1123 </div> 1124 <div class="c305-bottom"> 1125 <p class="c305-copy">©
1125<script>document.write(new Date().getFullYear())</script>
1125 Code Crunch Worldwide. All rights reserved.</p> 1126 <p class="c305-credit">Built with ❤️ for the tech community by <a href="https://www.linkedin.com/in/iba001/" target="_blank" rel="noopener">Brian Bazurto</a> | Powered by innovation and collaboration · part of the Hack University ecosystem · news at <a href="https://crunch305drop.vercel.app/">Crunch305 Drop</a></p> 1127 <p class="c305-legal" id="third-party-disclaimer">All third-party product names, logos, trademarks, frameworks, standards, and registered marks are property of their respective owners. Their use is for identification and educational purposes and does not imply affiliation, sponsorship, certification, or endorsement.</p> 1128 </div> 1129 </div> 1130</footer> 1131<!-- END crunch305 unified footer --> 1132 1133 <!-- Series grid, rendered from the single source of truth. Data first, then the 1134 renderer, then the call. 'general' editions stay in their own section above. --> 1135
1135<script src="/js/hackathons-data.js"></script>
1135 1136
1136<script src="/js/cc-hack-series.js"></script>
1136 1137
1137<script> 1138 CCHackSeries.renderNow('#hack-now'); 1139 CCHackSeries.renderIndex('#hack-grid'); 1140 </script>
1140 1141</body> 1142</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.