@import"https://fonts.googleapis.com/css2?family=Rock+Salt&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Space+Grotesk:wght@300;400;500;600&display=swap";:root{--font-display: "Rock Salt", cursive;--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Space Grotesk", system-ui, sans-serif;--color-paper: #f8f5f0;--color-ink: #1a1a18;--color-ink-light: #4a4a45;--color-ink-lighter: #8a8a82;--color-rule: #d4d0c8;--color-accent: #c9a66b;--color-spotlight: rgba(255, 248, 235, .15);--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 6rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--shadow-sm: 0 1px 2px rgba(0,0,0,.04), 0 2px 4px rgba(0,0,0,.04);--shadow-md: 0 2px 4px rgba(0,0,0,.04), 0 4px 8px rgba(0,0,0,.06), 0 8px 16px rgba(0,0,0,.04);--shadow-lg: 0 4px 8px rgba(0,0,0,.04), 0 8px 16px rgba(0,0,0,.06), 0 16px 32px rgba(0,0,0,.08), 0 32px 64px rgba(0,0,0,.04)}[data-theme=dark]{--color-paper: #0f0e0d;--color-ink: #e8e4df;--color-ink-light: #b8b4ae;--color-ink-lighter: #7a766f;--color-rule: #2a2826;--color-accent: #d4b078;--color-spotlight: rgba(212, 176, 120, .08);--shadow-sm: 0 1px 2px rgba(0,0,0,.02), 0 2px 4px rgba(0,0,0,.02);--shadow-md: 0 2px 4px rgba(0,0,0,.02), 0 4px 8px rgba(0,0,0,.04), 0 8px 16px rgba(0,0,0,.02);--shadow-lg: 0 4px 8px rgba(0,0,0,.02), 0 8px 16px rgba(0,0,0,.04), 0 16px 32px rgba(0,0,0,.05), 0 32px 64px rgba(0,0,0,.02)}[data-theme=dark] body{background:var(--color-paper)}[data-theme=dark] .tech-tag{background:#ffffff0d}[data-theme=dark] .project-card{box-shadow:var(--shadow-md)}[data-theme=dark] .sidebar-section{background:#14141280}[data-theme=dark] .sidebar-section:before{opacity:.1}[data-theme=dark] .page:before{opacity:.02}[data-theme=dark] .spotlight{display:none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-paper);color:var(--color-ink);line-height:1.6;min-height:100vh}::selection{background:var(--color-accent);color:#fff}.page{max-width:1100px;margin:0 auto;padding:var(--space-lg) var(--space-md);min-height:100vh;display:flex;flex-direction:column;position:relative}.spotlight{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(600px circle at var(--x, 50%) var(--y, 50%),var(--color-spotlight),transparent 40%);transition:opacity .3s ease}.fluid-background{transition:opacity .8s ease;image-rendering:auto}[data-theme=light] .fluid-background{mix-blend-mode:multiply}[data-theme=dark] .fluid-background{mix-blend-mode:screen}.page:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");z-index:9999}.collage-page{max-width:1100px;padding:3rem 2rem 6rem}.collage-hero{padding:6rem 0 8rem;position:relative;z-index:1}.collage-hero-name{font-family:var(--font-display);font-size:clamp(5rem,14vw,9rem);font-weight:400;line-height:.9;margin-left:-.5rem;position:relative;z-index:2;animation:fadeSlideUp .8s var(--ease-out) .2s backwards}.hero-shape{position:absolute;top:3rem;right:5%;width:280px;height:280px;border-radius:50%;background:#c9a66b26;filter:blur(60px);z-index:0;animation:breathe 6s ease-in-out infinite;pointer-events:none}[data-theme=dark] .hero-shape{background:#d4b07814}@keyframes breathe{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.1);opacity:.8}}.pieces{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;row-gap:2rem;position:relative;z-index:1}.piece{position:relative;z-index:1;opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.piece.visible{opacity:1;transform:translateY(0)}.card{background:var(--color-paper);padding:2rem;box-shadow:var(--shadow-md);transition:all .4s var(--ease-out);text-decoration:none;color:inherit;display:block;border-radius:2px;border:1px solid var(--color-rule)}[data-theme=dark] .card{background:#14141299;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}a.card:hover{transform:translateY(-4px) rotate(0)!important;box-shadow:var(--shadow-lg)}a.card:hover .card-name{color:var(--color-accent)}.piece-blog{grid-column:1 / 7;transform:rotate(-1deg)}.piece-blog.visible{transform:rotate(-1deg) translateY(0)}.piece-films{grid-column:6 / 11;margin-top:2rem;transform:rotate(.5deg)}.piece-films.visible{transform:rotate(.5deg) translateY(0)}.piece-labs{grid-column:9 / 13;margin-top:-3rem;transform:rotate(-.5deg)}.piece-labs.visible{transform:rotate(-.5deg) translateY(0)}.piece-about{grid-column:2 / 8;margin-top:1rem}.piece-philosophy{grid-column:7 / 12;margin-top:-1rem;transform:rotate(.8deg)}.piece-philosophy.visible{transform:rotate(.8deg) translateY(0)}.piece-connect{grid-column:1 / 6;margin-top:1rem;transform:rotate(-.3deg)}.piece-connect.visible{transform:rotate(-.3deg) translateY(0)}.piece-pages{grid-column:8 / 13;margin-top:2rem}.card-label{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--color-ink-lighter);margin-bottom:1rem}.card-name{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:400;margin-bottom:.5rem;transition:color .3s ease;line-height:1.3}.card-desc{font-size:.85rem;color:var(--color-ink-lighter);line-height:1.6}.card-about{background:var(--color-rule);border-color:transparent}[data-theme=dark] .card-about{background:#1e1c19cc}.card-about p{font-family:var(--font-serif);font-size:1.05rem;line-height:1.8;color:var(--color-ink-light)}.card-about em{color:var(--color-accent);font-style:normal}.card-philosophy{background:var(--color-ink);color:var(--color-paper);text-align:center;padding:3rem 2rem;border-color:transparent}[data-theme=dark] .card-philosophy{background:#d4b0781a;border-color:#d4b07833}.card-philosophy blockquote{font-family:var(--font-display);font-size:1rem;line-height:2.2;color:var(--color-accent)}.connect-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.connect-list a{font-size:.9rem;color:var(--color-ink-light);text-decoration:none;transition:color .2s ease}.connect-list a:hover{color:var(--color-accent)}.pages-row{display:flex;gap:1rem}.page-chip{flex:1;display:block;padding:1.25rem;background:var(--color-paper);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;text-align:center;transition:all .3s var(--ease-out);border-radius:2px;border:1px solid var(--color-rule)}[data-theme=dark] .page-chip{background:#14141299;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.page-chip:hover .chip-name{color:var(--color-accent)}.chip-name{font-family:var(--font-serif);font-size:1rem;transition:color .2s ease}.chip-sub{font-size:.7rem;color:var(--color-ink-lighter);margin-top:.2rem}.collage-footer{margin-top:6rem;padding-top:0}.collage-footer .footer-rule{display:none}@media(max-width:800px){.pieces{display:flex;flex-direction:column;gap:1.5rem}.piece{margin-top:0!important;transform:none!important}.piece.visible{transform:none!important}.collage-hero-name{font-size:4rem}.hero-shape{width:180px;height:180px;right:0}}.footer{margin-top:auto;padding-top:var(--space-lg);position:relative;z-index:1;animation:fadeSlideUp .6s var(--ease-out) .5s backwards}.footer-rule{height:1px;background:var(--color-ink);margin-bottom:var(--space-sm)}.footer-text{font-size:.75rem;color:var(--color-ink-lighter);text-align:center;letter-spacing:.02em}.footer-year{font-weight:500}.footer-divider{margin:0 .5rem;opacity:.5}.labs-header{text-align:center;margin-bottom:var(--space-lg);position:relative;z-index:1}.back-link{display:inline-block;font-size:.85rem;color:var(--color-ink-light);text-decoration:none;margin-bottom:var(--space-md);transition:color .2s ease}.back-link:hover{color:var(--color-accent)}.labs-title{font-family:var(--font-display);font-size:clamp(2.5rem,8vw,4rem);font-weight:400;letter-spacing:.05em;line-height:1.1;margin-bottom:var(--space-xs)}.labs-subtitle{font-size:.9rem;color:var(--color-ink-light)}.labs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-md);position:relative;z-index:1;margin-bottom:var(--space-lg)}.project-card{display:block;padding:var(--space-md);border:1px solid var(--color-rule);text-decoration:none;color:inherit;transition:all .3s var(--ease-out);animation:fadeSlideUp .5s var(--ease-out) backwards;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.project-card:after{content:"";position:absolute;inset:0;background:rgba(var(--color-paper-rgb, 248, 245, 240),.4);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));opacity:0;transform:scale(.98) translateY(2px);transform-origin:center center;transition:opacity var(--glass-duration) var(--glass-ease),transform var(--glass-duration) var(--glass-ease),box-shadow var(--glass-duration) var(--glass-ease);pointer-events:none;z-index:0;border-radius:8px;box-shadow:var(--glass-shadow)}[data-theme=dark] .project-card:after{background:#14141280}.project-card:before{content:"";position:absolute;inset:0;opacity:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;z-index:1;border-radius:8px;transition:opacity var(--glass-duration) var(--glass-ease)}.project-card:hover:after{opacity:1;transform:scale(1) translateY(-3px)}[data-theme=dark] .project-card:hover:after{background:#14141299}.project-card:hover:before{opacity:var(--glass-grain-opacity)}.project-header,.project-description,.project-tech{position:relative;z-index:2}.project-card:hover{border-color:var(--color-rule)}.project-card:hover .project-title{color:var(--color-accent)}.project-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.project-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;transition:color .2s ease}.project-status{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-lighter);padding:2px 8px;border:1px solid var(--color-rule)}.project-description{font-size:.9rem;color:var(--color-ink-light);line-height:1.6;margin-bottom:var(--space-sm)}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{font-size:.7rem;color:var(--color-ink-lighter);padding:2px 8px;background:#00000008;border-radius:2px}.subpage-header{text-align:center;margin-bottom:var(--space-lg);position:relative;z-index:1}.subpage-title{font-family:var(--font-display);font-size:clamp(2.5rem,8vw,4rem);font-weight:400;letter-spacing:.05em;line-height:1.1;margin-bottom:var(--space-xs)}.subpage-subtitle{font-size:.9rem;color:var(--color-ink-light);margin-bottom:var(--space-xs)}.last-updated{display:block;font-size:.75rem;color:var(--color-ink-lighter);font-style:italic;margin-top:var(--space-sm)}.now-content{max-width:600px;margin:0 auto;position:relative;z-index:1}.now-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-rule);animation:fadeSlideUp .5s var(--ease-out) backwards}.now-section:last-of-type{border-bottom:none}.now-heading{font-family:var(--font-serif);font-size:1.1rem;font-weight:500;color:var(--color-accent);margin-bottom:var(--space-sm);letter-spacing:.02em}.now-list{list-style:none;padding:0}.now-list li{font-size:.95rem;color:var(--color-ink-light);line-height:1.8;padding-left:1rem;position:relative}.now-list li:before{content:"—";position:absolute;left:0;color:var(--color-ink-lighter)}.now-note{font-size:.8rem;color:var(--color-ink-lighter);text-align:center;margin-top:var(--space-lg);font-style:italic}.now-note a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.now-note a:hover{color:var(--color-ink)}.uses-content{max-width:600px;margin:0 auto;position:relative;z-index:1}.uses-section{margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-rule);animation:fadeSlideUp .5s var(--ease-out) backwards}.uses-section:last-of-type{border-bottom:none}.uses-heading{font-family:var(--font-serif);font-size:1.1rem;font-weight:500;color:var(--color-accent);margin-bottom:var(--space-sm);letter-spacing:.02em}.uses-list{list-style:none;padding:0}.uses-item{font-size:.95rem;line-height:1.8;padding-left:1rem;position:relative}.uses-item:before{content:"·";position:absolute;left:0;color:var(--color-ink-lighter);font-weight:700}.uses-name{color:var(--color-ink);font-weight:500}.uses-note{color:var(--color-ink-lighter);font-size:.9em}.uses-note-footer{font-size:.8rem;color:var(--color-ink-lighter);text-align:center;margin-top:var(--space-lg);font-style:italic}.uses-note-footer a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.uses-note-footer a:hover{color:var(--color-ink)}.theme-toggle{position:fixed;top:var(--space-md);right:var(--space-md);z-index:100;width:48px;height:48px;border:none;border-radius:50%;background:rgba(var(--color-paper-rgb, 248, 245, 240),.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--glass-shadow);color:var(--color-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .35s var(--glass-ease);overflow:hidden}.theme-toggle:before{content:"";position:absolute;inset:0;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;border-radius:inherit}[data-theme=dark] .theme-toggle{background:#14141299}[data-theme=dark] .theme-toggle:before{opacity:.1}.theme-toggle:hover{color:var(--color-accent);transform:translateY(-3px);box-shadow:0 2px 4px #00000008,0 4px 8px #0000000a,0 8px 16px #0000000d,0 16px 32px #0000000f,0 24px 48px #0000000d}[data-theme=dark] .theme-toggle:hover{box-shadow:0 2px 4px #00000014,0 4px 8px #0000001a,0 8px 16px #0000001f,0 16px 32px #00000024,0 24px 48px #0000001f}.theme-toggle:active{transform:scale(.95)}.theme-toggle.animating{pointer-events:none}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease-out)}.theme-toggle:hover .theme-toggle-icon{transform:rotate(15deg)}.theme-splash{position:fixed;inset:0;z-index:99;pointer-events:none;clip-path:circle(0% at var(--splash-x) var(--splash-y));animation:splashReveal .6s cubic-bezier(.4,0,.2,1) forwards}.theme-splash-dark{background:#0f0e0d}.theme-splash-light{background:#f8f5f0}@keyframes splashReveal{0%{clip-path:circle(0% at var(--splash-x) var(--splash-y))}to{clip-path:circle(150% at var(--splash-x) var(--splash-y))}}:root{--glass-blur: 24px;--glass-grain-opacity: .08;--glass-shadow: 0 1px 2px rgba(0, 0, 0, .02), 0 2px 4px rgba(0, 0, 0, .02), 0 4px 8px rgba(0, 0, 0, .03), 0 8px 16px rgba(0, 0, 0, .04), 0 16px 32px rgba(0, 0, 0, .05), 0 32px 48px rgba(0, 0, 0, .04);--glass-ease: cubic-bezier(.22, 1, .36, 1);--glass-duration: .45s}[data-theme=dark]{--glass-grain-opacity: .12;--glass-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 4px rgba(0, 0, 0, .06), 0 4px 8px rgba(0, 0, 0, .08), 0 8px 16px rgba(0, 0, 0, .1), 0 16px 32px rgba(0, 0, 0, .12), 0 32px 48px rgba(0, 0, 0, .1)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.spotlight{display:none}.theme-splash{animation:none;clip-path:circle(150% at var(--splash-x) var(--splash-y))}.headline:hover:after,.project-card:hover:after{transform:scale(1) translateY(-2px)!important}}@media print{.spotlight{display:none}.page{max-width:100%;padding:0}.headline{break-inside:avoid}}
