:root{--bg:#050505;--bg-2:#0a0a0a;--surface:#101010;--surface-2:#161616;--fg:#fafafa;--fg-2:#c8c8c8;--fg-3:#8a8a8a;--fg-4:#555;--mute:#8a8a8a;--line:#ffffff1f;--line-soft:#ffffff0f;--line-strong:#ffffff38;--inv-bg:#fafafa;--inv-fg:#050505;--accent:#fafafa;--accent-soft:#ffffff1a;--glow:#ffffff12;--glow-strong:#ffffff24;--bg-grid:#ffffff06;--display:"Syne", ui-sans-serif, system-ui, sans-serif;--sans:"Outfit", ui-sans-serif, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.645, .045, .355, 1);--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:22px;--rail-prose:72ch;--rail-list:96ch;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100vw;min-height:100%;margin:0;padding:0;overflow-x:hidden}html{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{background:var(--bg);transition:background-color .4s var(--ease), color .4s var(--ease);min-height:100vh;line-height:1.5;position:relative}body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle,#ffffff1c .9px,#0000 1.4px);background-position:0 0;background-size:9px 9px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(140% 120%,#000 45%,#0000 95%);mask-image:radial-gradient(140% 120%,#000 45%,#0000 95%)}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(520px 420px at 12% 18%, var(--glow-strong), transparent 70%), radial-gradient(600px 500px at 88% 72%, var(--glow), transparent 72%), radial-gradient(420px 360px at 52% 48%, var(--glow), transparent 75%);filter:blur(12px);animation:32s ease-in-out infinite alternate bg-drift;position:fixed;inset:-20%}@keyframes bg-drift{0%{opacity:.9;transform:translate(0,0)scale(1)}50%{opacity:1;transform:translate(-2%,1.5%)scale(1.04)}to{opacity:.85;transform:translate(1.5%,-1%)scale(1.02)}}#root{z-index:1;position:relative}::selection{background:var(--fg);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}h1,h2,h3,h4,p{margin:0}img{max-width:100%;display:block}.display{font-family:var(--display);letter-spacing:-.035em;font-weight:700;line-height:.92}.display-tight{font-family:var(--display);letter-spacing:-.025em;font-weight:600;line-height:.98}.label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:500}.label--mute{color:var(--fg-4)}.rule{background:var(--line);width:100%;height:1px}.rule--thick{background:var(--line-strong);height:1px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}body:after{animation:none}}.shell{width:100%;max-width:100vw;margin:0 auto;padding:0;position:relative;overflow-x:hidden}.bound{padding:0 clamp(20px,4vw,64px)}.hero{isolation:isolate;place-items:center;width:100%;height:100svh;min-height:100vh;margin:0;padding:clamp(32px,6vh,80px) clamp(20px,4vw,64px);display:grid;position:relative;overflow:hidden}.hero-inner{z-index:1;text-align:center;justify-items:center;gap:clamp(18px,3vh,36px);width:100%;max-width:min(1180px,94vw);display:grid;position:relative}.hero-eyebrow{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--fg-3);border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(6px);background:linear-gradient(#ffffff06,#fff0);border-radius:999px;align-items:center;gap:12px;padding:8px 14px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.hero-eyebrow-name{color:var(--fg-2)}.hero-eyebrow-sep{color:var(--fg-4);letter-spacing:0;opacity:.7}.hero-eyebrow-meta{color:var(--fg-3)}.hero-eyebrow-dot{background:var(--fg);width:6px;height:6px;box-shadow:0 0 10px var(--glow-strong), 0 0 0 3px #ffffff0d;border-radius:50%;animation:2.4s ease-in-out infinite hero-pulse}@keyframes hero-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}.hero-tagline{max-width:100%;color:var(--fg);justify-items:center;gap:0;margin:0;display:grid}.hero-line{font-family:var(--display);line-height:.96;display:block}.hero-line-lead{letter-spacing:-.03em;color:var(--fg-2);font-size:clamp(30px,5.2vw,84px);font-weight:600}.hero-line-accent-wrap{isolation:isolate;margin:clamp(2px,.4vh,8px) 0 clamp(4px,.6vh,10px);display:inline-block;position:relative}.hero-line-accent-glow{filter:blur(22px);pointer-events:none;z-index:-1;background:radial-gradient(62% 62% at 50% 55%,#ffffff24,#0000 70%);position:absolute;inset:-28% -14%}.hero-line-accent{letter-spacing:-.05em;color:var(--fg);will-change:clip-path;padding:0 .04em;font-size:clamp(68px,12.4vw,208px);font-style:italic;font-weight:500;line-height:.88;position:relative}.hero-line-accent:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--line-strong) 25%, var(--line-strong) 75%, transparent 100%);opacity:.35;height:1px;position:absolute;bottom:-.08em;left:8%;right:8%}.hero-line-trail{letter-spacing:-.015em;color:var(--fg-3);max-width:28ch;margin-top:clamp(6px,1vh,14px);font-size:clamp(18px,2.3vw,36px);font-weight:500;line-height:1.18}.hero-tagline .accent{color:var(--accent)}.hero-rule{background:var(--line-strong);transform-origin:50%;width:clamp(40px,4vw,64px);height:1px;margin-top:clamp(4px,1vh,10px)}.hero-socials{flex-wrap:wrap;justify-content:center;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hero-chip{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:color-mix(in srgb, var(--surface) 40%, transparent);-webkit-backdrop-filter:blur(8px)saturate(120%);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);transition:color .45s var(--ease), border-color .45s var(--ease), background .45s var(--ease), transform .45s var(--ease), box-shadow .45s var(--ease);align-items:center;gap:10px;padding:9px 16px 9px 18px;font-size:11px;font-weight:500;display:inline-flex;position:relative}.hero-chip:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.hero-chip-icon{width:13px;height:13px;color:color-mix(in srgb, currentColor 70%, transparent);transition:color .45s var(--ease);justify-content:center;align-items:center;display:inline-flex}.hero-chip-icon svg{width:100%;height:100%;display:block}.hero-chip:hover .hero-chip-icon{color:currentColor}.hero-scroll{z-index:1;font-family:var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--fg-4);transition:color .4s var(--ease);flex-direction:column;align-items:center;gap:10px;font-size:10px;font-weight:500;display:inline-flex;position:absolute;bottom:clamp(22px,4vh,44px);left:50%;transform:translate(-50%)}.hero-scroll:hover{color:var(--fg-2)}.hero-scroll-line{background:linear-gradient(to bottom, transparent, var(--line-strong) 40%, var(--line-strong));width:1px;height:40px;display:block;position:relative;overflow:hidden}.hero-scroll-line:after{content:"";background:var(--fg);width:1px;height:12px;animation:2.4s cubic-bezier(.45,0,.2,1) infinite hero-scroll-fall;position:absolute;top:0;left:0}@keyframes hero-scroll-fall{0%{opacity:0;transform:translateY(-14px)}25%{opacity:1}80%{opacity:0;transform:translateY(40px)}to{opacity:0;transform:translateY(40px)}}@media (width<=720px){.hero-eyebrow{letter-spacing:.18em;gap:10px;padding:7px 12px;font-size:10px}.hero-eyebrow-sep,.hero-eyebrow-meta{display:none}.hero-line-trail{max-width:22ch}.hero-socials{gap:8px}.hero-scroll{display:none}}.section-head{isolation:isolate;text-align:center;grid-template-columns:1fr;gap:28px;padding:clamp(100px,14vh,160px) clamp(20px,4vw,64px) 48px;display:grid;position:relative}.section-head .section-title{margin-inline:auto}.section-head:before{content:"";pointer-events:none;z-index:-1;background-image:radial-gradient(circle,#ffffff1c 1px,#0000 1.5px);background-size:9px 9px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(55% 78% at 50% 55%,#000000f2 0%,#00000059 45%,#0000 80%);mask-image:radial-gradient(55% 78% at 50% 55%,#000000f2 0%,#00000059 45%,#0000 80%)}.section-head:after{content:"";background:radial-gradient(ellipse 38% 52% at 50% 55%, var(--glow-strong), transparent 72%);pointer-events:none;z-index:-2;filter:blur(4px);position:absolute;inset:-5% -8%}.section-head-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;display:flex}.section-num{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-4);font-size:11px;font-weight:500}.section-num-big{font-family:var(--display);letter-spacing:-.05em;color:var(--fg-3);font-variant-numeric:tabular-nums;font-size:clamp(52px,7vw,104px);font-weight:700;line-height:.9}.section-title{font-family:var(--display);overflow-wrap:break-word;word-break:break-word;color:var(--fg);text-shadow:0 0 28px var(--bg), 0 0 70px var(--bg);padding-bottom:.12em;font-size:clamp(32px,6.6vw,112px);font-weight:600;line-height:1.02}.section-title .accent{color:var(--accent);padding:0 .04em;font-style:italic;font-weight:500}.project-groups{width:100%;max-width:calc(var(--rail-list) + clamp(40px, 8vw, 160px));flex-direction:column;gap:clamp(46px,6vw,78px);margin:0 auto;padding:0 clamp(20px,4vw,64px);display:flex}.project-group{flex-direction:column;gap:clamp(18px,2.2vw,28px);display:flex}.project-group-head{align-items:center;gap:clamp(12px,1.4vw,20px);min-height:28px;display:flex}.project-group-mark{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500;line-height:1}.project-group-rule{background:linear-gradient(90deg, transparent 0%, var(--line) 18%, var(--line) 82%, transparent 100%);flex:1;min-width:clamp(20px,5vw,96px);height:1px}.project-group-title{font-family:var(--display);letter-spacing:-.015em;color:var(--fg);white-space:nowrap;margin:0;padding:0 .06em .1em;font-size:clamp(19px,1.9vw,26px);font-style:italic;font-weight:500;line-height:1}.project-group-span{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-4);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500;line-height:1}.project-group-grid{gap:clamp(14px,1.7vw,20px);margin:0;padding:0;list-style:none;display:grid}.project-group[data-density=solo] .project-group-grid{grid-template-columns:minmax(0,1fr)}.project-group[data-density=pair] .project-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-group[data-density=triad] .project-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-group[data-density=quad] .project-group-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bento-cell{min-width:0;display:flex}.bento-tile{isolation:isolate;border-radius:var(--r-md);background:linear-gradient(180deg, #ffffff0a, transparent 44%), linear-gradient(145deg, var(--surface) 0%, #101010b8 48%, #05050538 100%);border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(18px)saturate(120%);transition:background .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease), transform .5s var(--ease);flex-direction:column;flex:1;gap:clamp(18px,2vw,26px);padding:clamp(24px,2.8vw,42px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0e,inset 0 -1px #ffffff06,0 24px 70px -56px #000000e6}.bento-tile[data-density=solo]{min-height:clamp(300px,34vw,440px)}.bento-tile[data-density=pair]{min-height:clamp(280px,28vw,340px)}.bento-tile[data-density=triad]{min-height:clamp(260px,24vw,300px)}.bento-tile[data-density=quad]{gap:clamp(14px,1.6vw,20px);min-height:clamp(260px,24vw,320px);padding:clamp(18px,1.8vw,24px)}.bento-tile:before{content:"";opacity:.35;pointer-events:none;z-index:0;transition:opacity .6s var(--ease);background-image:radial-gradient(circle,#ffffff1f .8px,#0000 1.35px),linear-gradient(135deg,#0000 0%,#ffffff13 100%);background-size:9px 9px,100% 100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(78% 78% at 8% 12%,#000000db 0%,#00000038 48%,#0000 78%);mask-image:radial-gradient(78% 78% at 8% 12%,#000000db 0%,#00000038 48%,#0000 78%)}.bento-tile:after{content:"";background:radial-gradient(ellipse 62% 58% at 88% 18%, var(--glow-strong), transparent 70%), radial-gradient(ellipse 48% 52% at 20% 92%, var(--glow), transparent 74%), linear-gradient(120deg, transparent 0%, #ffffff0f 44%, transparent 52%);filter:blur(10px);opacity:.55;pointer-events:none;z-index:0;transition:opacity .7s var(--ease), transform .8s var(--ease);position:absolute;inset:-18% -12% -22%}.bento-tile:hover{background:linear-gradient(180deg, #ffffff0e, transparent 42%), linear-gradient(135deg, var(--surface-2) 0%, #121212d6 50%, #0a0a0a59 100%);border-color:var(--line);box-shadow:inset 0 1px 0 #ffffff12, inset 0 -1px 0 #ffffff09, 0 32px 82px -44px #000000f2, 0 0 90px -18px var(--glow-strong)}.bento-tile:hover:before{opacity:.82}.bento-tile:hover:after{opacity:.95;transform:translate(-1.2%,1.2%)}.bento-tile>*{z-index:1;position:relative}.bento-numeral{font-family:var(--display);letter-spacing:-.07em;color:#0000;-webkit-text-stroke:1px var(--line-soft);font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;transition:-webkit-text-stroke-color .6s var(--ease), transform .8s var(--ease), opacity .6s var(--ease);opacity:.85;font-size:clamp(150px,17vw,260px);font-weight:700;line-height:.8;position:absolute;bottom:-.24em;right:-.1em}.bento-tile[data-density=solo] .bento-numeral{font-size:clamp(180px,20vw,300px);right:-.06em}.bento-tile[data-density=pair] .bento-numeral{font-size:clamp(140px,15vw,220px)}.bento-tile[data-density=triad] .bento-numeral{font-size:clamp(120px,13vw,180px)}.bento-tile[data-density=quad] .bento-numeral{font-size:clamp(100px,11vw,150px)}.bento-tile:hover .bento-numeral{-webkit-text-stroke-color:var(--line);opacity:1;transform:translate(-8px,-8px)}.bento-corner{pointer-events:none;z-index:2;opacity:.72;width:clamp(28px,3vw,42px);height:clamp(28px,3vw,42px);transition:opacity .5s var(--ease), transform .6s var(--ease);position:absolute}.bento-corner:before,.bento-corner:after{content:"";background:var(--line-strong);position:absolute}.bento-corner:before{width:100%;height:1px}.bento-corner:after{width:1px;height:100%}.bento-corner--tl{top:14px;left:14px}.bento-corner--tl:before,.bento-corner--tl:after{top:0;left:0}.bento-corner--br{bottom:14px;right:14px}.bento-corner--br:before,.bento-corner--br:after{bottom:0;right:0}.bento-tile:hover .bento-corner{opacity:1}.bento-tile:hover .bento-corner--tl{transform:translate(-3px,-3px)}.bento-tile:hover .bento-corner--br{transform:translate(3px,3px)}.bento-scanline{background:linear-gradient(180deg, transparent, var(--line), transparent);opacity:.5;pointer-events:none;width:1px;transition:opacity .5s var(--ease), transform .6s var(--ease);position:absolute;top:clamp(58px,6vw,86px);bottom:clamp(76px,7vw,108px);left:clamp(24px,2.8vw,42px)}.bento-tile:hover .bento-scanline{opacity:.9;transform:scaleY(1.04)}.bento-tile[data-density=quad] .bento-scanline{display:none}.bento-head{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.bento-index{border:1px solid var(--line);min-height:24px;font-family:var(--mono);letter-spacing:.16em;color:var(--fg);transition:color .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease);border-radius:3px;align-items:center;padding:4px 8px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.bento-year{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);transition:color .4s var(--ease);font-size:11px;font-weight:500;line-height:1.4}.bento-tile:hover .bento-index{background:var(--accent);border-color:var(--accent);color:var(--inv-fg)}.bento-tile:hover .bento-year{color:var(--fg)}.bento-body{flex-direction:column;flex:1;justify-content:flex-end;gap:clamp(12px,1.3vw,18px);padding-left:clamp(16px,1.7vw,24px);display:flex}.bento-tile[data-density=triad] .bento-body{padding-left:clamp(8px,.8vw,12px)}.bento-tile[data-density=quad] .bento-body{padding-left:0}.bento-name{font-family:var(--display);letter-spacing:-.03em;color:var(--fg);padding-bottom:.08em;font-weight:600;line-height:1.02}.bento-tile[data-density=solo] .bento-name{font-size:clamp(40px,5vw,68px)}.bento-tile[data-density=pair] .bento-name{font-size:clamp(28px,3vw,40px)}.bento-tile[data-density=triad] .bento-name{font-size:clamp(24px,2.4vw,30px)}.bento-tile[data-density=quad] .bento-name{font-size:clamp(20px,2vw,26px)}.bento-desc{font-family:var(--sans);color:var(--fg-2);max-width:60ch;text-shadow:0 0 18px var(--bg);font-size:clamp(14px,1.18vw,15px);line-height:1.6}.bento-tile[data-density=solo] .bento-desc{max-width:64ch;font-size:clamp(15px,1.25vw,17px);line-height:1.55}.bento-tile[data-density=triad] .bento-desc{-webkit-line-clamp:4;-webkit-box-orient:vertical;min-height:4.65em;font-size:13px;line-height:1.55;display:-webkit-box;overflow:hidden}.bento-tile[data-density=quad] .bento-desc{-webkit-line-clamp:5;-webkit-box-orient:vertical;max-width:none;min-height:4.65em;font-size:12.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.bento-foot{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:clamp(14px,1.4vw,20px);display:flex}.bento-meta{align-items:baseline;gap:10px;min-width:0;display:inline-flex}.bento-role{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;transition:color .4s var(--ease);font-size:11px;font-weight:500;line-height:1.4;overflow:hidden}.bento-tile:hover .bento-role{color:var(--fg)}.bento-arrow{font-family:var(--display);background:var(--surface-2);border:1px solid var(--line-soft);width:40px;height:40px;color:var(--fg-3);transition:transform .4s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:18px;font-weight:500;display:inline-flex}.bento-tile:hover .bento-arrow{background:var(--accent);border-color:var(--accent);color:var(--inv-fg);transform:rotate(-45deg)scale(1.06)}@media (width<=1000px){.project-group[data-density=quad] .project-group-grid,.project-group[data-density=triad] .project-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-group-title{font-size:clamp(17px,2.6vw,22px)}}@media (width<=640px){.project-groups{gap:clamp(38px,10vw,52px)}.project-group[data-density=pair] .project-group-grid,.project-group[data-density=triad] .project-group-grid,.project-group[data-density=quad] .project-group-grid{grid-template-columns:1fr;gap:12px}.project-group-head{gap:10px}.project-group-mark,.project-group-span{letter-spacing:.2em}.bento-tile{min-height:240px;padding:22px}.bento-tile[data-density=solo]{min-height:300px}.bento-numeral{font-size:clamp(120px,38vw,200px)!important}}.timeline-list{width:100%;max-width:calc(var(--rail-list) + clamp(40px, 8vw, 128px));gap:14px;margin:0 auto;padding:0 clamp(20px,4vw,64px);list-style:none;display:grid;position:relative}.timeline-card{isolation:isolate;border-radius:var(--r-lg);background:linear-gradient(135deg, var(--surface) 0%, #1010109e 52%, transparent 100%);border:1px solid var(--line-soft);transition:background .6s var(--ease), border-color .6s var(--ease), transform .6s var(--ease), box-shadow .6s var(--ease);grid-template-columns:minmax(124px,.32fr) minmax(0,1fr);align-items:start;gap:clamp(18px,3vw,44px);padding:clamp(26px,3.4vw,40px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff09}.timeline-card:before{content:"";opacity:.45;pointer-events:none;z-index:0;transition:opacity .6s var(--ease);background-image:radial-gradient(circle,#ffffff1a .9px,#0000 1.4px);background-size:9px 9px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 75% at 12% 90%,#000000e6 0%,#0003 55%,#0000 85%);mask-image:radial-gradient(60% 75% at 12% 90%,#000000e6 0%,#0003 55%,#0000 85%)}.timeline-card:after{content:"";background:radial-gradient(ellipse 55% 60% at 18% 80%, var(--glow-strong), transparent 72%), radial-gradient(ellipse 45% 45% at 82% 20%, var(--glow), transparent 74%);pointer-events:none;filter:blur(10px);opacity:.5;z-index:-1;transition:opacity .7s var(--ease);position:absolute;inset:-14% -12% -10% -14%}.timeline-card:hover{background:linear-gradient(135deg, var(--surface-2) 0%, #121212bf 55%, #0a0a0a33 100%);border-color:var(--line);box-shadow:inset 0 1px 0 #ffffff0d, 0 28px 66px -42px #000000e6, 0 0 72px -14px var(--glow-strong);transform:translateY(-2px)}.timeline-card:hover:before,.timeline-card:hover:after{opacity:1}.timeline-card>*{z-index:1;position:relative}.timeline-tick{pointer-events:none;z-index:2;opacity:.7;width:16px;height:16px;transition:opacity .5s var(--ease), transform .6s var(--ease);position:absolute}.timeline-tick:before,.timeline-tick:after{content:"";background:var(--line-strong);position:absolute}.timeline-tick:before{width:100%;height:1px}.timeline-tick:after{width:1px;height:100%}.timeline-tick--tl{top:12px;left:12px}.timeline-tick--tl:before,.timeline-tick--tl:after{top:0;left:0}.timeline-tick--tr{top:12px;right:12px}.timeline-tick--tr:before,.timeline-tick--tr:after{top:0;right:0}.timeline-tick--bl{bottom:12px;left:12px}.timeline-tick--bl:before,.timeline-tick--bl:after{bottom:0;left:0}.timeline-tick--br{bottom:12px;right:12px}.timeline-tick--br:before,.timeline-tick--br:after{bottom:0;right:0}.timeline-card:hover .timeline-tick{opacity:1}.timeline-card:hover .timeline-tick--tl{transform:translate(-3px,-3px)}.timeline-card:hover .timeline-tick--tr{transform:translate(3px,-3px)}.timeline-card:hover .timeline-tick--bl{transform:translate(-3px,3px)}.timeline-card:hover .timeline-tick--br{transform:translate(3px,3px)}.timeline-year-frame{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;line-height:.8;position:absolute;bottom:-.22em;left:-.04em}.timeline-year-mega{font-family:var(--display);letter-spacing:-.065em;color:#0000;-webkit-text-stroke:1px var(--line-soft);font-variant-numeric:tabular-nums;white-space:nowrap;transition:-webkit-text-stroke-color .7s var(--ease), transform .9s var(--ease), opacity .7s var(--ease);opacity:.85;font-size:clamp(140px,18vw,240px);font-weight:700;line-height:.8;display:block}.timeline-card:hover .timeline-year-mega{-webkit-text-stroke-color:var(--line);opacity:1;transform:translate(6px,-6px)}.timeline-when{flex-direction:column;gap:14px;min-width:0;padding-top:2px;display:flex}.timeline-year{font-family:var(--display);letter-spacing:-.04em;color:var(--fg);font-variant-numeric:tabular-nums;text-shadow:0 0 24px var(--bg), 0 0 60px var(--bg);font-size:clamp(34px,4.4vw,58px);font-weight:700;line-height:.95}.timeline-period{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);max-width:18ch;text-shadow:0 0 16px var(--bg);font-size:11px;font-weight:500;line-height:1.6}.timeline-content{min-width:0;padding-right:clamp(0px,1.5vw,18px)}.timeline-org{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);margin:0 0 9px;font-size:11px;font-weight:500;line-height:1.4}.timeline-title{font-family:var(--display);letter-spacing:-.02em;color:var(--fg);margin:0;font-size:clamp(22px,2.7vw,34px);font-weight:600;line-height:1.05}.timeline-note{font-family:var(--sans);max-width:68ch;color:var(--fg-2);margin:14px 0 0;font-size:clamp(14px,1.35vw,16px);line-height:1.58}.timeline-insight{border-top:1px solid var(--line-soft);font-family:var(--sans);max-width:60ch;color:var(--fg);margin:18px 0 0;padding-top:16px;font-size:14px;line-height:1.5}@media (width<=980px){.timeline-card{grid-template-columns:112px minmax(0,1fr);gap:24px}}@media (width<=600px){.timeline-list{gap:12px}.timeline-card{grid-template-columns:1fr;gap:18px;padding:26px 22px}.timeline-when{gap:8px}.timeline-period{max-width:none}.timeline-year-mega{font-size:clamp(140px,40vw,220px)}.timeline-tick{width:14px;height:14px}.timeline-tick--tl,.timeline-tick--tr{top:10px}.timeline-tick--bl,.timeline-tick--br{bottom:10px}.timeline-tick--tl,.timeline-tick--bl{left:10px}.timeline-tick--tr,.timeline-tick--br{right:10px}}.hackathon-list{width:100%;max-width:calc(var(--rail-list) + clamp(40px, 8vw, 160px));grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);margin:0 auto;padding:0 clamp(20px,4vw,64px);list-style:none;display:grid;position:relative}.hackathon-row{display:flex;position:relative}.hackathon-card{isolation:isolate;min-height:clamp(340px,32vw,440px);color:inherit;border-radius:var(--r-lg);background:linear-gradient(160deg, var(--surface) 0%, #0c0c0c8c 60%, transparent 100%);border:1px solid var(--line-soft);transition:background .6s var(--ease), border-color .6s var(--ease), transform .6s var(--ease), box-shadow .6s var(--ease);flex-direction:column;flex:1;gap:clamp(16px,1.8vw,22px);padding:clamp(30px,3.2vw,46px);text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.hackathon-card:before{content:"";opacity:.45;pointer-events:none;z-index:0;transition:opacity .6s var(--ease);background-image:radial-gradient(circle,#ffffff1a .9px,#0000 1.4px);background-size:9px 9px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70% at 88% 92%,#000000e6 0%,#0003 55%,#0000 85%);mask-image:radial-gradient(70% 70% at 88% 92%,#000000e6 0%,#0003 55%,#0000 85%)}.hackathon-card:after{content:"";background:radial-gradient(ellipse 55% 55% at 78% 88%, var(--glow-strong), transparent 72%), radial-gradient(ellipse 40% 40% at 22% 22%, var(--glow), transparent 74%);pointer-events:none;filter:blur(10px);opacity:.55;z-index:-1;transition:opacity .7s var(--ease);position:absolute;inset:-10% -14% -14%}a.hackathon-card:hover{background:linear-gradient(135deg, var(--surface-2) 0%, #121212bf 55%, #0a0a0a33 100%);border-color:var(--line);box-shadow:inset 0 1px 0 #ffffff0d, 0 30px 72px -42px #000000e6, 0 0 80px -12px var(--glow-strong);transform:translateY(-2px)}a.hackathon-card:hover:before,a.hackathon-card:hover:after{opacity:1}.hackathon-card>*{z-index:1;position:relative}.hackathon-tick{pointer-events:none;z-index:2;opacity:.75;width:18px;height:18px;transition:opacity .5s var(--ease), transform .6s var(--ease);position:absolute}.hackathon-tick:before,.hackathon-tick:after{content:"";background:var(--line-strong);position:absolute}.hackathon-tick:before{width:100%;height:1px}.hackathon-tick:after{width:1px;height:100%}.hackathon-tick--tl{top:14px;left:14px}.hackathon-tick--tl:before,.hackathon-tick--tl:after{top:0;left:0}.hackathon-tick--tr{top:14px;right:14px}.hackathon-tick--tr:before,.hackathon-tick--tr:after{top:0;right:0}.hackathon-tick--bl{bottom:14px;left:14px}.hackathon-tick--bl:before,.hackathon-tick--bl:after{bottom:0;left:0}.hackathon-tick--br{bottom:14px;right:14px}.hackathon-tick--br:before,.hackathon-tick--br:after{bottom:0;right:0}a.hackathon-card:hover .hackathon-tick{opacity:1}a.hackathon-card:hover .hackathon-tick--tl{transform:translate(-3px,-3px)}a.hackathon-card:hover .hackathon-tick--tr{transform:translate(3px,-3px)}a.hackathon-card:hover .hackathon-tick--bl{transform:translate(-3px,3px)}a.hackathon-card:hover .hackathon-tick--br{transform:translate(3px,3px)}.hackathon-year-frame{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;line-height:.8;position:absolute;bottom:-.22em;right:-.06em}.hackathon-year-mega{font-family:var(--display);letter-spacing:-.065em;color:#0000;-webkit-text-stroke:1px var(--line-soft);font-variant-numeric:tabular-nums;white-space:nowrap;transition:-webkit-text-stroke-color .7s var(--ease), transform .9s var(--ease), opacity .7s var(--ease);opacity:.9;font-size:clamp(160px,22vw,280px);font-weight:700;line-height:.8;display:block}a.hackathon-card:hover .hackathon-year-mega{-webkit-text-stroke-color:var(--line);opacity:1;transform:translate(-6px,-6px)}.hackathon-body{z-index:1;flex-direction:column;flex:1;gap:clamp(14px,1.5vw,20px);min-width:0;display:flex;position:relative}.hackathon-body>*{position:relative}.hackathon-eyebrow{flex-wrap:wrap;align-items:center;gap:14px;display:inline-flex}.hackathon-index{font-family:var(--mono);letter-spacing:.22em;color:var(--fg);border:1px solid var(--line);border-radius:3px;padding:4px 8px;font-size:11px;font-weight:500;line-height:1}.hackathon-eyebrow-rule{background:var(--line-strong);flex:none;width:28px;height:1px}.hackathon-event{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:500;line-height:1.5}.hackathon-event .accent{color:var(--fg);letter-spacing:.14em;text-transform:none;font-style:italic;font-weight:500;font-family:var(--display);padding-left:2px;font-size:14px}.hackathon-name{font-family:var(--display);letter-spacing:-.035em;color:var(--fg);text-shadow:0 0 24px var(--bg), 0 0 60px var(--bg);padding-bottom:.04em;font-size:clamp(32px,3.4vw,52px);font-weight:600;line-height:.98}.hackathon-desc{font-family:var(--sans);max-width:46ch;color:var(--fg-2);text-shadow:0 0 16px var(--bg);font-size:clamp(14px,1.15vw,15px);line-height:1.6}.hackathon-cta{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:clamp(18px,1.8vw,24px);display:inline-flex}.hackathon-cta-label{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);transition:color .4s var(--ease);font-size:11px;font-weight:500}a.hackathon-card:hover .hackathon-cta-label{color:var(--fg)}.hackathon-arrow{font-family:var(--display);background:var(--surface-2);border:1px solid var(--line-soft);width:40px;height:40px;color:var(--fg-3);transition:transform .5s var(--ease), background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:500;display:inline-flex}a.hackathon-card:hover .hackathon-arrow{background:var(--fg);border-color:var(--fg);color:var(--bg);transform:rotate(-45deg)scale(1.05)}@media (width<=820px){.hackathon-list{grid-template-columns:minmax(0,1fr);gap:18px}.hackathon-card{min-height:320px}.hackathon-year-mega{font-size:clamp(180px,26vw,300px)}.hackathon-name{font-size:clamp(36px,6vw,56px)}.hackathon-desc{max-width:56ch}}@media (width<=560px){.hackathon-card{min-height:280px;padding:28px 22px}.hackathon-year-mega{font-size:clamp(140px,40vw,220px)}.hackathon-tick{width:14px;height:14px}.hackathon-tick--tl,.hackathon-tick--tr{top:10px}.hackathon-tick--bl,.hackathon-tick--br{bottom:10px}.hackathon-tick--tl,.hackathon-tick--bl{left:10px}.hackathon-tick--tr,.hackathon-tick--br{right:10px}.hackathon-event .accent{font-size:13px}}.site-footer{background:linear-gradient(180deg, transparent 0%, var(--bg-2) 60%);isolation:isolate;margin-top:120px;position:relative}.site-footer:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle,#ffffff1f .9px,#0000 1.4px);background-size:9px 9px;height:200px;position:absolute;top:0;left:0;right:0;-webkit-mask-image:linear-gradient(#00000080 0%,#0000 100%);mask-image:linear-gradient(#00000080 0%,#0000 100%)}.site-footer:after{content:"";background:radial-gradient(ellipse 48% 65% at 50% 45%, var(--glow-strong), transparent 70%);pointer-events:none;filter:blur(6px);z-index:0;height:60vh;position:absolute;top:0;left:0;right:0}.site-footer>*{z-index:1;position:relative}.footer-cta{max-width:var(--rail-list);text-align:center;justify-items:center;gap:56px;width:100%;margin-inline:auto;padding:clamp(120px,18vh,200px) clamp(20px,4vw,64px) 80px;display:grid}.footer-title{font-family:var(--display);letter-spacing:-.045em;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;color:var(--fg);text-shadow:0 0 32px var(--bg), 0 0 80px var(--bg);padding-bottom:.12em;font-size:clamp(44px,11vw,150px);font-weight:600;line-height:1}.footer-title .accent{color:var(--accent);padding:0 .02em;font-style:italic;font-weight:500}.footer-actions{grid-template-columns:repeat(2,minmax(260px,320px));justify-content:center;gap:18px;width:100%;display:grid}@media (width<=680px){.footer-actions{grid-template-columns:minmax(0,360px)}}.plate{border:1px solid var(--line);border-radius:var(--r-xl);background:color-mix(in srgb, var(--surface) 55%, transparent);min-height:132px;color:var(--fg);text-align:left;isolation:isolate;-webkit-backdrop-filter:blur(10px)saturate(120%);transition:background .55s var(--ease), color .55s var(--ease), border-color .55s var(--ease), transform .55s var(--ease), box-shadow .55s var(--ease);grid-template-rows:auto 1fr auto;gap:20px;padding:14px 18px;display:grid;position:relative;overflow:hidden}.plate:hover{background:var(--fg);color:var(--bg);border-color:var(--fg);box-shadow:0 22px 60px -20px #fafafa47, 0 0 44px -6px var(--glow-strong);transform:translateY(-2px)}.plate:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 25%, transparent);border-color:currentColor;outline:none}.plate-tick{opacity:.4;width:10px;height:10px;transition:opacity .5s var(--ease), width .5s var(--ease), height .5s var(--ease);pointer-events:none;z-index:1;border:0 solid;position:absolute}.plate-tick--tl{border-top-width:1px;border-left-width:1px;top:10px;left:10px}.plate-tick--tr{border-top-width:1px;border-right-width:1px;top:10px;right:10px}.plate-tick--bl{border-bottom-width:1px;border-left-width:1px;bottom:10px;left:10px}.plate-tick--br{border-bottom-width:1px;border-right-width:1px;bottom:10px;right:10px}.plate:hover .plate-tick{opacity:.95;width:14px;height:14px}.plate-scan{pointer-events:none;z-index:0;background:linear-gradient(180deg, transparent 46%, color-mix(in srgb, currentColor 22%, transparent) 50%, transparent 54%);opacity:.3;animation:6s linear infinite plate-scan;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0,#000 15% 85%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 15% 85%,#0000 100%)}.plate:hover .plate-scan{opacity:.8;animation-duration:2.4s}@keyframes plate-scan{0%{transform:translateY(-110%)}to{transform:translateY(110%)}}.plate-meta{z-index:1;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb, currentColor 65%, transparent);grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;font-size:10.5px;display:grid;position:relative}.plate-index{font-variant-numeric:tabular-nums;color:currentColor;opacity:.85}.plate-kicker:before{content:"/ ";opacity:.45}.plate-handle{text-transform:none;letter-spacing:.02em;opacity:.65;justify-self:end;font-size:10.5px}.plate-label{z-index:1;font-family:var(--display);letter-spacing:-.02em;align-self:end;font-size:clamp(19px,2vw,23px);font-weight:600;line-height:1;position:relative}.plate-rail{z-index:1;height:18px;display:block;position:relative}.plate-rail__track{background:color-mix(in srgb, currentColor 22%, transparent);height:1px;position:absolute;top:50%;left:0;right:22px}.plate-rail__fill{width:0;height:1px;transition:width .75s var(--ease);background:currentColor;position:absolute;top:50%;left:0}.plate:hover .plate-rail__fill{width:calc(100% - 22px)}.plate-rail__glyph{font-family:var(--display);transition:transform .5s var(--ease);font-size:15px;font-weight:500;line-height:1;position:absolute;top:50%;right:0;transform:translateY(-50%)}.plate:hover .plate-rail__glyph{transform:translate(3px,calc(-50% - 3px))}@media (prefers-reduced-motion:reduce){.plate-scan{display:none}}.footer-base{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-4);max-width:var(--rail-list);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px 40px;width:100%;margin:40px auto 0;padding:28px clamp(20px,4vw,64px);font-size:11px;font-weight:500;display:flex;position:relative}.footer-base:before{content:"";background:linear-gradient(90deg, transparent, var(--line-soft), transparent);height:1px;position:absolute;top:0;left:clamp(20px,4vw,64px);right:clamp(20px,4vw,64px)}.footer-base-mark{align-items:center;gap:10px;display:inline-flex}.footer-base-nav{flex-wrap:wrap;gap:22px;display:inline-flex}.footer-base-nav a{color:var(--fg-3);transition:color .3s var(--ease)}.footer-base-nav a:hover{color:var(--fg)}@media (width<=600px){.footer-base{flex-direction:column;align-items:center;gap:14px}}
