@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: rgba(232, 229, 221, .14);--hairline-l: rgba(19, 19, 19, .1);--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);--bg-elev: var(--canvas-elev);--bg-sunk: var(--canvas-sunk);--fg: var(--bone);--fg-mute: var(--ash);--fg-strong: #FFFFFF;--line: var(--hairline-d);--accent: var(--tile-rose);--accent-alt: var(--ultraviolet);--on-mint: #0A0A0A;--on-rose: #FFFFFF;--on-violet: #FFFFFF;--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: #FFFFFF;--fg: #0A0A0A;--fg-mute: #5A5751;--fg-strong: #000000;--line: var(--hairline-l)}*,*:before,*:after{box-sizing:border-box}:root{--bg-primary: var(--canvas);--text-primary: var(--bone);--text-secondary: var(--fg);--text-muted: var(--ash);--border-color: var(--line);--overlay-bg: rgba(0, 0, 0, .5);--surface-bg: var(--canvas-elev);--surface-bg-hover: #374151;--cta-bg: var(--tile-rose);--cta-text: var(--on-rose);--cta-hover-bg: var(--tile-rose);--cta-hover-text: var(--on-rose);font-family:var(--font-sans);line-height:1.5;font-weight:400;font-size:var(--t-body);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(--paper);--text-primary: #0A0A0A;--text-secondary: var(--fg);--text-muted: var(--fg-mute);--border-color: var(--line);--overlay-bg: rgba(255, 255, 255, .7);--surface-bg: var(--paper-elev);--surface-bg-hover: #d1d5db;--cta-bg: #1a1a1a;--cta-text: white;--cta-hover-bg: transparent;--cta-hover-text: #1a1a1a;color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg);color:var(--fg);transition:background-color .3s ease,color .3s ease;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:500}a{color:inherit;text-decoration:none}.navbar{position:fixed;top:0;left:0;right:0;padding:2rem 3rem;display:flex;justify-content:space-between;align-items:center;z-index:100;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;border-bottom:1px solid var(--border-color)}.nav-brand{font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;color:inherit;z-index:102}.nav-links{display:flex;gap:2rem;align-items:center}.nav-link{text-transform:uppercase;font-size:.9rem;letter-spacing:.05em;text-decoration:none;color:inherit}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:0;z-index:102;color:inherit}@media(max-width:768px){.navbar{padding:1.5rem}.hamburger{display:block}.nav-links{position:fixed;inset:0;background-color:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;transform:translate(100%);transition:transform .3s ease-in-out;z-index:101}.nav-links.open{transform:translate(0)}.nav-link{font-size:1.5rem;margin:1rem 0}}.footer{background-color:var(--bg-primary);border-top:1px solid var(--border-color);padding:4rem 2rem 2rem;margin-top:auto;color:var(--text-secondary);font-size:.9rem}.footer-content{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:3rem}@media(min-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);font-size:1.2rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-weight:700}.footer-tagline{line-height:1.6;color:var(--text-muted)}.footer-links{display:flex;gap:4rem;flex-wrap:wrap}.footer-column{display:flex;flex-direction:column;gap:1rem}.footer-column h4{color:var(--text-primary);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.footer-column a{transition:color .2s ease}.footer-column a:hover{color:var(--text-primary)}.footer-bottom{max-width:1200px;margin:4rem auto 0;padding-top:2rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-muted)}@media(min-width:768px){.footer-bottom{flex-direction:row}}.footer-legal{display:flex;gap:2rem}.footer-legal a:hover{color:var(--text-primary)}.hero-container{position:relative;height:100vh;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-video-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(1.2);z-index:0}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:color-mix(in oklab,var(--canvas-sunk) 80%,transparent);z-index:1}.hero-content{position:relative;z-index:2;text-align:center;padding:0 2rem;max-width:800px;display:flex;flex-direction:column;align-items:center;gap:var(--s-5)}.hero-title{font-family:var(--font-display);font-weight:900;font-size:var(--t-lede);color:var(--fg);text-transform:none;letter-spacing:normal;line-height:1.6;margin:0;max-width:600px}.hero-subtext{font-family:var(--font-sans);font-size:var(--t-body-lg);color:var(--fg);max-width:600px;line-height:1.6;margin:0}.hero-cta{margin-top:var(--s-4);padding:var(--s-4) var(--s-7);background-color:transparent;border:var(--bd-rose);color:var(--fg-strong);font-family:var(--font-mono);font-size:var(--t-mono-sm);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;transition:all var(--dur) var(--ease);text-decoration:none;display:inline-block}.hero-cta:hover{background-color:var(--tile-rose);color:var(--on-rose);transform:translate(4px,-4px)}@media(min-width:768px){.hero-title{font-size:clamp(80px,10vw,var(--t-h1))}.hero-subtext{font-size:var(--t-lede)}}[data-theme=light] .hero-title{color:#fff}[data-theme=light] .hero-cta{color:#fff;border-color:#fff}[data-theme=light] .hero-cta:hover{background-color:#fff;color:var(--canvas-sunk)}.project-gallery-container{width:100%;padding:var(--s-11) var(--pad-x);background-color:var(--bg);color:var(--fg-strong);overflow:hidden;position:relative}.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{display:flex;flex-direction:column}.slider-track-container{overflow:hidden;width:100%;margin-bottom:1.5rem}.slider-track{display:flex;transition:transform .5s ease-in-out;gap:40px}.project-card{flex:0 0 calc((100% - 40px) / 3);background:transparent;border-radius:0;box-shadow:none;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.project-card:hover{background:color-mix(in oklab,var(--tile-rose) 5%,transparent)}.project-card:hover .card-image{transform:scale(1.02)}.card-image{width:100%;padding-bottom:100%;background-color:var(--canvas-elev);background-position:center;background-size:cover;margin-bottom:var(--s-2);position:relative;transition:transform var(--dur) var(--ease)}.card-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.card-content{padding:0}.card-content h3{font-family:var(--font-sans);font-size:var(--t-body-lg);font-weight:600;color:var(--fg-strong);margin-bottom:var(--s-1);margin-top:0}.card-content p{font-family:var(--font-sans);color:var(--fg-mute);font-size:var(--t-body);line-height:1.5}.controls-container{display:flex;justify-content:flex-end;gap:var(--s-2);padding-right:var(--s-2)}.nav-button{background-color:var(--canvas-elev);border:none;border-radius:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur-fast) var(--ease);color:var(--fg-strong)}.nav-button:hover{background-color:var(--tile-rose);color:var(--on-rose)}.nav-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1024px){.project-card{flex:0 0 calc((100% - 20px)/2)}}@media(max-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;background:transparent;transition:transform var(--dur) var(--ease)}.project-card:hover{transform:translateY(-4px)}.project-card:hover .card-image-content{transform:scale(1.05)}.project-card-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}.card-image-container{width:100%;aspect-ratio:1/1;overflow:hidden;position:relative;background-color:var(--surface-bg);margin-bottom:1rem;border-radius:var(--r-5)}.card-image-content{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease)}.card-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000;transition:background .3s ease}.project-card:hover .card-overlay{background:#0000001a}.card-content{padding:1.5rem;display:flex;flex-direction:column;position:relative;z-index:2;flex-grow:1}.card-content h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0;text-transform:uppercase;letter-spacing:.05em}.card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.card-tag{background-color:var(--surface-bg-alt, rgba(255, 255, 255, .1));border:1px solid var(--border-color, rgba(255, 255, 255, .2));color:var(--text-secondary, #ccc);font-size:.75rem;padding:.25rem .6rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em;transition:all .2s ease}.mission-section{padding:var(--s-13) var(--pad-x);background-color:var(--canvas-sunk);display:flex;justify-content:center;align-items:center;text-align:center;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));line-height:1.2;color:var(--fg-strong);max-width:25ch;margin:0 auto;opacity:0;transform:translateY(20px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);letter-spacing:-.025em}.mission-text.visible{opacity:1;transform:translateY(0)}@media(min-width:768px){.mission-text{font-size:clamp(56px,6vw,var(--t-h2))}}@media(min-width:1200px){.mission-text{font-size:clamp(72px,6vw,var(--t-h1))}}.mission-accent{font-family:var(--font-serif);font-style:italic;color:var(--ash)}[data-theme=light] .mission-section{background-color:var(--paper)}[data-theme=light] .mission-text{color:var(--canvas-sunk)}.shiny-text{display:inline-block}.photo-grid-section{width:100%;margin:0;padding:0;background-color:#0e0e0e;overflow:hidden}.photo-grid{display:grid;width:100%;grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;gap:0}.photo-item{position:relative;overflow:hidden;width:100%;height:100%;filter:grayscale(100%) brightness(.8);transition:filter .4s ease,transform .4s ease;cursor:pointer}.photo-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.photo-item:hover{filter:grayscale(100%) brightness(1.1);z-index:10}@media(min-width:768px){.photo-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,300px)}.photo-item:nth-child(1){grid-column:span 2;grid-row:span 2}.photo-item:nth-child(2){grid-column:span 1;grid-row:span 1}.photo-item:nth-child(3){grid-column:span 2;grid-row:span 1}.photo-item:nth-child(4){grid-column:span 1;grid-row:span 1}.photo-item:nth-child(5){grid-column:span 1;grid-row:span 1}.photo-item:nth-child(6){grid-column:span 2;grid-row:span 1}.photo-item:nth-child(7){grid-column:span 1;grid-row:span 1}}@media(min-width:1440px){.photo-grid{grid-template-rows:repeat(2,350px)}}.photo-index{display:flex;flex-direction:column;width:100%;padding:24px 0}.photo-index-row{display:grid;grid-template-columns:60px 140px 1fr;gap:24px;align-items:center;padding:18px 0;border-top:1px solid var(--line);transition:background var(--dur-fast) var(--ease)}.photo-index-row:hover{background:color-mix(in oklab,var(--tile-rose) 5%,transparent)}.photo-index-row .photo-number{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--ash)}.photo-index-row .photo-thumbnail{position:relative;width:140px;height:100px;overflow:hidden;filter:grayscale(100%) brightness(.8);transition:filter .3s ease}.photo-index-row:hover .photo-thumbnail{filter:grayscale(100%) brightness(1.1)}.photo-index-row .photo-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.photo-index-row .photo-info{display:flex;flex-direction:column;gap:4px}.photo-index-row .photo-caption{font-family:var(--font-display);font-weight:800;font-size:24px;letter-spacing:-.01em;line-height:1.1;color:var(--fg-strong)}@media(max-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}}.client-logos-container{width:100%;padding:6rem 2rem;background-color:var(--bg-primary);border-top:1px solid var(--border-color)}.logos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4rem;align-items:center;justify-items:center;max-width:1200px;margin:0 auto}.logo-item{width:100%;display:flex;justify-content:center;align-items:center;opacity:.7;transition:opacity .3s ease}.logo-item:hover{opacity:1}.logo-item img{max-width:184px;max-height:92px;width:auto;height:auto;object-fit:contain}[data-theme=light] .logo-item img{filter:invert(1)}@media(max-width:1024px){.logos-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}@media(max-width:768px){.logos-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.logo-item img{max-width:138px}}@media(max-width:480px){.logos-grid{grid-template-columns:repeat(2,1fr)}}.logo-item:nth-child(n+5) img{max-width:230px;max-height:115px}@media(max-width:768px){.logo-item:nth-child(n+5) img{max-width:172px;max-height:115px}}.view-toggle{display:flex;gap:12px;padding:32px 0 24px}.toggle-button{display:flex;align-items:center;gap:8px;padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);cursor:pointer;transition:all var(--dur-fast) var(--ease);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.active:before{content:"";position:absolute;left:12px;width:6px;height:6px;background:var(--tile-rose);border-radius:50%}.toggle-button.active span{padding-left:10px}.toggle-button svg{width:16px;height:16px}@media(max-width:600px){.view-toggle{gap:8px;padding:24px 0 16px}.toggle-button{font-size:10px;padding:8px 14px}}.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);display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:end}.work-header .header-left{display:flex;flex-direction:column}.header-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--tile-rose);letter-spacing:.15em;text-transform:uppercase;margin-bottom:28px;display:inline-flex;align-items:center;gap:8px}.header-eyebrow:before{content:"";width:8px;height:8px;background:var(--tile-rose)}.work-header h1{display:flex;flex-direction:column;gap:0;align-items:flex-start;margin:0}.work-line{display:block;font-size:clamp(96px,15vw,220px);line-height:.9;font-weight:900}.work-display{font-family:var(--font-display);color:var(--fg-strong)}.work-serif{font-family:var(--font-serif);font-style:italic;color:var(--bone)}.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);font-style:italic;font-weight:400;color:var(--bone)}.work-header h1 .mint{color:var(--tile-rose)}.header-meta{display:flex;flex-direction:column;gap:18px;align-items:flex-end}.header-meta .lede{font-family:var(--font-sans);font-size:18px;line-height:1.5;color:var(--fg);max-width:40ch;text-align:right}.meta-stamp{font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-mute)}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;padding:32px 0;border-bottom:1px solid var(--line)}.filter-button{display:flex;align-items:center;gap:8px;padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:24px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);cursor:pointer;transition:all var(--dur-fast) var(--ease);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-button.active:before{content:"";position:absolute;left:12px;width:6px;height:6px;background:var(--filter-color, var(--tile-rose));border-radius:50%}.filter-button.active .filter-label{padding-left:10px}.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{display:grid;grid-template-columns:80px 1.8fr 1fr 200px 100px 24px;gap:24px;align-items:center;padding:22px 0;border-top:1px solid var(--line);cursor:pointer;transition:background var(--dur-fast) var(--ease);text-decoration:none;color:inherit}.project-row:hover{background:color-mix(in oklab,var(--tile-rose) 5%,transparent)}.project-row .code{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--ash)}.project-row .title-block{display:flex;flex-direction:column;gap:4px}.project-row .title{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-.01em;line-height:1.1;color:var(--fg-strong)}.project-row .deck{font-family:var(--font-sans);font-size:14px;font-weight:400;color:var(--fg-mute);line-height:1.4;letter-spacing:0}.project-row .category{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--fg);display:flex;align-items:center;gap:8px}.project-row .category .dot{width:8px;height:8px;border-radius:50%}.project-row .category .category-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:16px;padding:0 5px;margin-left:4px;background:color-mix(in oklab,var(--tile-rose) 15%,transparent);border:1px solid color-mix(in oklab,var(--tile-rose) 30%,transparent);border-radius:8px;font-size:9px;font-weight:600;letter-spacing:.05em;color:var(--tile-rose);cursor:help;transition:all var(--dur-fast) var(--ease)}.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);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-mute)}.project-row .year{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--fg-mute);text-align:right}.project-row .arrow{font-family:var(--font-mono);font-size:14px;color:var(--ash);transition:transform var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.project-row:hover .arrow{transform:translate(4px,-4px);color:var(--tile-rose)}@media(max-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:70px 1fr 100px 24px}.project-row .category,.project-row .client{display:none}}@media(max-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{font-size:10px;padding:8px 14px}.project-row{grid-template-columns:60px 1fr 24px}.project-row .year{display:none}.project-row .title{font-size:22px}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px;padding-top:32px}.project-grid-item{display:flex;flex-direction:column;cursor:pointer;text-decoration:none;color:inherit;transition:transform var(--dur-fast) var(--ease)}.project-grid-item:hover{transform:translateY(-4px)}.project-grid-item .grid-item-image{width:100%;aspect-ratio:16 / 10;border-radius:8px;display:flex;align-items:flex-start;justify-content:flex-end;padding:16px;margin-bottom:16px;transition:opacity var(--dur-fast) var(--ease);position:relative;overflow:hidden}.project-grid-item:hover .grid-item-image{opacity:.9}.grid-item-image-content{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0}.project-grid-item .grid-item-code{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:#ffffffb3;background:#0000004d;padding:6px 12px;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;z-index:1}.project-grid-item .grid-item-info{display:flex;flex-direction:column;gap:8px}.project-grid-item .grid-item-title{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.01em;line-height:1.2;color:var(--fg-strong);margin:0}.project-grid-item .grid-item-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-grid-item .grid-item-category{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--fg);display:flex;align-items:center;gap:6px}.project-grid-item .grid-item-category .dot{width:6px;height:6px;border-radius:50%}.project-grid-item .grid-item-year{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--fg-mute)}@media(max-width:768px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.project-grid-item .grid-item-title{font-size:18px}}.about-container{min-height:100vh;padding:var(--s-13) var(--pad-x) var(--s-11);display:flex;flex-direction:column;align-items:center;background-color:var(--bg);color:var(--fg)}.about-header-image{width:100%;max-width:300px;height:auto;margin-bottom:var(--s-11);border-radius:var(--r-3)}.about-text-section{max-width:800px;text-align:center;margin-bottom:var(--s-11)}.about-text-section p{font-family:var(--font-sans);font-size:var(--t-body-lg);line-height:1.6;color:var(--fg);margin-bottom:var(--s-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{width:100%;max-width:1000px;display:grid;grid-template-columns:1fr 2fr;gap:var(--s-11);border-top:var(--bd-thin);padding-top:var(--s-11)}.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{display:flex;flex-direction:column;gap:var(--s-12)}.expertise-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-5);font-family:var(--font-sans);font-size:var(--t-body-lg);line-height:1.5;color:var(--fg);padding-bottom:var(--s-11)}.contact-section{width:100%;max-width:1000px;border-top:var(--bd-thin);margin-top:0;padding-top:var(--s-11)}.contact-content{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--s-6)}.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);text-decoration:none;display:flex;align-items:center;gap:var(--s-4);transition:transform var(--dur-fast) var(--ease);border-bottom:none}.contact-email-link:hover{transform:translate(4px,-4px)}[data-theme=light] .about-header-image{filter:brightness(.1)}@media(max-width:768px){.expertise-grid{grid-template-columns:1fr;gap:var(--s-9)}}.links-container{min-height:100vh;padding:var(--s-13) var(--pad-x) var(--s-11);display:flex;flex-direction:column;align-items:center;background-color:var(--bg);color:var(--fg)}.links-hero{text-align:center;margin-bottom:var(--s-11);max-width:600px}.links-title{font-family:var(--font-display);font-weight:900;font-size:clamp(48px,8vw,72px);line-height:1.1;color:var(--fg-strong);margin:0 0 var(--s-6)}.links-title-accent{color:var(--tile-rose)}.links-tagline{font-family:var(--font-sans);font-size:var(--t-body-lg);line-height:1.6;color:var(--fg-mute);margin:0}.links-primary-section{width:100%;max-width:600px;display:flex;flex-direction:column;gap:var(--s-4);margin-bottom:var(--s-11)}.links-primary-button{display:flex;align-items:center;justify-content:space-between;padding:var(--s-6);background-color:var(--canvas-sunk);border:2px solid transparent;border-radius:var(--r-4);text-decoration:none;transition:all var(--dur-fast) var(--ease);position:relative;overflow:hidden}.links-primary-button:hover{border-color:var(--tile-rose);transform:translateY(-2px)}.links-primary-button:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:repeating-linear-gradient(45deg,var(--tile-rose),var(--tile-rose) 10px,transparent 10px,transparent 20px);opacity:0;transition:opacity var(--dur-fast) var(--ease)}.links-primary-button:hover:before{opacity:1}.links-primary-button-content{display:flex;align-items:center;gap:var(--s-4)}.links-primary-button-content svg{color:var(--tile-rose);flex-shrink:0}.links-primary-button-text{display:flex;flex-direction:column;gap:var(--s-1)}.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);flex-shrink:0;transition:transform var(--dur-fast) var(--ease)}.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{display:flex;align-items:center;justify-content:space-between;padding:var(--s-5);background-color:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-3);text-decoration:none;transition:all var(--dur-fast) var(--ease);margin-bottom:var(--s-3)}.links-social-button:hover{background-color:var(--bg-sunk);border-color:var(--fg-mute);transform:translate(4px)}.links-social-button-content{display:flex;align-items:center;gap:var(--s-4)}.links-social-button-content svg{color:var(--fg);flex-shrink:0}.links-social-button-text{display:flex;flex-direction:column;gap:var(--s-1)}.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{color:#fff}[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(max-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);display:flex;flex-direction:column;align-items:center;background-color:var(--bg);color:var(--fg)}.hackathon-hero{max-width:900px;text-align:center;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{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:var(--s-13)}.hackathon-section{width:100%;border-top:var(--bd-thin);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);line-height:1.6;color:var(--fg);margin-bottom:var(--s-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{display:flex;flex-direction:column;gap:var(--s-9)}.hackathon-detail{display:flex;flex-direction:column;gap:var(--s-4)}.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{width:100%;border-top:var(--bd-thin);padding-top:var(--s-11);display:flex;flex-direction:column;gap:var(--s-6)}.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);margin:0;max-width:600px}.hackathon-cta-link{font-family:var(--font-sans);font-size:var(--t-h5);color:var(--tile-rose);text-decoration:none;display:flex;align-items:center;gap:var(--s-4);transition:transform var(--dur-fast) var(--ease);border-bottom:none;width:fit-content}.hackathon-cta-link:hover{transform:translate(4px,-4px)}@media(max-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{min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--t-lede)}.project-banner{position:relative;width:100%;height:60vh;overflow:hidden}.project-banner img{width:100%;height:100%;object-fit:cover}.banner-gradient-bg{width:100%;height:100%}.banner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,var(--canvas),transparent)}.banner-title-container{position:absolute;bottom:var(--s-6);left:0;width:100%;padding:0 5%;z-index:2}.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;margin:0;color:var(--fg-strong)}.project-content{max-width:1200px;margin:0 auto;padding:0 var(--pad-x)}.project-metadata{margin:var(--s-11) 0;padding-bottom:var(--s-11);border-bottom:var(--bd-thin)}.metadata-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-6)}.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);font-weight:500;color:var(--fg);margin:0}.metadata-item.full-width{grid-column:1 / -1;margin-top:var(--s-4)}.tags-list{display:flex;flex-wrap:wrap;gap:var(--s-2)}.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{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background-color:#000}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.project-description{margin-bottom:var(--s-12)}.star-grid{display:grid;grid-template-columns:1fr;gap:var(--s-9)}.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);line-height:1.7;color:var(--fg-mute);margin:0}.project-gallery.full-width-gallery{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-bottom:var(--s-11);padding:0}.full-width-gallery .gallery-grid{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:0}.full-width-gallery .gallery-item{aspect-ratio:16/9;width:100%;overflow:hidden;background-color:var(--canvas-elev);position:relative}.full-width-gallery .gallery-item:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(to bottom,transparent,color-mix(in oklab,var(--tile-rose) 10%,transparent));opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none}.full-width-gallery .gallery-item:hover:after{opacity:1}.full-width-gallery .gallery-item img{width:100%;height:100%;object-fit:cover;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{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6)}.gallery-item{aspect-ratio:16/9;overflow:hidden;background-color:var(--canvas-elev);position:relative}.gallery-item:after{content:"";position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(to bottom,transparent,color-mix(in oklab,var(--tile-rose) 10%,transparent));opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none}.gallery-item:hover:after{opacity:1}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}.gallery-item img:hover{transform:scale(1.02)}@media(max-width:1024px){.banner-title-container h1{font-size:3rem}}@media(max-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(max-width:480px){.metadata-grid{grid-template-columns:1fr}.banner-title-container h1{font-size:2rem}}.not-found-container{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:var(--s-9) var(--pad-x);position:relative;overflow:hidden}.not-found-container:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 40px,var(--line) 40px,var(--line) 42px);opacity:.3;pointer-events:none;z-index:0}.not-found-content{max-width:640px;width:100%;text-align:center;position:relative;z-index:1}.not-found-number{font-family:var(--font-display);font-size:var(--t-display);font-weight:900;line-height:.9;color:var(--accent);margin-bottom:var(--s-5);letter-spacing:-.02em;text-shadow:0 0 20px rgba(255,61,142,.5),0 0 40px rgba(255,61,142,.3);position:relative}.not-found-number:before{content:"404";position:absolute;top:2px;left:2px;color:var(--ultraviolet);opacity:.3;z-index:-1}.not-found-title{font-family:var(--font-display);font-size:var(--t-h3);font-weight:800;line-height:1.1;color:var(--fg);margin-bottom:var(--s-4);letter-spacing:-.02em}.not-found-description{font-family:var(--font-sans);font-size:var(--t-body-lg);line-height:1.6;color:var(--fg-mute);margin-bottom:var(--s-8)}.not-found-links{display:flex;gap:var(--s-4);justify-content:center;flex-wrap:wrap}.not-found-link{display:inline-flex;align-items:center;justify-content:center;padding:var(--s-4) var(--s-6);font-family:var(--font-sans);font-size:var(--t-body);font-weight:500;border-radius:var(--r-pill);transition:all var(--dur) var(--ease);text-decoration:none;border:var(--bd-thin)}.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{background-color:transparent;color:var(--fg);border-color:var(--line)}.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(max-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%}}
