.hero{z-index:1;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:0 48px;display:flex;position:relative}.hero-grid{grid-template-columns:1fr auto;align-items:end;gap:8px 48px;display:grid}.hero h1{text-transform:uppercase;letter-spacing:-.03em;font-family:Inter,sans-serif;font-size:clamp(3rem,8vw,8rem);font-weight:700;line-height:.9;transition:letter-spacing .5s,color .5s;display:inline-block}.hero h1:hover{letter-spacing:.05em;color:#fff}.square-dot{vertical-align:baseline;background:currentColor;width:.12em;height:.12em;margin-left:.04em;transition:transform .5s,opacity .5s;display:inline-block;transform:translateY(-.02em)}.hero h1:hover .square-dot{transform:translateY(-.02em)rotate(225deg)scale(1.4)}.hero-sub{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--muted);padding-bottom:12px;font-family:Space Mono,monospace;font-size:.65rem}.hero-coord{color:var(--muted);letter-spacing:.15em;grid-column:1/-1;margin-top:24px;font-family:Space Mono,monospace;font-size:.55rem}section{z-index:1;padding:120px 48px;position:relative}.section-header{border-bottom:1px solid var(--dim);grid-template-columns:1fr 1fr;gap:48px;margin-bottom:80px;padding-bottom:24px;display:grid}.section-label{text-transform:uppercase;letter-spacing:.25em;color:var(--muted);font-family:Space Mono,monospace;font-size:.6rem}.section-number{color:var(--muted);text-align:right;font-family:Space Mono,monospace;font-size:.6rem}.section-title{text-transform:uppercase;letter-spacing:-.02em;font-family:Inter,sans-serif;font-size:clamp(1.8rem,4vw,3.5rem);font-weight:700;line-height:1}.section-title span{color:var(--muted);display:block}.about-grid{grid-template-columns:1fr 1fr;gap:80px;display:grid}.about-text p{color:var(--accent);max-width:50ch;font-size:1.05rem;line-height:1.8}.about-coords{flex-direction:column;justify-content:center;gap:32px;display:flex}.coord-block{border-bottom:1px solid var(--dim);grid-template-columns:auto 1fr;align-items:baseline;gap:16px;padding:16px 0;display:grid}.coord-label{color:var(--muted);text-transform:uppercase;letter-spacing:.2em;min-width:80px;font-family:Space Mono,monospace;font-size:.55rem}.coord-value{letter-spacing:.05em;font-family:Space Mono,monospace;font-size:1.1rem;font-weight:700}.projects-list{flex-direction:column;display:flex}.project-item{border-bottom:1px solid var(--dim);color:var(--fg);grid-template-columns:auto 1fr auto;align-items:center;gap:32px;padding:40px 0;text-decoration:none;transition:opacity .3s;display:grid}.project-item:first-child{border-top:1px solid var(--dim)}.project-item:hover{opacity:.5}.project-index{color:var(--muted);letter-spacing:.1em;min-width:32px;font-family:Space Mono,monospace;font-size:.6rem}.project-info h3{text-transform:uppercase;letter-spacing:-.01em;margin-bottom:4px;font-family:Inter,sans-serif;font-size:clamp(1.2rem,2.5vw,2rem);font-weight:700}.project-tag{color:var(--muted);text-transform:uppercase;letter-spacing:.2em;font-family:Space Mono,monospace;font-size:.55rem}.project-coord{color:var(--muted);text-align:right;white-space:nowrap;font-family:Space Mono,monospace;font-size:.6rem}.coord-divider{z-index:1;justify-content:center;align-items:center;padding:60px 48px;display:flex;position:relative}.coord-divider span{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;font-family:Space Mono,monospace;font-size:.55rem}.coord-divider:before,.coord-divider:after{content:"";background:var(--dim);flex:1;height:1px}.coord-divider:before{margin-right:32px}.coord-divider:after{margin-left:32px}.contact-content{text-align:center;max-width:600px;margin:0 auto}.contact-content .section-title{margin-bottom:40px}.contact-email{color:var(--fg);letter-spacing:.05em;border-bottom:1px solid var(--fg);padding-bottom:4px;font-family:Space Mono,monospace;font-size:clamp(.8rem,2vw,1.2rem);font-weight:700;text-decoration:none;transition:opacity .3s}.contact-email:hover{opacity:.4}.contact-coords{justify-content:center;gap:48px;margin-top:64px;display:flex}.contact-coord-item{text-align:center}.contact-coord-item .label{color:var(--muted);text-transform:uppercase;letter-spacing:.2em;margin-bottom:8px;font-family:Space Mono,monospace;font-size:.5rem}.contact-coord-item .value{letter-spacing:.05em;font-family:Space Mono,monospace;font-size:.85rem;font-weight:700}footer{z-index:1;border-top:1px solid var(--dim);justify-content:space-between;align-items:center;padding:40px 48px;display:flex;position:relative}footer span{color:var(--muted);letter-spacing:.15em;text-transform:uppercase;font-family:Space Mono,monospace;font-size:.55rem}html.js .reveal{opacity:0;transition:opacity .75s cubic-bezier(.45,0,.55,1),transform .75s cubic-bezier(.45,0,.55,1);transition-delay:var(--reveal-delay,0s);transform:translateY(18px)}html.js .reveal.is-in{opacity:1;transform:none}html.js .hero h1.reveal{transition:opacity .75s cubic-bezier(.45,0,.55,1),transform .75s cubic-bezier(.45,0,.55,1),letter-spacing .5s,color .5s;transition-delay:var(--reveal-delay,0s)}html.js .project-item.reveal.is-in:hover{opacity:.5}@media (prefers-reduced-motion:reduce){html.js .reveal,html.js .hero h1.reveal{opacity:1;transition:none;transform:none}}@media (width<=768px){.hero{padding:0 24px}.hero-grid{text-align:center;grid-template-columns:1fr;justify-items:center;gap:20px}.hero-coord{text-align:center}section{padding:80px 24px}.section-header{grid-template-columns:1fr;gap:16px}.about-grid{grid-template-columns:1fr;gap:48px}.project-item{grid-template-columns:1fr;gap:8px}.project-coord{text-align:left}.contact-coords{flex-direction:column;gap:24px}footer{padding:24px}}@media (width<=768px),(hover:none) and (pointer:coarse){.hero h1,.hero h1:hover{letter-spacing:-.03em;color:var(--fg);background:var(--bg);border:1px solid var(--fg);-webkit-tap-highlight-color:transparent;box-shadow:inset 1px 1px 0 #e8e8e82e, 3px 3px 0 0 var(--muted);padding:.28em .36em .22em;transition:transform .12s cubic-bezier(.45,0,.55,1),box-shadow .12s cubic-bezier(.45,0,.55,1)}html.js .hero h1.reveal{transition:opacity .75s cubic-bezier(.45,0,.55,1),transform .75s cubic-bezier(.45,0,.55,1),box-shadow .12s cubic-bezier(.45,0,.55,1);transition-delay:var(--reveal-delay,0s)}html.js .hero h1.reveal.is-in{transition:transform .12s cubic-bezier(.45,0,.55,1),box-shadow .12s cubic-bezier(.45,0,.55,1)}.hero h1:active,html.js .hero h1.reveal.is-in:active{box-shadow:inset 1px 1px 0 #e8e8e814, 1px 1px 0 0 var(--muted);transform:translate(2px,2px)}.hero h1 .square-dot,.hero h1:hover .square-dot{transition:none;transform:translateY(-.02em)}}
