@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-cyrillic-ext-600-normal.17rt44mbdjop9.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-ext-600-normal.2s_8-y3ia5w_g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-cyrillic-600-normal.2fmgmbkm8z7r7.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-600-normal.1zkzb5qdusjzm.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-vietnamese-600-normal.2qj53-v7i4ih5.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-600-normal.0zks6pg0392kd.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-latin-ext-600-normal.17ydyk694bdhw.woff2)format("woff2"),url(../media/cormorant-garamond-latin-ext-600-normal.3xa3r62iod_40.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(../media/cormorant-garamond-latin-600-normal.2k7r9iymu8ux8.woff2)format("woff2"),url(../media/cormorant-garamond-latin-600-normal.0ya_yl54k7n41.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-cyrillic-ext-500-italic.10oib196_9jry.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-ext-500-italic.2h4j6lvqp9-72.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-cyrillic-500-italic.3dnlhm7atb4y6.woff2)format("woff2"),url(../media/cormorant-garamond-cyrillic-500-italic.2cjss573vw1hq.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-vietnamese-500-italic.24nssqggppi6e.woff2)format("woff2"),url(../media/cormorant-garamond-vietnamese-500-italic.0xcaeqznsyvit.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-latin-ext-500-italic.2ezsvhb8iy_b_.woff2)format("woff2"),url(../media/cormorant-garamond-latin-ext-500-italic.34botu4vp2bv7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(../media/cormorant-garamond-latin-500-italic.0p-d800d619j9.woff2)format("woff2"),url(../media/cormorant-garamond-latin-500-italic.02zy1irvpwwx9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(../media/noto-music-music-400-normal.2jsur44i_-7i1.woff2)format("woff2"),url(../media/noto-music-music-400-normal.1xjx7xdz_sjbi.woff)format("woff");unicode-range:U+25CC,U+2669-266F,U+1D000-1D0F5,U+1D100-1D126,U+1D129-1D1EA,U+1D200-1D245}@font-face{font-family:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(../media/noto-music-latin-ext-400-normal.0xvrefj2-nrkl.woff2)format("woff2"),url(../media/noto-music-latin-ext-400-normal.0cdrfmx_6ro92.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Music;font-style:normal;font-display:swap;font-weight:400;src:url(../media/noto-music-latin-400-normal.222gqco8ldedk.woff2)format("woff2"),url(../media/noto-music-latin-400-normal.0lnp75pg763mb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-bold:700;--ease-in:cubic-bezier(.4, 0, 1, 1);--default-font-family:var(--sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-x-0{inset-inline:0}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-3{bottom:calc(var(--spacing) * 3)}.\!mx-6{margin-inline:calc(var(--spacing) * 6)!important}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.-mx-\[var\(--pad\)\]{margin-inline:calc(var(--pad) * -1)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.\!my-7{margin-block:calc(var(--spacing) * 7)!important}.\!mt-0{margin-top:0!important}.\!mt-2{margin-top:calc(var(--spacing) * 2)!important}.\!mt-3{margin-top:calc(var(--spacing) * 3)!important}.\!mt-4{margin-top:calc(var(--spacing) * 4)!important}.\!mt-5{margin-top:calc(var(--spacing) * 5)!important}.\!mt-8{margin-top:calc(var(--spacing) * 8)!important}.\!mt-10{margin-top:calc(var(--spacing) * 10)!important}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-\[5vh\]{margin-top:5vh}.mt-auto{margin-top:auto}.\!mb-0{margin-bottom:0!important}.\!mb-2{margin-bottom:calc(var(--spacing) * 2)!important}.\!mb-6{margin-bottom:calc(var(--spacing) * 6)!important}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.\!-ml-2{margin-left:calc(var(--spacing) * -2)!important}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.\!h-auto{height:auto!important}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-24{height:calc(var(--spacing) * 24)}.h-full{height:100%}.\!min-h-24{min-height:calc(var(--spacing) * 24)!important}.min-h-\[120px\]{min-height:120px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-8{width:calc(var(--spacing) * 8)}.w-24{width:calc(var(--spacing) * 24)}.w-full{width:100%}.max-w-\[420px\]{max-width:420px}.min-w-0{min-width:0}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.scroll-mt-10{scroll-margin-top:calc(var(--spacing) * 10)}.\!grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto!important}.grid-cols-\[1fr_1\.3fr\]{grid-template-columns:1fr 1.3fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\!border-ink{border-color:var(--ink)!important}.\!border-jade{border-color:var(--jade)!important}.border-hair{border-color:var(--hair)}.px-7{padding-inline:calc(var(--spacing) * 7)}.\!py-4{padding-block:calc(var(--spacing) * 4)!important}.\!py-6{padding-block:calc(var(--spacing) * 6)!important}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-11{padding-top:calc(var(--spacing) * 11)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pl-\[38px\]{padding-left:38px}.text-center{text-align:center}.font-serif{font-family:var(--serif)}.\!text-\[13px\]{font-size:13px!important}.\!text-\[18px\]{font-size:18px!important}.\!text-\[30px\]{font-size:30px!important}.text-\[10\.5px\]{font-size:10.5px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[28px\]{font-size:28px}.text-\[88px\]{font-size:88px}.leading-\[1\.8\]{--tw-leading:1.8;line-height:1.8}.leading-\[1\.9\]{--tw-leading:1.9;line-height:1.9}.leading-\[2\]{--tw-leading:2;line-height:2}.leading-none{--tw-leading:1;line-height:1}.\!font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.\!text-accent{color:var(--accent)!important}.\!text-ink-2{color:var(--ink-2)!important}.\!text-jade{color:var(--jade)!important}.text-accent{color:var(--accent)}.text-ink-2{color:var(--ink-2)}.text-ink-3{color:var(--ink-3)}.text-jade{color:var(--jade)}.\!not-italic{font-style:normal!important}.not-italic{font-style:normal}.accent-\[var\(--ink\)\]{accent-color:var(--ink)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (min-width:40rem){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-\[1\.4fr_1fr\]{grid-template-columns:1.4fr 1fr}}@media (min-width:64rem){.lg\:mt-0{margin-top:0}.lg\:pt-0{padding-top:0}}}:root{--paper:#f5f2ec;--paper-2:#ece7de;--card:#ffffff6b;--ink:#1b1a18;--ink-2:#57534c;--ink-3:#9a948a;--line:#cfc7b9;--hair:#e3ddd2;--accent:#b8432f;--accent-soft:#f1dfd8;--jade:#2f6b57;--jade-soft:#dfe9e3;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--sans:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--latin:"Cormorant Garamond", "Times New Roman", serif;--music:"Noto Music", serif;--ease:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, .75, .2);--pad:28px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;margin:0}body{overscroll-behavior-y:none}::selection{background:var(--accent-soft)}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}:focus-visible{outline:1.5px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,h4,p,figure,dl,dd,ol,ul{margin:0;padding:0}ol,ul{list-style:none}input,textarea,select{font:inherit;color:inherit}.serif{font-family:var(--serif)}.num{font-family:var(--latin);font-variant-numeric:lining-nums;font-weight:500}.latin-i{font-family:var(--latin);font-style:italic}.eyebrow{letter-spacing:.24em;color:var(--ink-3);font-size:11px}.eyebrow--accent{color:var(--accent)}.display{font-family:var(--serif);letter-spacing:.06em;font-size:clamp(40px,9vw,56px);font-weight:700;line-height:1.12}.title{font-family:var(--serif);letter-spacing:.06em;font-size:clamp(26px,6.6vw,32px);font-weight:700;line-height:1.3}.lede{font-family:var(--serif);color:var(--ink-2);max-width:30em;font-size:14px;line-height:1.9}.meta{letter-spacing:.06em;color:var(--ink-3);font-size:12px}.link{text-decoration:underline;-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;transition:text-decoration-color .2s}.link:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes fade{0%{opacity:0}}@keyframes line-in{0%{transform:scaleX(0)}}@keyframes vline-in{0%{transform:scaleY(0)}}@keyframes draw{0%{stroke-dashoffset:1px}}@keyframes draw-on{to{stroke-dashoffset:0}}@keyframes blink{50%{opacity:.25}}@keyframes ripple{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes ring{0%{opacity:.7;scale:.7}70%,to{opacity:0;scale:1.35}}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}}@keyframes stage-in{0%{opacity:0;transform:translate(28px)}}@keyframes shimmer{50%{opacity:.45}}.rise{animation:rise .7s var(--ease) both}.fade-in{animation:fade .7s var(--ease) both}.stagger>*{animation:rise .6s var(--ease) both}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.25s}.stagger>:nth-child(n+7){animation-delay:.3s}.shell{min-height:100dvh;display:flex}.rail{display:none}.page{width:100%;max-width:560px;padding:max(env(safe-area-inset-top), 14px) var(--pad) calc(96px + env(safe-area-inset-bottom));animation:screen-in .6s var(--ease) both;margin:0 auto;position:relative}.page--wide{max-width:760px}.topbar{justify-content:space-between;align-items:center;height:44px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:.12em;align-items:baseline;gap:10px;font-size:19px;font-weight:700;display:flex}.wordmark span{font-family:var(--latin);letter-spacing:.02em;color:var(--ink-3);font-size:14px;font-style:italic;font-weight:500}.streak{color:var(--ink-2);letter-spacing:.06em;align-items:center;gap:6px;font-size:12px;display:flex}.streak b{font-family:var(--latin);color:var(--ink);font-size:17px;font-weight:500}.tabbar{z-index:30;padding:0 12px env(safe-area-inset-bottom);background:var(--paper);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}@supports (color:color-mix(in lab, red, red)){.tabbar{background:color-mix(in oklab, var(--paper) 92%, transparent)}}.tabbar{-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--hair)}.tabbar a{height:58px;font-family:var(--serif);letter-spacing:.14em;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:14px;transition:color .25s;display:flex;position:relative}.tabbar a small{font-family:var(--latin);letter-spacing:.02em;font-size:10.5px;font-style:italic}.tabbar a.is-active{color:var(--ink)}.tabbar a.is-active:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:4.4px;position:absolute;top:9px;right:calc(50% - 22px);transform:rotate(-22deg)}@media (min-width:1024px){.tabbar{display:none}.rail{border-right:1px solid var(--hair);flex-direction:column;flex:none;width:248px;height:100dvh;padding:34px 32px;display:flex;position:sticky;top:0}.rail nav{gap:4px;margin-top:56px;display:grid}.rail nav a{font-family:var(--serif);letter-spacing:.16em;color:var(--ink-3);align-items:baseline;gap:12px;padding:10px 0;font-size:16px;transition:color .25s;display:flex;position:relative}.rail nav a small{font-family:var(--latin);letter-spacing:.02em;font-size:13px;font-style:italic}.rail nav a:hover{color:var(--ink-2)}.rail nav a.is-active{color:var(--ink)}.rail nav a.is-active:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:5.6px;position:absolute;top:50%;left:-18px;transform:translateY(-50%)rotate(-22deg)}.rail__foot{font-family:var(--serif);color:var(--ink-3);margin-top:auto;font-size:12.5px;line-height:2}.rail__lines{gap:6px;margin-bottom:18px;display:grid}.rail__lines span{background:var(--line);opacity:.7;transform-origin:0;height:1px;animation:line-in 1.2s var(--ease) both}.page{max-width:640px;padding:34px 48px 72px}.page--wide{max-width:860px}.topbar--mobile{display:none}}.btn{letter-spacing:.18em;white-space:nowrap;height:52px;transition:transform .2s var(--ease), background-color .25s, color .25s, opacity .25s, border-color .25s;border-radius:999px;justify-content:center;align-items:center;gap:12px;padding:0 28px;font-size:15px;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,.btn[aria-disabled=true]{opacity:.28;cursor:default;pointer-events:none}.btn--ink{background:var(--ink);color:var(--paper)}.btn--accent{background:var(--accent);color:#fff}.btn--jade{background:var(--jade);color:#fff}.btn--ghost{border:1px solid var(--line);color:var(--ink)}.btn--ghost:hover{border-color:var(--ink-3)}.btn--block{width:100%}.btn--sm{letter-spacing:.12em;gap:8px;height:36px;padding:0 16px;font-size:13px}.btn .arrow{transition:transform .3s var(--ease)}.btn:hover:not(:disabled) .arrow{transform:translate(4px)}.icon-btn{width:36px;height:36px;color:var(--ink-2);border-radius:50%;place-items:center;transition:background-color .2s,color .2s;display:grid}.icon-btn:hover{background:var(--paper-2);color:var(--ink)}.icon-btn:disabled{opacity:.3;pointer-events:none}.play-btn{background:var(--ink);width:44px;height:44px;color:var(--paper);transition:transform .25s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.play-btn:active{transform:scale(.94)}.back{font-family:var(--serif);letter-spacing:.12em;color:var(--ink-2);align-items:center;gap:10px;font-size:15px;display:inline-flex}.back:hover{color:var(--ink)}.tabs{border-bottom:1px solid var(--hair);display:grid;position:relative}.tabs button,.tabs a{font-family:var(--serif);letter-spacing:.14em;color:var(--ink-3);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 0 14px;font-size:19px;font-weight:500;transition:color .3s;display:flex}.tabs small{font-family:var(--latin);letter-spacing:.02em;font-size:12px;font-style:italic}.tabs .is-active{color:var(--ink)}.tabs--sm button{padding:8px 0 11px;font-size:15px}.tabs__marker{pointer-events:none;height:1px;transition:transform .5s var(--ease);position:absolute;bottom:-1px;left:0}.tabs__marker:before{content:"";background:var(--ink);height:1.5px;position:absolute;top:0;left:0;right:28%}.tabs__marker:after{content:"";background:var(--accent);border-radius:50%;width:9px;height:6.5px;position:absolute;top:-3.5px;right:28%;transform:translate(50%)rotate(-22deg)}.filters{scrollbar-width:none;margin:0 calc(var(--pad) * -1);padding:0 var(--pad);gap:18px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filter{letter-spacing:.1em;color:var(--ink-3);border-bottom:1px solid #0000;flex:none;padding:6px 0;font-size:13px;transition:color .25s,border-color .25s}.filter.is-active{color:var(--ink);border-color:var(--ink)}.section-label{border-bottom:1px solid var(--hair);letter-spacing:.24em;color:var(--ink-3);justify-content:space-between;align-items:baseline;padding-bottom:12px;font-size:12px;font-weight:500;display:flex}.section-label em{font-family:var(--latin);letter-spacing:.04em;font-size:13px}.row{border-bottom:1px solid var(--hair);text-align:left;grid-template-columns:44px 1fr auto;align-items:center;width:100%;padding:18px 0;transition:opacity .2s;display:grid}.row:active{opacity:.6}.row__num{font-family:var(--latin);color:var(--ink-3);font-size:20px;font-style:italic}.row__title{font-family:var(--serif);letter-spacing:.08em;font-size:17px;font-weight:500}.row__meta{color:var(--ink-3);letter-spacing:.06em;margin-top:4px;font-size:12px}.row.is-current .row__num{color:var(--accent)}.row.is-locked .row__title{color:var(--ink-3)}.row .chev{color:var(--ink-3);transition:transform .3s var(--ease), color .3s}.row:hover .chev{color:var(--ink);transform:translate(3px)}.dot--filled{fill:var(--ink)}.dot--accent{fill:var(--accent)}.dot--jade{fill:var(--jade)}.dot--empty{fill:none;stroke:var(--line);stroke-width:1px}.rule{background:var(--hair);flex:1;height:1px;position:relative}.rule>span{background:var(--ink);transform-origin:0;transition:transform .8s var(--ease);position:absolute;inset:-.5px 0}.staff-wrap{justify-content:center;width:100%;display:flex}.staff{height:auto;display:block;overflow:visible}.staff-skeleton{background:repeating-linear-gradient(to bottom, transparent 0 30px, var(--hair) 30px 31px, transparent 31px 40px);opacity:.6;background-size:100% 40px;width:100%;height:96px}.staff__line{stroke:var(--ink);stroke-width:.6px;opacity:.55}.staff--draw .staff__line{transform-box:view-box;transform-origin:0 0;animation:line-in .9s var(--ease) both}.staff__bar,.staff__bar line{stroke:var(--ink);stroke-width:.8px;opacity:.7}.staff__bar rect,.staff__perc rect{fill:var(--ink);opacity:.85}.staff__clef{font-family:var(--music);fill:var(--ink);font-size:41px}.staff__glyph,.note__glyph{font-family:var(--music);fill:var(--ink);font-size:36px}.note__glyph{transition:fill .35s}.staff__time text{font-family:var(--latin);fill:var(--ink);text-anchor:middle;font-size:23px;font-weight:600}.note{animation:rise .6s var(--ease) both}.note--static{animation:none}.note__head,.note__flag,.note__dot,.beam{fill:var(--ink);transition:fill .35s}.note__hole{fill:var(--paper)}.note__stem,.note__ledger{stroke:var(--ink);stroke-width:1px;transition:stroke .35s}.note__ledger{stroke-width:.8px}.note__hit{fill:#0000;cursor:pointer}.note--accent .note__head,.note--accent .note__flag,.note--accent .note__dot,.note--accent .note__glyph{fill:var(--accent)}.note--accent .note__stem{stroke:var(--accent)}.note--correct .note__head,.note--correct .note__flag,.note--correct .note__dot,.note--correct .note__glyph{fill:var(--jade)}.note--correct .note__stem{stroke:var(--jade)}.note--miss .note__head,.note--miss .note__flag,.note--miss .note__glyph{fill:var(--accent);opacity:.85}.note--miss .note__stem{stroke:var(--accent)}.note--muted .note__head,.note--muted .note__flag,.note--muted .note__glyph{fill:var(--ink-3)}.note--muted .note__stem{stroke:var(--ink-3)}.note--ghost .note__head{fill:none;stroke:var(--ink-3);stroke-width:.8px;stroke-dasharray:2 2}.note--ghost .note__hole,.note--ghost .note__stem,.note--ghost .note__flag,.note--ghost .note__glyph,.note--ghost .note__dot{opacity:0}.note--selected .note__head{fill:var(--accent)}.note--selected .note__stem{stroke:var(--accent)}.playhead{stroke:var(--accent);stroke-width:1px;will-change:transform;transition:opacity .3s}.trace path{fill:none;stroke:var(--jade);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.figure{margin:26px 0 30px}.figure figcaption{text-align:center;font-family:var(--latin);color:var(--ink-3);margin-top:6px;font-size:14px;font-style:italic}.options{gap:10px;display:grid}.options--grid{grid-template-columns:1fr 1fr}.option{border:1px solid var(--hair);background:var(--card);text-align:left;animation:rise .55s var(--ease) both;transition:border-color .25s, background-color .25s, opacity .3s, transform .2s var(--ease), color .25s;border-radius:16px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px 15px;display:flex;position:relative}.option:hover:not(:disabled){border-color:var(--line)}.option:active:not(:disabled){transform:scale(.98)}.option__key{font-family:var(--latin);color:var(--ink-3);font-size:14px;font-style:italic;position:absolute;top:14px;right:16px}.option__main{font-family:var(--serif);letter-spacing:.1em;padding-right:18px;font-size:18px;line-height:1.35}.option__main--latin{font-family:var(--latin);letter-spacing:0;font-size:34px;font-weight:500;line-height:1}.option__sub{color:var(--ink-3);letter-spacing:.04em;font-size:12px}.option--row{flex-direction:row;justify-content:space-between;align-items:center;min-height:58px;padding:14px 20px}.option--row .option__key{order:2;position:static}.option--row .option__main{letter-spacing:.12em;font-size:16px}.option--score{padding:10px 14px 6px}.option--score .option__key{top:10px}.option.is-picked{border-color:var(--ink);box-shadow:0 0 0 .5px var(--ink);background:#fff}.option.is-correct{border-color:var(--jade);background:var(--jade-soft);box-shadow:0 0 0 .5px var(--jade);color:var(--jade)}.option.is-wrong{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.option.is-dim{opacity:.4}.option .check{position:absolute;top:50%;left:14px;transform:translateY(-50%)}.listen{flex-direction:column;align-items:center;gap:14px;margin:34px 0 26px;display:flex}.listen__btn{background:var(--ink);width:96px;height:96px;color:var(--paper);transition:transform .25s var(--ease);border-radius:50%;place-items:center;display:grid;position:relative}.listen__btn:active{transform:scale(.95)}.listen__ring{border:1px solid var(--ink);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:0}.is-playing .listen__ring{animation:ripple 1.6s var(--ease) infinite}.is-playing .listen__ring:nth-child(2){animation-delay:.4s}.is-playing .listen__ring:nth-child(3){animation-delay:.8s}.listen__meta{color:var(--ink-3);letter-spacing:.08em;gap:16px;font-size:12px;display:flex}.listen__meta button{color:var(--ink)}.piano{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;max-width:460px;height:168px;margin:0 auto;position:relative}.piano__w{border:1px solid var(--line);height:100%;font-family:var(--latin);color:var(--ink-3);background:#fbf9f5;border-right-width:0;justify-content:center;align-items:flex-end;padding-bottom:10px;font-size:14px;font-style:italic;transition:background-color .18s,color .2s;display:flex;position:absolute;top:0}.piano__w:last-of-type{border-right-width:1px}.piano__w:first-child{border-radius:0 0 0 12px}.piano__w.is-last{border-right-width:1px;border-radius:0 0 12px}.piano__w:active,.piano__w.is-down{background:var(--paper-2)}.piano__b{z-index:2;background:var(--ink);border-radius:0 0 5px 5px;height:60%;transition:background-color .18s;position:absolute;top:0}.piano__b:active,.piano__b.is-down{background:var(--ink-2)}.piano .is-picked{background:var(--paper-2);color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink)}.piano .piano__b.is-picked{background:var(--ink-2);box-shadow:none}.piano .is-right{background:var(--jade-soft);color:var(--jade);box-shadow:inset 0 -3px 0 var(--jade)}.piano .piano__b.is-right{background:var(--jade)}.piano .is-wrong{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.piano .piano__b.is-wrong{background:var(--accent)}.lesson{background:var(--paper);flex-direction:column;display:flex;position:fixed;inset:0}.lesson__inner{width:100%;max-width:560px;height:100%;padding:max(env(safe-area-inset-top), 14px) var(--pad) 0;flex-direction:column;margin:0 auto;display:flex;position:relative}.lesson__bar{flex:none;grid-template-columns:32px 1fr auto auto;align-items:center;gap:16px;height:44px;display:grid}.lesson__progress{height:9px;position:relative}.lesson__track,.lesson__fill{background:var(--hair);height:1px;position:absolute;top:4px;left:0;right:0}.lesson__fill{background:var(--ink);transform-origin:0;transition:transform .7s var(--ease)}.lesson__tick{background:var(--line);width:1px;height:9px;transition:background-color .4s;position:absolute;top:0}.lesson__tick.is-done{background:var(--ink)}.lesson__count{font-family:var(--latin);font-size:18px}.lesson__count i{color:var(--ink-3);font-size:14px}.hearts{gap:3px;display:flex}.hearts svg{transition:opacity .4s, transform .4s var(--ease)}.hearts .is-lost{opacity:.3}.lesson__stage{scrollbar-width:none;min-height:0;animation:stage-in .55s var(--ease) both;transition:opacity .35s var(--ease-in), transform .4s var(--ease-in);flex:1;padding:26px 0 24px;overflow-y:auto}.lesson__stage::-webkit-scrollbar{display:none}.lesson__stage.is-leaving{opacity:0;transform:translate(-24px)}.lesson__foot{padding:14px 0 max(env(safe-area-inset-bottom), 24px);transition:opacity .3s, transform .4s var(--ease);flex:none}.lesson__foot.is-hidden{opacity:0;pointer-events:none;transform:translateY(16px)}.q__title{font-family:var(--serif);letter-spacing:.05em;margin-top:12px;font-size:clamp(24px,6.4vw,28px);font-weight:700;line-height:1.35}.q__hint{color:var(--ink-3);letter-spacing:.06em;margin-top:8px;font-size:13px;line-height:1.7}.hint-toggle{letter-spacing:.12em;color:var(--ink-2);margin-top:12px;font-size:12.5px}.hint-body{border-left:1.5px solid var(--accent);font-family:var(--serif);color:var(--ink-2);animation:rise .4s var(--ease) both;margin-top:8px;padding-left:12px;font-size:13.5px;line-height:1.8}.sheet{z-index:5;padding:24px var(--pad) max(env(safe-area-inset-bottom), 24px);background:var(--paper);border-top:1px solid var(--line);transition:transform .55s var(--ease);will-change:transform;grid-template-columns:auto 1fr;align-items:center;gap:16px 18px;display:grid;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.sheet.is-open{transform:none}.sheet:before{content:"";transform-origin:0;height:2px;transition:transform .8s .15s var(--ease);background:currentColor;position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.sheet.is-open:before{transform:scaleX(1)}.sheet--ok{color:var(--jade)}.sheet--miss{color:var(--accent)}.sheet--skip{color:var(--ink-3)}.sheet__mark{place-items:center;width:56px;display:grid}.sheet__mark .draw{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw-on .7s .25s var(--ease) forwards}.sheet__text h3{font-family:var(--serif);letter-spacing:.16em;animation:rise .5s .2s var(--ease) both;font-size:22px;font-weight:700}.sheet__text h3 small{font-family:var(--sans);letter-spacing:.12em;margin-left:10px;font-size:12px;font-weight:400}.sheet__text p{font-family:var(--serif);color:var(--ink-2);animation:rise .5s .3s var(--ease) both;margin-top:6px;font-size:13.5px;line-height:1.8}.sheet__text .report{letter-spacing:.12em;color:var(--ink-3);margin-top:6px;font-size:11.5px;animation:.5s .4s both fade}.sheet .btn{grid-column:1/-1}.sheet--ok .btn{background:var(--jade);color:#fff}.sheet--miss .btn{background:var(--accent);color:#fff}.sheet--skip .btn{background:var(--ink);color:var(--paper)}.wipe{z-index:80;pointer-events:none;flex-direction:column;justify-content:center;gap:16px;display:flex;position:fixed;inset:0}.wipe:before{content:"";background:var(--paper);animation:wipe-bg .9s var(--ease) both;position:absolute;inset:0}.wipe span{background:var(--ink);transform-origin:0;height:1px;animation:wipe-line .9s var(--ease) both;position:relative}@keyframes wipe-line{0%{transform-origin:0;transform:scaleX(0)}45%{transform-origin:0;transform:scaleX(1)}46%{transform-origin:100%}to{transform-origin:100%;transform:scaleX(0)}}@keyframes wipe-bg{0%{opacity:0}35%,55%{opacity:1}to{opacity:0}}.solfege{font-family:var(--latin);color:var(--ink-3);flex-wrap:wrap;justify-content:center;gap:4px 14px;margin-top:6px;font-size:15px;font-style:italic;display:flex}.solfege span{transition:color .2s}.solfege .is-on{color:var(--accent)}.solfege .is-past{color:var(--jade)}.solfege .is-miss{color:var(--accent);opacity:.7}.countin{justify-content:center;align-items:center;gap:14px;height:52px;display:flex}.countin span{border:1px solid var(--ink-3);width:10px;height:10px;transition:background-color .15s, transform .25s var(--ease);border-radius:50%}.countin span.is-on{background:var(--ink);border-color:var(--ink);transform:scale(1.25)}.countin em{font-style:normal;font-family:var(--serif);letter-spacing:.3em;color:var(--ink-2);margin-left:8px}.mic{height:52px;font-family:var(--serif);letter-spacing:.2em;color:var(--accent);justify-content:center;align-items:center;gap:10px;display:flex}.mic__dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite blink}.mic__dot--static{background:#fff;animation:none}.mic__level{background:var(--hair);width:72px;height:1px;position:relative;overflow:hidden}.mic__level span{background:var(--accent);transform-origin:0;transition:transform 80ms linear;position:absolute;inset:-.5px 0}.scores{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.scores>div{animation:rise .6s var(--ease) both;flex-direction:column;align-items:center;gap:2px;padding:12px 0;display:flex}.scores>div+div{border-left:1px solid var(--hair)}.scores>div:nth-child(2){animation-delay:80ms}.scores>div:nth-child(3){animation-delay:.16s}.scores .num{font-size:34px;line-height:1.1}.scores small{letter-spacing:.2em;color:var(--ink-3);font-size:11px}.note-block{border-left:1.5px solid var(--accent);background:var(--card);animation:rise .5s var(--ease) both;border-radius:0 12px 12px 0;padding:16px 18px}.note-block h4{font-family:var(--serif);letter-spacing:.1em;font-size:16px;font-weight:700}.note-block p{color:var(--ink-2);margin-top:6px;font-size:13px;line-height:1.8}.pad{border:1px solid var(--ink);width:168px;height:168px;font-family:var(--serif);letter-spacing:.3em;touch-action:manipulation;transition:transform .12s var(--ease), background-color .2s, opacity .3s;border-radius:50%;place-items:center;padding-left:.3em;font-size:22px;display:grid;position:relative}.pad:active:not(:disabled){background:var(--paper-2);transform:scale(.96)}.pad:disabled{opacity:.35}.pad__ring{border:1px solid var(--accent);opacity:0;pointer-events:none;animation:ripple .7s var(--ease) both;border-radius:50%;position:absolute;inset:-1px}.judge{height:22px;font-family:var(--serif);letter-spacing:.2em;animation:rise .35s var(--ease) both;font-size:14px}.timeline{height:28px;position:relative}.timeline__axis{background:var(--hair);height:1px;position:absolute;top:50%;left:0;right:0}.timeline__beat{background:var(--line);width:1px;height:10px;position:absolute;top:9px}.timeline__exp{border:1px solid var(--ink);background:var(--paper);border-radius:50%;width:9px;height:6.4px;transition:background-color .3s,border-color .3s;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(-22deg)}.timeline__exp.is-perfect{background:var(--jade);border-color:var(--jade)}.timeline__exp.is-good{background:var(--jade-soft);border-color:var(--jade)}.timeline__exp.is-miss{border-color:var(--accent)}.timeline__tap{background:var(--accent);width:1px;height:7px;position:absolute;top:2px}.complete{background:var(--paper);position:fixed;inset:0;overflow-y:auto}.complete__inner{max-width:560px;min-height:100%;padding:max(env(safe-area-inset-top), 14px) var(--pad) max(env(safe-area-inset-bottom), 26px);flex-direction:column;margin:0 auto;display:flex}.complete__top{align-items:center;height:44px;animation:.8s both fade;display:flex}.complete__hero{text-align:center;margin-top:7vh}.complete__title{font-family:var(--serif);letter-spacing:.5em;animation:rise .8s .1s var(--ease) both;margin-right:-.5em;font-size:22px;font-weight:700}.complete__xp{font-family:var(--latin);animation:rise .9s .2s var(--ease) both;justify-content:center;align-items:baseline;margin-top:10px;display:flex}.complete__plus{color:var(--accent);margin-right:4px;font-size:44px}.complete__num{letter-spacing:-.02em;font-size:128px;font-weight:500;line-height:1}.complete__unit{font-family:var(--serif);letter-spacing:.3em;color:var(--ink-3);margin-left:8px;font-size:14px}.complete__cadence{margin:3vh calc(var(--pad) * -1) 0}.complete__cadence figcaption{text-align:center;font-family:var(--serif);color:var(--ink-3);letter-spacing:.12em;margin-top:4px;font-size:13px;animation:1s .9s both fade}.stats{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);grid-template-columns:repeat(3,1fr);display:grid}.stats>div{text-align:center;animation:rise .7s var(--ease) both;padding:16px 0 14px}.stats>div+div{border-left:1px solid var(--hair)}.stats dt{letter-spacing:.24em;color:var(--ink-3);font-size:11px}.stats dd{font-size:32px;line-height:1.1;font-family:var(--latin);margin-top:4px;font-weight:500}.stats dd i{font-style:normal;font-family:var(--serif);color:var(--ink-3);margin-left:3px;font-size:13px}.stats dd .up{color:var(--accent)}.vstaff{stroke:var(--ink);stroke-width:.6px;opacity:.32;transform-box:view-box;transform-origin:0 0;animation:vline-in 1.2s var(--ease) both}.vstaff--bar{opacity:.55;stroke-width:.8px;animation:1s .6s both fade}.vstaff--thick{fill:var(--ink);opacity:.6;animation:1s .8s both fade}.contour{fill:none;stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:.012 .012;opacity:.8}.contour--done{stroke:var(--ink);stroke-dasharray:1;stroke-dashoffset:0;animation:draw .9s var(--ease) both}.lv{animation:fade .6s var(--ease) both}.lv__head{fill:var(--ink);transition:fill .4s}.lv__stem{stroke:var(--ink);stroke-width:1.6px}.lv--locked .lv__head{fill:var(--paper);stroke:var(--line);stroke-width:1.2px}.lv--locked .lv__stem{stroke:var(--line)}.lv--current .lv__head{fill:var(--accent)}.lv--current .lv__stem{stroke:var(--accent)}.lv__ring{fill:none;stroke:var(--accent);stroke-width:1px;transform-box:fill-box;transform-origin:50%;animation:ring 2.4s var(--ease) infinite}.lv-label{animation:fade .7s var(--ease) both;flex-direction:column;gap:3px;display:flex;position:absolute;transform:translateY(-50%)}.lv-label.is-left{text-align:right;align-items:flex-end}.lv-label__num{font-family:var(--latin);color:var(--ink-3);font-size:14px;font-style:italic}.lv-label__title{font-family:var(--serif);letter-spacing:.08em;white-space:nowrap;font-size:15px;font-weight:500}.lv-label--locked .lv-label__title{color:var(--ink-3)}.lv-label--current .lv-label__num{color:var(--accent)}.lv-label--current .lv-label__title{font-size:18px;font-weight:700}.lv-label .btn{margin-top:8px}.lv-label__redo{color:var(--ink-3);letter-spacing:.16em;text-decoration:underline;-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;font-size:12px}.lv-hit{border-radius:50%;width:56px;height:56px;position:absolute;transform:translate(-50%,-50%)}.rehearsal{background:var(--paper);animation:fade .7s var(--ease) both;align-items:baseline;gap:10px;padding:4px 10px 4px 0;display:flex;position:absolute;left:0;transform:translateY(-50%)}.rehearsal b{font-family:var(--latin);color:var(--accent);font-size:22px;font-style:italic;font-weight:500}.rehearsal span{font-family:var(--serif);letter-spacing:.2em;color:var(--ink-2);font-size:13px}.overlay{z-index:70;background:#1b1a1847;justify-content:center;align-items:flex-end;animation:.3s both fade;display:flex;position:fixed;inset:0}.dialog{width:100%;max-width:480px;padding:30px var(--pad) max(env(safe-area-inset-bottom), 26px);background:var(--paper);border-top:1px solid var(--line);animation:rise .45s var(--ease) both}@media (min-width:640px){.overlay{align-items:center}.dialog{border:1px solid var(--line);border-radius:24px}}.dialog h3{font-family:var(--serif);letter-spacing:.12em;font-size:22px;font-weight:700}.dialog p{font-family:var(--serif);color:var(--ink-2);margin-top:8px;font-size:14px;line-height:1.85}.dialog__actions{gap:10px;margin-top:24px;display:grid}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));z-index:90;background:var(--ink);color:var(--paper);letter-spacing:.1em;white-space:nowrap;animation:rise .4s var(--ease) both;border-radius:999px;padding:11px 20px;font-size:13px;position:fixed;transform:translate(-50%)}.toast--error{background:var(--accent)}@media (min-width:1024px){.toast{bottom:40px}}.field{border:0;border-bottom:1px solid var(--line);width:100%;font-family:var(--serif);letter-spacing:.06em;background:0 0;outline:none;padding:10px 0;font-size:16px;transition:border-color .2s}.field:focus{border-color:var(--ink)}.area{border:1px solid var(--hair);background:var(--card);width:100%;min-height:160px;font-family:var(--serif);resize:vertical;border-radius:16px;outline:none;padding:14px 16px;font-size:15px;line-height:1.9;transition:border-color .2s}.area:focus{border-color:var(--ink-3)}.area--mono{min-height:280px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6}.select{appearance:none;border:0;border-bottom:1px solid var(--line);font-family:var(--serif);letter-spacing:.08em;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);cursor:pointer;background-position:right 5px center,right 1px center;background-repeat:no-repeat;background-size:4px 4px;outline:none;padding:6px 18px 6px 0;font-size:14px}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{border:1px solid var(--hair);letter-spacing:.08em;min-width:52px;height:40px;color:var(--ink-2);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.seg button .g{font-family:var(--music);font-size:22px;line-height:1}.seg button.is-on{border-color:var(--ink);color:var(--ink);background:#fff}.empty{text-align:center;padding:44px 0}.empty h3{font-family:var(--serif);letter-spacing:.12em;font-size:18px;font-weight:700}.empty p{color:var(--ink-3);letter-spacing:.06em;margin-top:8px;font-size:13px;line-height:1.8}.skeleton{background:var(--paper-2);border-radius:10px;animation:1.4s ease-in-out infinite shimmer}.loading-lines{gap:10px;width:180px;display:grid}.loading-lines span{background:var(--ink);opacity:.55;transform-origin:0;height:1px;animation:line-in 1.1s var(--ease) infinite alternate}.loading-lines span:nth-child(2){animation-delay:80ms}.loading-lines span:nth-child(3){animation-delay:.16s}.loading-lines span:nth-child(4){animation-delay:.24s}.loading-lines span:nth-child(5){animation-delay:.32s}.kv{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);grid-template-columns:repeat(auto-fit,minmax(90px,1fr));display:grid}.kv>div{text-align:center;padding:14px 0}.kv>div+div{border-left:1px solid var(--hair)}.kv dt{letter-spacing:.22em;color:var(--ink-3);font-size:11px}.kv dd{font-family:var(--latin);margin-top:2px;font-size:30px;font-weight:500;line-height:1.15}.prose-list li{font-family:var(--serif);color:var(--ink-2);padding-left:22px;font-size:14px;line-height:1.9;position:relative}.prose-list li+li{margin-top:8px}.prose-list li:before{content:"";background:var(--ink);border-radius:50%;width:8px;height:5.6px;position:absolute;top:.85em;left:2px;transform:rotate(-22deg)}.plan{border:1px solid var(--hair);background:var(--card);text-align:left;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;width:100%;padding:18px 20px;transition:border-color .25s,background-color .25s;display:grid;position:relative}.plan.is-on{border-color:var(--ink);box-shadow:0 0 0 .5px var(--ink);background:#fff}.plan__name{font-family:var(--serif);letter-spacing:.12em;font-size:17px;font-weight:700}.plan__price{font-family:var(--latin);text-align:right;font-size:30px;font-weight:500;line-height:1}.plan__price small{color:var(--ink-3);font-size:15px}.plan__meta{color:var(--ink-3);letter-spacing:.06em;font-size:12px}.plan__badge{background:var(--accent);color:#fff;letter-spacing:.16em;border-radius:999px;padding:1px 10px;font-size:10.5px;position:absolute;top:-9px;left:18px}pre.code{border:1px solid var(--hair);background:var(--card);border-radius:14px;max-height:220px;padding:14px 16px;font-size:12px;line-height:1.6;overflow:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
