:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--fg:#111;--text:#3a3a3a;--text-2:#5c5c5c;--mute:#999;--mute-2:#888;--line:#eee;--line-strong:#d4d4d4;--ph:#f2f2f2;--cloud:#f6f8fb;--cloud-hi:#fff;--cloud-back:#d9dee6;--cloud-line:#b3bac5;--cloud-storm-hi:#8a93a3;--cloud-storm:#596273;--moon:#b9bfcc;--moon-hi:#eef1f7}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0c0c0d;--fg:#ededed;--text:#c8c8c8;--text-2:#a3a3a3;--mute:#777;--mute-2:#8a8a8a;--line:#1f1f21;--line-strong:#3a3a3d;--ph:#1a1a1c;--cloud:#565962;--cloud-hi:#7b7f89;--cloud-back:#3a3c42;--cloud-line:#8b8f99;--cloud-storm-hi:#4a4d57;--cloud-storm:#2a2c33;--moon:#cfd3dc;--moon-hi:#f4f6fb}}:root[data-theme=cream]{--bg:#f5efe3;--fg:#1d1a15;--text:#3d3830;--text-2:#5e574b;--mute:#9a9183;--mute-2:#8a8174;--line:#e6dece;--line-strong:#d3c9b4;--ph:#ebe3d2;--cloud:#f7efdc;--cloud-hi:#fffaf0;--cloud-back:#dccfb4;--cloud-line:#b9aa8c;--cloud-storm-hi:#9a8f7a;--cloud-storm:#675d4b;--moon:#c4b99f;--moon-hi:#f3ecda}@media (prefers-color-scheme:dark){:root[data-theme=cream]{--bg:#14110e;--fg:#efe7d6;--text:#cfc7b6;--text-2:#a69e8e;--mute:#7d7567;--mute-2:#90887a;--line:#25201a;--line-strong:#3d362c;--ph:#1e1a15;--cloud:#5e5545;--cloud-hi:#8a7f69;--cloud-back:#3f382c;--cloud-line:#a39578;--cloud-storm-hi:#51493b;--cloud-storm:#2c271f;--moon:#ddd2b9;--moon-hi:#f6efdc}}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Inter,Helvetica Neue,Arial,sans-serif}a{color:inherit}.layout{grid-template-columns:260px minmax(0,1fr) 240px;align-items:start;gap:72px;max-width:1240px;margin:0 auto;padding:56px 32px 80px;display:grid}.side{align-self:start;position:sticky;top:56px}.side h1{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.role{color:var(--mute-2);margin:0 0 14px;font-size:15px}.socials{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 10px;font-size:13.5px;display:flex}.socials a{color:var(--mute-2);text-decoration:none;transition:color .15s}.socials a:hover{color:var(--fg)}.collab{color:var(--mute);margin:0 0 24px;font-size:13.5px;line-height:1.5}.collab a{color:var(--fg);border-bottom:1px solid var(--line-strong);padding-bottom:1px;text-decoration:none;transition:border-color .15s}.collab a:hover{border-color:var(--fg)}.bio{color:var(--text);margin:0 0 10px;font-size:15px;line-height:1.65}.bio a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:text-decoration-color .15s}.bio a:hover{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.grad{color:var(--mute-2);margin:0 0 28px;font-size:13.5px;line-height:1.45}.grad strong{color:var(--fg);font-weight:600}.main{min-width:0}.main section{margin-bottom:72px;scroll-margin-top:32px}.main h2{color:var(--mute);margin:0 0 24px;font-size:13px;font-weight:500}.projects{border-top:1px solid var(--line)}.proj{border-bottom:1px solid var(--line)}.proj summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:14px;padding:18px 0;list-style:none;display:flex}.proj summary::-webkit-details-marker{display:none}.proj-thumb{border:1px solid var(--line);background:var(--ph);border-radius:6px;flex:0 0 56px;width:56px;height:36px;overflow:hidden}.proj-thumb img{object-fit:cover;width:100%;height:100%;display:block}.proj-title{letter-spacing:-.01em;flex:1;min-width:0;font-size:17px;font-weight:600}.date{color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.chev{text-align:center;width:16px;color:var(--mute);font-size:18px;line-height:1;transition:transform .2s,color .2s}.proj summary:hover .chev,.proj summary:hover .proj-title{color:var(--fg)}.proj[open] .chev{color:var(--fg);transform:rotate(45deg)}.proj-body{padding:0 0 22px;animation:.25s reveal}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}}.proj-body p{color:var(--text-2);margin:0 0 12px;font-size:15px;line-height:1.65}.stack{color:var(--mute);margin-bottom:12px;font-size:13px}.proj-links{gap:18px;font-size:14px;display:flex}.proj-links a{color:var(--fg);border-bottom:1px solid var(--line-strong);padding-bottom:1px;text-decoration:none;transition:border-color .15s}.proj-links a:hover{border-color:var(--fg)}.item{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;font-size:15px;text-decoration:none;display:flex}.item:last-child{border-bottom:1px solid var(--line)}.item .r{color:var(--mute);white-space:nowrap;font-size:13px}a.item:hover .l{text-underline-offset:3px;text-decoration:underline}.np{align-items:center;gap:14px;text-decoration:none;display:flex}.np img,.np .ph{background:var(--ph);object-fit:cover;border-radius:6px;flex-shrink:0;width:44px;height:44px}.np .t{font-size:15px;font-weight:500}.np .a{color:var(--mute-2);font-size:13px}.live{vertical-align:middle;background:#1db954;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.3}}.muted{color:var(--mute);margin:0;font-size:15px}.back{color:var(--mute-2);font-size:14px;text-decoration:none}.back:hover{color:var(--fg)}.post{width:100%;max-width:640px;margin:0 auto;padding:96px 32px}.post-title{letter-spacing:-.02em;margin:32px 0 6px;font-size:32px;font-weight:600}.post-date{color:var(--mute);margin:0 0 32px;font-size:14px}.post-edited{font-style:italic}.edited-btn{font:inherit;color:var(--mute);cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:4px;background:0 0;border:0;padding:0;font-style:italic;transition:color .15s}.edited-btn:hover{color:var(--fg);-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.edited-btn[aria-pressed=true]{color:var(--fg)}.orig-flag{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin:-20px 0 28px;font-size:12.5px;font-weight:500}.prose.is-original{animation:.25s orig-in}@keyframes orig-in{0%{opacity:0}}.prose{color:var(--text);font-size:17px;line-height:1.75}.prose p{margin:0 0 1.2em}.prose h2{letter-spacing:-.01em;color:var(--fg);margin:2em 0 .6em;font-size:20px;font-weight:600}.prose a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.prose a:hover{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.prose ul{margin:0 0 1.2em;padding-left:1.2em}.prose li{margin-bottom:.4em}.prose blockquote{border-left:2px solid var(--line);color:var(--text-2);margin:0 0 1.2em;padding-left:16px}.prose img{border-radius:8px;max-width:100%}.clock{border-top:1px solid var(--line);cursor:default;flex-wrap:wrap;align-items:center;gap:10px 12px;width:fit-content;max-width:100%;margin-top:40px;padding-top:20px;display:flex;position:relative}.clock-text{flex-direction:column;gap:2px;display:flex}.clock-date{letter-spacing:-.01em;font-size:15px;font-weight:500}.clock-time{font-variant-numeric:tabular-nums;color:var(--text);font-size:14px}.clock-zone{color:var(--mute);font-size:13px}.clock .wx{transition:transform .25s}.clock:hover .wx,.clock:focus-within .wx{transform:scale(1.08)}.clock-card{border:1px solid var(--line-strong);background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;z-index:20;border-radius:12px;width:min(240px,70vw);padding:14px 14px 12px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;bottom:calc(100% + 10px);left:0;transform:translateY(6px);box-shadow:0 12px 40px #00000028}.clock:hover .clock-card,.clock:focus-within .clock-card{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.clock-card-top{align-items:center;gap:10px;margin-bottom:10px;display:flex}.clock-card-top .wx{width:36px;height:36px}.clock-card-place{font-size:14px;font-weight:500}.clock-card-day{color:var(--mute);margin-top:1px;font-size:12px}.clock-card-temp{border-bottom:1px solid var(--line);align-items:baseline;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.clock-card-deg{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:550}.clock-card-label{color:var(--mute-2);font-size:13px}.clock-card-grid{color:var(--text-2);grid-template-columns:1fr auto;gap:6px 14px;font-size:12.5px;display:grid}.clock-card-grid span:nth-child(odd){color:var(--mute)}.clock-card-grid span:nth-child(2n){text-align:right;font-variant-numeric:tabular-nums;color:var(--fg)}.clock-card-rel{border-top:1px solid var(--line);color:var(--mute);margin-top:10px;padding-top:10px;font-size:12px}.clock-alert{color:#a35a1a;flex:100%;max-width:100%;margin:2px 0 0;font-size:11.5px;line-height:1.4}.clock-alert strong{font-weight:550}.clock-alert-n{opacity:.65;white-space:nowrap}.clock-alert-alert{color:#a33d2a}@media (prefers-color-scheme:dark){.clock-alert{color:#d4a574}.clock-alert-alert{color:#e8a090}}@media (prefers-reduced-motion:reduce){.clock .wx,.clock-card{transition:none}}.np{border:1px solid var(--line);border-radius:12px;padding:14px;transition:border-color .15s}a.np:hover{border-color:var(--line-strong)}.films-col{align-self:start;scroll-margin-top:32px;position:sticky;top:56px}.films-col h2{color:var(--mute);justify-content:space-between;margin:0 0 20px;font-size:13px;font-weight:500;display:flex}.films-col h2 a{color:var(--mute);text-decoration:none}.films-col h2 a:hover{color:var(--fg)}.films{flex-direction:column;gap:14px;display:flex}.film{align-items:flex-start;gap:12px;text-decoration:none;display:flex}.film img,.poster-ph{object-fit:cover;background:var(--ph);border-radius:4px;flex-shrink:0;width:40px;height:60px;transition:transform .2s;box-shadow:0 1px 3px #0001}.film:hover img{transform:scale(1.05)}.film-text{flex-direction:column;gap:2px;min-width:0;display:flex}.film-title{font-size:14px;line-height:1.35}.film:hover .film-title{text-underline-offset:3px;text-decoration:underline}.film-rating{color:var(--mute);letter-spacing:1px;align-items:center;gap:6px;font-size:12px;display:flex}.film-like{color:#ff8000;letter-spacing:0}.film-rewatch{color:var(--mute);letter-spacing:0}.film-review{color:var(--text-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:3px;font-size:13px;font-style:italic;line-height:1.45;display:-webkit-box;overflow:hidden}@media (max-width:1080px){.layout{grid-template-columns:240px minmax(0,1fr);gap:56px}.films-col{grid-column:2;position:static}}@media (max-width:820px){.films-col{grid-column:auto}.layout{grid-template-columns:minmax(0,1fr);gap:56px;padding:40px 20px 56px}.side{position:static}.socials{flex-direction:row;gap:18px}}@media (prefers-reduced-motion:reduce){.live{animation:none}}.np-rest{margin-top:12px}.np-rest .item{padding:9px 0;font-size:14px}.np-rest .item:last-child{border-bottom:0}.wx{flex-shrink:0;width:44px;height:44px;overflow:visible}.wx-sun-disc{filter:drop-shadow(0 0 2px #f5b30188)}.wx-sun-shine{fill:none;stroke:#fff8d6;stroke-width:1.6px;stroke-linecap:round;opacity:.8}.wx-rays line{stroke:#f5b301;stroke-width:2px;stroke-linecap:round}.wx-rays{transform-origin:24px 24px;animation:18s linear infinite wx-spin}.wx-sun{animation:3.4s ease-in-out infinite wx-glow}.wx-cloud-edge{fill:none;stroke:var(--cloud-line);stroke-width:1.1px;stroke-linejoin:round;opacity:.9}.wx-cloud-belly{fill:#000;opacity:.1}.wx-cloud.dark .wx-cloud-belly{opacity:.28}.wx-cloud-line{fill:none;stroke:var(--cloud-line);stroke-width:.9px;stroke-linecap:round;opacity:.55}.wx-cloud-rim{fill:none;stroke:#fff;stroke-width:1.3px;stroke-linecap:round;opacity:.65}.wx-cloud.dark .wx-cloud-rim{opacity:.22}.wx-cloud.back{opacity:.72}.wx-cloud.back .wx-cloud-body{filter:brightness(.88)}.wx-cloud.drift{animation:5s ease-in-out infinite alternate wx-drift}.wx-cloud.back.drift{animation-duration:7s;animation-direction:alternate-reverse}.wx-crater{fill:#000;opacity:.09}.wx-star{fill:var(--moon-hi);animation:2.4s ease-in-out infinite wx-twinkle}.wx-star-arm{stroke:var(--moon-hi);stroke-width:1.2px;stroke-linecap:round;animation:2.4s ease-in-out infinite wx-twinkle}.wx-star.s2{animation-delay:-.8s}.wx-star.s3{animation-delay:-1.6s}.wx-drop{stroke:#5b9bd5;stroke-width:2px;stroke-linecap:round;animation:1s linear infinite wx-fall}.wx-flake{stroke:#9db8d6;stroke-width:1.4px;stroke-linecap:round;fill:none;animation:2.6s linear infinite wx-snow}.d1{animation-delay:-.33s!important}.d2{animation-delay:-.66s!important}.wx-flake.d1{animation-delay:-.9s!important}.wx-flake.d2{animation-delay:-1.7s!important}.wx-bolt{fill:#ffd23f;stroke:#f29c05;stroke-width:.6px;stroke-linejoin:round;animation:3s step-end infinite wx-flash}.wx-fog{stroke:var(--cloud-line);stroke-width:2.4px;stroke-linecap:round;opacity:.8;animation:4s ease-in-out infinite alternate wx-drift}.wx-fog.f1{animation-delay:-1.3s}.wx-fog.f2{animation-delay:-2.6s}@keyframes wx-spin{to{transform:rotate(360deg)}}@keyframes wx-glow{50%{opacity:.85}}@keyframes wx-drift{0%{transform:translate(-2px)}to{transform:translate(3px)}}@keyframes wx-twinkle{50%{opacity:.2}}@keyframes wx-fall{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}to{opacity:0;transform:translateY(10px)}}@keyframes wx-snow{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}to{opacity:0;transform:translate(2px,12px)}}@keyframes wx-flash{0%,70%,80%,to{opacity:0}72%,78%{opacity:1}}@media (prefers-reduced-motion:reduce){.wx *{animation:none!important}}.now{color:var(--text);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:4px;margin:0 0 28px;padding:12px 14px;font-size:14px;line-height:1.55;display:flex}.now-label{color:var(--fg);font-size:12px;font-weight:500}.now-date{color:var(--mute);font-size:12px}.pstat{color:var(--mute);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.pstat:before{content:"";background:var(--mute);border-radius:50%;width:6px;height:6px}.pstat-live:before{background:#1db954;box-shadow:0 0 0 3px #1db95422}.pstat-building:before{background:#f5a623}@media (max-width:520px){.proj summary{flex-wrap:wrap;row-gap:6px}.proj-thumb{flex-basis:48px;width:48px;height:32px}.proj-title{flex:calc(100% - 70px)}}.pstat-beta:before{background:#3b82f6;box-shadow:0 0 0 3px #3b82f622}.pos{letter-spacing:.02em;white-space:nowrap;color:var(--fg);border:1px solid var(--line-strong);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500;line-height:1.3}.np{align-items:center}.np-art{flex-shrink:0;width:44px;height:44px;position:relative}.np-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.np-text .t{text-decoration:none}.np-text .t:hover{text-underline-offset:3px;text-decoration:underline}.play{cursor:pointer;font:inherit;border:0;justify-content:center;align-items:center;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.play.big{color:#fff;opacity:0;background:#0007;border-radius:6px;font-size:13px;position:absolute;inset:0}.np:hover .play.big,.play.big.on,.play.big:focus-visible{opacity:1}.track .play{width:20px;height:20px;color:var(--mute);opacity:0;background:0 0;border-radius:50%;font-size:9px;position:absolute;left:-28px}.track:hover .play,.track .play.on,.track .play:focus-visible{opacity:1}.track .play:hover,.track .play.on{background:var(--fg);color:var(--bg)}.track{align-items:center;position:relative}.track .l{flex:1;text-decoration:none}.track .l:hover{text-underline-offset:3px;text-decoration:underline}.track.on .l{font-weight:500}.bar{background:var(--line);border-radius:2px;height:2px;margin-top:6px;display:block;overflow:hidden}.bar span{background:var(--fg);height:100%;transition:width .25s linear;display:block}@media (hover:none){.play.big,.track .play{opacity:1}.track .play{margin-right:8px;position:static}}@media (max-width:820px){.track .play{margin-right:8px;position:static}}.build-mini{margin:0 0 28px}.build-mini-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.build-mini-label{color:var(--fg);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.build-mini-head a{color:var(--mute);font-size:12px;text-decoration:none;transition:color .15s}.build-mini-head a:hover{color:var(--fg)}.build-mini-row{color:var(--text-2);border-top:1px solid var(--line);flex-direction:column;gap:0;padding:5px 0;font-size:13.5px;text-decoration:none;transition:color .15s;display:flex}.build-mini-row:last-child{border-bottom:1px solid var(--line)}.build-mini-row:hover{color:var(--fg)}.build-mini-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.build-mini-main{align-items:baseline;gap:5px;min-width:0;display:flex;overflow:hidden}.build-mini-repo{text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-weight:500;overflow:hidden}.build-mini-kind{color:var(--mute);flex-shrink:0;font-weight:400}.build-mini-row:hover .build-mini-repo{text-underline-offset:3px;text-decoration:underline}.build-mini-time{color:var(--mute);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.build-mini-time.hot{color:#1db954;font-weight:500}.build-mini-msg{opacity:0;max-height:0;color:var(--mute);margin:0;font-size:12.5px;line-height:1.4;transition:max-height .3s,opacity .2s,margin .3s;display:block;overflow:hidden}.build-mini-row:hover .build-mini-msg,.build-mini-row:focus-visible .build-mini-msg{opacity:1;max-height:3.2em;margin-top:3px}.build{flex-direction:column;gap:0;display:flex}.build-hero{border:1px solid var(--line);color:inherit;border-radius:12px;flex-direction:column;gap:6px;margin-bottom:4px;padding:14px 16px;text-decoration:none;transition:border-color .15s;display:flex}.build-hero:hover{border-color:var(--line-strong)}.build-hero.fresh{border-color:#1db95455}.build-hero-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.build-repo{color:var(--fg);font-size:13px;font-weight:500}.build-live{color:var(--mute);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.build-live.on{color:#1db954}.build-dot{background:#1db954;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 3px #1db95422}.build-title{letter-spacing:-.01em;color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:500;line-height:1.4;display:-webkit-box;overflow:hidden}.build-meta{color:var(--mute);font-size:12.5px}.build-list{margin-top:4px}.build-row{align-items:flex-start}.build-row .l{flex-direction:column;flex:1;gap:2px;min-width:0;text-decoration:none;display:flex}.build-row-repo{color:var(--fg);font-size:13px;font-weight:500}.build-row-detail{color:var(--text-2);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.4;display:-webkit-box;overflow:hidden}a.build-row:hover .build-row-detail{color:var(--fg)}.build-touch{margin-top:22px}.build-chips{flex-wrap:wrap;gap:8px;display:flex}.build-chip{color:var(--text);border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-size:13px;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.build-chip:hover{border-color:var(--line-strong);color:var(--fg)}.build-lang{border-radius:50%;flex-shrink:0;width:8px;height:8px}.repeat{margin-top:24px}.repeat-label{color:var(--mute);margin-bottom:10px;font-size:12px}.repeat-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.repeat-item{aspect-ratio:1;background:var(--ph);border-radius:6px;text-decoration:none;position:relative;overflow:hidden}.repeat-item img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.repeat-cap{color:#fff;opacity:0;background:linear-gradient(#0000 35%,#000c);flex-direction:column;justify-content:flex-end;gap:1px;padding:8px;font-size:11px;line-height:1.25;transition:opacity .2s;display:flex;position:absolute;inset:0}.repeat-by{color:#ffffffb3}.repeat-item:hover img{transform:scale(1.05)}.repeat-item:hover .repeat-cap{opacity:1}@media (max-width:520px){.repeat-grid{grid-template-columns:repeat(3,1fr)}}.h2-row{justify-content:space-between;display:flex}.h2-row a{color:var(--mute);text-decoration:none}.h2-row a:hover{color:var(--fg)}.shots{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.shot{background:var(--ph);aspect-ratio:1;cursor:zoom-in;border:0;border-radius:6px;padding:0;overflow:hidden}.shot img{object-fit:cover;width:100%;height:100%;transition:transform .3s,filter .3s;display:block}.shot:hover img{transform:scale(1.04)}.lightbox{z-index:50;cursor:zoom-out;background:#000e;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:32px;animation:.2s reveal;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:4px;max-width:100%;max-height:calc(100vh - 110px)}.lightbox-cap{color:#ffffffb3;text-transform:capitalize;font-size:13px}.np.glow{border-color:color-mix(in srgb, var(--glow) 16%, var(--line));background:linear-gradient(120deg, color-mix(in srgb, var(--glow) 6%, var(--bg)), var(--bg) 60%);box-shadow:0 8px 30px -14px color-mix(in srgb, var(--glow) 35%, transparent);transition:border-color .6s,box-shadow .6s,background .6s;position:relative}.np.glow:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(200px circle at 30px 50%, color-mix(in srgb, var(--glow) 10%, transparent), transparent 70%);animation:8s ease-in-out infinite breathe;position:absolute;inset:-1px}.np.glow .np-art img{box-shadow:0 4px 14px -6px color-mix(in srgb, var(--glow) 50%, transparent)}.np.glow .bar span{background:var(--glow)}@keyframes breathe{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.np.glow:after{animation:none}}.progress{background:var(--fg);z-index:40;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}.post-layout{grid-template-columns:minmax(0,1fr) minmax(0,640px) minmax(0,1fr);display:grid}.post-side{padding:0 0 0 32px}.toc{flex-direction:column;gap:10px;max-width:200px;margin-top:112px;margin-left:auto;padding-right:32px;display:flex;position:sticky;top:112px}.toc-label{color:var(--mute);margin-bottom:4px;font-size:12px}.toc a{color:var(--mute);border-left:1px solid var(--line);padding-left:12px;font-size:13.5px;line-height:1.4;text-decoration:none;transition:color .15s,border-color .15s}.toc a:hover{color:var(--fg)}.toc a.on{color:var(--fg);border-left-color:var(--fg)}@media (max-width:1100px){.post-layout{display:block}.post-side{display:none}}.prose h2{scroll-margin-top:96px}.prose figure{margin:1.6em 0 1.8em}.prose img{border:1px solid var(--line);border-radius:10px;width:100%;display:block}.prose p>img{margin:1.4em 0}.prose em{color:var(--mute-2)}.post-foot{border-top:1px solid var(--line);margin-top:72px;padding-top:28px}.post-thanks{color:var(--text);margin:0 0 16px;font-size:15px}.post-actions{flex-wrap:wrap;gap:8px;margin-bottom:40px;display:flex}.post-actions a,.post-actions button{font:inherit;color:var(--text);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:13.5px;text-decoration:none;transition:border-color .15s,color .15s}.post-actions a:hover,.post-actions button:hover{border-color:var(--fg);color:var(--fg)}.post-more{margin-top:8px}.post-more .toc-label{margin-bottom:8px}.item{min-width:0}.item .l{overflow-wrap:anywhere;min-width:0}.lightbox img{max-height:calc(100dvh - 110px)}.lightbox{padding:max(32px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom))}@media (max-width:820px){.layout{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.main section{margin-bottom:56px}.item .r{white-space:normal;text-align:right;max-width:45%}.post{padding:56px 20px}.post-title{font-size:28px}.prose{overflow-wrap:anywhere;font-size:16px}.prose pre,.prose table{max-width:100%;overflow-x:auto}.films{grid-template-columns:1fr 1fr;gap:16px 14px;display:grid}}@media (max-width:520px){.films{grid-template-columns:1fr}.proj summary{padding:16px 0}.proj summary .date{flex:1}.proj-links{flex-wrap:wrap;gap:10px 18px}.proj-links a,.socials a{padding:6px 0}.np{padding:12px}.np-text .t,.np-text .a{overflow-wrap:anywhere}.shots{gap:6px}}@media (hover:none){.repeat-cap{opacity:1;background:linear-gradient(#0000 55%,#000a);padding:6px;font-size:10px}.repeat-by{display:none}}.np .np-text{white-space:normal;text-overflow:clip;overflow:visible}@media (hover:none){.track .play{flex-shrink:0;width:32px;height:32px;font-size:11px}}@media (max-width:820px){.progress{display:none}}@keyframes pagein{0%{opacity:0;transform:translateY(8px)}}.layout,.post-layout{animation:.45s cubic-bezier(.2,.7,.2,1) backwards pagein}body{transition:opacity .25s,filter .25s}body.flip-out{opacity:0;filter:blur(6px)}@media (prefers-reduced-motion:reduce){.layout,.post-layout{animation:none}body{transition:none}}.proj-shot{border:1px solid var(--line);background:var(--ph);border-radius:10px;margin:0 0 14px;display:block;overflow:hidden}.proj-shot img{width:100%;transition:transform .4s;display:block}.proj-shot:hover img{transform:scale(1.02)}.proj.story .proj-shot{margin-bottom:18px}.case{flex-direction:column;gap:18px;margin-bottom:14px;display:flex}.case-tag{color:var(--fg);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:500;line-height:1.5}.case-block h3{color:var(--mute);letter-spacing:.02em;margin:0 0 6px;font-size:12px;font-weight:500}.case-block p{color:var(--text-2);margin:0;font-size:15px;line-height:1.65}.case-list{color:var(--text-2);margin:10px 0 0;padding:0 0 0 1.15em;font-size:14.5px;line-height:1.55;list-style:outside}.case-list li{margin-bottom:5px;padding-left:2px}.case-list li::marker{color:var(--mute)}.favs{margin-bottom:28px}.favs-label{color:var(--mute);margin-bottom:10px;font-size:12px}.favs-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.fav{aspect-ratio:2/3;background:var(--ph);border-radius:4px;display:block;overflow:hidden;box-shadow:0 1px 3px #0001}.fav img{object-fit:cover;width:100%;height:100%;transition:transform .25s;display:block}.fav:hover img{transform:scale(1.06)}.fav-ph{text-align:center;width:100%;height:100%;color:var(--mute);align-items:center;padding:4px;font-size:9px;display:flex}@media (max-width:1080px) and (min-width:821px){.favs-grid{max-width:320px}}.post-pager{grid-template-columns:1fr 1fr;gap:12px;margin:0 0 40px;display:grid}.pager-link{border:1px solid var(--line);color:inherit;border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .15s;display:flex}.pager-link:hover{border-color:var(--line-strong)}.pager-link.right{text-align:right;grid-column:2}.pager-dir{color:var(--mute);font-size:12px}.pager-title{font-size:15px;font-weight:500}.live-card{position:relative}.live-tag{color:var(--mute);white-space:nowrap;align-self:flex-start;align-items:center;gap:7px;margin-left:auto;font-size:12px;display:inline-flex}.eq{align-items:flex-end;gap:2px;height:11px;display:inline-flex}.eq i{background:var(--fg);border-radius:1px;width:2px;animation:1s ease-in-out infinite eqbar}.eq i:first-child{height:40%;animation-delay:-.2s}.eq i:nth-child(2){height:100%;animation-delay:-.5s}.eq i:nth-child(3){height:60%;animation-delay:-.8s}@keyframes eqbar{50%{transform:scaleY(.35)}}.eq i{transform-origin:bottom}@media (prefers-reduced-motion:reduce){.eq i{animation:none}}@media (max-width:520px){.live-card{flex-wrap:wrap}.live-tag{flex-basis:100%;order:-1;margin:0 0 4px}}.island-wrap{top:max(14px, env(safe-area-inset-top));z-index:60;pointer-events:none;justify-content:center;display:flex;position:fixed;left:0;right:0}.island{pointer-events:auto;cursor:pointer;font:inherit;color:#efe7d6;text-align:left;background:#0b0a09;border:0;border-radius:20px;align-items:center;gap:8px;width:fit-content;max-width:min(88vw,280px);padding:4px 12px 4px 4px;transition:max-width .35s cubic-bezier(.3,1.2,.4,1),padding .35s,border-radius .35s;animation:.7s cubic-bezier(.2,1.25,.35,1) both islandin;display:flex;box-shadow:0 8px 24px -10px #000a,inset 0 0 0 1px #ffffff1a}.island-art{object-fit:cover;background:#2a2620;border-radius:8px;flex-shrink:0;width:26px;height:26px;transition:width .3s,height .3s}.island-text{flex-direction:column;flex:1;gap:0;min-width:0;display:flex}.island-kicker{letter-spacing:.06em;text-transform:uppercase;color:#efe7d6a0;font-size:8.5px;line-height:1.15}.island-title{white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:12px;font-weight:500;line-height:1.2;overflow:hidden}.island-by{color:#efe7d6a0;font-weight:400}.island-sub{color:#efe7d6a0;white-space:nowrap;text-overflow:ellipsis;opacity:0;max-height:0;font-size:11px;transition:max-height .3s,opacity .3s;overflow:hidden}.island:hover .island-sub,.island.open .island-sub,.island:focus-visible .island-sub{opacity:1;max-height:15px}.island:hover .island-art,.island.open .island-art{width:30px;height:30px}.island-wave{flex-shrink:0;align-items:center;gap:2px;height:12px;display:inline-flex}.island-wave i{transform-origin:50%;background:#efe7d6;border-radius:2px;width:2px;height:100%;animation:1.1s ease-in-out infinite wave}.island-wave i:first-child{animation-delay:-.9s}.island-wave i:nth-child(2){animation-delay:-.5s}.island-wave i:nth-child(3){animation-delay:-.2s}.island-wave i:nth-child(4){animation-delay:-.7s}.island-wave i:nth-child(5){animation-delay:-.35s}@keyframes wave{0%,to{transform:scaleY(.25)}50%{transform:scaleY(1)}}@keyframes islandin{0%{opacity:0;transform:translateY(-24px)scale(.6)}}@media (max-width:520px){.island-title{max-width:120px}}@media (prefers-reduced-motion:reduce){.island,.island-wave i{animation:none}.island-wave i{transform:scaleY(.6)}}.cream-toggle{font:inherit;color:var(--mute);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;margin-top:20px;padding:0;font-size:12.5px;transition:color .15s;display:inline-flex}.cream-toggle:hover{color:var(--fg)}.cream-track{background:var(--line-strong);border-radius:999px;flex-shrink:0;width:30px;height:18px;transition:background .2s;position:relative}.cream-track:after{content:"";background:var(--bg);border-radius:50%;width:14px;height:14px;transition:transform .2s cubic-bezier(.3,1.4,.5,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.cream-toggle[aria-checked=true] .cream-track{background:#c9a96a}.cream-toggle[aria-checked=true] .cream-track:after{background:#fffaf0;transform:translate(12px)}.layout .side,.layout .main,.layout .films-col{animation:.7s cubic-bezier(.22,1,.36,1) both rise-in}.layout .main{animation-delay:.1s}.layout .films-col{animation-delay:.2s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.layout .side,.layout .main,.layout .films-col{animation:none}}.pmap{aspect-ratio:1000/520;border:1px solid var(--line);border-radius:12px;width:100%;height:auto;margin-bottom:8px;display:block}.pmap-sea{fill:var(--ph)}.pmap-land{fill:var(--bg);stroke:var(--line-strong);stroke-width:.6px}.pmap-dot{fill:#d6452f;stroke:var(--bg);stroke-width:1.5px}.pmap-halo{fill:#d6452f;opacity:.18;transform-box:fill-box;transform-origin:50%;transition:opacity .2s,transform .2s}.pmap-pin:hover .pmap-halo{opacity:.32;transform:scale(1.35)}.h2-row span a{color:var(--mute);text-decoration:none}.h2-row span a:hover{color:var(--fg)}.shot{position:relative}.shot-cap{text-align:left;color:#fff;opacity:0;background:linear-gradient(#0000,#000b);flex-direction:column;gap:1px;padding:18px 8px 7px;font-size:11px;line-height:1.25;transition:opacity .2s;display:flex;position:absolute;inset:auto 0 0}.shot-cam{color:#ffffffb8;font-size:10px}.shot:hover .shot-cap,.shot:focus-visible .shot-cap{opacity:1}@media (hover:none){.shot-cap{opacity:1}}.shot-line{color:var(--mute);margin:10px 0 0;font-size:12.5px}.lightbox-meta{flex-direction:column;align-items:center;gap:3px;display:flex}.lightbox-sub{color:#ffffff8c;font-size:12px}.site-foot{text-align:center;padding:8px 20px 56px}.site-foot-line{color:var(--text-2);margin:0;font-size:14px}.site-foot-heart{color:var(--fg);display:inline-block}.site-foot-year{color:var(--mute);margin:6px 0 0;font-size:12px}:root{--rm-sea:#bcd3d6;--rm-border:#fbf6ea;--yarn:#b3242c;--paper:#fffdf8;--rc0:#eadfc4;--rc1:#dccba6;--rc2:#d2dab8;--rc3:#e8cdb0;--rc4:#dbd0b8;--rc5:#c9d5c1;--rc6:#efdcbd;--rc7:#d8c7a2}@media (prefers-color-scheme:dark){:root{--rm-sea:#121b22;--rm-border:#0a1015;--rc0:#3b3f3a;--rc1:#423d34;--rc2:#363f3c;--rc3:#433a37;--rc4:#3c3a42;--rc5:#353f42;--rc6:#45403a;--rc7:#3e4236}}.route{margin-bottom:4px}.routemap{aspect-ratio:1400/760;background:var(--rm-sea);border:1px solid var(--line);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3.2' fill='%23b3242c'/%3E%3Ccircle cx='12' cy='12' r='7' fill='none' stroke='%23b3242c' stroke-width='1.4' opacity='.55'/%3E%3C/svg%3E") 12 12,crosshair;-webkit-user-select:none;user-select:none;border-radius:14px;position:relative;overflow:hidden}.routemap.grabbing{cursor:grabbing}.routemap.playing{cursor:default}.routemap .rpin{cursor:pointer}.rm-stage{transform-origin:0 0;will-change:transform;position:absolute;inset:0}.rm-stage.flying{transition:transform 1.15s cubic-bezier(.45,.05,.2,1)}.rm-world{width:180%;height:180%;display:block;position:absolute;top:-40%;left:-40%}.rm-yarn{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.rm-sea{fill:var(--rm-sea)}.rc{stroke:var(--rm-border);stroke-width:1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rc0{fill:var(--rc0)}.rc1{fill:var(--rc1)}.rc2{fill:var(--rc2)}.rc3{fill:var(--rc3)}.rc4{fill:var(--rc4)}.rc5{fill:var(--rc5)}.rc6{fill:var(--rc6)}.rc7{fill:var(--rc7)}.routemap:after{content:"";pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 90px #3a2a1426}.yarn{fill:none;stroke:var(--yarn);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.yarn-shadow{fill:none;stroke:#0004;stroke-width:5.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.35;transform:translate(2px,3px)}.rpin{z-index:3;border:2px solid var(--paper);background:var(--yarn);color:#fff;text-align:center;cursor:pointer;width:26px;height:26px;transform:scale(var(--ik,1));border-radius:50%;margin:-13px 0 0 -13px;padding:0;font:700 12px/22px -apple-system,system-ui,sans-serif;transition:transform .15s,opacity .3s;position:absolute;box-shadow:0 2px 6px #0006}.rpin:hover,.rpin.sel{transform:scale(calc(var(--ik,1) * 1.25));z-index:5}.rpin.off{opacity:.25}.rpop{z-index:6;width:min(32%,240px);min-width:148px;transform:translate(-50%, -112%) scale(var(--ik,1));transform-origin:50% 112%;background:var(--paper);cursor:default;padding:5px 5px 0;animation:.3s cubic-bezier(.2,1.3,.4,1) rpopin;position:absolute;box-shadow:0 8px 22px #0005}@keyframes rpopin{0%{opacity:0}}.rpop-img{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.rpop-img img{aspect-ratio:4/3;object-fit:cover;background:#ddd5c8;width:100%;display:block}.rpop-body{flex-direction:column;gap:2px;padding:4px 2px 8px;display:flex}.rpop-cap{color:#2b2118;justify-content:space-between;align-items:center;gap:6px;font:700 clamp(13px,1.5vw,18px)/1.1 Bradley Hand,Segoe Print,Comic Sans MS,cursive;display:flex}.rpop-meta{color:#6d6253;font:500 10.5px/1.35 -apple-system,system-ui,sans-serif}.rpop-story{color:#3a2f24;margin-top:2px;font:italic 600 12px/1.35 Bradley Hand,Segoe Print,Comic Sans MS,cursive}.rpop-nav{color:#6d6253;white-space:nowrap;align-items:center;gap:4px;font:600 11px -apple-system,system-ui,sans-serif;display:inline-flex}.rpop-nav button{color:#2b2118;cursor:pointer;background:#2b211812;border:0;border-radius:50%;width:20px;height:20px;padding:0;font-size:14px;line-height:18px}.rpop-nav button:hover{background:#2b211828}.lightbox-story{color:#ffffffd6;text-align:center;max-width:min(520px,90vw);font-size:14px;font-style:italic}.rm-hint{color:#3a3226;pointer-events:none;background:#fffdf8cc;border-radius:999px;padding:3px 9px;font-size:12px;position:absolute;bottom:10px;left:12px}.route-bar{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.route-btn{font:inherit;color:var(--text);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:999px;padding:5px 14px;font-size:13px;transition:border-color .15s,color .15s}.route-btn:hover{border-color:var(--fg);color:var(--fg)}.route-count{color:var(--mute);font-size:12.5px}@media (prefers-reduced-motion:reduce){.yarn,.yarn-shadow{transition:none}.rpop{animation:none}.rm-stage.flying{transition:none}}.trip-line{color:var(--text-2);flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:0 0 28px;font-size:14px;display:flex}.trip-line-label{color:var(--mute);font-size:13px;font-weight:500}.trip-line-text{flex:1;min-width:12ch}.trip-line-btn{font:inherit;color:var(--fg);cursor:pointer;border:0;border-bottom:1px solid var(--line-strong);background:0 0;padding:0;font-size:13.5px;font-weight:500;transition:border-color .15s,color .15s}.trip-line-btn:hover{border-color:var(--fg)}.trip-stage{z-index:200;overscroll-behavior:none;background:#0c141a;flex-direction:column;width:100vw;height:100dvh;animation:.28s both trip-in;display:flex;position:fixed;inset:0}.trip-stage-chrome{z-index:4;padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 56px max(14px, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#0c141af2 0%,#0c141a99 50%,#0000 100%);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.trip-stage-copy{pointer-events:none;min-width:0;max-width:min(420px,100vw - 96px)}.trip-stage-kicker{letter-spacing:.14em;text-transform:uppercase;color:#fff8;margin:0 0 4px;font-size:11px}.trip-stage-title{letter-spacing:-.03em;color:#fff;margin:0;font-size:clamp(20px,3.6vw,32px);font-weight:600}.trip-stage-sub{color:#fff9;margin:6px 0 0;font-size:13.5px}.trip-stage-actions{pointer-events:auto;flex-shrink:0;align-items:center;gap:12px;display:flex}.trip-stage-link{color:#ffffffb3;border-bottom:1px solid #fff3;padding-bottom:1px;font-size:13px;text-decoration:none;transition:color .15s,border-color .15s}.trip-stage-link:hover{color:#fff;border-color:#fff}.trip-stage-close{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;background:#0c141acc;border:1px solid #ffffff40;border-radius:50%;width:44px;height:44px;padding:0 0 2px;font-size:28px;line-height:1;transition:background .15s,border-color .15s,transform .15s}.trip-stage-close:hover{background:#1a2630;border-color:#fff6;transform:scale(1.05)}.trip-stage-map{flex:auto;width:100%;height:100%;min-height:0}.trip-stage-map .route{width:100%;height:100%;margin:0}.trip-stage-map .routemap{width:100%;height:100%;min-height:100%;box-shadow:none;border:0;border-radius:0;aspect-ratio:auto!important}.trip-stage-map .rpop{width:min(34vw,220px);min-width:140px}.trip-stage-map .rm-hint{left:max(14px, env(safe-area-inset-left));bottom:max(14px, env(safe-area-inset-bottom))}.trip-stage-map .rm-ctl{top:auto;bottom:max(14px, env(safe-area-inset-bottom));right:max(14px, env(safe-area-inset-right))}.trip-stage-map .rm-ctl button{width:40px;height:40px;font-size:20px}.trip-stage .lightbox{z-index:210;padding:max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}@keyframes trip-in{0%{opacity:0}to{opacity:1}}@media (max-width:640px){.trip-stage-chrome{gap:10px;padding-bottom:40px}.trip-stage-title{font-size:20px}.trip-stage-sub{font-size:12.5px}.trip-stage-link{display:none}.trip-stage-map .rpop{width:min(56vw,200px);min-width:120px}.trip-stage-map .rpop-cap{font-size:15px}.trip-stage-map .rm-hint{font-size:11px}}@media (prefers-reduced-motion:reduce){.trip-stage{animation:none}}.strip{margin-top:14px;position:relative}.strip-track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;grid-auto-columns:calc(33.3333% - 5.33333px);grid-auto-flow:column;gap:8px;display:grid;overflow-x:auto}.strip-track::-webkit-scrollbar{display:none}.strip-track .shot{scroll-snap-align:none}.strip-track .shot:nth-child(3n+1){scroll-snap-align:start}.strip-arrow{border:1px solid var(--line-strong);background:var(--bg);width:32px;height:32px;color:var(--fg);cursor:pointer;z-index:2;border-radius:50%;padding:0 0 2px;font-size:20px;line-height:28px;transition:opacity .2s,transform .2s;position:absolute;top:calc(50% - 20px);box-shadow:0 2px 8px #0002}.strip-arrow.prev{left:-12px}.strip-arrow.next{right:-12px}.strip-arrow:hover:not(:disabled){transform:scale(1.08)}.strip-arrow:disabled{opacity:0;pointer-events:none}.strip-dots{justify-content:center;gap:7px;margin-top:12px;display:flex}.strip-dots button{background:var(--line-strong);cursor:pointer;border:0;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s}.strip-dots button.on{background:var(--fg);transform:scale(1.25)}@media (hover:none){.strip-arrow{display:none}}.lightbox{z-index:200}.lb-arrow{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);z-index:2;background:#ffffff1c;border:1px solid #ffffff30;border-radius:50%;width:48px;height:48px;padding:0 0 4px;font-size:30px;line-height:44px;transition:background .15s,transform .15s;position:absolute;top:50%;transform:translateY(-50%)}.lb-arrow:hover{background:#ffffff3a;transform:translateY(-50%)scale(1.08)}.lb-arrow.prev{left:max(14px,50% - 50vw + 14px)}.lb-arrow.next{right:max(14px,50% - 50vw + 14px)}.lightbox-count{color:#ffffff70;letter-spacing:.06em;margin-top:2px;font-size:11.5px}@media (max-width:600px){.lb-arrow{width:38px;height:38px;font-size:24px;line-height:34px}.lb-arrow.prev{left:8px}.lb-arrow.next{right:8px}}.rm-ctl{z-index:8;flex-direction:column;gap:4px;display:flex;position:absolute;top:10px;right:10px}.rm-ctl button{color:#2b2118;cursor:pointer;background:#fffdf8f0;border:1px solid #0003;border-radius:8px;width:30px;height:30px;padding:0 0 2px;font:600 17px/1 -apple-system,system-ui,sans-serif;transition:background .15s,opacity .15s;box-shadow:0 2px 6px #0003}.rm-ctl button:hover:not(:disabled){background:#fff}.rm-ctl button:disabled{opacity:.4;cursor:default}.rm-ctl .rm-reset{font-size:15px}.photo-bio{color:var(--text);margin:0 0 14px;font-size:14.5px;line-height:1.55}.photo-bio a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:text-decoration-color .15s}.photo-bio a:hover{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.cv{border-top:1px solid var(--line)}.cv-row{border-bottom:1px solid var(--line);padding:18px 0}.cv-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.cv-title{letter-spacing:-.01em;font-size:16px;font-weight:600}.cv-org{color:var(--mute-2);margin:2px 0 8px;font-size:14px}.cv-org a{color:inherit;border-bottom:1px solid var(--line-strong);padding-bottom:1px;text-decoration:none;transition:color .15s,border-color .15s}.cv-org a:hover{color:var(--fg);border-color:var(--fg)}.cv-row p{color:var(--text-2);margin:0;font-size:14.5px;line-height:1.6}.cv-row .stack{margin:8px 0 0}.skills{border-top:1px solid var(--line)}.skill-row{border-bottom:1px solid var(--line);color:var(--text);grid-template-columns:150px 1fr;gap:16px;padding:12px 0;font-size:14.5px;display:grid}.skill-label{color:var(--mute-2)}@media (max-width:520px){.skill-row{grid-template-columns:1fr;gap:2px}}.lost-wrap{background:var(--bg);color:var(--fg);justify-content:center;padding:40px 24px;display:flex}.lost{width:100%;max-width:1080px}.lostx{isolation:isolate;border:1px solid var(--line);background:var(--rm-sea);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3.2' fill='%23b3242c'/%3E%3Ccircle cx='12' cy='12' r='7' fill='none' stroke='%23b3242c' stroke-width='1.4' opacity='.55'/%3E%3C/svg%3E") 12 12,crosshair;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:16px;justify-content:space-around;align-items:flex-start;gap:32px;min-height:600px;padding:72px 48px 88px;display:flex;position:relative;overflow:hidden}.lostx:after{content:"";z-index:1;pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 110px #3a2a1430}.lostx a,.lostx button{cursor:pointer}.lostx-map{z-index:0;width:100%;height:100%;position:absolute;inset:0}.lostx-grid path{fill:none;stroke:var(--rm-border);stroke-width:1px;stroke-dasharray:2 7;opacity:.8}.lostx-yarn{z-index:2;pointer-events:none;width:100%;height:100%;animation:.5s .9s both lostx-fade;position:absolute;inset:0;overflow:visible}.lostx-yarn-line{fill:none;stroke:var(--yarn);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.lostx-yarn-shadow{fill:none;stroke:#000;stroke-width:5.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.22;transform:translate(2px,3px)}.lostx-tip-ring{fill:none;stroke:var(--yarn);stroke-width:1.6px;opacity:.6}.lostx-tip-dot{fill:var(--yarn)}.lostx-pin{z-index:5;border:2px solid var(--paper);background:var(--yarn);color:#fff;text-align:center;pointer-events:none;border-radius:50%;width:24px;height:24px;margin:-12px 0 0 -12px;font:700 11px/20px -apple-system,system-ui,sans-serif;position:absolute;box-shadow:0 2px 6px #0006}.lostx-pin-top{margin-top:-10px;top:0;left:50%}.lostx-user{animation:.45s cubic-bezier(.2,1.5,.4,1) both lostx-pin}@keyframes lostx-pin{0%{opacity:0;transform:translateY(-16px)scale(.3)}}.lostx-note,.lostx-photo{z-index:3;background:var(--paper);color:#2b2118;animation:.9s cubic-bezier(.2,1.1,.35,1) both lostx-fall;position:relative;box-shadow:inset 0 1px #fff8,0 16px 36px #2b21184d}.lostx-note{--tilt:-1.6deg;width:min(100%,440px);transform:rotate(var(--tilt));margin-top:8px;padding:36px 36px 30px;animation-delay:.1s}.lostx-photo{--tilt:3.2deg;width:230px;transform:rotate(var(--tilt));margin:64px 0 0;padding:11px 11px 14px;animation-delay:.4s}@keyframes lostx-fall{0%{opacity:0;transform:translateY(-46px) rotate(calc(var(--tilt) * 4))}}.lostx-kicker{letter-spacing:.1em;text-transform:uppercase;color:#6d6253;margin:0 0 6px;font-size:12px;font-weight:500}.lostx-num{letter-spacing:-.06em;color:#2b2118;margin:0;font-size:clamp(96px,15vw,148px);font-weight:700;line-height:.84}.lostx-num span{color:var(--yarn)}.lostx-title{letter-spacing:-.02em;margin:14px 0 8px;font-size:24px;font-weight:600}.lostx-sub{color:#4a3f31;max-width:34ch;margin:0 0 20px;font-size:15px;line-height:1.55}.lostx-links{flex-wrap:wrap;gap:8px 18px;font-size:14px;display:flex}.lostx-links a{color:#2b2118;border-bottom:1px solid #2b211840;padding-bottom:1px;text-decoration:none;transition:border-color .15s}.lostx-links a:first-child{border-color:var(--yarn);font-weight:600}.lostx-links a:hover{border-color:#2b2118}.lostx-frame{aspect-ratio:1;letter-spacing:.16em;text-transform:uppercase;color:#8a7e6c;background:#e6dfd0 repeating-linear-gradient(135deg,#0000 0 9px,#2b211810 9px 10px);place-items:center;font-size:11px;font-weight:600;display:grid}.lostx-photo figcaption{flex-direction:column;gap:2px;padding:10px 2px 0;display:flex}.lostx-hand{color:#2b2118;font:700 22px/1.1 Bradley Hand,Segoe Print,Comic Sans MS,cursive}.lostx-meta{color:#6d6253;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.lostx-hint{z-index:6;color:#3a3226;background:#fffdf8d9;border-radius:999px;align-items:center;gap:10px;padding:5px 12px;font-size:12px;animation:.5s 1.2s both lostx-fade;display:flex;position:absolute;bottom:12px;left:14px}.lostx-hint button{font:inherit;color:var(--yarn);background:0 0;border:0;padding:0;font-weight:600}@keyframes lostx-fade{0%{opacity:0}}@media (max-width:760px){.lost-wrap{padding:16px 12px 32px}.lostx{flex-direction:column;align-items:center;gap:36px;min-height:0;padding:44px 18px 80px}.lostx-note{padding:32px 24px 26px}.lostx-photo{width:190px;margin:0 0 0 auto}}@media (prefers-reduced-motion:reduce){.lostx-note,.lostx-photo,.lostx-yarn,.lostx-hint,.lostx-user{animation:none}}.lost-posts{border-top:1px solid var(--line);max-width:640px;margin:36px auto 0}.lost-posts-label{color:var(--mute);padding:14px 0 6px;font-size:13px;font-weight:500}.lost-post{border-bottom:1px solid var(--line);color:var(--fg);justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;text-decoration:none;display:flex}.lost-post-title{font-size:15px;font-weight:500;transition:transform .15s}.lost-post:hover .lost-post-title{transform:translate(3px)}.lost-post-date{color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.np-art.motion{width:64px;height:64px}.motion-cover{background:var(--ph);border-radius:8px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.motion-cover img,.motion-cover .ph,.np .motion-cover img{object-fit:cover;border-radius:0;width:100%;height:100%;position:absolute;inset:0}.motion-cover video{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.motion-cover.on video{opacity:1}.motion-credit{color:var(--mute);margin-top:2px;font-size:12px}.motion-credit a{color:inherit;text-underline-offset:2px;text-decoration:underline}.motion-credit a:hover{color:var(--fg,inherit)}.sp-recent{flex-direction:column;gap:14px;display:flex}.np-wrap .sp-recent{margin-top:14px}.motion-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 10px;display:grid}.motion-tile{min-width:0;color:inherit;flex-direction:column;gap:1px;text-decoration:none;display:flex}.motion-tile-art{aspect-ratio:1;border-radius:6px;margin-bottom:5px;transition:transform .2s;display:block;position:relative;overflow:hidden}.motion-tile:hover .motion-tile-art{transform:translateY(-2px)}.motion-tile-name,.motion-tile-artist{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.motion-tile-name{font-size:13px;font-weight:500}.motion-tile-artist{color:var(--mute-2);font-size:12px}.motion-tile:hover .motion-tile-name{text-underline-offset:3px;text-decoration:underline}.motion-tile .motion-cover{border-radius:6px}.sp-recent>.motion-credit{margin-top:2px;display:block}.song-list{flex-direction:column;display:flex}.song{border-bottom:1px solid var(--line);color:inherit;align-items:center;gap:12px;min-width:0;padding:7px 0;text-decoration:none;display:flex}.song:last-child{border-bottom:0}.song img,.song .ph{object-fit:cover;background:var(--ph);border-radius:5px;flex-shrink:0;width:36px;height:36px}.song-text{flex-direction:column;min-width:0;display:flex}.song-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.song-meta{color:var(--mute-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.song:hover .song-title{text-underline-offset:3px;text-decoration:underline}.last-played{z-index:2;letter-spacing:.02em;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;bottom:5px;left:5px}.song-text{flex:1}.song-when{color:var(--mute-2);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:12px}
