:root{--bg: #F4EFE7;--bg2: #EDE6DA;--ink: #2A2622;--sub: #6E665C;--accent: #8A7A66;--accent-text: #6E5C45;--sepia: #7A6854;--hairline: #D8D0C2;--rule: 1px solid var(--hairline);--focus: 2px solid var(--ink);--radius: 0;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.5rem;--s6: 2rem;--s7: 3rem;--s8: 4rem;--s9: 6rem;--s10: 8rem;--s11: 12rem;--t-cap: .8125rem;--t-label: .8125rem;--t-body: 1.1875rem;--t-h3: 1.5rem;--t-h2: 2.25rem;--t-hero: clamp(2rem, 4.5vw, 3.4rem);--t-centerpiece: clamp(1.6rem, 3vw, 2.2rem);--measure-prose: 36em;--measure-centerpiece: 30em;--container: 1100px;--gutter: clamp(20px, 5vw, 40px);--font-display: "Cormorant Garamond", "EB Garamond", Georgia, serif;--font-body: "EB Garamond", Georgia, serif;--font-ja: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-zh: "Noto Serif TC", "Source Han Serif TC", serif}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink)}body{margin:0;font-family:var(--font-body);font-size:var(--t-body);line-height:1.75;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html[lang=en] body{font-family:var(--font-body)}html[lang=ja] body{font-family:var(--font-ja);line-height:1.9}html[lang^=zh] body{font-family:var(--font-zh);line-height:1.9}img,svg,video{max-width:100%;height:auto;display:block}:focus-visible{outline:var(--focus);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--bg);color:var(--ink);padding:var(--s3) var(--s4);text-decoration:none;border-bottom:var(--rule)}.skip-link:focus{left:0;z-index:1000}.grain{position:fixed;inset:0;opacity:.07;mix-blend-mode:multiply;pointer-events:none;z-index:1}.grain svg{width:100%;height:100%}.grain feTurbulence{animation:grain-shift 11s linear infinite}@keyframes grain-shift{0%{baseFrequency:.85 .85}50%{baseFrequency:.92 .88}to{baseFrequency:.85 .85}}.washi-creases{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:1}.washi-creases:before,.washi-creases:after{content:"";position:absolute;inset:0;background-image:radial-gradient(120% 80% at 10% 0%,rgba(122,104,84,.06),transparent 55%),radial-gradient(140% 90% at 90% 30%,rgba(122,104,84,.04),transparent 60%),radial-gradient(100% 80% at 30% 90%,rgba(122,104,84,.05),transparent 55%),radial-gradient(120% 90% at 80% 80%,rgba(122,104,84,.03),transparent 60%);mix-blend-mode:multiply}.washi-creases:after{background-image:linear-gradient(105deg,transparent 49.6%,rgba(60,48,32,.05) 49.95%,transparent 50.3%),linear-gradient(85deg,transparent 36%,rgba(60,48,32,.03) 36.3%,transparent 36.6%),linear-gradient(115deg,transparent 73%,rgba(60,48,32,.04) 73.3%,transparent 73.6%),linear-gradient(95deg,transparent 22%,rgba(60,48,32,.025) 22.3%,transparent 22.6%);mix-blend-mode:multiply}.washi-creases svg{position:absolute;inset:0;width:100%;height:100%;opacity:.55;mix-blend-mode:multiply}@supports not (animation-timeline: view()){.grain{background-image:url(/piano-distance/img/grain-512.png);background-size:512px 512px}}.cursor-ink{position:fixed;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,var(--sepia) 0%,transparent 70%);pointer-events:none;z-index:99;opacity:0;transform:translate(-50%,-50%);transition:opacity .4s ease;mix-blend-mode:multiply}@media (hover: hover) and (pointer: fine){.cursor-ink.is-active{opacity:.55}}.reveal-h h2,.reveal-h .sub{--rise: 24px;animation:rise-in .9s cubic-bezier(.22,1,.36,1) both}.reveal-h h2{animation-delay:.05s}.reveal-h .sub{animation-delay:.35s}.reveal-h .hero-cta{animation:rise-in 1.1s cubic-bezier(.22,1,.36,1) both .55s}@keyframes rise-in{0%{opacity:0;transform:translateY(var(--rise, 24px));filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.kinetic-title{display:inline-block}.kinetic-title .char{display:inline-block;opacity:0;transform:translateY(.6em) rotateX(-40deg);transform-origin:50% 100%;animation:char-rise 1.1s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i, 0) * 40ms + .3s);will-change:transform,opacity}@keyframes char-rise{0%{opacity:0;transform:translateY(.6em) rotateX(-40deg);filter:blur(3px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:translateY(0) rotateX(0);filter:blur(0)}}.kinetic-title .char:hover{animation:char-pulse .6s ease both}@keyframes char-pulse{0%,to{transform:translateY(0) scale(1);color:var(--ink)}50%{transform:translateY(-.08em) scale(1.04);color:var(--accent-text)}}.marquee{overflow:hidden;border-top:var(--rule);border-bottom:var(--rule);padding-block:var(--s5);margin-block:clamp(var(--s8),12vw,var(--s10))}.marquee-track{display:flex;gap:var(--s7);white-space:nowrap;animation:marquee-scroll 36s linear infinite;font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(2rem,5vw,3.6rem);color:var(--accent-text)}.marquee-track span:after{content:"·";margin-left:var(--s7);color:var(--sepia);font-style:normal}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.depth-card{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.22,1,.36,1)}.depth-card:hover{transform:translateZ(20px) rotateX(2deg) rotateY(-2deg)}.de-gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(120px,auto);gap:var(--s5);margin-top:var(--s9);perspective:1400px}.de-gallery .g-cell{position:relative;border:1px solid var(--hairline);background:var(--bg2);padding:var(--s2);overflow:hidden}.de-gallery .g-cell img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.18) saturate(.88) contrast(.97);transition:transform 1.2s cubic-bezier(.22,1,.36,1),filter .6s ease}.de-gallery .g-cell:hover img{transform:scale(1.05);filter:sepia(.06) saturate(1) contrast(1)}.de-gallery .g-cell .g-tag{position:absolute;bottom:var(--s4);left:var(--s4);background:var(--bg);padding:var(--s2) var(--s3);font-family:Space Mono,ui-monospace,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1px solid var(--hairline);z-index:2}html[lang=ja] .de-gallery .g-cell .g-tag,html[lang^=zh] .de-gallery .g-cell .g-tag{text-transform:none;letter-spacing:.08em}.de-gallery .g-1{grid-column:1 / span 7;aspect-ratio:16/10}.de-gallery .g-2{grid-column:8 / span 5;aspect-ratio:4/5;margin-top:var(--s8)}.de-gallery .g-3{grid-column:1 / span 4;aspect-ratio:3/4}.de-gallery .g-4{grid-column:5 / span 5;aspect-ratio:1/1;margin-top:var(--s5)}.de-gallery .g-5{grid-column:10 / span 3;aspect-ratio:3/4;margin-top:var(--s8)}.de-gallery .g-6{grid-column:1 / span 5;aspect-ratio:4/3;margin-top:var(--s5)}.de-gallery .g-7{grid-column:6 / span 7;aspect-ratio:16/9}@media (max-width: 900px){.de-gallery .g-cell{grid-column:1 / -1!important;margin-top:0!important;aspect-ratio:4/3!important}}.pilcrow{display:block;font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(3rem,8vw,6rem);line-height:1;color:var(--accent-text);opacity:.35;margin-bottom:var(--s4)}.parallax-stage{position:relative;perspective:1200px;perspective-origin:50% 50%}.parallax-layer{--speed: 0}.cover-collage{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(var(--s6),6vw,var(--s9));align-items:start;padding-block:var(--s7)}@media (max-width: 900px){.cover-collage{grid-template-columns:1fr;gap:var(--s6)}}.cover-collage .col-left{padding-top:clamp(var(--s5),6vw,var(--s9))}.cover-collage .meta-block{max-width:26em}.cover-collage .album-title{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(2.6rem,6.8vw,5.2rem);line-height:.98;letter-spacing:-.01em;color:var(--ink);margin:0 0 var(--s5)}html[lang=ja] .cover-collage .album-title,html[lang^=zh] .cover-collage .album-title{font-family:var(--font-display)}.cover-collage .album-desc{color:var(--sub);max-width:28em;margin-bottom:var(--s5)}.cover-collage .meta-grid{display:grid;grid-template-columns:8rem 1fr;row-gap:var(--s2);column-gap:var(--s4);font-size:var(--t-label);border-top:var(--rule);padding-top:var(--s5);margin-top:var(--s6)}.cover-collage .meta-k{font-family:Space Mono,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--sub)}html[lang=ja] .cover-collage .meta-k,html[lang^=zh] .cover-collage .meta-k{text-transform:none;letter-spacing:.08em}.cover-collage .meta-v{color:var(--ink)}.cover-stack{position:relative;aspect-ratio:4 / 5;min-height:480px}.cover-stack .card{position:absolute;border:1px solid var(--hairline);background:var(--bg2);padding:var(--s3);box-sizing:border-box}.cover-stack .card img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.12) saturate(.92) contrast(.97)}.cover-stack .card-main{inset:0 14% 18% 0;z-index:2}.cover-stack .card-ghost{inset:10% 0 6% 18%;z-index:1;opacity:.5}.cover-stack .card-ghost img{filter:sepia(.28) saturate(.6) contrast(.92) brightness(1.02)}.cover-stack .geo-tag{position:absolute;top:4%;right:6%;z-index:3;background:var(--bg);padding:var(--s3) var(--s4);font-family:Space Mono,ui-monospace,monospace;font-size:var(--t-label);letter-spacing:.12em;color:var(--ink);border:1px solid var(--hairline);display:inline-flex;gap:var(--s3);align-items:center}.cover-stack .geo-tag:before{content:"";width:4px;height:4px;background:var(--accent-text);border-radius:50%;display:inline-block}.photo-card{position:relative;border:1px solid var(--hairline);background:var(--bg2);padding:var(--s3)}.photo-card img{width:100%;height:auto;display:block;filter:sepia(.16) saturate(.88) contrast(.97)}.photo-card .photo-tag{position:absolute;bottom:var(--s4);left:var(--s4);background:var(--bg);padding:var(--s2) var(--s4);font-family:Space Mono,ui-monospace,monospace;font-size:.68rem;letter-spacing:.14em;color:var(--ink);border:1px solid var(--hairline);text-transform:uppercase}html[lang=ja] .photo-card .photo-tag,html[lang^=zh] .photo-card .photo-tag{text-transform:none;letter-spacing:.08em}a:not(.cta):not(.wordmark):not([class*=lang-]){position:relative;background-image:linear-gradient(var(--accent-text),var(--accent-text));background-position:0 100%;background-size:0 1px;background-repeat:no-repeat;transition:background-size .45s cubic-bezier(.22,1,.36,1);text-decoration:none;padding-bottom:.15em}a:not(.cta):not(.wordmark):not([class*=lang-]):hover,a:not(.cta):not(.wordmark):not([class*=lang-]):focus-visible{background-size:100% 1px}.cta{--mx: 0px;--my: 0px;display:inline-flex;flex-direction:column;gap:var(--s1);padding:var(--s4) var(--s5);border:1px solid var(--accent-text);color:var(--ink);text-decoration:none;background:transparent;min-width:240px;transform:translate(var(--mx),var(--my));transition:transform .4s cubic-bezier(.22,1,.36,1),background-color .25s ease,color .25s ease,border-color .25s ease}.cta-line{font-family:var(--font-display);font-size:var(--t-h3);line-height:1.2;color:var(--accent-text)}html[lang=ja] .cta-line,html[lang^=zh] .cta-line{font-family:inherit;font-weight:500}.cta-glyph{font-size:.8em}.cta-meta{font-size:var(--t-label);letter-spacing:.1em;color:var(--sub);font-family:Space Mono,ui-monospace,monospace}html[lang=ja] .cta-meta,html[lang^=zh] .cta-meta{letter-spacing:.06em;font-family:inherit}.cta-primary{background:var(--accent-text);border-color:var(--accent-text)}.cta-primary .cta-line{color:var(--bg)}.cta-primary .cta-meta{color:var(--bg2)}.cta-primary:hover,.cta-primary:focus-visible{background:var(--ink);border-color:var(--ink)}.cta-primary:hover .cta-line,.cta-primary:focus-visible .cta-line{color:var(--bg)}.cta-secondary:hover,.cta-secondary:focus-visible{background:var(--accent-text);color:var(--bg)}.cta-secondary:hover .cta-line,.cta-secondary:focus-visible .cta-line{color:var(--bg)}.cta-secondary:hover .cta-meta,.cta-secondary:focus-visible .cta-meta{color:var(--bg2)}@media (max-width: 520px){.hero-cta .cta{min-width:0;width:100%}}::view-transition-old(root),::view-transition-new(root){animation-duration:.4s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root){animation-name:vt-fade-out}::view-transition-new(root){animation-name:vt-fade-in}@keyframes vt-fade-out{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter);position:relative;z-index:2}section{padding-block:clamp(var(--s9),12vw,var(--s11))}@media (max-width: 1024px){section{padding-block:clamp(var(--s8),16vw,var(--s9))}}h1,h2,h3{font-family:var(--font-display);font-weight:400;margin:0}html[lang=ja] h1,html[lang=ja] h2,html[lang=ja] h3{font-family:var(--font-ja);font-weight:500;font-style:normal}html[lang^=zh] h1,html[lang^=zh] h2,html[lang^=zh] h3{font-family:var(--font-zh);font-weight:500;font-style:normal}h1{font-size:var(--t-h2)}h2{font-size:var(--t-hero);font-weight:300;line-height:1.2}h3{font-size:var(--t-h3)}p{max-width:var(--measure-prose);margin:0 0 var(--s4)}a{color:var(--accent-text);text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:.2em}a:hover{text-decoration-color:var(--accent-text)}.section-label{font-family:var(--font-body);font-size:var(--t-label);letter-spacing:.18em;text-transform:uppercase;color:var(--sub);display:block;margin-bottom:var(--s5)}html[lang=ja] .section-label,html[lang^=zh] .section-label{text-transform:none;letter-spacing:.14em;font-family:inherit}.centerpiece{max-width:var(--measure-centerpiece);margin:clamp(8vh,14vh,18vh) auto;font-family:var(--font-display);font-size:var(--t-centerpiece);line-height:1.45;text-align:left;border-top:1px solid var(--sepia);padding-top:var(--s7)}html[lang=ja] .centerpiece,html[lang^=zh] .centerpiece{font-family:inherit;line-height:1.7}.rule{border:0;border-top:var(--rule);margin:var(--s6) 0}.list-hairline{list-style:none;padding:0;margin:0}.list-hairline li{border-bottom:var(--rule);padding:var(--s4) 0;display:grid;grid-template-columns:2ch 1fr auto;gap:var(--s4);align-items:baseline;max-width:var(--measure-prose)}.list-hairline li.is-core{color:var(--accent-text)}.list-hairline .n,.list-hairline .dur{font-family:Space Mono,ui-monospace,monospace;font-size:.9em;color:var(--sub)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important;animation-iteration-count:1!important}.grain feTurbulence{animation:none}.cursor-ink{display:none!important}}
