@font-face{font-family:Archivo;src:url(/fonts/archivo/archivo-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo/archivo-latin-500-normal.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo/archivo-latin-600-normal.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo/archivo-latin-800-normal.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo/archivo-latin-900-normal.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist/geist-variable.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono/geist-mono-variable.woff2)format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif/instrument-serif-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Instrument Serif;src:url(/fonts/instrument-serif/instrument-serif-latin-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--canvas:#131313;--canvas-elev:#1c1c1c;--canvas-sunk:#0a0a0a;--paper:#f4f2ec;--paper-elev:#eeebe2;--bone:#e8e5dd;--ash:#8a8780;--hairline-d:#e8e5dd24;--hairline-l:#1313131a;--mint:#3cffd0;--mint-deep:#18c5a0;--ultraviolet:#5200ff;--ultraviolet-deep:#3a00b8;--tile-mint:#3cffd0;--tile-violet:#5200ff;--tile-blush:#ffdeee;--tile-acid:#e4ff55;--tile-orange:#ff6a1a;--tile-shell:#ffbfa0;--tile-rose:#ff3d8e;--tile-bone:#e8e5dd;--bg:var(--canvas-sunk);--bg-elev:var(--canvas-elev);--bg-sunk:var(--canvas-sunk);--fg:var(--bone);--fg-mute:var(--ash);--fg-strong:#fff;--line:var(--hairline-d);--accent:var(--tile-rose);--accent-alt:var(--ultraviolet);--bg-hover:#374151;--cta:var(--tile-rose);--on-cta:var(--on-rose);--cta-hover:var(--tile-rose);--on-cta-hover:var(--on-rose);--on-mint:#0a0a0a;--on-rose:#fff;--on-violet:#fff;--on-blush:#0a0a0a;--on-acid:#0a0a0a;--on-orange:#0a0a0a;--font-display:"Archivo", ui-sans-serif, system-ui, "Helvetica Neue", Arial, sans-serif;--font-sans:"Geist", ui-sans-serif, system-ui, "Helvetica Neue", Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-serif:"Instrument Serif", "Times New Roman", Georgia, serif;--t-mono-xs:10px;--t-mono-sm:11px;--t-mono:13px;--t-body-sm:14px;--t-body:17px;--t-body-lg:20px;--t-lede:22px;--t-h6:20px;--t-h5:26px;--t-h4:36px;--t-h3:56px;--t-h2:80px;--t-h1:107px;--t-display:180px;--s-0:0;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:40px;--s-8:48px;--s-9:64px;--s-10:80px;--s-11:96px;--s-12:120px;--s-13:160px;--pad-x:48px;--pad-x-lg:80px;--max-w:1440px;--gutter:24px;--r-0:0px;--r-1:2px;--r-2:4px;--r-3:8px;--r-4:16px;--r-5:20px;--r-6:24px;--r-7:32px;--r-pill:40px;--r-full:999px;--bd-thin:1px solid var(--line);--bd-rose:1px solid var(--tile-rose);--bd-violet:1px solid var(--ultraviolet);--ease:cubic-bezier(.22, 1, .36, 1);--ease-fast:cubic-bezier(.32, .72, 0, 1);--dur-fast:.16s;--dur:.24s;--dur-slow:.42s}[data-theme=light]{--bg:var(--paper);--bg-elev:var(--paper-elev);--bg-sunk:#fff;--fg:#0a0a0a;--fg-mute:#5a5751;--fg-strong:#000;--line:var(--hairline-l);--bg-hover:#d1d5db;--cta:#1a1a1a;--on-cta:#fff;--cta-hover:transparent;--on-cta-hover:#1a1a1a}.btn{padding:var(--s-4) var(--s-6);font-family:var(--font-sans);font-size:var(--t-body);border-radius:var(--r-pill);transition:all var(--dur) var(--ease);border:var(--bd-thin);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--accent);color:var(--on-rose);border-color:var(--accent)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff3d8e4d}.btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.btn-secondary{color:var(--fg);border-color:var(--line);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-elev);border-color:var(--fg-mute)}.btn-secondary:focus-visible{outline:2px solid var(--fg-mute);outline-offset:4px}.btn-tertiary{color:var(--fg);background-color:#0000;border-color:#0000}.btn-tertiary:hover{background-color:var(--bg-elev)}.btn-tertiary:focus-visible{outline:2px solid var(--fg-mute);outline-offset:4px}.btn-sm{padding:var(--s-3) var(--s-5);font-size:var(--t-body-sm)}.btn-lg{padding:var(--s-5) var(--s-8);font-size:var(--t-body-lg)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}[data-theme=light] .btn-primary:hover{box-shadow:0 8px 24px #ff3d8e33}*,:before,:after{box-sizing:border-box}:root{--bg-primary:var(--bg);--text-primary:var(--fg);--text-secondary:var(--fg);--text-muted:var(--fg-mute);--border-color:var(--line);--overlay-bg:#00000080;--surface-bg:var(--bg-elev);--surface-bg-hover:var(--bg-hover);--cta-bg:var(--cta);--cta-text:var(--on-cta);--cta-hover-bg:var(--cta-hover);--cta-hover-text:var(--on-cta-hover);font-family:var(--font-sans);font-weight:400;line-height:1.5;font-size:var(--t-body);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--fg);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "ss02", "cv11"}[data-theme=light]{--bg-primary:var(--bg);--text-primary:var(--fg);--text-secondary:var(--fg);--text-muted:var(--fg-mute);--border-color:var(--line);--overlay-bg:#ffffffb3;--surface-bg:var(--bg-elev);--surface-bg-hover:var(--bg-hover);--cta-bg:var(--cta);--cta-text:var(--on-cta);--cta-hover-bg:var(--cta-hover);--cta-hover-text:var(--on-cta-hover);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background-color:var(--bg);min-width:320px;min-height:100vh;color:var(--fg);margin:0;transition:background-color .3s,color .3s;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:500}a{color:inherit;text-decoration:none}.navbar{z-index:100;background-color:var(--bg-primary);color:var(--text-primary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:2rem 3rem;transition:background-color .3s,color .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav-brand{text-transform:uppercase;letter-spacing:.05em;color:inherit;z-index:102;font-size:1.2rem;font-weight:700;text-decoration:none}.nav-links{align-items:center;gap:2rem;display:flex}.nav-link{text-transform:uppercase;letter-spacing:.05em;color:inherit;font-size:.9rem;text-decoration:none}.hamburger{cursor:pointer;z-index:102;color:inherit;background:0 0;border:none;padding:0;display:none}@media (width<=768px){.navbar{padding:1.5rem}.hamburger{display:block}.nav-links{background-color:var(--bg-primary);z-index:101;flex-direction:column;justify-content:center;align-items:center;transition:transform .3s ease-in-out;position:fixed;inset:0;transform:translate(100%)}.nav-links.open{transform:translate(0)}.nav-link{margin:1rem 0;font-size:1.5rem}}.footer{background-color:var(--bg-primary);border-top:1px solid var(--border-color);color:var(--text-secondary);margin-top:auto;padding:4rem 2rem 2rem;font-size:.9rem}.footer-content{flex-direction:column;gap:3rem;max-width:1200px;margin:0 auto;display:flex}@media (width>=768px){.footer-content{flex-direction:row;justify-content:space-between;align-items:flex-start}}.footer-brand{max-width:300px}.footer-logo{color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:1.2rem;font-weight:700}.footer-tagline{color:var(--text-muted);line-height:1.6}.footer-links{flex-wrap:wrap;gap:4rem;display:flex}.footer-column{flex-direction:column;gap:1rem;display:flex}.footer-column h4{color:var(--text-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.85rem}.footer-column a{transition:color .2s}.footer-column a:hover{color:var(--text-primary)}.footer-bottom{border-top:1px solid var(--border-color);max-width:1200px;color:var(--text-muted);flex-direction:column;justify-content:space-between;align-items:center;gap:1rem;margin:4rem auto 0;padding-top:2rem;font-size:.8rem;display:flex}@media (width>=768px){.footer-bottom{flex-direction:row}}.footer-legal{gap:2rem;display:flex}.footer-legal a:hover{color:var(--text-primary)}.hero-container{justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.hero-video-bg{object-fit:cover;filter:grayscale()contrast(1.2);z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.hero-overlay{background:color-mix(in oklab, var(--canvas-sunk) 85%, transparent);z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.hero-content{z-index:2;width:100%;height:100%;padding:var(--s-8) var(--pad-x);flex-direction:column;justify-content:space-between;display:flex;position:relative}.hero-title{font-family:var(--font-display);color:var(--fg-strong);text-transform:none;letter-spacing:-.04em;word-break:break-word;flex-direction:column;align-items:flex-start;gap:0;width:100%;margin:auto 0;font-size:clamp(2.25rem,10vw + .5rem,16rem);font-weight:900;line-height:.9;display:flex}.hero-title-line{width:100%;display:block}.hero-title-line:first-child,.hero-title-line:last-child{text-align:left;padding-left:0}.hero-bottom{margin-top:auto;display:flex}.hero-cta-wrapper{gap:var(--s-4);flex-shrink:0;display:flex}@media (width<=768px){.hero-title-line:first-child,.hero-title-line:last-child{text-align:left}.hero-cta-wrapper,.hero-cta-wrapper .btn{width:100%}}[data-theme=light] .hero-title{color:#fff}.project-gallery-container{width:100%;padding:var(--s-11) var(--pad-x);background-color:var(--bg);color:var(--fg-strong);position:relative;overflow:hidden}.gallery-content-wrapper{max-width:80%;margin:0 auto}.gallery-header{text-align:center;margin-bottom:var(--s-9)}.gallery-header h2{font-family:var(--font-display);font-weight:900;font-size:var(--t-h4);color:var(--fg-strong);margin-bottom:var(--s-3)}.gallery-header p{font-family:var(--font-sans);color:var(--fg-mute);font-size:var(--t-body-lg)}.slider-container{flex-direction:column;display:flex}.slider-track-container{width:100%;margin-bottom:1.5rem;overflow:hidden}.slider-track{gap:40px;transition:transform .5s ease-in-out;display:flex}.project-card{box-shadow:none;cursor:pointer;transition:background var(--dur-fast) var(--ease);background:0 0;border-radius:0;flex:0 0 calc(33.3333% - 13.3333px)}.project-card:hover{background:color-mix(in oklab, var(--tile-rose) 5%, transparent)}.project-card:hover .card-image{transform:scale(1.02)}.card-image{background-color:var(--canvas-elev);width:100%;margin-bottom:var(--s-2);transition:transform var(--dur) var(--ease);background-position:50%;background-size:cover;padding-bottom:100%;position:relative}.card-image img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.card-content{padding:0}.card-content h3{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg-strong);margin-bottom:var(--s-1);margin-top:0;font-weight:600}.card-content p{font-family:var(--font-sans);color:var(--fg-mute);font-size:var(--t-body);line-height:1.5}.controls-container{justify-content:flex-end;gap:var(--s-2);padding-right:var(--s-2);display:flex}.nav-button{background-color:var(--canvas-elev);cursor:pointer;width:48px;height:48px;transition:all var(--dur-fast) var(--ease);color:var(--fg-strong);border:none;border-radius:0;justify-content:center;align-items:center;display:flex}.nav-button:hover{background-color:var(--tile-rose);color:var(--on-rose)}.nav-button:disabled{opacity:.5;cursor:not-allowed}@media (width<=1024px){.project-card{flex:0 0 calc(50% - 10px)}}@media (width<=640px){.project-card{flex:0 0 100%}}[data-theme=light] .nav-button{color:#fff;background-color:var(--canvas-sunk)}[data-theme=light] .nav-button:hover{background-color:var(--tile-rose);color:#fff}[data-theme=light] .nav-button:disabled{opacity:.3}.project-card{cursor:pointer;transition:transform var(--dur) var(--ease);background:0 0}.project-card:hover{transform:translateY(-4px)}.project-card:hover .card-image-content{transform:scale(1.05)}.project-card-link{color:inherit;flex-direction:column;height:100%;text-decoration:none;display:flex}.card-image-container{aspect-ratio:1;background-color:var(--surface-bg);border-radius:var(--r-5);width:100%;margin-bottom:1rem;position:relative;overflow:hidden}.card-image-content{object-fit:cover;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease)}.card-overlay{background:0 0;width:100%;height:100%;transition:background .3s;position:absolute;top:0;left:0}.project-card:hover .card-overlay{background:#0000001a}.card-content{z-index:2;flex-direction:column;flex-grow:1;padding:1.5rem;display:flex;position:relative}.card-content h3{color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:1.25rem;font-weight:600}.card-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.card-tag{background-color:var(--surface-bg-alt,#ffffff1a);border:1px solid var(--border-color,#fff3);color:var(--text-secondary,#ccc);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.25rem .6rem;font-size:.75rem;transition:all .2s}.mission-section{padding:var(--s-13) var(--pad-x);background-color:var(--canvas-sunk);text-align:center;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.mission-container{max-width:1400px;margin:0 auto}.mission-text{font-family:var(--font-display);font-weight:700;font-size:clamp(40px, 6vw, var(--t-h3));color:var(--fg-strong);opacity:0;max-width:25ch;transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);letter-spacing:-.025em;margin:0 auto;line-height:1.2;transform:translateY(20px)}.mission-text.visible{opacity:1;transform:translateY(0)}@media (width>=768px){.mission-text{font-size:clamp(56px, 6vw, var(--t-h2))}}@media (width>=1200px){.mission-text{font-size:clamp(72px, 6vw, var(--t-h1))}}.mission-accent{font-family:var(--font-serif);color:var(--ash);font-style:italic}[data-theme=light] .mission-section{background-color:var(--paper)}[data-theme=light] .mission-text{color:var(--canvas-sunk)}.shiny-text{display:inline-block}.client-logos-container{background-color:var(--bg-primary);border-top:1px solid var(--border-color);width:100%;padding:6rem 2rem}.logos-grid{grid-template-columns:repeat(4,1fr);place-items:center;gap:4rem;max-width:1200px;margin:0 auto;display:grid}.logo-item{opacity:.7;justify-content:center;align-items:center;width:100%;transition:opacity .3s;display:flex}.logo-item:hover{opacity:1}.logo-item img{object-fit:contain;width:auto;max-width:184px;height:auto;max-height:92px}[data-theme=light] .logo-item img{filter:invert()}@media (width<=1024px){.logos-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}@media (width<=768px){.logos-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.logo-item img{max-width:138px}}@media (width<=480px){.logos-grid{grid-template-columns:repeat(2,1fr)}}.logo-item:nth-child(n+5) img{max-width:230px;max-height:115px}@media (width<=768px){.logo-item:nth-child(n+5) img{max-width:172px;max-height:115px}}.view-toggle{gap:12px;padding:32px 0 24px;display:flex}.toggle-button{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);cursor:pointer;transition:all var(--dur-fast) var(--ease);background:0 0;border-radius:24px;align-items:center;gap:8px;padding:10px 18px;font-size:11px;display:flex;position:relative}.toggle-button:hover{border-color:var(--fg-mute);background:color-mix(in oklab, var(--tile-rose) 8%, transparent)}.toggle-button.active{border-color:var(--tile-rose);background:color-mix(in oklab, var(--tile-rose) 12%, transparent);color:var(--fg-strong)}.toggle-button svg{width:16px;height:16px}@media (width<=600px){.view-toggle{gap:8px;padding:24px 0 16px}.toggle-button{padding:8px 14px;font-size:10px}}.work-container{padding:var(--s-11) var(--pad-x,48px) var(--s-8)}.work-header{padding:72px var(--pad-x) 48px;border-bottom:1px solid var(--line);grid-template-columns:1.6fr 1fr;align-items:end;gap:32px;display:grid}.work-header .header-left{flex-direction:column;display:flex}.header-eyebrow{font-family:var(--font-mono);color:var(--tile-rose);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:28px;font-size:11px;display:inline-flex}.header-eyebrow:before{content:"";background:var(--tile-rose);width:8px;height:8px}.work-header h1{flex-direction:column;align-items:flex-start;gap:0;margin:0;display:flex}.work-line{font-size:clamp(54px,8.4vw,123px);font-weight:900;line-height:.9;display:block}.work-display{font-family:var(--font-display);color:var(--fg-strong)}.work-serif{font-family:var(--font-serif);color:var(--bone);font-style:italic}.work-sans{font-family:var(--font-sans);color:var(--fg)}.work-mono{font-family:var(--font-mono);color:var(--ash)}.work-display-pink{font-family:var(--font-display);color:var(--tile-rose);text-wrap:balance}.work-header h1 em{font-family:var(--font-serif);color:var(--bone);font-style:italic;font-weight:400}.work-header h1 .mint{color:var(--tile-rose)}.header-image{aspect-ratio:1;border-radius:8px;width:100%;overflow:hidden}.header-image img{object-fit:cover;object-position:center;width:100%;height:100%}.filter-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px;padding:32px 0;display:flex}.filter-button{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);cursor:pointer;transition:all var(--dur-fast) var(--ease);background:0 0;border-radius:24px;align-items:center;gap:8px;padding:10px 18px;font-size:11px;display:flex;position:relative}.filter-button:hover{border-color:var(--fg-mute);background:color-mix(in oklab, var(--filter-color,var(--ash)) 8%, transparent)}.filter-button:focus-visible{outline:2px solid var(--filter-color,var(--tile-rose));outline-offset:2px;border-color:var(--filter-color,var(--tile-rose))}.filter-button.active{border-color:var(--filter-color,var(--tile-rose));background:color-mix(in oklab, var(--filter-color,var(--tile-rose)) 12%, transparent);color:var(--fg-strong)}.filter-count{color:var(--fg-mute);font-weight:600}.filter-button.active .filter-count{color:var(--filter-color,var(--tile-rose))}.project-list{padding-top:24px}.project-row{border-top:1px solid var(--line);cursor:pointer;transition:background var(--dur-fast) var(--ease);color:inherit;grid-template-columns:1.8fr 1fr 200px 100px 24px;align-items:center;gap:24px;padding:14px 0;text-decoration:none;display:grid}.project-row:hover{background:color-mix(in oklab, var(--tile-rose) 5%, transparent)}.project-row .code{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ash);font-size:12px}.project-row .title-block{flex-direction:column;gap:4px;display:flex}.project-row .title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg-strong);font-size:28px;font-weight:800;line-height:1.1}.project-row .deck{font-family:var(--font-sans);color:var(--fg-mute);letter-spacing:0;font-size:14px;font-weight:400;line-height:1.4}.project-row .category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--fg);align-items:center;gap:8px;font-size:11px;display:flex}.project-row .category .category-badge{background:color-mix(in oklab, var(--tile-rose) 15%, transparent);border:1px solid color-mix(in oklab, var(--tile-rose) 30%, transparent);letter-spacing:.05em;min-width:20px;height:16px;color:var(--tile-rose);cursor:help;transition:all var(--dur-fast) var(--ease);border-radius:8px;justify-content:center;align-items:center;margin-left:4px;padding:0 5px;font-size:9px;font-weight:600;display:inline-flex}.project-row .category .category-badge:hover{background:color-mix(in oklab, var(--tile-rose) 25%, transparent);border-color:var(--tile-rose);transform:scale(1.05)}.project-row .client{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--fg-mute);font-size:11px}.project-row .year{font-family:var(--font-mono);letter-spacing:.1em;color:var(--fg-mute);text-align:right;font-size:12px}.project-row .arrow{font-family:var(--font-mono);color:var(--ash);transition:transform var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);font-size:14px}.project-row:hover .arrow{color:var(--tile-rose);transform:translate(4px,-4px)}@media (width<=1100px){:root{--pad-x:32px}.work-header{grid-template-columns:1fr}.header-meta{align-items:flex-start}.header-meta .lede,.meta-stamp{text-align:left}.project-row{grid-template-columns:1fr 100px 24px}.project-row .category,.project-row .client{display:none}}@media (width<=600px){:root{--pad-x:24px}.work-header{padding:48px var(--pad-x) 32px}.work-header h1{font-size:clamp(48px,10vw,72px)}.filter-bar{gap:8px;padding:24px 0}.filter-button{padding:8px 14px;font-size:10px}.project-row{grid-template-columns:1fr 24px}.project-row .year{display:none}.project-row .title{font-size:22px}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px;padding-top:32px;display:grid}.project-grid-item{cursor:pointer;color:inherit;transition:transform var(--dur-fast) var(--ease);flex-direction:column;text-decoration:none;display:flex}.project-grid-item:hover{transform:translateY(-4px)}.project-grid-item .grid-item-image{aspect-ratio:3/2;width:100%;transition:opacity var(--dur-fast) var(--ease);border-radius:8px;justify-content:flex-end;align-items:flex-start;margin-bottom:16px;padding:16px;display:flex;position:relative;overflow:hidden}.project-grid-item:hover .grid-item-image{opacity:.9}.grid-item-image-content{object-fit:contain;object-position:center;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.project-grid-item .grid-item-code{font-family:var(--font-mono);letter-spacing:.1em;color:#ffffffb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1;background:#0000004d;border-radius:4px;padding:6px 12px;font-size:11px;position:relative}.project-grid-item .grid-item-info{flex-direction:column;gap:8px;display:flex}.project-grid-item .grid-item-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg-strong);margin:0;font-size:22px;font-weight:800;line-height:1.2}.project-grid-item .grid-item-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-grid-item .grid-item-category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--fg);align-items:center;gap:6px;font-size:10px;display:flex}.project-grid-item .grid-item-year{font-family:var(--font-mono);letter-spacing:.1em;color:var(--fg-mute);font-size:11px}@media (width<=768px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.project-grid-item .grid-item-title{font-size:18px}}.photo-grid-section{background-color:#0e0e0e;width:100%;margin:0;padding:0;overflow:hidden}.photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;gap:0;width:100%;display:grid}.photo-item{filter:grayscale()brightness(.8);cursor:pointer;width:100%;height:100%;transition:filter .4s,transform .4s;position:relative;overflow:hidden}.photo-item img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.photo-item:hover{filter:grayscale()brightness(1.1);z-index:10}@media (width>=768px){.photo-grid{grid-template-rows:repeat(2,300px);grid-template-columns:repeat(6,1fr)}.photo-item:first-child{grid-area:span 2/span 2}.photo-item:nth-child(2){grid-area:span 1/span 1}.photo-item:nth-child(3){grid-area:span 1/span 2}.photo-item:nth-child(4),.photo-item:nth-child(5){grid-area:span 1/span 1}.photo-item:nth-child(6){grid-area:span 1/span 2}.photo-item:nth-child(7){grid-area:span 1/span 1}}@media (width>=1440px){.photo-grid{grid-template-rows:repeat(2,350px)}}.photo-index{flex-direction:column;width:100%;padding:24px 0;display:flex}.photo-index-row{border-top:1px solid var(--line);transition:background var(--dur-fast) var(--ease);grid-template-columns:60px 140px 1fr;align-items:center;gap:24px;padding:18px 0;display:grid}.photo-index-row:hover{background:color-mix(in oklab, var(--tile-rose) 5%, transparent)}.photo-index-row .photo-number{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ash);font-size:12px}.photo-index-row .photo-thumbnail{filter:grayscale()brightness(.8);width:140px;height:100px;transition:filter .3s;position:relative;overflow:hidden}.photo-index-row:hover .photo-thumbnail{filter:grayscale()brightness(1.1)}.photo-index-row .photo-thumbnail img{object-fit:cover;width:100%;height:100%;display:block}.photo-index-row .photo-info{flex-direction:column;gap:4px;display:flex}.photo-index-row .photo-caption{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg-strong);font-size:24px;font-weight:800;line-height:1.1}@media (width<=768px){.photo-index-row{grid-template-columns:50px 100px 1fr;gap:16px;padding:14px 0}.photo-index-row .photo-thumbnail{width:100px;height:70px}.photo-index-row .photo-caption{font-size:18px}}.about-container{min-height:100vh;padding:var(--s-13) var(--pad-x) var(--s-11);background-color:var(--bg);color:var(--fg);flex-direction:column;align-items:center;display:flex}.about-header-image{width:100%;max-width:300px;height:auto;margin-bottom:var(--s-11);border-radius:var(--r-3)}.about-text-section{text-align:center;max-width:800px;margin-bottom:var(--s-11)}.about-text-section p{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);margin-bottom:var(--s-6);line-height:1.6}.about-text-section p.lead{font-size:var(--t-lede)}.about-text-section p.secondary{color:var(--fg-mute)}.about-photo-grid-wrapper{width:100%;max-width:1200px;margin-bottom:var(--s-13)}.expertise-grid{gap:var(--s-11);border-top:var(--bd-thin);width:100%;max-width:1000px;padding-top:var(--s-11);grid-template-columns:1fr 2fr;display:grid}.expertise-header{font-family:var(--font-mono);font-size:var(--t-mono-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--tile-rose);margin:0;position:sticky;top:8rem}.expertise-content{gap:var(--s-12);flex-direction:column;display:flex}.expertise-list{gap:var(--s-5);font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);padding:0;padding-bottom:var(--s-11);flex-direction:column;margin:0;line-height:1.5;list-style:none;display:flex}.contact-section{border-top:var(--bd-thin);width:100%;max-width:1000px;padding-top:var(--s-11);margin-top:0}.contact-content{justify-content:space-between;align-items:flex-start;gap:var(--s-6);flex-wrap:wrap;display:flex}.contact-heading{font-family:var(--font-display);font-weight:800;font-size:var(--t-h4);color:var(--fg-strong);max-width:400px;margin:0;line-height:1.2}.contact-email-link{font-family:var(--font-sans);font-size:var(--t-h5);color:var(--tile-rose);align-items:center;gap:var(--s-4);transition:transform var(--dur-fast) var(--ease);border-bottom:none;text-decoration:none;display:flex}.contact-email-link:hover{transform:translate(4px,-4px)}[data-theme=light] .about-header-image{filter:brightness(.1)}@media (width<=768px){.expertise-grid{gap:var(--s-9);grid-template-columns:1fr}}.links-container{min-height:100vh;padding:var(--s-13) var(--pad-x) var(--s-11);background-color:var(--bg);color:var(--fg);flex-direction:column;align-items:center;display:flex}.links-hero{text-align:center;margin-bottom:var(--s-11);max-width:600px}.links-title{font-family:var(--font-display);color:var(--fg-strong);margin:0 0 var(--s-6);font-size:clamp(48px,8vw,72px);font-weight:900;line-height:1.1}.links-title-accent{color:var(--tile-rose)}.links-tagline{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg-mute);margin:0;line-height:1.6}.links-primary-section{gap:var(--s-4);width:100%;max-width:600px;margin-bottom:var(--s-11);flex-direction:column;display:flex}.links-primary-button{padding:var(--s-6);background-color:var(--canvas-sunk);border-radius:var(--r-4);transition:all var(--dur-fast) var(--ease);border:2px solid #0000;justify-content:space-between;align-items:center;text-decoration:none;display:flex;position:relative;overflow:hidden}.links-primary-button:hover{border-color:var(--tile-rose);transform:translateY(-2px)}.links-primary-button:before{content:"";background:repeating-linear-gradient(45deg, var(--tile-rose), var(--tile-rose) 10px, transparent 10px, transparent 20px);opacity:0;height:2px;transition:opacity var(--dur-fast) var(--ease);position:absolute;top:0;left:0;right:0}.links-primary-button:hover:before{opacity:1}.links-primary-button-content{align-items:center;gap:var(--s-4);display:flex}.links-primary-button-content svg{color:var(--tile-rose);flex-shrink:0}.links-primary-button-text{gap:var(--s-1);flex-direction:column;display:flex}.links-primary-button-label{font-family:var(--font-display);font-weight:600;font-size:var(--t-body-lg);color:var(--fg-strong)}.links-primary-button-description{font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-mute)}.links-primary-button-arrow{color:var(--fg-mute);transition:transform var(--dur-fast) var(--ease);flex-shrink:0}.links-primary-button:hover .links-primary-button-arrow{transform:translate(4px)}.links-social-section{width:100%;max-width:600px}.links-social-header{font-family:var(--font-mono);font-size:var(--t-mono-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--fg-mute);margin:0 0 var(--s-5)}.links-social-button{padding:var(--s-5);background-color:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-3);transition:all var(--dur-fast) var(--ease);margin-bottom:var(--s-3);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.links-social-button:hover{background-color:var(--bg-sunk);border-color:var(--fg-mute);transform:translate(4px)}.links-social-button-content{align-items:center;gap:var(--s-4);display:flex}.links-social-button-content svg{color:var(--fg);flex-shrink:0}.links-social-button-text{gap:var(--s-1);flex-direction:column;display:flex}.links-social-button-platform{font-family:var(--font-display);font-weight:600;font-size:var(--t-body);color:var(--fg-strong)}.links-social-button-handle{font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-mute)}[data-theme=light] .links-primary-button{background-color:var(--canvas)}[data-theme=light] .links-primary-button .links-primary-button-label,[data-theme=light] .links-primary-button .links-primary-button-description,[data-theme=light] .links-primary-button-content svg{color:#fff}[data-theme=light] .links-primary-button:hover,[data-theme=light] .links-social-button{background-color:var(--bg-sunk)}[data-theme=light] .links-social-button:hover{background-color:var(--bg-elev)}@media (width<=768px){.links-container{padding:var(--s-11) var(--s-6) var(--s-9)}.links-title{font-size:clamp(36px,10vw,56px)}.links-tagline{font-size:var(--t-body)}.links-primary-button{padding:var(--s-5)}.links-primary-button-label{font-size:var(--t-body)}.links-social-button{padding:var(--s-4)}}.hackathon-container{min-height:100vh;padding:var(--s-13) var(--pad-x) var(--s-11);background-color:var(--bg);color:var(--fg);flex-direction:column;align-items:center;display:flex}.hackathon-hero{text-align:center;max-width:900px;margin-bottom:var(--s-13)}.hackathon-title{font-family:var(--font-display);font-weight:800;font-size:var(--t-h1);color:var(--fg-strong);margin:0 0 var(--s-6) 0;line-height:1.1}.hackathon-tagline{font-family:var(--font-sans);font-size:var(--t-lede);color:var(--fg-mute);margin:0;line-height:1.4}.hackathon-content-section{gap:var(--s-13);flex-direction:column;width:100%;max-width:1000px;display:flex}.hackathon-section{border-top:var(--bd-thin);width:100%;padding-top:var(--s-11)}.hackathon-section-label{font-family:var(--font-mono);font-size:var(--t-mono-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--tile-rose);margin:0 0 var(--s-9) 0}.hackathon-section-content{max-width:800px}.hackathon-section-content p{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);margin-bottom:var(--s-6);line-height:1.6}.hackathon-section-content p.lead{font-size:var(--t-lede);color:var(--fg-strong)}.hackathon-section-content p.secondary{color:var(--fg-mute)}.hackathon-details-grid{gap:var(--s-9);flex-direction:column;display:flex}.hackathon-detail{gap:var(--s-4);flex-direction:column;display:flex}.hackathon-detail-label{font-family:var(--font-mono);font-size:var(--t-mono-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--fg-mute);margin:0}.hackathon-detail-value{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);margin:0;line-height:1.5}.hackathon-cta-section{border-top:var(--bd-thin);width:100%;padding-top:var(--s-11);gap:var(--s-6);flex-direction:column;display:flex}.hackathon-cta-heading{font-family:var(--font-display);font-weight:800;font-size:var(--t-h4);color:var(--fg-strong);margin:0;line-height:1.2}.hackathon-cta-text{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg-mute);max-width:600px;margin:0}.hackathon-cta-link{font-family:var(--font-sans);font-size:var(--t-h5);color:var(--tile-rose);align-items:center;gap:var(--s-4);transition:transform var(--dur-fast) var(--ease);border-bottom:none;width:fit-content;text-decoration:none;display:flex}.hackathon-cta-link:hover{transform:translate(4px,-4px)}@media (width<=768px){.hackathon-title{font-size:var(--t-h2)}.hackathon-tagline{font-size:var(--t-body-lg)}}.project-template{background-color:var(--bg);color:var(--fg);min-height:100vh;padding-bottom:var(--s-13)}.project-loading{background-color:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--font-sans);font-size:var(--t-lede);justify-content:center;align-items:center;display:flex}.project-banner{width:100%;height:60vh;position:relative;overflow:hidden}.project-banner img{object-fit:cover;width:100%;height:100%}.banner-gradient-bg{width:100%;height:100%}.banner-overlay{background:linear-gradient(to top, var(--canvas), transparent);width:100%;height:100%;position:absolute;top:0;left:0}.banner-title-container{bottom:var(--s-6);z-index:2;width:100%;padding:0 5%;position:absolute;left:0}.banner-title-container h1{font-family:var(--font-display);font-weight:900;font-size:clamp(48px, 8vw, var(--t-h1));text-transform:uppercase;letter-spacing:-.025em;color:var(--fg-strong);margin:0}.project-content{max-width:1200px;padding:0 var(--pad-x);margin:0 auto}.project-metadata{margin:var(--s-11) 0;padding-bottom:var(--s-11);border-bottom:var(--bd-thin)}.metadata-grid{gap:var(--s-6);grid-template-columns:repeat(4,1fr);display:grid}.metadata-item h3{font-family:var(--font-mono);font-size:var(--t-mono-sm);text-transform:uppercase;color:var(--tile-rose);margin-bottom:var(--s-2);letter-spacing:.15em}.metadata-item p{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);margin:0;font-weight:500}.metadata-item.full-width{margin-top:var(--s-4);grid-column:1/-1}.tags-list{gap:var(--s-2);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-mono);padding:var(--s-2) var(--s-4);font-size:var(--t-mono-sm);border-radius:var(--r-1)}.tag:nth-child(8n+1){background-color:var(--tile-mint);color:var(--on-mint)}.tag:nth-child(8n+2){background-color:var(--tile-violet);color:var(--on-violet)}.tag:nth-child(8n+3){background-color:var(--tile-blush);color:var(--on-blush)}.tag:nth-child(8n+4){background-color:var(--tile-acid);color:var(--on-acid)}.tag:nth-child(8n+5){background-color:var(--tile-orange);color:var(--on-orange)}.tag:nth-child(8n+6){background-color:var(--tile-shell);color:var(--on-mint)}.tag:nth-child(8n+7){background-color:var(--tile-rose);color:var(--fg-strong)}.tag:nth-child(8n+8){background-color:var(--tile-bone);color:var(--on-mint)}.project-video{margin-bottom:6rem}.video-container{background-color:#000;height:0;padding-bottom:56.25%;position:relative;overflow:hidden}.video-container iframe{width:100%;height:100%;position:absolute;top:0;left:0}.project-description{margin-bottom:var(--s-12)}.star-grid{gap:var(--s-9);grid-template-columns:1fr;display:grid}.star-item h2{font-family:var(--font-display);font-weight:800;font-size:var(--t-h6);margin-bottom:var(--s-4);color:var(--fg-strong);border-left:3px solid var(--tile-rose);padding-left:var(--s-4)}.star-item p{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg-mute);margin:0;line-height:1.7}.project-gallery.full-width-gallery{width:100vw;margin-left:-50vw;margin-right:-50vw;margin-bottom:var(--s-11);padding:0;position:relative;left:50%;right:50%}.full-width-gallery .gallery-grid{grid-template-columns:1fr 1fr;gap:0;width:100%;display:grid}.full-width-gallery .gallery-item{aspect-ratio:16/9;background-color:var(--canvas-elev);width:100%;position:relative;overflow:hidden}.full-width-gallery .gallery-item:after{content:"";background:linear-gradient(to bottom, transparent, color-mix(in oklab, var(--tile-rose) 10%, transparent));opacity:0;height:30%;transition:opacity var(--dur) var(--ease);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.full-width-gallery .gallery-item:hover:after{opacity:1}.full-width-gallery .gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform var(--dur) var(--ease)}.full-width-gallery .gallery-item img:hover{transform:scale(1.02)}.project-gallery{margin-bottom:var(--s-11)}.gallery-grid{gap:var(--s-6);grid-template-columns:1fr 1fr;display:grid}.gallery-item{aspect-ratio:16/9;background-color:var(--canvas-elev);position:relative;overflow:hidden}.gallery-item:after{content:"";background:linear-gradient(to bottom, transparent, color-mix(in oklab, var(--tile-rose) 10%, transparent));opacity:0;height:30%;transition:opacity var(--dur) var(--ease);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.gallery-item:hover:after{opacity:1}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform var(--dur) var(--ease)}.gallery-item img:hover{transform:scale(1.02)}@media (width<=1024px){.banner-title-container h1{font-size:3rem}}@media (width<=768px){.project-banner{height:50vh}.banner-title-container h1{font-size:2.5rem}.metadata-grid{grid-template-columns:1fr 1fr}.gallery-grid,.full-width-gallery .gallery-grid{grid-template-columns:1fr}}@media (width<=480px){.metadata-grid{grid-template-columns:1fr}.banner-title-container h1{font-size:2rem}}.not-found-container{min-height:calc(100vh - 200px);padding:var(--s-9) var(--pad-x);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.not-found-container:before{content:"";background:repeating-linear-gradient(45deg, transparent, transparent 40px, var(--line) 40px, var(--line) 42px);opacity:.3;pointer-events:none;z-index:0;position:absolute;inset:0}.not-found-content{text-align:center;z-index:1;width:100%;max-width:640px;position:relative}.not-found-number{font-family:var(--font-display);font-size:var(--t-display);color:var(--accent);margin-bottom:var(--s-5);letter-spacing:-.02em;text-shadow:0 0 20px #ff3d8e80,0 0 40px #ff3d8e4d;font-weight:900;line-height:.9;position:relative}.not-found-number:before{content:"404";color:var(--ultraviolet);opacity:.3;z-index:-1;position:absolute;top:2px;left:2px}.not-found-title{font-family:var(--font-display);font-size:var(--t-h3);color:var(--fg);margin-bottom:var(--s-4);letter-spacing:-.02em;font-weight:800;line-height:1.1}.not-found-description{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg-mute);margin-bottom:var(--s-8);line-height:1.6}.not-found-links{gap:var(--s-4);flex-wrap:wrap;justify-content:center;display:flex}.not-found-link{padding:var(--s-4) var(--s-6);font-family:var(--font-sans);font-size:var(--t-body);border-radius:var(--r-pill);transition:all var(--dur) var(--ease);border:var(--bd-thin);justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.not-found-link-primary{background-color:var(--accent);color:var(--on-rose);border-color:var(--accent)}.not-found-link-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff3d8e4d}.not-found-link-primary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.not-found-link-secondary{color:var(--fg);border-color:var(--line);background-color:#0000}.not-found-link-secondary:hover{background-color:var(--bg-elev);border-color:var(--fg-mute)}.not-found-link-secondary:focus-visible{outline:2px solid var(--fg-mute);outline-offset:4px}[data-theme=light] .not-found-link-primary:hover{box-shadow:0 8px 24px #ff3d8e33}@media (width<=768px){.not-found-container{padding:var(--s-8) var(--s-5);min-height:calc(100vh - 160px)}.not-found-number{font-size:120px}.not-found-title{font-size:var(--t-h4)}.not-found-description{font-size:var(--t-body)}.not-found-links{flex-direction:column}.not-found-link{width:100%}}
