@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;900&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #0a0a0a;--color-surface: #141414;--color-text: #e8e8e8;--color-text-muted: #888;--color-accent: #ff2d7b;--color-accent-alt: #7b2dff;--color-border: #2a2a2a;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Space Mono", monospace;--max-width: 1200px;--nav-height: 60px}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-accent-alt)}img{max-width:100%;display:block}.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:#0a0a0ae6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.nav__logo{font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.15em}.nav__logo:hover{color:var(--color-accent)}.nav__links{display:flex;gap:2rem;list-style:none}.nav__links a{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;transition:color .2s ease}.nav__links a:hover,.nav__links a.active{color:var(--color-accent)}.nav__toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}.nav__toggle span{display:block;width:24px;height:2px;background:var(--color-text);margin:5px 0;transition:all .3s ease}#falling-words{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#falling-words canvas{display:block}.bio-word{display:inline-block;transition:opacity .5s ease}.bio-word--shivering{animation:bio-shiver .1s infinite}.bio-word--fallen{opacity:0;pointer-events:none;transition:opacity .3s ease}@keyframes bio-shiver{0%{transform:translate(0)}25%{transform:translate(-1.2px,1px)}50%{transform:translate(1px,-1.2px)}75%{transform:translate(-1px,-.8px)}to{transform:translate(.8px)}}.main{padding-top:var(--nav-height);min-height:100vh;position:relative;z-index:1}body.home{height:100vh;overflow:hidden}body.home .footer{display:none}.hero{position:relative;display:flex;flex-direction:column;justify-content:flex-start;height:calc(100vh - var(--nav-height));padding:2rem 2rem 1rem;max-width:var(--max-width);margin:0 auto;overflow:hidden}.hero__ghost{position:absolute;right:0;bottom:0;height:85%;width:auto;opacity:.15;pointer-events:none;object-fit:contain;object-position:right bottom;mix-blend-mode:lighten;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 60% 50%,black 30%,transparent 70%);mask-image:radial-gradient(ellipse 70% 60% at 60% 50%,black 30%,transparent 70%)}.hero__title{font-size:clamp(2.5rem,7vw,6rem);font-weight:900;line-height:.95;letter-spacing:-.03em;margin-bottom:1rem}.hero__title .accent{color:var(--color-accent)}.hero__subtitle{font-family:var(--font-sans);font-weight:600;font-size:clamp(.75rem,1.1vw,.9rem);color:var(--color-text-muted);max-width:800px;line-height:1.7;letter-spacing:.01em;margin-bottom:1rem}.hero__subtitle p{margin-bottom:.8em}.hero__subtitle p:last-child{margin-bottom:0}.hero__acknowledgment{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;border-left:2px solid var(--color-accent);padding-left:1rem;max-width:500px;line-height:1.8}.page-header{padding:6rem 2rem 3rem;max-width:var(--max-width);margin:0 auto}.page-header__title{font-size:clamp(2.5rem,6vw,5rem);font-weight:900;letter-spacing:-.03em;line-height:1}.page-header__title .accent{color:var(--color-accent)}.page-header__desc{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-muted);margin-top:1rem;max-width:500px}.content{padding:2rem;max-width:var(--max-width);margin:0 auto}.item-list{display:flex;flex-direction:column;gap:0}.item{padding:2rem 0;border-bottom:1px solid var(--color-border);display:grid;grid-template-columns:1fr 2fr;gap:2rem;align-items:start}.item:first-child{border-top:1px solid var(--color-border)}.item__meta{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.item__meta .year{display:block;font-size:1.5rem;font-weight:700;color:var(--color-accent);letter-spacing:-.02em;margin-bottom:.5rem}.item__body h3{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;line-height:1.3;color:var(--color-accent)}.item__body h3 a{color:var(--color-accent)}.item__body h3 a:hover{color:var(--color-accent-alt)}.item__body .collaborators{font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.item__body p{color:var(--color-text-muted);font-size:.95rem;line-height:1.7}.item__body .publication{font-style:italic;color:var(--color-text-muted);font-size:.9rem}.item__body .tags{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.tag{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;padding:.25rem .75rem;border:1px solid var(--color-border);color:var(--color-text-muted)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;padding:2rem;max-width:var(--max-width);margin:0 auto}.gallery-card{background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden;transition:border-color .3s ease}.gallery-card:hover{border-color:var(--color-accent)}a.gallery-card--link{display:block;color:inherit;text-decoration:none}a.gallery-card--link .gallery-card__expand-icon{transition:color .2s ease}a.gallery-card--link:hover .gallery-card__expand-icon{color:var(--color-text)}.gallery-card__image{width:100%;aspect-ratio:16/10;background:var(--color-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em}.gallery-card__image img,.gallery-card__image video{width:100%;height:100%;object-fit:cover}.gallery-card__info{padding:1.25rem}.gallery-card__title{font-size:1rem;font-weight:600;margin-bottom:.25rem}.gallery-card__year{font-family:var(--font-mono);font-size:.7rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.gallery-card__desc{font-size:.85rem;color:var(--color-text-muted);line-height:1.6}.gallery-card{cursor:pointer}.gallery-card__expand-icon{font-family:var(--font-mono);font-size:.7rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;margin-top:.75rem;transition:opacity .2s ease}.gallery-card.is-open .gallery-card__expand-icon{opacity:.5}.gallery-card__detail{display:none;padding:0 1.25rem 1.25rem;border-top:1px solid var(--color-border);margin-top:1rem}.gallery-card.is-open .gallery-card__detail{display:block}.gallery-card__detail-section{margin-top:1rem}.gallery-card__detail-section h4{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);margin-bottom:.5rem}.gallery-card__detail-section p,.gallery-card__detail-section li{font-size:.85rem;color:var(--color-text-muted);line-height:1.7}.gallery-card__detail-section ul{list-style:none;padding:0}.gallery-card__detail-section li{padding:.15rem 0}.gallery-card__detail-section li:before{content:"— ";color:var(--color-accent)}.gallery-card__detail-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border)}.gallery-card__detail-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}.gallery-card__detail-section a{color:var(--color-text);border-bottom:1px solid var(--color-border);transition:border-color .2s ease}.gallery-card__detail-section a:hover{color:var(--color-accent);border-color:var(--color-accent)}.project-page{max-width:900px;margin:0 auto;padding:2rem}.project-page__back{display:inline-block;font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3rem;margin-top:2rem;transition:color .2s ease}.project-page__back:hover{color:var(--color-accent)}.project-page__header{margin-bottom:2rem}.project-page__hero-video{width:100%;margin-bottom:2rem;overflow:hidden;border:1px solid var(--color-border);background:#000}.project-page__hero-video video{width:100%;height:auto;display:block}.project-page__title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:900;letter-spacing:-.03em;line-height:1}.project-page__year{font-family:var(--font-mono);font-size:.85rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;margin-top:.75rem}.project-page__intro{margin-bottom:3rem;border-left:2px solid var(--color-accent);padding-left:1.5rem}.project-page__intro p{font-size:1.05rem;line-height:1.8;color:var(--color-text-muted);margin-bottom:1rem}.project-page__intro p:last-child{margin-bottom:0}.project-page__media{margin-bottom:3rem}.project-page__video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border)}.project-page__video iframe{position:absolute;top:0;left:0;width:100%;height:100%}.project-page__caption{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);margin-top:.75rem;text-transform:uppercase;letter-spacing:.05em}.project-page__section{margin-bottom:3rem}.project-page__section h2{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.project-page__entry{margin-bottom:1.5rem}.project-page__entry h3{font-size:1.1rem;font-weight:600;margin-bottom:.4rem}.project-page__entry p,.project-page__section>p{font-size:.95rem;color:var(--color-text-muted);line-height:1.7}.project-page__images{margin-bottom:3rem;display:flex;flex-direction:column;gap:1rem}.project-page__images--mixed{display:grid;grid-template-columns:1fr;gap:1rem}.project-page__images--mixed .project-page__figure--large{grid-column:1 / -1}.project-page__images--mixed .project-page__figure--pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;grid-column:1 / -1}.project-page__figure{margin:0;border:1px solid var(--color-border);overflow:hidden}.project-page__figure--pair figure{margin:0;border:1px solid var(--color-border);overflow:hidden}.project-page__figure--pair figure img{width:100%;height:100%;object-fit:cover;display:block}.project-page__figure img{width:100%;height:auto;display:block}.project-page__section>p{margin-bottom:1rem}.project-page__section blockquote{border-left:2px solid var(--color-accent);padding-left:1.5rem;margin:1.5rem 0;font-style:italic;font-size:.95rem;color:var(--color-text-muted);line-height:1.8}.project-page__list{list-style:none;padding:0;margin-bottom:1rem}.project-page__list li{font-size:.95rem;color:var(--color-text-muted);line-height:1.7;padding:.2rem 0}.project-page__list li:before{content:"— ";color:var(--color-accent)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding:2rem 0}.contact-block h3{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent);margin-bottom:1rem}.contact-block p,.contact-block a{font-size:1.1rem;line-height:1.8}.contact-block a{display:block;color:var(--color-text)}.contact-block a:hover{color:var(--color-accent)}.footer{border-top:1px solid var(--color-border);padding:2rem;margin-top:4rem}.footer__inner{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer__text{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}@media(max-width:768px){.nav__links{display:none;position:fixed;top:var(--nav-height);left:0;right:0;background:#0a0a0afa;flex-direction:column;padding:2rem;gap:1.5rem;border-bottom:1px solid var(--color-border)}.nav__links.open{display:flex}.nav__toggle{display:block}.item{grid-template-columns:1fr;gap:.5rem}.gallery-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:2rem}.footer__inner{flex-direction:column;gap:1rem;text-align:center}}.lightbox{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;z-index:10000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;display:flex;align-items:center;justify-content:center}.lightbox.is-open{opacity:1;visibility:visible}.lightbox__close{position:fixed;top:20px;right:20px;width:50px;height:50px;background:var(--color-accent);border:none;border-radius:50%;color:#fff;font-size:2rem;cursor:pointer;z-index:10001;display:flex;align-items:center;justify-content:center;line-height:1;transition:transform .2s}.lightbox__close:hover{transform:scale(1.1)}.lightbox__arrow{position:fixed;top:50%;transform:translateY(-50%);width:60px;height:60px;background:var(--color-accent);border:none;border-radius:50%;color:#fff;font-size:2rem;cursor:pointer;z-index:10001;display:flex;align-items:center;justify-content:center;transition:transform .2s,opacity .2s}.lightbox__arrow:hover{transform:translateY(-50%) scale(1.1)}.lightbox__arrow--prev{left:20px}.lightbox__arrow--next{right:20px}.lightbox__arrow:disabled{opacity:.3;cursor:not-allowed}.lightbox__content{display:flex;align-items:center;justify-content:center;padding:20px 100px;max-width:100%;max-height:100%}.lightbox__content img{max-width:80vw;max-height:85vh;object-fit:contain;border-radius:4px;display:none}.lightbox__content img.is-active{display:block}.lightbox__counter{position:fixed;bottom:20px;left:50%;transform:translate(-50%);color:#fff;font-size:.9rem;font-family:var(--font-mono)}.gallery-card.is-open .gallery-card__detail{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.gallery-card__detail-section{grid-column:span 2}.gallery-card__detail-section:has(>img:only-child){grid-column:span 1}.gallery-card__detail-section img{width:100%;height:auto;border-radius:4px;cursor:pointer}@media(max-width:600px){.gallery-card__detail-section:has(>img:only-child){grid-column:span 2}}
