:root{--bg:#fff;--bg-soft:#f6f6f4;--ink:#0a0a0a;--ink-2:#2f2f2f;--muted:#6b6b6b;--muted-2:#9a9a9a;--hairline:#e7e7e5;--hairline-2:#d9d9d7;--accent:#0e5c73;--accent-ink:#fff;--blue-1:#2142ff;--radius-card:14px;--radius-sm:8px;--maxw:1320px;--pad-x:56px;--font-sans:var(--font-geist),ui-sans-serif,system-ui,sans-serif;--font-serif:var(--font-instrument-serif),Georgia,serif;--font-mono:var(--font-sans);--font-mono-real:var(--font-jetbrains-mono),ui-monospace,monospace;--font-pixel:var(--font-silkscreen),var(--font-jetbrains-mono),ui-monospace,monospace;--font-display:var(--font-sans);font-feature-settings:"ss01","ss02","cv11";font-feature-settings:"ss01","ss02","cv11"}html.dark{--bg:#0b0b0b;--bg-soft:#141414;--ink:#f2f2f0;--ink-2:#d8d8d6;--muted:#9a9a98;--muted-2:#6a6a68;--hairline:#1f1f1f;--hairline-2:#2a2a2a}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg)}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.005em;font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--accent-ink)}html{scroll-behavior:smooth}.wrap{max-width:var(--maxw);padding-inline:var(--pad-x);margin:0 auto}section{padding-top:110px;padding-bottom:110px}@media (max-width:900px){:root{--pad-x:24px}section{padding-top:72px;padding-bottom:72px}}.section-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin-bottom:24px;font-size:11px;display:inline-flex}.section-tag:before{content:"";background:var(--muted);width:22px;height:1px}@media (max-width:768px){.section-tag{margin-bottom:16px}}.muted{color:var(--muted)}.ast{color:var(--accent);font-family:var(--font-serif);font-style:italic}.reveal{opacity:1}.ascii-blob{white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:0 0;width:244px;height:190px;margin:0;padding:0;font-style:normal;font-weight:600;overflow:hidden;letter-spacing:0!important;color:var(--blue-1)!important;font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:9px!important;line-height:.95!important}@media (max-width:768px){.ascii-blob{width:180px;height:140.164px;font-size:7px!important}}.watch-tile{border:1px solid var(--hairline);corner-shape:squircle;isolation:isolate;background:#fff;border-radius:28px;flex-direction:column;width:320px;height:220px;padding:18px 20px;display:flex;position:relative;overflow:hidden}.watch-tile:before{content:"";border-radius:inherit;background:radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--ink)4%,transparent)0%,transparent 55%);pointer-events:none;z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}html.dark .watch-tile{border-color:var(--hairline);background:#141414}.watch-tile>*{z-index:1;position:relative}.watch-tile--weather{grid-template-rows:auto auto 1fr auto;width:220px;height:220px;display:grid}.watch-tile__primary{justify-content:space-between;align-items:baseline;gap:12px;margin-top:6px;display:flex}.watch-tile__primary .watch-tile__clock,.watch-tile__primary .watch-tile__temp{margin-top:0}.watch-tile__clock{font-family:var(--font-sans);color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 1;align-items:baseline;font-size:max(18px,min(2.4vw,24px));font-weight:700;line-height:1;display:flex}.watch-tile__colon{margin:0 -.02em;transition:opacity .25s}.watch-tile__top{justify-content:space-between;align-items:center;gap:10px;display:flex}.watch-tile__label{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:500}.watch-tile__cond{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);text-align:right;text-wrap:balance;max-width:55%;font-size:10px;line-height:1.25}.watch-tile__temp{font-family:var(--font-sans);color:var(--ink);font-variant-numeric:tabular-nums;margin-top:8px;font-size:max(18px,min(2.4vw,24px));font-weight:700;line-height:1}.watch-tile__art{place-self:center;place-items:center;display:grid}.watch-tile__art svg{width:100%;max-width:96px;height:auto;display:block}.watch-tile__lohi{font-family:var(--font-sans);font-variant-numeric:tabular-nums;justify-content:center;align-items:baseline;gap:10px;display:flex}.watch-tile__lohi .hi{color:var(--ink);font-size:16px;font-weight:700}.watch-tile__lohi .lo{color:var(--muted);font-size:13px}.emoji-particles{z-index:214748365;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;contain:strict;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.emoji-particle{animation:emoji-buzz-pop var(--dur,1s)cubic-bezier(.2,.8,.2,1)forwards;will-change:transform,opacity;line-height:1;display:inline-block;position:absolute}@keyframes emoji-buzz-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.25)rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))scale(1)rotate(var(--rot))}}.topbar{z-index:40;padding:24px var(--pad-x);border-bottom:1px solid transparent;justify-content:space-between;transition:border-color .25s;display:flex;position:relative}.topbar.scrolled{border-bottom-color:var(--hairline)}.tb-name{flex-direction:column;gap:2px;display:flex}.tb-name .n{font-family:var(--font-sans);color:var(--ink);font-size:24px;font-weight:500}.tb-bio{max-width:360px;font-family:var(--font-sans);letter-spacing:-.01em;color:var(--muted);text-wrap:pretty;margin:0 max(48px,min(8vw,140px)) 0 0;font-size:18px;line-height:1.25}@media (max-width:900px){.tb-bio{display:none}}.hero{flex-direction:column;height:100dvh;min-height:640px;padding:0 0 4dvh;display:flex;position:relative;overflow:hidden}.hero>.topbar{flex:none}@media (max-width:768px){.hero{padding-bottom:14px}}.hero-rgb-trail{z-index:0;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.hero-rgb-trail__point{opacity:0;filter:blur(20px)saturate(1.15);mix-blend-mode:multiply;border-radius:50%;width:170px;height:170px;animation:.76s ease-out forwards hero-rgb-trail;position:absolute;transform:translate(-50%,-50%)}.hero-rgb-trail__point:before,.hero-rgb-trail__point:after{content:"";border-radius:inherit;position:absolute;top:0;bottom:0;left:0;right:0}.hero-rgb-trail__point:before{background:radial-gradient(circle,rgba(255,42,82,.16),transparent 62%);transform:translate(-10px,-4px)}.hero-rgb-trail__point:after{background:radial-gradient(circle,rgba(33,66,255,.18),transparent 64%);transform:translate(10px,5px)}@keyframes hero-rgb-trail{0%{opacity:0;transform:translate(-50%,-50%)scale(.55)}18%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(1.28)}}.topbar,.hero-inner{z-index:1;position:relative}.hero-inner{min-height:0;padding:16px var(--pad-x)0;flex:1 1 0;grid-template-rows:1fr auto;gap:24px;display:grid}.hero-mark{width:100%;font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);white-space:nowrap;align-self:end;align-items:flex-start;margin-bottom:20px;font-size:max(56px,min(13vw,220px));font-weight:700;line-height:.82;display:flex;position:relative}.hero-mark__name{display:inline-block}.hero-mark__ui{font-style:italic;font-family:var(--font-serif);color:var(--blue-1);letter-spacing:-.03em;padding-right:.04em;font-weight:400}.hero-mark__eng{font-style:normal}@media (max-width:768px){.hero-mark{margin-bottom:0}}.hero-foot{border-top:1px solid var(--hairline);flex-direction:row;justify-content:space-between;align-items:flex-start;gap:48px;padding-top:14px;display:flex}.hero-foot__col{flex-direction:column;gap:6px;display:flex}.hero-foot__col:last-child{text-align:right;align-items:flex-end}.hero-foot__lbl,.hero-foot__val{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:14px}.hero-foot__lbl{color:var(--muted);align-items:center;gap:8px;font-weight:500;display:inline-flex}.hero-foot__val{color:var(--ink)}.hero-foot__val a{color:inherit;text-decoration:none;transition:opacity .2s}.hero-foot__val a:hover{opacity:.6}.hero-foot__dot{background:#2ecc71;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px rgba(46,204,113,.22)}@media (max-width:900px){.hero-foot{flex-wrap:wrap;gap:14px 24px}}@media (max-width:768px){.hero-foot .hero-foot__col:not(:first-child):not(:last-child){display:none}}#work{padding-top:20dvh}.work-head{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:56px;display:flex}@media (max-width:768px){.work-head{margin-bottom:32px}}.work-head h2{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;max-width:600px;margin:0;font-size:max(24px,min(3vw,40px));font-weight:500}.work-head .filters{flex-wrap:wrap;gap:8px;display:inline-flex}.work-head .filters button{font-family:var(--font-sans);border:1px solid var(--hairline);color:var(--ink-2);border-radius:999px;padding:8px 14px;font-size:13px;transition:all .2s}.work-head .filters button:hover{border-color:var(--ink);color:var(--ink)}.work-head .filters button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 56px;display:grid}@media (max-width:900px){.work-grid{gap:40px}}@media (max-width:768px){.work-grid{grid-template-columns:1fr;gap:40px}}.work-card{cursor:pointer;flex-direction:column;display:flex}.work-thumb{aspect-ratio:1;background:0 0;border:1px solid #f1f1f1;border-radius:10px;place-items:center;transition:transform .5s cubic-bezier(.2,.65,.2,1);display:grid;position:relative;overflow:hidden}.work-card:hover .work-thumb{transform:translateY(-6px)}@media (max-width:768px){.work-card:hover .work-thumb{transform:none}}.work-card.tinted-1 .work-thumb,.work-card.tinted-2 .work-thumb,.work-card.tinted-3 .work-thumb,.work-card.tinted-4 .work-thumb,.work-card.tinted-5 .work-thumb,.work-card.tinted-6 .work-thumb{background:0 0}.work-thumb img{object-fit:cover;border-radius:10px;width:100%;height:100%;display:block}.work-thumb .pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb,var(--bg)80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);border:1px solid var(--hairline);border-radius:6px;padding:6px 10px;font-size:10.5px;position:absolute;top:16px;left:16px}.work-thumb .arrow{background:var(--bg);opacity:0;border-radius:50%;place-items:center;width:32px;height:32px;transition:all .35s cubic-bezier(.2,.65,.2,1);display:grid;position:absolute;top:16px;right:16px;transform:translate(6px,-6px);box-shadow:0 4px 12px -4px rgba(0,0,0,.18)}@media (max-width:768px){.work-thumb .arrow{display:none}}.work-card:hover .arrow{opacity:1;transform:none}.work-caption{flex-direction:column;gap:6px;margin-top:22px;padding-left:4px;padding-right:4px;display:flex}.work-caption .role{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px}.work-caption .nm{letter-spacing:-.015em;font-size:18px;font-weight:500}.work-caption .desc{color:var(--ink-2);margin-top:2px;font-size:17px;line-height:1.5}@media (max-width:768px){.work-caption .desc{font-size:15px}}.work-caption .tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:inline-flex}.work-caption .tags span{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10px}.work-caption .tags span+span:before{content:"·";color:var(--muted-2);margin-right:6px}html[data-card=lifted] .work-thumb{background:0 0;box-shadow:0 24px 50px -28px rgba(0,0,0,.12)}html[data-card=lifted] .work-card.tinted-1 .work-thumb,html[data-card=lifted] .work-card.tinted-2 .work-thumb,html[data-card=lifted] .work-card.tinted-3 .work-thumb,html[data-card=lifted] .work-card.tinted-4 .work-thumb,html[data-card=lifted] .work-card.tinted-5 .work-thumb,html[data-card=lifted] .work-card.tinted-6 .work-thumb{background:var(--bg)}html[data-card=outlined] .work-thumb{background:0 0;border:1px solid #e9e9e9}html[data-card=outlined] .work-card.tinted-1 .work-thumb,html[data-card=outlined] .work-card.tinted-2 .work-thumb,html[data-card=outlined] .work-card.tinted-3 .work-thumb,html[data-card=outlined] .work-card.tinted-4 .work-thumb,html[data-card=outlined] .work-card.tinted-5 .work-thumb,html[data-card=outlined] .work-card.tinted-6 .work-thumb{background:var(--bg)}.manifesto{padding:0;position:relative;overflow:hidden}.manifesto .m-headline{z-index:4;width:100%;padding:110px var(--pad-x)80px;max-width:var(--maxw);font-family:var(--font-display);letter-spacing:-.045em;color:var(--ink);text-align:center;flex-direction:column;align-items:center;gap:4px;margin:0 auto;font-size:max(32px,min(8.5vw,120px));font-weight:700;line-height:1.15;display:flex;position:relative}.manifesto .m-headline em{color:var(--blue-1);vertical-align:-.05em;align-items:center;margin:0 0 0 .12em;font-size:1em;font-style:normal;font-weight:700;line-height:1;display:inline-flex}.manifesto .m-headline em .palm-icon{width:1em;height:1em;display:inline-block;transform:rotate(-6deg)translateY(.06em)}.manifesto .m-line{white-space:nowrap;align-items:center;gap:.18em;display:inline-flex}.manifesto .m-parens{align-items:center;gap:.12em}.manifesto .m-paren-glyph{line-height:.9;display:inline-block}.manifesto .m-paren-img-wrap{aspect-ratio:1;vertical-align:middle;height:1em;display:inline-block}.manifesto .m-paren-img-wrap img{object-fit:contain;width:100%;height:100%;display:block}@media (max-width:900px){.manifesto{min-height:auto;padding-top:0;padding-bottom:0}.manifesto .m-headline{gap:4px;padding:0 24px 32px}}.building .section-head{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:56px;display:flex}@media (max-width:768px){.building .section-head{margin-bottom:24px}}.building h2{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;max-width:640px;margin:0;font-size:max(28px,min(3vw,40px));font-weight:500;line-height:1.1}.building h2 small{color:var(--muted);letter-spacing:-.005em;margin-top:12px;font-size:16px;font-weight:400;display:block}.building .legend{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:11px;display:inline-flex}.building .legend svg{opacity:.55}.showcase-items{scrollbar-width:none;-ms-overflow-style:none;cursor:grab;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:20px;width:100%;display:flex;overflow-x:scroll}.showcase-items::-webkit-scrollbar{display:none}.showcase-items.dragging{cursor:grabbing;-webkit-user-select:none;-moz-user-select:none;user-select:none}.showcase-items.dragging *{pointer-events:none}.showcase-items--inner{padding:20px var(--pad-x);flex-direction:row;justify-content:flex-start;align-items:center;gap:4rem;display:flex}.showcase-item{height:60dvh;color:inherit;border-radius:5.2dvh;flex-direction:column;flex:none;justify-content:flex-start;align-items:flex-start;gap:0;text-decoration:none;display:flex;position:relative;overflow:hidden}.showcase-item.orientation-landscape{border-radius:1dvh;height:40dvh}.showcase-item.is-link{cursor:pointer}.showcase-item:hover .showcase-media img,.showcase-item:hover .showcase-media video{filter:blur(6px);transform:scale(1.02)}.showcase-item:focus-visible .showcase-media img{filter:blur(6px);transform:scale(1.02)}.showcase-item:focus-visible .showcase-media video{filter:blur(6px);transform:scale(1.02)}.showcase-item:hover .showcase-overlay{opacity:1}.showcase-item:focus-visible .showcase-overlay{opacity:1}.showcase-media{flex-direction:column;justify-content:center;align-items:center;gap:0;height:100%;display:flex}.showcase-media img,.showcase-media video{object-fit:contain;object-position:center;width:100%;max-width:100%;height:100%;max-height:100%;transition:filter .2s,transform .2s;display:block}.showcase-media video{object-fit:contain!important;object-position:center!important}.showcase-media video::-webkit-media-controls{-webkit-appearance:none;display:none!important}.showcase-media video::-webkit-media-controls-panel{-webkit-appearance:none;display:none!important}.showcase-media video::-webkit-media-controls-start-playback-button{-webkit-appearance:none;display:none!important}.showcase-overlay{opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.35);flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:0;height:100%;padding:24px 24px 40px;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.showcase-details{background:rgba(0,0,0,.6);border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;width:100%;padding:18px;display:flex}.showcase-details h3{color:#fff;margin:0;font-size:18px;font-weight:500}.showcase-details p{color:rgba(255,255,255,.8);margin:0;font-size:14px;line-height:1.35}@media (max-width:720px){.showcase-item{max-width:240px;height:auto}.showcase-item.orientation-landscape{max-width:90vw;height:auto}}.about-doc{grid-template-columns:220px minmax(0,1fr);gap:64px;max-width:1080px;display:grid}@media (max-width:900px){.about-doc{grid-template-columns:1fr;gap:16px}}.about-doc h2,.about-doc .about-h2{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;grid-column:1/-1;max-width:720px;margin:0 0 56px;font-size:max(24px,min(3vw,40px));font-weight:500}.about-headrow{justify-content:space-between;align-items:flex-start;gap:48px;margin-bottom:56px;display:flex}.about-headrow .about-h2{flex:1;margin:0}.about-headrow .ascii-blob{flex-shrink:0;margin-top:-8px}@media (max-width:900px){.about-headrow{flex-direction:column;gap:24px}}@media (max-width:768px){.about-headrow{flex-direction:column-reverse;gap:16px;margin-top:10px;margin-bottom:12px}}.about-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:6px;font-size:11px}.about-body{color:var(--ink);text-wrap:pretty;margin-bottom:24px;font-size:17px;line-height:1.6}@media (max-width:768px){.about-body{font-size:15px}}.about-body p{margin:0 0 18px}.about-body p:last-child{margin-bottom:0}.about-body .app-link{color:var(--blue-1);font-weight:500;text-decoration:underline}.about-body strong{color:var(--ink);font-weight:600}.about-body .inline-chip{vertical-align:-3px;white-space:nowrap;align-items:center;gap:6px;margin:0 0 -2px 8px;font-size:17px;font-weight:600;display:inline-flex}.about-body .chip-dot{corner-shape:squircle;background-size:cover;border-radius:10px;width:20px;height:20px;display:inline-block;box-shadow:0 0 0 1px rgba(0,0,0,.04)}@media (max-width:768px){.about-body .chip-dot{border-radius:6px}}.resume-btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--bg-soft);border:1px solid var(--hairline);border-radius:12px;align-items:center;gap:10px;padding:8px;font-size:12px;transition:all .2s;display:inline-flex}.resume-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.resume-btn .pdf{color:#fff;background:#dc2626;border-radius:4px;place-items:center;width:22px;height:22px;font-size:8.5px;font-weight:700;display:inline-grid}.contact-row{flex-wrap:wrap;align-items:flex-start;gap:56px;display:flex}.contact-list{flex-direction:column;flex:1;gap:10px;min-width:240px;display:flex}.contact-list a{color:var(--blue-1);border-bottom:1px solid transparent;align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;padding-bottom:1px;font-size:16px;transition:border-color .2s;display:inline-flex}.contact-list a svg{flex-shrink:0}.contact-cards{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-left:auto;display:flex}@media (max-width:768px){.contact-cards{margin-left:0;display:none}}.exp-grid{grid-template-columns:220px minmax(0,1fr);gap:16px 64px;max-width:1080px;display:grid}@media (max-width:860px){.exp-grid{grid-template-columns:1fr;gap:32px}}.exp-intro{margin-bottom:32px}@media (max-width:768px){.exp-intro{margin-bottom:0}}.exp-grid h2{font-family:var(--font-display);letter-spacing:-.03em;grid-column:1/-1;margin:0 0 24px;font-size:max(24px,min(3vw,40px));font-weight:500}@media (max-width:768px){.exp-grid h2{margin-bottom:0}}.exp-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--hairline);padding-top:18px;font-size:11px}@media (max-width:768px){.exp-label{display:none}}.exp-list{flex-direction:column;display:flex}.exp-item{border-top:1px solid var(--hairline);grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:28px 0;transition:padding .25s;display:grid}.exp-item--row{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;display:flex}.exp-item:hover:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:6px}.exp-item:hover:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:6px}.exp-item:hover:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:6px}.exp-item:hover:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:6px}.exp-item:hover:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:6px}.exp-item:hover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:6px}@media (max-width:768px){.exp-item:hover:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:0}.exp-item:hover:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:0}.exp-item:hover:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:0}.exp-item:hover:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:0}.exp-item:hover:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:0}.exp-item:hover:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:0}}.exp-item .co{letter-spacing:-.015em;font-size:22px;font-weight:500}@media (max-width:768px){.exp-item .co{font-size:20px}}.exp-item .role{color:var(--muted);margin-top:4px;font-size:14px}.exp-item .desc{color:var(--ink-2);text-wrap:pretty;max-width:580px;margin-top:10px;font-size:17px;line-height:1.55}@media (max-width:768px){.exp-item .desc{font-size:15px}}.exp-item .when{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);text-align:right;white-space:nowrap;font-size:12px}.foot-collage{padding:80px var(--pad-x)6dvh;position:relative;overflow:hidden}.foot-collage .wrap{position:relative}.foot-row{--book-h:280px;--book-h-base:280;flex-flow:row;justify-content:center;align-items:center;gap:24px;display:flex}@media (max-width:768px){.foot-row{--book-h:220px;--book-h-base:220}}@media (max-width:560px){.foot-row{--book-h:180px;--book-h-base:170}}.polaroids{flex-direction:row;justify-content:center;align-items:center;padding:32px 0;display:flex;position:relative}.polaroid{background:#fff;flex-direction:column;gap:8px;width:max(120px,min(14vw,220px));margin:0;padding:8px 8px 24px;transition:transform .4s cubic-bezier(.2,.8,.2,1);display:flex;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 6px 14px rgba(0,0,0,.08),0 16px 32px rgba(0,0,0,.1)}.polaroid:hover{z-index:10}.polaroid__photo{aspect-ratio:1;background:var(--bg-soft);width:100%;position:relative;overflow:hidden}.polaroid__photo img{object-fit:cover;width:100%;height:100%;display:block}.polaroid__caption{font-family:var(--font-caveat),"Bradley Hand","Comic Sans MS",cursive;letter-spacing:.01em;color:var(--ink);align-self:stretch;padding:0 4px;font-size:max(14px,min(1.05vw,18px));font-weight:500;line-height:1}.polaroid--left{z-index:2;transform:translate(12%,6%)rotate(-9deg)}.polaroid--left:hover{transform:translate(12%,4%)rotate(-7deg)scale(1.02)}.polaroid--right{z-index:1;transform:translate(-12%)rotate(6deg)}.polaroid--right:hover{transform:translate(-12%,-2%)rotate(5deg)scale(1.02)}.vinyl-card{aspect-ratio:1;outline:none;flex:none;place-items:center;width:max(160px,min(16vw,210px));margin-top:3.2vw;transition:transform .45s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}@media (max-width:560px){.vinyl-card{display:none}}.vinyl-card:hover{transform:translateY(-6px)rotate(-2deg)}.vinyl-card:focus-visible{transform:translateY(-6px)rotate(-2deg)}.vinyl-card:hover .vinyl-card__meta{opacity:1;transform:translate(-50%,-4px)}.vinyl-card:focus-visible .vinyl-card__meta{opacity:1;transform:translate(-50%,-4px)}.vinyl-card img{object-fit:cover;filter:drop-shadow(0 20px 26px rgba(0,0,0,.18));border-radius:50%;width:100%;height:100%;display:block}.vinyl-card__meta{color:var(--ink);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;opacity:0;align-items:center;gap:8px;transition:opacity .25s,transform .45s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.vinyl-card__meta span{font-size:11px;font-weight:600}.vinyl-card__meta small{color:var(--muted);font-size:10px}.bookshelf{perspective:900px;transform-style:preserve-3d;flex-direction:row;flex:none;align-items:stretch;gap:14px;display:flex}@media (max-width:560px){.bookshelf{padding-right:20px}}.book{width:calc(var(--spine-w,28px)*var(--book-h-base)/280);height:calc(var(--book-h,280px)*var(--book-h-base)/280);cursor:pointer;perspective:720px;transform-style:preserve-3d;outline:none;flex:none;transition:width .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1);position:relative}.book:hover{width:calc(var(--spine-w,28px)*var(--book-h-base)/280 + var(--cover-w,220px)*var(--book-h-base)/280);z-index:5;transform:translateZ(18px)}.book:focus-visible{width:calc(var(--spine-w,28px)*var(--book-h-base)/280 + var(--cover-w,220px)*var(--book-h-base)/280);z-index:5;transform:translateZ(18px)}.book:hover .book__spine{transform:rotateY(-62deg)}.book:focus-visible .book__spine{transform:rotateY(-62deg)}.book:hover .book__cover{transform:rotateY(14deg)}.book:focus-visible .book__cover{transform:rotateY(14deg)}@media (max-width:560px){.book:hover{margin-right:40px}.book:focus-visible{margin-right:40px}}.book__spine,.book__cover{height:var(--book-h,280px);transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.8,.2,1);position:absolute;top:0}.book__spine{width:calc(var(--spine-w,28px)*var(--book-h-base)/280);transform-origin:100%;z-index:2;left:0;transform:rotateY(-22deg)}.book__cover{left:calc(var(--spine-w,28px)*var(--book-h-base)/280);width:calc(var(--cover-w,220px)*var(--book-h-base)/280);transform-origin:0;z-index:1;border-radius:0 2px 2px 0;overflow:hidden;transform:rotateY(84deg)}.book__cover:after{content:"";pointer-events:none;mix-blend-mode:multiply;background:linear-gradient(90deg,rgba(0,0,0,.12),transparent 14%,transparent 78%,rgba(255,255,255,.18));position:absolute;top:0;bottom:0;left:0;right:0}.book__spine-img,.book__cover-img{object-fit:cover;-webkit-backface-visibility:hidden;backface-visibility:hidden;filter:drop-shadow(0 10px 26px rgba(0,0,0,.18));width:100%;height:100%;display:block}.book__crease{z-index:1;pointer-events:none;background:rgba(0,0,0,.08);width:1px;height:100%;position:absolute;top:0;left:8px}@media (max-width:768px){.book,.book__cover,.book__cover-img,.book__spine,.book__spine-img{height:var(--book-h,220px)}}@media (max-width:560px){.book:not(:first-child){display:none}}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.518e079e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.ea323500.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.853d50a3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.55554cd0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_dbbf8c4b-module__5qCx7q__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_dbbf8c4b-module__5qCx7q__variable{--font-geist:"Geist","Geist Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.614a1c00.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.d8bad3ab.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.262b87c4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.380d09ea.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_90178cf-module__2pLAta__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_90178cf-module__2pLAta__variable{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_38865a85-module__uXxy6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_38865a85-module__uXxy6G__variable{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}
@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26e9340776e0c8e8-s.e651c8cc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(../media/37f34e4fcce0f2d4-s.p.8b8a2c36.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9a82a02b3825653d-s.afe74196.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Silkscreen;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ec783ae88469012-s.p.8e801336.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen Fallback;src:local(Arial);ascent-override:68.84%;descent-override:16.71%;line-gap-override:0.0%;size-adjust:149.62%}.silkscreen_45ba2427-module__W1gJVq__className{font-family:Silkscreen,Silkscreen Fallback;font-style:normal}.silkscreen_45ba2427-module__W1gJVq__variable{--font-silkscreen:"Silkscreen","Silkscreen Fallback"}
@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/da4b870ab52b3094-s.5e0466e7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.5d81ed22.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/11cc37d7380d16b4-s.6c45a7b8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a85fe84266768609-s.p.e658778d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/da4b870ab52b3094-s.5e0466e7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.5d81ed22.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/11cc37d7380d16b4-s.6c45a7b8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a85fe84266768609-s.p.e658778d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.caveat_233c50f7-module__CdMTbq__className{font-family:Caveat,Caveat Fallback;font-style:normal}.caveat_233c50f7-module__CdMTbq__variable{--font-caveat:"Caveat","Caveat Fallback"}
