:root{--serif: "Bodoni Moda", "Noto Serif SC", "Songti SC", serif;--sans: "Jost", "Noto Sans SC", "PingFang SC", system-ui, sans-serif;--gutter: clamp(20px, 4vw, 56px);--ease: cubic-bezier(.2, .7, .1, 1);--ease-io: cubic-bezier(.7, 0, .2, 1);--header-h: 76px}:root,[data-theme=dark]{color-scheme:dark;--bg: #0b0814;--bg-2: #130d22;--surface: rgba(24, 17, 42, .72);--surface-solid: #171029;--ink: #efe8fb;--ink-2: #b9acd4;--ink-3: #7f729b;--line: rgba(200, 170, 255, .14);--line-2: rgba(200, 170, 255, .3);--accent: #c47dff;--accent-strong: #aa22ee;--accent-ink: #ffffff;--glow: rgba(170, 34, 238, .45);--spark-a: #fbf3ff;--spark-b: #cf8cff;--spark-c: #aa22ee;--star-rgb: 236, 228, 255;--star-accent-rgb: 205, 150, 255;--star-alpha: 1;--nebula: radial-gradient(ellipse 70% 55% at 78% 8%, rgba(170, 34, 238, .16), transparent 70%), radial-gradient(ellipse 60% 50% at 8% 92%, rgba(88, 54, 200, .14), transparent 70%), radial-gradient(ellipse 40% 40% at 45% 50%, rgba(120, 60, 200, .06), transparent 70%);--pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23c47dff' stroke-width='.7'%3E%3Cpath d='M28 22c3.2-4 3.2-8.4 0-10.6-3.2 2.2-3.2 6.6 0 10.6zM28 34c3.2 4 3.2 8.4 0 10.6-3.2-2.2-3.2-6.6 0-10.6zM22 28c-4-3.2-8.4-3.2-10.6 0 2.2 3.2 6.6 3.2 10.6 0zM34 28c4-3.2 8.4-3.2 10.6 0-2.2 3.2-6.6 3.2-10.6 0z'/%3E%3Ccircle cx='28' cy='28' r='1.8'/%3E%3Cpath d='M0 0l3 3M56 0l-3 3M0 56l3-3M56 56l-3-3' /%3E%3C/g%3E%3C/svg%3E");--pattern-alpha: .09;--wordmark: linear-gradient(100deg, #efe8fb 0%, #e3c4ff 40%, #b85cf5 70%, #efe8fb 100%)}[data-theme=light]{color-scheme:light;--bg: #f5f1fa;--bg-2: #ece4f6;--surface: rgba(255, 252, 255, .82);--surface-solid: #fdfaff;--ink: #1d1430;--ink-2: #4f4268;--ink-3: #8a7da3;--line: rgba(70, 30, 120, .13);--line-2: rgba(70, 30, 120, .28);--accent: #8a14cc;--accent-strong: #aa22ee;--accent-ink: #ffffff;--glow: rgba(170, 34, 238, .28);--spark-a: #f1dcff;--spark-b: #b650f2;--spark-c: #7410b4;--star-rgb: 110, 70, 170;--star-accent-rgb: 170, 34, 238;--star-alpha: .5;--nebula: radial-gradient(ellipse 70% 55% at 80% 6%, rgba(200, 140, 255, .28), transparent 70%), radial-gradient(ellipse 60% 50% at 6% 94%, rgba(160, 170, 255, .24), transparent 70%);--pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%238a14cc' stroke-width='.7'%3E%3Cpath d='M28 22c3.2-4 3.2-8.4 0-10.6-3.2 2.2-3.2 6.6 0 10.6zM28 34c3.2 4 3.2 8.4 0 10.6-3.2-2.2-3.2-6.6 0-10.6zM22 28c-4-3.2-8.4-3.2-10.6 0 2.2 3.2 6.6 3.2 10.6 0zM34 28c4-3.2 8.4-3.2 10.6 0-2.2 3.2-6.6 3.2-10.6 0z'/%3E%3Ccircle cx='28' cy='28' r='1.8'/%3E%3Cpath d='M0 0l3 3M56 0l-3 3M0 56l3-3M56 56l-3-3' /%3E%3C/g%3E%3C/svg%3E");--pattern-alpha: .1;--wordmark: linear-gradient(100deg, #1d1430 0%, #6a1fa8 45%, #aa22ee 70%, #1d1430 100%)}*,*:before,*:after{box-sizing:border-box}html{background:var(--nebula),var(--bg);background-attachment:fixed;color:var(--ink);-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;min-height:100vh;font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:var(--pattern);background-size:56px 56px;opacity:var(--pattern-alpha);-webkit-mask-image:radial-gradient(ellipse 120% 90% at 50% 50%,transparent 45%,#000 100%);mask-image:radial-gradient(ellipse 120% 90% at 50% 50%,transparent 45%,#000 100%)}html.menu-open body{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}ol,ul{padding:0;list-style:none}::selection{background:var(--accent-strong);color:#fff}:focus-visible{outline:1px dashed var(--accent);outline-offset:4px}.mono{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.muted{color:var(--ink-3)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:16px;z-index:200;padding:10px 16px;background:var(--accent-strong);color:#fff;border-radius:999px}.skip:focus{top:12px}.sparkle{display:inline-block;flex:none;vertical-align:-.1em;overflow:visible}.arrow{display:inline-block;margin-left:.3em;transition:transform .4s var(--ease)}.page{outline:none}.page-loading{min-height:100vh}.sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;width:100vw;height:100vh;pointer-events:none;transition:opacity .8s ease;animation:sky-in 1.6s ease backwards}@keyframes sky-in{0%{opacity:0}}.sky--quiet{opacity:.4}.sky{view-transition-name:sky}.chrome{view-transition-name:chrome}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){animation:vt-dim .75s var(--ease-io) both}::view-transition-new(root){animation:vt-reveal .75s var(--ease-io) both}::view-transition-group(chrome),::view-transition-group(sky){animation-duration:.75s}@keyframes vt-reveal{0%{clip-path:circle(0 at var(--vt-x, 50%) var(--vt-y, 50%))}to{clip-path:circle(150vmax at var(--vt-x, 50%) var(--vt-y, 50%))}}@keyframes vt-dim{to{opacity:.35;transform:scale(.985)}}[data-reveal]{opacity:0;transform:translateY(22px)}[data-reveal]:not(.is-settled){transition:opacity .9s var(--ease) var(--reveal-delay, 0ms),transform .9s var(--ease) var(--reveal-delay, 0ms)}[data-reveal].is-in{opacity:1;transform:none}.split .word{display:inline-block;white-space:nowrap}.split .char{display:inline-block;animation:char-rise .9s var(--ease) both;animation-delay:calc(var(--i) * 26ms + .12s)}@keyframes char-rise{0%{opacity:0;transform:translateY(.55em) rotate(6deg);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}html.has-cursor,html.has-cursor *{cursor:none!important}.cursor__ring,.cursor__dot{position:fixed;top:0;left:0;z-index:1000;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .3s ease}.cursor__ring.is-visible,.cursor__dot.is-visible{opacity:1}.cursor__ring:before{content:"";position:absolute;left:-17px;top:-17px;width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;transition:transform .35s var(--ease),background-color .35s ease,border-color .35s ease}.cursor__ring.is-hover:before{transform:scale(1.55);border-color:var(--accent);background:color-mix(in srgb,var(--accent-strong) 12%,transparent)}.cursor__ring.is-down:before{transform:scale(.85)}.cursor__spark{position:absolute;left:-7px;top:-7px;opacity:0;transform:scale(.4) rotate(-45deg);transition:opacity .3s ease,transform .45s var(--ease)}.cursor__ring.is-hover:not(.has-label) .cursor__spark{opacity:1;transform:none}.cursor__label{position:absolute;left:0;top:0;transform:translate(-50%,-50%);font-size:.9rem;color:var(--accent);white-space:nowrap;opacity:0;transition:opacity .25s ease}.cursor__ring.has-label .cursor__label{opacity:1}.cursor__dot:before{content:"";position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--accent)}[data-magnetic]{transition:transform .35s var(--ease)}.chrome{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;gap:32px;height:var(--header-h);padding:0 var(--gutter);background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 88%,transparent),transparent)}.brand{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px;margin-right:auto}.brand__spark{transition:transform .8s var(--ease)}.brand:hover .brand__spark{transform:rotate(180deg) scale(1.15)}.brand__name{font-family:var(--serif);font-size:1.3rem;letter-spacing:.01em;line-height:1}.brand__name em{margin-left:.25em;font-style:italic;color:var(--accent)}.chrome__nav{display:flex;gap:28px}.chrome__nav a{position:relative;display:inline-block;padding:6px 0;font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);transition:color .3s ease}.chrome__nav a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.chrome__nav a:hover,.chrome__nav a[aria-current=page]{color:var(--ink)}.chrome__nav a:hover:after,.chrome__nav a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.chrome__nav .arrow{margin-left:.15em;font-size:.9em;color:var(--ink-3)}.controls{display:flex;align-items:center;gap:10px}.seg{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px}.seg__btn{min-width:34px;padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:500;letter-spacing:.08em;color:var(--ink-3);transition:color .3s ease,background-color .3s ease}.seg__btn:hover{color:var(--ink)}.seg__btn.is-on{background:var(--ink);color:var(--bg)}.theme-btn{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 11px;border:1px solid var(--line);border-radius:999px;font-size:.74rem;letter-spacing:.08em;color:var(--ink-2);transition:border-color .3s ease,color .3s ease}.theme-btn:hover{border-color:var(--line-2);color:var(--ink)}.theme-btn svg{transition:transform .6s var(--ease)}.theme-btn:hover svg{transform:rotate(-25deg)}.menu-btn{position:relative;z-index:2;display:none;padding:8px 16px;border:1px solid var(--line-2);border-radius:999px;font-size:.74rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:calc(var(--header-h) + 32px) var(--gutter) 40px;background:var(--nebula),var(--bg);animation:menu-in .5s var(--ease) both}.menu[hidden]{display:none}.menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:var(--pattern);background-size:56px 56px;opacity:var(--pattern-alpha)}.menu__nav{display:flex;flex-direction:column;gap:6px}.menu__nav a{font-family:var(--serif);font-size:clamp(2.4rem,11vw,3.4rem);line-height:1.15}.menu__nav a[aria-current=page]{font-style:italic;color:var(--accent)}.menu__nav .arrow{font-size:.5em;vertical-align:.6em;color:var(--ink-3)}@keyframes menu-in{0%{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}.lace{position:relative;display:flex;justify-content:center;height:14px;margin:0 0 32px;background:radial-gradient(circle at 50% 0,transparent 4.5px,var(--line-2) 5px,var(--line-2) 5.6px,transparent 6px) 0 1px / 14px 14px repeat-x,linear-gradient(var(--line-2),var(--line-2)) 0 0 / 100% 1px no-repeat}.lace .sparkle{position:relative;top:-7px;padding:0 10px;box-sizing:content-box;background:var(--bg)}.colophon{max-width:1080px;margin:0 auto;padding:24px var(--gutter) 40px;color:var(--ink-3)}.colophon__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px}.colophon__socials{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.86rem}.colophon__socials a,.colophon__top{transition:color .3s ease}.colophon__socials a:hover,.colophon__top:hover{color:var(--accent)}.thumb{position:relative;display:block}.thumb__frame{display:grid;place-items:center;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--line-2);border-radius:3px;background:var(--bg-2);background-image:var(--pattern);background-size:28px 28px}.thumb__frame img{width:100%;height:100%;object-fit:cover}.thumb__spark{position:absolute;top:-7px;right:-7px}.pcard{display:grid;gap:12px;width:300px;padding:10px 10px 14px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 24px 60px -24px #0a041899;text-align:left}.pcard__body{display:grid;gap:4px;padding:0 4px}.pcard__no{color:var(--accent)}.pcard__title{font-family:var(--serif);font-size:1.45rem;line-height:1.15}.pcard__summary{font-size:.86rem;line-height:1.5;color:var(--ink-2)}.pcard__meta{margin-top:4px;font-size:.64rem;color:var(--ink-3)}.follow{position:fixed;top:0;left:0;z-index:50;width:280px;pointer-events:none}.follow__item{position:absolute;inset:0 0 auto;opacity:0;transform:scale(.88);transition:opacity .35s ease,transform .5s var(--ease)}.follow.is-active .follow__item.is-current{opacity:1;transform:none}.home{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh;min-height:100svh;padding:calc(var(--header-h) + 8px) var(--gutter) 22px;overflow:hidden;overflow:clip}.home__intro{display:grid;gap:10px;max-width:760px}.home__eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2)}.dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--accent-strong);box-shadow:0 0 0 0 var(--glow);animation:pulse 2.4s ease-out infinite}@keyframes pulse{to{box-shadow:0 0 0 10px transparent}}.home__title{display:grid;font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1.04;letter-spacing:-.01em}.home__line--em{font-style:italic}.home__line--em .char{background:var(--wordmark);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:char-rise .9s var(--ease) both,sheen 9s linear infinite;animation-delay:calc(var(--i) * 26ms + .12s),0s}@keyframes sheen{0%{background-position:0% 0}to{background-position:300% 0}}.home__role{color:var(--ink-2);font-size:1rem}.home__stage{position:relative;min-height:420px}.home__bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding-top:16px;border-top:1px solid var(--line)}.viewswitch{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px}.viewswitch a{padding:5px 14px;border-radius:999px;font-size:.74rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);transition:color .3s ease,background-color .3s ease}.viewswitch a:hover{color:var(--ink)}.viewswitch a[aria-current=page]{background:var(--accent-strong);color:#fff}.home__hint{color:var(--ink-3)}.chart{position:absolute;top:12px;right:0;bottom:12px;left:0}.chart__rings{position:absolute;left:50%;top:50%;width:min(92%,86vh);aspect-ratio:1;transform:translate(-50%,-50%);overflow:visible;opacity:.55;animation:spin 240s linear infinite}.chart__rings circle,.chart__rings line{fill:none;stroke:var(--line);stroke-width:1}.chart__rings circle:nth-child(2){stroke-dasharray:2 6}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.chart__lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.chart__lines line{stroke-width:1}.chart__lines .is-charted{stroke:var(--accent);stroke-opacity:.55;stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 2.2s var(--ease) .4s forwards}.chart__lines .is-uncharted{stroke:var(--line-2);stroke-dasharray:3 7}.chart__lines--tall{display:none}@keyframes draw{to{stroke-dashoffset:0}}.chart__stars{position:absolute;top:0;right:0;bottom:0;left:0}.star{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%)}.star--empty{opacity:.55;filter:saturate(.4)}.star--empty .sparkle{animation:float 6s ease-in-out infinite;animation-delay:var(--d)}.star__link{position:relative;display:grid;place-items:center;width:84px;height:84px;border-radius:50%}.star__halo{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;background:radial-gradient(circle,var(--glow) 0%,transparent 65%);opacity:.6;animation:breathe 4.5s ease-in-out infinite;animation-delay:var(--d);transition:opacity .4s ease}.star__spark{position:relative;animation:float 6s ease-in-out infinite;animation-delay:var(--d);filter:drop-shadow(0 0 8px var(--glow))}.star__spark path:first-of-type{transform-origin:12px 12px;transition:transform .8s var(--ease)}.star__label{position:absolute;top:calc(100% - 4px);left:50%;display:grid;justify-items:center;gap:2px;transform:translate(-50%);white-space:nowrap;text-align:center;pointer-events:none}.star__label .mono{font-size:.62rem;color:var(--accent)}.star__title{font-family:var(--serif);font-size:clamp(1.1rem,1.3vw,1.4rem);line-height:1.1;transition:color .3s ease}.star__card{position:absolute;bottom:62%;left:62%;z-index:5;opacity:0;transform:translate(-8px,8px);pointer-events:none;transition:opacity .35s ease,transform .5s var(--ease)}.star--flip .star__card{left:auto;right:62%;transform:translate(8px,8px)}.star--down .star__card{bottom:auto;top:calc(100% + 48px);transform:translate(-8px,-8px)}.star--down.star--flip .star__card{transform:translate(8px,-8px)}.star:hover,.star:focus-within{z-index:4}.star:hover .star__halo,.star:focus-within .star__halo{opacity:1}.star:hover .star__spark path:first-of-type,.star:focus-within .star__spark path:first-of-type{transform:rotate(45deg) scale(1.15)}.star:hover .star__title,.star:focus-within .star__title{color:var(--accent);font-style:italic}@media(hover:hover){.star:hover .star__card,.star:focus-within .star__card{opacity:1;transform:none}}@media(hover:none){.star__card{display:none}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes breathe{0%,to{transform:scale(.9)}50%{transform:scale(1.12)}}.home--index .home__stage{padding:40px 0 32px}.index{border-bottom:1px solid var(--line)}.index__row{border-top:1px solid var(--line);transition:opacity .4s ease}.index.has-active .index__row:not(.is-active){opacity:.3}.index__link{display:grid;grid-template-columns:72px minmax(0,1fr) auto 40px;align-items:baseline;gap:20px;padding:26px 0}.index__no{color:var(--accent)}.index__title{font-family:var(--serif);font-size:clamp(2.4rem,6.4vw,5.6rem);line-height:1;letter-spacing:-.015em;transition:transform .6s var(--ease),color .3s ease}.index__link:hover .index__title,.index__link:focus-visible .index__title{font-style:italic;color:var(--accent);transform:translate(14px)}.index__meta{display:grid;justify-items:end;gap:2px;font-size:.86rem;color:var(--ink-2);text-align:right}.index__meta .mono{color:var(--ink-3)}.index__thumb{display:none}.index__arrow{justify-self:end;font-size:1.4rem;color:var(--ink-3);transition:transform .5s var(--ease),color .3s ease}.index__link:hover .index__arrow{transform:translate(4px,-4px);color:var(--accent)}@media(hover:none){.index__thumb{display:block;grid-column:1 / -1;grid-row:3;max-width:440px}}.wrap{max-width:1080px;margin:0 auto;padding:calc(var(--header-h) + 56px) var(--gutter) 72px}.backlink{display:inline-block;margin-bottom:40px;color:var(--ink-3);transition:color .3s ease,transform .4s var(--ease)}.backlink:hover{color:var(--accent);transform:translate(-4px)}.page-head,.about__head{display:grid;gap:18px;margin-bottom:56px}.page-head>.mono,.about__head>.mono,.project__no{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2)}.page-title{font-family:var(--serif);font-weight:400;font-size:clamp(3.2rem,9vw,7.4rem);line-height:.98;letter-spacing:-.02em}.page-head__sub{max-width:40em;color:var(--ink-2);font-size:1.05rem}.project__head{display:grid;gap:20px}.project__title{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,8.4vw,7rem);line-height:.98;letter-spacing:-.02em}.project__summary{max-width:34em;font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-2)}.specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:16px;padding-top:18px;border-top:1px solid var(--line)}.specs__item{display:grid;gap:4px}.specs dt{color:var(--ink-3)}.specs dd{font-size:.95rem}.frame{position:relative;max-width:880px;margin:64px auto;padding:10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.frame:before,.frame:after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--accent);background:var(--bg);transform:rotate(45deg)}.frame:before{top:-5px;left:-5px}.frame:after{right:-5px;bottom:-5px}.yt,.yt__frame,.cover,.ph{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:2px}.yt{position:relative;overflow:hidden;background:#000}.yt img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .4s ease;opacity:.85}.yt:hover img{transform:scale(1.03);opacity:1}.yt__play{position:absolute;left:50%;top:50%;display:grid;justify-items:center;gap:14px;transform:translate(-50%,-50%);color:#fff}.yt__triangle{display:grid;place-items:center;width:76px;height:76px;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:#14082859;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .5s var(--ease),background-color .3s ease}.yt__triangle:before{content:"";margin-left:5px;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff}.yt:hover .yt__triangle{transform:scale(1.08);background:var(--accent-strong)}.cover{object-fit:cover}.ph{display:grid;place-items:center;align-content:center;gap:14px;background:var(--bg-2);background-image:var(--pattern);background-size:40px 40px;color:var(--ink-3)}.ph__label{display:grid;justify-items:center;gap:4px}.ph__code{opacity:.6}.block{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;padding:44px 0;border-top:1px solid var(--line)}.block__label{padding-top:6px;color:var(--accent)}.block__body{display:grid;gap:18px;min-width:0}.lead{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.55}.contrib{gap:0}.contrib__item{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px dashed var(--line)}.contrib__item:last-child{border-bottom:0}.contrib__no{font-family:var(--serif);font-style:italic;font-size:2rem;line-height:1;color:var(--accent)}.btn-row{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border:1px solid var(--line-2);border-radius:999px;font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:transform .35s var(--ease),background-color .3s ease,border-color .3s ease,color .3s ease}.btn:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.nextstar{display:grid;gap:10px;margin-top:40px;padding:48px 0 8px;border-top:1px solid var(--line)}.nextstar__label{display:inline-flex;align-items:center;gap:10px;color:var(--ink-3)}.nextstar__title{font-family:var(--serif);font-size:clamp(2.4rem,6.4vw,5.2rem);line-height:1;transition:color .3s ease}.nextstar:hover .nextstar__title{font-style:italic;color:var(--accent)}.nextstar:hover .arrow{transform:translate(12px)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.gallery__item{position:relative;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--line);border-radius:3px}.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.gallery__item:hover img{transform:scale(1.04)}.gallery__index{position:absolute;left:8px;bottom:6px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;align-content:center;gap:16px;padding:24px;background:#080410f0;color:#fff}.lightbox img{max-width:92vw;max-height:80vh;object-fit:contain}.lightbox__bar{display:flex;gap:24px}.about__summary{max-width:30em;font-family:var(--serif);font-size:clamp(1.35rem,2.6vw,2.05rem);line-height:1.45}.entries{gap:0}.entry{border-bottom:1px solid var(--line)}.entry:first-child{border-top:0}.entry__head{display:grid;grid-template-columns:150px minmax(0,1fr) auto auto;align-items:baseline;gap:20px;padding:20px 0}summary.entry__head{cursor:pointer;list-style:none}summary.entry__head::-webkit-details-marker{display:none}.entry__period,.entry__loc{color:var(--ink-3)}.entry__main{display:grid;gap:2px}.entry__title{font-family:var(--serif);font-size:1.45rem;line-height:1.2;transition:color .3s ease}.entry__detail{color:var(--ink-2);font-size:.95rem}summary.entry__head:hover .entry__title{color:var(--accent)}.entry__toggle{color:var(--accent)}.entry__less,details[open] .entry__more{display:none}details[open] .entry__less{display:inline}.entry__highlights{display:grid;gap:10px;padding:0 0 26px 170px;color:var(--ink-2);animation:open-down .5s var(--ease) both}.entry__highlights li{position:relative;padding-left:22px}.entry__highlights li:before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;background:var(--accent);transform:rotate(45deg)}@keyframes open-down{0%{opacity:0;transform:translateY(-8px)}}.chips,.pills{display:flex;flex-wrap:wrap;gap:8px}.chips{padding:0 0 22px 170px}.chips li,.pills li{padding:4px 12px;border:1px solid var(--line);border-radius:999px;font-size:.84rem;color:var(--ink-2)}.skills{display:grid;gap:18px}.skills__group{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:baseline;gap:20px}.skills dt{color:var(--ink-3)}.contact{display:grid;justify-items:center;gap:20px;margin-top:40px;padding:88px 0 24px;border-top:1px solid var(--line);text-align:center}.contact__heading{max-width:16em;font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5vw,3.8rem);line-height:1.08}.contact__email{position:relative;font-family:var(--sans);font-weight:400;letter-spacing:.02em;font-size:clamp(1.15rem,2.6vw,1.9rem);color:var(--accent);overflow-wrap:anywhere}.contact__email:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(.3);transition:transform .6s var(--ease)}.contact__email:hover:after{transform:scaleX(1)}.contact .block__label{margin-top:32px}.socials{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.socials a{display:inline-flex;align-items:baseline;gap:10px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;transition:border-color .3s ease,color .3s ease}.socials a:hover{border-color:var(--accent);color:var(--accent)}.socials__handle{color:var(--ink-3);text-transform:none;letter-spacing:.04em}.notelist{border-bottom:1px solid var(--line)}.noterow{display:grid;grid-template-columns:120px minmax(0,1fr) auto 32px;align-items:baseline;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.noterow__date,.noterow__tags{color:var(--ink-3)}.noterow__main{display:grid;gap:4px}.noterow__title{font-family:var(--serif);font-size:1.55rem;line-height:1.2;transition:color .3s ease}.noterow__excerpt{font-size:.92rem;color:var(--ink-2)}.noterow__arrow{justify-self:end;color:var(--ink-3);transition:transform .4s var(--ease),color .3s ease}.noterow:hover .noterow__title{color:var(--accent);font-style:italic}.noterow:hover .noterow__arrow{color:var(--accent);transform:translate(6px)}.note__head{display:grid;gap:18px;margin-bottom:48px}.note__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--ink-3)}.tag{padding:3px 10px;border:1px solid var(--line);border-radius:999px}.note__title{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.04}.note__notice{color:var(--accent)}.prose{max-width:68ch;font-size:1.06rem;line-height:1.8;color:var(--ink)}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3{margin-top:2em;font-family:var(--serif);font-weight:500;line-height:1.25}.prose h2{font-size:1.8rem}.prose h3{font-size:1.35rem}.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li+li{margin-top:.4em}.prose img{border:1px solid var(--line);border-radius:4px}.prose code{padding:.1em .4em;border-radius:4px;background:var(--bg-2);font-size:.9em}.prose pre{overflow:auto;padding:16px 18px;border:1px solid var(--line);border-radius:6px;background:var(--bg-2)}.prose pre code{padding:0;background:none}.prose hr{height:1px;margin:2em 0;border:0;background:var(--line)}.prose blockquote{margin-left:0;padding-left:18px;border-left:2px solid var(--accent);color:var(--ink-2)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:72px}.pager__cell{display:grid;gap:6px;padding:20px;border:1px solid var(--line);border-radius:6px;transition:border-color .3s ease}a.pager__cell:hover{border-color:var(--accent)}.pager__cell--next{text-align:right}.pager__cell--empty{border-color:transparent}.pager__cell .mono{color:var(--ink-3)}.pager__title{font-family:var(--serif);font-size:1.2rem}.lost{display:grid;justify-items:center;align-content:center;gap:18px;min-height:80vh;text-align:center}.lost__spark{animation:spin-slow 12s linear infinite}.lost__body{color:var(--ink-2)}.lost .btn{margin-top:12px}@keyframes spin-slow{to{transform:rotate(360deg)}}@media(max-width:1080px){.chrome__nav{gap:20px}.theme-btn__label{display:none}.theme-btn{padding:8px}}@media(max-width:760px){:root{--header-h: 64px}.chrome__nav,.chrome__controls{display:none}.menu-btn{display:inline-block}.menu .theme-btn__label{display:inline}.menu .theme-btn{padding:7px 14px 7px 11px}.home{padding-bottom:18px}.home__title{font-size:clamp(2.1rem,10vw,2.8rem)}.home__bar{gap:12px 16px}.home--sky .home__stage{min-height:150svh}.star{left:var(--mx);top:var(--my)}.chart__lines--wide{display:none}.chart__lines--tall{display:block}.chart__rings{top:30%;width:140%}.home--index .home__stage{padding-top:28px}.index__link{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;padding:22px 0}.index__no{grid-column:1 / -1}.index__title{grid-column:1;font-size:clamp(2.1rem,10vw,3rem)}.index__arrow{grid-column:2;grid-row:2}.index__meta{grid-column:1 / -1;grid-row:3;justify-items:start;text-align:left;grid-auto-flow:column;justify-content:start;gap:14px}.index__thumb{grid-row:4}.wrap{padding-top:calc(var(--header-h) + 32px)}.specs{grid-template-columns:repeat(2,minmax(0,1fr))}.frame{margin:40px 0;padding:6px}.block{grid-template-columns:1fr;gap:16px;padding:36px 0}.contrib__item{grid-template-columns:40px minmax(0,1fr)}.entry__head{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.entry__period{grid-column:1 / -1}.entry__loc{grid-column:1;grid-row:3}.entry__toggle{grid-column:2;grid-row:2}.entry__highlights,.chips{padding-left:0}.skills__group{grid-template-columns:1fr;gap:8px}.noterow{grid-template-columns:minmax(0,1fr) 24px;gap:8px 12px}.noterow__date{grid-column:1 / -1}.noterow__tags{grid-column:1;grid-row:3}.noterow__arrow{grid-column:2;grid-row:2}.pager{grid-template-columns:1fr}.pager__cell--empty{display:none}.colophon__row{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}.chart__lines .is-charted{stroke-dashoffset:0}}
