:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0px;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}@media only screen and (max-width:480px){.Toastify__toast-container[data-stacked=true]{width:100vw}}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{color-scheme:dark;font-family:Archivo,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:#1a1a1a;font-synthesis:none;--bg: #1a1a1a;--cream: #dcc9a9;--green: #4e6851;--red: #b83a2d;--page-bg: var(--bg);--panel: color-mix(in srgb, var(--green) 22%, var(--bg));--panel-border: color-mix(in srgb, var(--cream) 22%, transparent);--nav-bg: color-mix(in srgb, var(--bg) 88%, var(--green));--surface-soft: color-mix(in srgb, var(--green) 28%, transparent);--text: var(--cream);--muted: color-mix(in srgb, var(--cream) 58%, var(--bg));--accent: var(--cream);--accent-soft: color-mix(in srgb, var(--cream) 16%, transparent);--focus-border: color-mix(in srgb, var(--cream) 55%, transparent);--focus-ring: color-mix(in srgb, var(--cream) 18%, transparent);--danger: var(--red);--link: var(--cream);--emphasis-text: var(--cream);--accent-contrast: var(--bg);--ink: var(--bg);--scroll-size: 5px;--scroll-thumb: color-mix(in srgb, var(--cream) 38%, transparent);--scroll-thumb-hover: color-mix(in srgb, var(--cream) 62%, transparent);--toastify-color-success: var(--green);--toastify-color-error: var(--red);--toastify-color-info: var(--cream);--toastify-color-warning: var(--cream);--toastify-color-progress-dark: var(--cream);--toastify-color-progress-light: var(--cream);--toastify-color-progress-success: var(--green);--toastify-color-progress-error: var(--red);--toastify-color-progress-info: var(--cream);--toastify-color-progress-warning: var(--cream);--toastify-icon-color-success: var(--green);--toastify-icon-color-error: var(--red);--toastify-icon-color-info: var(--cream);--toastify-icon-color-warning: var(--cream)}::selection{background:color-mix(in srgb,var(--green) 72%,var(--bg));color:var(--cream)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}*::-webkit-scrollbar{width:var(--scroll-size);height:var(--scroll-size)}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}*::-webkit-scrollbar-corner{background:transparent}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;color:var(--text);background:var(--page-bg)}body.shell-open{overflow:hidden}button{font:inherit;margin:0;padding:0;border:0;color:inherit;background:none;box-shadow:none;cursor:pointer}.material-symbols-outlined{display:inline-block;font-family:Material Symbols Outlined;font-size:22px;font-style:normal;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;transition:font-variation-settings .18s ease}.icon-button{min-width:44px;min-height:44px;display:inline-grid;place-items:center;border-radius:14px;color:var(--text);background:var(--surface-soft)}.icon-button:hover{box-shadow:none}.Toastify__toast-container--top-right{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right))}.Toastify__toast{min-height:52px;margin-bottom:10px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--cream) 22%,transparent);border-radius:16px;color:var(--cream);background:color-mix(in srgb,var(--green) 18%,var(--bg));box-shadow:0 14px 36px #00000059;font-family:inherit;font-size:.86rem;font-weight:650;cursor:pointer}.Toastify__toast-body{margin:0;padding:0;color:var(--cream)}.Toastify__toast--success{border-color:color-mix(in srgb,var(--green) 70%,var(--cream))}.Toastify__toast--error{border-color:color-mix(in srgb,var(--red) 75%,var(--cream))}.Toastify__progress-bar,.Toastify__progress-bar--wrp,.Toastify__progress-bar-theme--dark,.Toastify__progress-bar-theme--light{height:3px;background:var(--cream)}.Toastify__progress-bar--success,.Toastify__progress-bar-theme--dark.Toastify__progress-bar--success,.Toastify__progress-bar-theme--light.Toastify__progress-bar--success{background:var(--green)}.Toastify__progress-bar--error,.Toastify__progress-bar-theme--dark.Toastify__progress-bar--error,.Toastify__progress-bar-theme--light.Toastify__progress-bar--error{background:var(--red)}.Toastify__progress-bar--bg{background:color-mix(in srgb,var(--cream) 22%,transparent)!important}.Toastify__toast-icon{width:18px;margin-inline-end:10px}.Toastify__toast-icon svg{fill:var(--cream)}.Toastify__toast--success .Toastify__toast-icon svg{fill:var(--green)}.Toastify__toast--error .Toastify__toast-icon svg{fill:var(--red)}.app-loading{min-height:100vh;display:grid;place-items:center;color:var(--emphasis-text);font-weight:800;letter-spacing:.14em;text-transform:uppercase}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;width:min(100% - 28px,1560px);height:100dvh;max-height:100dvh;margin:0 auto;padding:14px 0;overflow:hidden;box-sizing:border-box}.app-sidebar{display:flex;flex-direction:column;gap:28px;min-height:0;height:100%;padding:28px 0 24px 12px;overflow:hidden;border:0;border-radius:0;background:var(--bg);box-sizing:border-box}.shell-logo{display:flex;align-items:center;width:calc(100% - 18px);margin:0 0 0 6px;padding:0 12px 0 10px;text-decoration:none}.shell-logo-img{display:block;width:100%;max-width:176px;height:auto;transition:opacity .18s ease}.shell-logo:hover .shell-logo-img{opacity:.88}.shell-nav{display:flex;flex:1;flex-direction:column;gap:8px;align-items:stretch}.shell-nav a,.shell-nav-soon,.shell-account-link,.shell-logout{min-width:0;width:100%;min-height:56px;display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;padding:0 16px 0 18px;border:0;border-radius:20px 0 0 20px;box-sizing:border-box;color:var(--muted);background:transparent;box-shadow:none;filter:none;font-size:.92rem;font-weight:650;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:color .18s ease,background .18s ease;-webkit-tap-highlight-color:transparent;outline:none}.shell-nav a .material-symbols-outlined,.shell-nav-soon .material-symbols-outlined,.shell-account-link .material-symbols-outlined,.shell-logout .material-symbols-outlined{flex-shrink:0;font-size:28px}.shell-nav a:hover,.shell-account-link:hover,.shell-logout:hover{color:var(--text);background:var(--surface-soft);box-shadow:none;filter:none;transform:none}.shell-nav a.active,.shell-logout:active,.shell-logout:focus-visible{color:var(--cream);background:var(--red);box-shadow:none;filter:none;transform:none}.shell-nav-soon{opacity:.55;cursor:default}.shell-sidebar-footer{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding:8px 0 0}.shell-account-link>span:not(.material-symbols-outlined):not(.shell-avatar){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-avatar,.shell-avatar-fallback{width:34px;height:34px;flex-shrink:0;border-radius:50%;object-fit:cover}.shell-avatar-fallback{display:inline-grid;place-items:center;color:var(--bg);background:var(--cream);font-size:.75rem;font-weight:800;line-height:1}.shell-logout:disabled{cursor:wait;opacity:.55;box-shadow:none;filter:none;transform:none}.shell-footer-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-menu-toggle,.shell-backdrop{display:none}.shell-backdrop{min-width:0}.app-stage{--scroll-thumb: color-mix(in srgb, var(--ink) 28%, transparent);--scroll-thumb-hover: color-mix(in srgb, var(--ink) 48%, transparent);min-width:0;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr) 240px;grid-template-rows:auto minmax(0,1fr);column-gap:20px;row-gap:18px;align-items:stretch;padding:22px 24px;overflow:hidden;border-radius:32px;background:radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--cream) 70%,white),transparent 55%),var(--cream);color:var(--ink);box-sizing:border-box}.stage-header{grid-column:1 / -1;grid-row:1;display:grid;gap:0;min-width:0}.stage-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.stage-kicker-row{display:inline-flex;align-items:center;gap:8px;min-width:0}.stage-back{display:inline-grid;place-items:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:10px;color:color-mix(in srgb,var(--ink) 62%,var(--cream));background:transparent;text-decoration:none;transition:color .16s ease,background .16s ease}.stage-back:hover{color:var(--ink);background:color-mix(in srgb,var(--cream) 28%,transparent)}.stage-back .material-symbols-outlined{font-size:1.35rem}.stage-streak{display:inline-flex;align-items:center;margin:0 0 0 4px;padding-left:2px;white-space:nowrap}.stage-streak-star{position:relative;display:inline-grid;place-items:center;width:1.55rem;height:1.55rem;margin-left:-.38rem;line-height:1}.stage-streak-star:first-child{margin-left:0}.stage-streak-star .material-symbols-outlined{font-size:1.55rem;filter:drop-shadow(0 1px 0 color-mix(in srgb,var(--bg) 18%,transparent))}.stage-streak-star.is-gold{color:color-mix(in srgb,var(--cream) 42%,var(--red))}.stage-streak-star.is-pending{color:color-mix(in srgb,var(--ink) 26%,var(--cream))}.stage-streak-star.has-badge .material-symbols-outlined{font-size:1.75rem}.stage-streak-badge{position:absolute;inset:0;display:grid;place-items:center;color:var(--bg);font-size:.68rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;text-shadow:none;pointer-events:none}.stage-kicker{margin:0;color:color-mix(in srgb,var(--ink) 48%,var(--cream));font-size:1.05rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.stage-title{margin:0;min-width:0;color:var(--ink);font-size:clamp(1.7rem,3.6vw,2.55rem);font-weight:800;letter-spacing:.06em;line-height:1;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-title-host{min-width:0;width:100%}.stage-title-host:empty:before{content:"Песня";display:block;color:var(--ink);font-size:clamp(1.7rem,3.6vw,2.55rem);font-weight:800;letter-spacing:.06em;line-height:1;text-transform:uppercase}.stage-title-host .song-page-header{position:static;width:100%;align-items:center}.stage-title-host .song-page-header h1{margin:0;min-width:0;color:var(--ink);font-size:clamp(1.55rem,3.2vw,2.25rem);font-weight:800;letter-spacing:.04em;line-height:1.1;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-header-rule-wrap{position:relative;width:calc(100% - 260px);height:1px;margin-top:16px}.stage-header-rule{width:100%;height:1px;margin:0;border-radius:0;background:color-mix(in srgb,var(--ink) 22%,var(--cream))}.stage-admin-tab{position:absolute;top:0;right:28px;z-index:6;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px 0 12px;border:1px solid color-mix(in srgb,var(--red) 72%,var(--bg));border-top:0;border-radius:0 0 12px 12px;color:var(--cream);background:var(--red);box-shadow:0 8px 18px color-mix(in srgb,var(--bg) 18%,transparent);text-decoration:none;font-size:.78rem;font-weight:750;line-height:1;white-space:nowrap;max-height:12px;overflow:hidden;transition:max-height .24s cubic-bezier(.22,1,.36,1),filter .18s ease}.stage-admin-tab>*{opacity:0;transition:opacity .14s ease}.stage-admin-tab:hover,.stage-admin-tab:focus-visible{max-height:40px;background:var(--red);color:var(--cream);filter:brightness(1.06)}.stage-admin-tab:hover>*,.stage-admin-tab:focus-visible>*{opacity:1}.stage-admin-tab .material-symbols-outlined{font-size:1.05rem;line-height:1}.app-main{grid-column:1;grid-row:2;min-width:0;min-height:0;width:100%;max-width:100%;display:flex;flex-direction:column;gap:18px;padding:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;background:transparent;color:var(--ink);box-sizing:border-box}.app-main::-webkit-scrollbar{width:0;height:0;display:none}.app-main>*{max-width:100%;min-width:0}.shell-toolbar{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:0;background:transparent;box-sizing:border-box}.shell-tool-btn,.shell-tool-avatar{width:40px;height:40px;display:inline-grid;place-items:center;flex-shrink:0;overflow:hidden;border-radius:50%;color:var(--ink);background:color-mix(in srgb,var(--cream) 42%,white);text-decoration:none;transition:background .18s ease}.shell-tool-btn:hover:not(:disabled),.shell-tool-avatar:hover{background:color-mix(in srgb,var(--cream) 22%,white)}.shell-tool-btn:disabled{opacity:.75;cursor:default}.shell-tool-btn.has-badge{position:relative}.shell-tool-btn.has-badge:after{content:"";position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--red)}.shell-tool-avatar .shell-avatar,.shell-tool-avatar .shell-avatar-fallback{width:40px;height:40px}.tuner-page{width:100%}.app-rail{grid-column:2;grid-row:2;position:relative;z-index:1;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column}.rail-stack{--scroll-thumb: color-mix(in srgb, var(--cream) 38%, transparent);--scroll-thumb-hover: color-mix(in srgb, var(--cream) 62%, transparent);flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px;overflow:hidden;border-radius:28px;background:transparent;box-sizing:border-box}.rail-stack.is-guest{padding:0}.rail-section{display:flex;flex-direction:column;gap:10px;min-height:0}.rail-section-panel{flex:1 1 0;min-height:0;padding:14px 14px 10px;overflow:hidden;border:1px solid color-mix(in srgb,var(--cream) 12%,transparent);border-radius:22px;background:var(--bg);box-sizing:border-box;transition:flex-grow .32s cubic-bezier(.22,1,.36,1),border-color .24s ease,background .24s ease}.rail-stack.is-focus-0 .rail-section-panel:nth-child(1),.rail-stack.is-focus-1 .rail-section-panel:nth-child(2),.rail-stack.is-focus-2 .rail-section-panel:nth-child(3){flex-grow:2.6}.rail-stack.is-focus-0 .rail-section-panel:nth-child(2),.rail-stack.is-focus-0 .rail-section-panel:nth-child(3),.rail-stack.is-focus-1 .rail-section-panel:nth-child(1),.rail-stack.is-focus-1 .rail-section-panel:nth-child(3),.rail-stack.is-focus-2 .rail-section-panel:nth-child(1),.rail-stack.is-focus-2 .rail-section-panel:nth-child(2){flex-grow:.45}.rail-section-panel.is-expanded{border-color:color-mix(in srgb,var(--cream) 28%,transparent);background:color-mix(in srgb,var(--bg) 92%,var(--green))}.rail-stack.is-guest .rail-section-panel{flex:1 1 auto;height:100%}.rail-section-header{flex-shrink:0}.rail-section-toggle{display:flex;align-items:center;width:100%;min-width:0;margin:0;padding:0;border:0;border-radius:10px;color:inherit;background:transparent;box-shadow:none;text-align:left;cursor:pointer}.rail-section-toggle:hover h2{color:color-mix(in srgb,var(--cream) 88%,white)}.rail-section-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--cream) 45%,transparent);outline-offset:2px}.rail-section-header h2{margin:0;color:var(--cream);font-size:1.05rem;font-weight:800;letter-spacing:.02em;transition:color .2s ease}.rail-section-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:6px;box-sizing:border-box;scrollbar-width:none;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.rail-section-body:has(>.empty-state:only-child){overflow:hidden;cursor:default}.rail-section-body>.empty-state{min-height:0;height:100%;box-sizing:border-box}.rail-section-body.is-dragging{cursor:grabbing}.rail-section-body::-webkit-scrollbar{width:0;height:0;display:none}.rail-top-list{margin:0;padding:0 0 4px;list-style:none;display:grid;gap:8px}.rail-top-list li{display:grid;grid-template-columns:1.6rem 32px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--cream) 10%,transparent);border-radius:14px;background:color-mix(in srgb,var(--cream) 6%,transparent)}.rail-top-list li.is-podium{border-color:color-mix(in srgb,var(--cream) 18%,transparent);background:color-mix(in srgb,var(--cream) 10%,transparent)}.rail-top-list li.podium-1{border-color:color-mix(in srgb,var(--red) 55%,transparent);background:color-mix(in srgb,var(--red) 18%,transparent)}.rail-top-list li.podium-2{border-color:color-mix(in srgb,var(--cream) 40%,transparent);background:color-mix(in srgb,var(--cream) 12%,transparent)}.rail-top-list li.podium-3{border-color:color-mix(in srgb,var(--green) 55%,transparent);background:color-mix(in srgb,var(--green) 18%,transparent)}.rail-top-list .shell-avatar,.rail-top-list .shell-avatar-fallback{width:32px;height:32px;font-size:.72rem}.rail-top-rank{color:color-mix(in srgb,var(--cream) 62%,transparent);font-size:.78rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}.rail-top-list li.podium-1 .rail-top-rank{color:var(--red)}.rail-top-list li.podium-2 .rail-top-rank{color:var(--cream)}.rail-top-list li.podium-3 .rail-top-rank{color:color-mix(in srgb,var(--cream) 70%,var(--green))}.rail-top-meta{display:grid;gap:2px;min-width:0}.rail-top-name{overflow:hidden;color:var(--cream);font-size:.82rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.rail-top-score{color:color-mix(in srgb,var(--cream) 58%,transparent);font-size:.68rem;font-weight:650}.rail-top-list li.is-empty{border-color:color-mix(in srgb,var(--cream) 8%,transparent);background:color-mix(in srgb,var(--cream) 3.5%,transparent);opacity:.72}.rail-top-list li.is-empty .rail-top-name,.rail-top-list li.is-empty .rail-top-score,.rail-top-list li.is-empty .rail-top-rank{color:color-mix(in srgb,var(--cream) 38%,transparent)}.rail-top-avatar-empty{background:color-mix(in srgb,var(--cream) 12%,transparent)!important;color:transparent!important}.shell-avatar-fallback.tone-red{color:var(--cream);background:var(--red)}.shell-avatar-fallback.tone-green{color:var(--cream);background:var(--green)}.shell-avatar-fallback.tone-cream{color:var(--bg);background:var(--cream)}.rail-timeline{margin:0;padding:0;list-style:none;display:grid;gap:0}.rail-timeline li{position:relative;display:grid;grid-template-columns:20px 1fr;gap:12px;padding:0 0 18px}.rail-timeline-sentinel{height:1px;padding:0;margin:0;list-style:none;pointer-events:none}.rail-timeline-sentinel:before{display:none}.rail-timeline li:not(:last-child):before{content:"";position:absolute;left:9px;top:15px;bottom:0;width:2px;border-radius:999px;background:color-mix(in srgb,var(--green) 48%,transparent)}.rail-timeline-dot{width:10px;height:10px;margin-top:4px;justify-self:center;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 28%,transparent);z-index:1}.rail-timeline time{display:block;margin-bottom:4px;color:var(--muted);font-size:.68rem;font-weight:650}.rail-notifications{margin:0;padding:4px 0 8px;list-style:none;display:grid;gap:8px}.rail-notification-card{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;margin:0;padding:10px 10px 10px 8px;border:0;border-radius:14px;color:inherit;background:color-mix(in srgb,var(--cream) 55%,white);box-shadow:none;text-align:left;cursor:pointer;transition:background .18s ease}.rail-notifications .is-unread .rail-notification-card{background:color-mix(in srgb,var(--green) 18%,var(--cream))}.rail-notification-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--cream);background:var(--green)}.rail-notification-icon.tone-streak_day{background:color-mix(in srgb,var(--cream) 35%,var(--red));color:var(--bg)}.rail-notification-icon.tone-achievement{background:var(--red)}.rail-notification-icon .material-symbols-outlined{font-size:1.15rem}.rail-notification-copy{display:grid;gap:0;min-width:0;align-content:start}.rail-notification-copy strong{color:var(--ink);font-size:.82rem;font-weight:750;line-height:1.25}.rail-notification-body{display:grid;grid-template-rows:0fr;min-width:0;transition:grid-template-rows .24s cubic-bezier(.22,1,.36,1)}.rail-notification-body-inner{overflow:hidden;min-height:0;color:color-mix(in srgb,var(--ink) 68%,var(--cream));font-size:.78rem;line-height:1.35;opacity:0;transform:translateY(-2px);transition:opacity .18s ease,transform .24s cubic-bezier(.22,1,.36,1),margin-top .24s cubic-bezier(.22,1,.36,1)}.rail-notification-card:hover .rail-notification-body,.rail-notification-card:focus-visible .rail-notification-body{grid-template-rows:1fr}.rail-notification-card:hover .rail-notification-body-inner,.rail-notification-card:focus-visible .rail-notification-body-inner{margin-top:4px;opacity:1;transform:translateY(0)}.rail-notifications-sentinel{height:1px;margin:0;padding:0;list-style:none;pointer-events:none}.rail-timeline p{margin:0;color:var(--cream);font-size:.8rem;line-height:1.4;font-weight:650}.empty-state{flex:1;min-height:88px;height:100%;display:grid;place-content:center;justify-items:center;gap:8px;padding:10px;color:var(--muted);text-align:center}.empty-state .material-symbols-outlined{font-size:28px;font-variation-settings:"wght" 300;color:color-mix(in srgb,var(--cream) 45%,var(--green))}.empty-state p{margin:0;max-width:12rem;font-size:.78rem;line-height:1.4;font-weight:650}.app-main:has(>.home-page){overflow:hidden}.app-main>.home-page{flex:1;min-height:0}.home-page{width:100%;max-width:100%;min-width:0;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;animation:home-enter .42s ease both}.home-lower{min-height:0;display:grid;grid-template-rows:minmax(0,1.2fr) minmax(0,1fr);gap:18px}@keyframes home-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.auth-embed{display:grid;place-items:center;flex:1;width:100%;min-height:min(100%,560px);padding:8px 0 24px;box-sizing:border-box}.auth-card-embedded{width:min(100%,420px);margin:0}.app-main .account-card.auth-card-embedded{border:1px solid color-mix(in srgb,var(--ink) 10%,var(--cream));border-radius:28px;background:color-mix(in srgb,var(--cream) 42%,white);box-shadow:0 24px 60px color-mix(in srgb,var(--ink) 12%,transparent);color:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}.app-main .auth-card-embedded .auth-brand-mark{margin:0;color:var(--ink);font-size:clamp(1.8rem,5vw,2.35rem);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.app-main .auth-card-embedded .auth-subtitle{margin:10px 0 0;min-height:1.35em;color:var(--ink);font-size:1.15rem;font-weight:800;letter-spacing:.02em}.app-main .auth-card-embedded .auth-lead{margin:8px 0 0;min-height:2.8em;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.88rem;font-weight:650;line-height:1.4}.app-main .auth-card-embedded label{color:color-mix(in srgb,var(--ink) 62%,var(--cream));font-size:.78rem;font-weight:750}.app-main .auth-card-embedded input{color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 16%,var(--cream));background:color-mix(in srgb,var(--cream) 18%,white)}.app-main .auth-card-embedded input::placeholder{color:color-mix(in srgb,var(--ink) 38%,var(--cream))}.app-main .auth-card-embedded input:hover{border-color:color-mix(in srgb,var(--ink) 28%,var(--cream))}.app-main .auth-card-embedded input:focus{border-color:color-mix(in srgb,var(--red) 55%,var(--cream));box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 16%,transparent)}.app-main .auth-card-embedded .auth-submit{width:100%;min-width:0;margin-top:4px;min-height:50px;border:0;border-radius:16px;background:var(--red);color:var(--cream);font-weight:800;letter-spacing:.03em;box-shadow:none;transform:none}.app-main .auth-card-embedded .auth-submit:hover:not(:disabled){filter:brightness(1.06)}.app-main .auth-card-embedded .auth-submit.is-register{background:var(--green)}.app-main .auth-card-embedded .auth-privacy-link{color:color-mix(in srgb,var(--ink) 48%,var(--cream))!important}.app-main .auth-card-embedded .auth-consent-notice{color:color-mix(in srgb,var(--ink) 62%,var(--cream));border-color:color-mix(in srgb,var(--ink) 12%,var(--cream));background:color-mix(in srgb,var(--cream) 22%,white)}.app-main .auth-card-embedded .auth-consent-link{color:var(--red)}.auth-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:22px;padding:5px;border-radius:16px;background:color-mix(in srgb,var(--ink) 8%,var(--cream))}.auth-mode-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:12px;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.9rem;font-weight:750;text-decoration:none;transition:background .16s ease,color .16s ease}.auth-mode-link.is-active{color:var(--cream);background:var(--red)}.tools-lock-hint{margin:0;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.9rem;font-weight:700}.chords-instrument-card.is-locked{opacity:.58;cursor:default;pointer-events:none;filter:grayscale(.15)}.chords-instrument-card.is-locked:hover,.chords-instrument-card.is-locked:hover .home-overview-art img{transform:none}.home-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0;max-width:100%}.home-section{display:grid;gap:12px;min-width:0;max-width:100%}.home-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-section-header h2{margin:0;color:var(--ink);font-size:.95rem;font-weight:750}.home-section-arrow{color:color-mix(in srgb,var(--ink) 45%,var(--cream))}.home-section-arrow .material-symbols-outlined{font-size:20px}.home-card-list{display:grid;gap:10px;min-width:0;max-width:100%}.stream-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:12px;border-radius:18px;background:color-mix(in srgb,var(--cream) 55%,white);transition:transform .18s ease,background .18s ease}.stream-card:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--cream) 35%,white)}.stream-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:var(--cream)}.stream-card-icon.tone-red{background:var(--red)}.stream-card-icon.tone-green{background:var(--green)}.stream-card-body{min-width:0;display:grid;gap:2px}.stream-card-body strong{overflow:hidden;color:var(--ink);font-size:.9rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.stream-card-body span{color:color-mix(in srgb,var(--ink) 48%,var(--cream));font-size:.75rem;font-weight:650}.home-feature-slider{--feature-peek: clamp(64px, 16%, 140px);--feature-gap: 12px;--feature-slide: calc(100% - var(--feature-peek));--feature-step: calc(var(--feature-slide) + var(--feature-gap));--drag-x: 0px;position:relative;width:100%;max-width:100%;min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;animation:feature-rise .56s 80ms ease both}@keyframes feature-rise{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}.home-feature-viewport{width:100%;max-width:100%;min-width:0;min-height:0;height:100%;overflow:hidden;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.home-feature-viewport.is-dragging{cursor:grabbing}.home-feature-track{display:flex;align-items:stretch;width:100%;height:100%;gap:var(--feature-gap);transform:translate(calc(var(--slide-index, 0) * -1 * var(--feature-step) + var(--drag-x, 0px)));transition:transform .62s cubic-bezier(.22,1,.36,1);will-change:transform}.home-feature-track.is-end{transform:translate(calc(var(--slide-index, 0) * -1 * var(--feature-step) + var(--feature-peek) + var(--drag-x, 0px)))}.home-feature-track.is-dragging{transition:none}.home-feature-slide-wrap{flex:0 0 var(--feature-slide);width:var(--feature-slide);max-width:var(--feature-slide);min-width:0;height:100%;box-sizing:border-box}.home-feature-slide{width:100%;max-width:100%;height:100%;overflow:hidden;border-radius:24px;background:var(--bg);color:var(--cream);box-sizing:border-box}.home-feature-media{position:relative;width:100%;height:100%;min-height:0;background:var(--bg)}.home-feature-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;-webkit-user-drag:none}.home-feature-shade{position:absolute;inset:auto 0 0;height:72%;background:linear-gradient(to top,var(--bg) 0%,color-mix(in srgb,var(--bg) 94%,transparent) 22%,color-mix(in srgb,var(--bg) 72%,transparent) 48%,color-mix(in srgb,var(--bg) 28%,transparent) 72%,transparent 100%);pointer-events:none}.home-feature-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:16px 18px 14px}.home-feature-copy{display:grid;gap:8px;max-width:34rem}.home-feature-copy h3{margin:0;color:var(--cream);font-size:clamp(1.1rem,2.2vw,1.55rem);font-weight:800;line-height:1.1;letter-spacing:.01em}.home-feature-copy p{margin:0;max-width:32rem;color:color-mix(in srgb,var(--cream) 88%,white);font-size:clamp(.9rem,1.7vw,1.1rem);font-weight:700;line-height:1.25;letter-spacing:.01em}.home-feature-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-feature-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:6px 0 2px}.home-feature-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--ink) 22%,var(--cream));cursor:pointer;transition:transform .18s ease,background .18s ease}.home-feature-dots button.is-active{background:var(--red);transform:scale(1.25)}.home-feature-author{display:inline-flex;align-items:center;gap:10px;color:var(--cream);font-size:.82rem;font-weight:700}.home-feature-actions{display:inline-flex;align-items:center;gap:8px}.home-feature-actions button,.home-feature-play{width:40px;height:40px;display:inline-grid;place-items:center;border:0;border-radius:50%;color:var(--cream);background:color-mix(in srgb,var(--cream) 12%,transparent);text-decoration:none;cursor:pointer;transition:transform .18s ease,background .18s ease}.home-feature-play{color:var(--bg);background:var(--cream)}.home-feature-play:hover,.home-feature-actions button:hover:not(:disabled){transform:scale(1.06)}.home-feature-actions button:disabled{opacity:.55;cursor:default}.home-overview{min-height:0;height:100%;gap:12px;grid-template-rows:auto minmax(0,1fr)}.home-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-width:0;min-height:0;height:100%}.home-overview-card{display:grid;grid-template-rows:auto auto;min-width:0;min-height:0;height:100%;overflow:hidden;border-radius:22px;background:color-mix(in srgb,var(--cream) 42%,white);color:inherit;text-decoration:none;transition:transform .18s ease}a.home-overview-card{cursor:pointer}.home-overview-card:hover{transform:translateY(-2px)}.home-overview-art{aspect-ratio:4 / 3;overflow:hidden;background:var(--bg)}.home-overview-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1);transition:transform .32s ease;will-change:transform}.home-overview-card:hover .home-overview-art img{transform:scale(1.07)}.home-overview-copy{display:grid;align-content:start;gap:6px;padding:16px 16px 18px}.home-page .home-overview-card{grid-template-rows:minmax(0,1fr) auto}.home-page .home-overview-art{aspect-ratio:auto;min-height:0;height:100%}.home-page .home-overview-copy{box-sizing:border-box;min-height:calc(40px + 3.4215rem)}.home-page .home-overview-copy h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-page .home-overview-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.214rem}.home-overview-copy h3{margin:0;color:var(--ink);font-size:1.05rem;font-weight:800;line-height:1.15}.home-overview-copy p{margin:0;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.82rem;font-weight:650;line-height:1.35}.chords-page{display:grid;gap:18px;min-width:0;color:var(--ink)}.collections-page{gap:28px}.chords-page .home-overview,.collections-page .home-overview-grid{height:auto}.chords-instrument-card{text-decoration:none;color:inherit;cursor:pointer}.chords-instrument-card .home-overview-art{aspect-ratio:1 / 1;background:#2f4a36}.chords-instrument-card .home-overview-art img{object-fit:contain;object-position:center}.chords-instrument-card:hover .home-overview-art img{transform:scale(1.03)}.chords-instrument-card.is-soon{opacity:.62;cursor:default;pointer-events:none}.chords-instrument-card.is-soon:hover,.chords-instrument-card.is-soon:hover .home-overview-art img,.chords-instrument-card.is-locked:hover .home-overview-art img{transform:none}.songs-catalog-page,.song-page{display:grid;gap:16px;width:100%;max-width:100%;min-width:0;color:var(--ink);box-sizing:border-box}.songs-search-field{max-width:min(420px,100%)}.songs-search-field input[type=search]{-webkit-appearance:none;appearance:none;box-sizing:border-box;max-width:100%}.songs-search-field input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.songs-catalog-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.songs-catalog-list>li{min-width:0;max-width:100%}.songs-catalog-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;max-width:100%;min-width:0;padding:12px;text-decoration:none;color:inherit;border:0;border-radius:18px;background:color-mix(in srgb,var(--cream) 55%,white);box-sizing:border-box;transition:background .18s ease,transform .18s ease}.songs-catalog-item:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--cream) 35%,white)}.songs-catalog-art{display:inline-grid;place-items:center;width:64px;height:64px;flex-shrink:0;border-radius:14px;color:var(--cream);background:var(--green);box-sizing:border-box}.songs-catalog-art .material-symbols-outlined{font-size:1.7rem}.songs-catalog-copy{display:grid;gap:4px;min-width:0}.songs-catalog-copy h3,.song-page-header h1,.song-page-header h2{margin:0;overflow:hidden;font-size:1.1rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.songs-catalog-copy p,.song-page-header p{margin:0;overflow:hidden;color:color-mix(in srgb,var(--ink) 68%,var(--cream));font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.songs-catalog-likes{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-width:52px;min-height:36px;padding:0 12px;border-radius:999px;color:var(--cream);background:var(--red);font-size:.86rem;font-weight:700;box-sizing:border-box}.songs-catalog-likes .material-symbols-outlined{font-size:1.05rem}.song-like-button{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.song-page-header{position:sticky;top:0;z-index:8;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.song-page-title{display:grid;gap:4px;min-width:0}.song-page-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.song-like-button{border:0;background:transparent;padding:0;cursor:pointer;text-decoration:none;font:inherit;line-height:1;outline:none;box-shadow:none}.song-like-button:focus,.song-like-button:focus-visible{outline:none;box-shadow:none}.song-like-button.is-liked{color:var(--red)}.song-page .metronome-menu-trigger{min-width:168px}.song-autoscroll-trigger-label{display:inline-flex;align-items:center;gap:8px;min-width:0}.song-autoscroll-trigger-label .material-symbols-outlined{font-size:1.2rem}.song-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,260px);gap:24px;align-items:start;min-width:0}.song-body{display:grid;gap:10px;padding:8px 0 24px;font-family:Archivo,sans-serif;font-size:1.05rem;line-height:1.55;min-width:0}.song-chords-panel{display:grid;gap:10px;min-width:0;padding-top:8px}.song-chords-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;justify-items:center}.song-chord-unknown{display:grid;place-items:center;width:108px;height:132px;border-radius:14px;background:color-mix(in srgb,var(--cream) 42%,white);color:var(--green);font-weight:800}.song-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0 2px;min-height:1.2em}.song-line.is-blank{min-height:.8em}.song-chord-unit{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;margin-right:2px}.song-chord{border:0;padding:0;margin:0 0 2px;background:transparent;color:var(--green);font:inherit;font-weight:700;cursor:pointer;line-height:1.1}.song-chord:focus-visible{outline:2px solid var(--cream);outline-offset:2px}.song-lyric,.song-text{white-space:pre-wrap}.song-chord-popup{position:absolute;left:0;top:calc(100% + 6px);z-index:5;padding:0;background:transparent;border:0;box-shadow:none;pointer-events:none}.song-chord-popup-name{display:grid;place-items:center;width:132px;height:160px;border-radius:14px;background:color-mix(in srgb,var(--cream) 42%,white);color:var(--ink);font-weight:700;box-shadow:0 12px 28px color-mix(in srgb,var(--ink) 18%,transparent)}.songs-loading{color:var(--ink);opacity:.75}@media(max-width:900px){.song-layout{grid-template-columns:1fr}.song-chords-panel{order:-1}.song-chords-panel-grid{grid-template-columns:repeat(auto-fill,108px);justify-content:start}}body:has(.song-page),body:has(.songs-catalog-page){scrollbar-width:none}body:has(.song-page)::-webkit-scrollbar,body:has(.songs-catalog-page)::-webkit-scrollbar{width:0;height:0;display:none}.chords-library-page{gap:14px}.chords-library{display:grid;gap:16px;min-width:0}.tools-overview-grid{grid-template-columns:repeat(auto-fit,minmax(220px,280px));height:auto;justify-content:start}.chords-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.chords-library-toolbar{display:grid;gap:12px;margin-bottom:18px}.chords-library-search input{width:100%;min-height:44px;padding:0 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--cream) 55%,white);color:var(--ink);font:inherit;box-sizing:border-box}.chords-library-filters{display:flex;flex-wrap:wrap;gap:8px}.chords-library-filter{min-height:36px;padding:0 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--cream) 40%,white);color:var(--ink);font:inherit;font-weight:650;cursor:pointer}.chords-library-filter.is-active,.chords-library-filter[aria-pressed=true]{background:color-mix(in srgb,var(--green) 72%,var(--cream));border-color:transparent;color:var(--cream)}.chords-library-sections{display:grid;gap:22px}.chords-library-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.chords-library-section-head h2{margin:0;font-size:1.05rem;font-weight:800}.chords-library-section-head span{color:color-mix(in srgb,var(--ink) 45%,var(--cream));font-size:.8rem;font-weight:700}.chords-list{display:grid;gap:12px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.chord-diagram{margin:0;display:grid;justify-items:center;gap:10px;padding:14px 14px 16px;border-radius:18px;background:color-mix(in srgb,var(--cream) 42%,white);box-sizing:border-box}.chord-diagram figcaption{color:var(--ink);font-size:.95rem;font-weight:800;text-align:center}.chord-diagram-guitar svg{width:min(100%,140px);height:auto}.chord-diagram-guitar.is-fixed{box-sizing:border-box;flex-shrink:0}.chord-diagram-guitar.is-fixed svg{display:block;flex-shrink:0}.chord-diagram-guitar.is-fixed.is-sm{width:108px;gap:6px;padding:8px 6px 6px;border-radius:14px}.chord-diagram-guitar.is-fixed.is-sm svg{width:92px;height:114px}.chord-diagram-guitar.is-fixed.is-sm figcaption{font-size:.85rem}.chord-diagram-guitar.is-fixed.is-md{width:132px;gap:8px;padding:10px 8px 8px;border-radius:16px;box-shadow:0 12px 28px color-mix(in srgb,var(--ink) 18%,transparent)}.chord-diagram-guitar.is-fixed.is-md svg{width:112px;height:138px}.chord-diagram-guitar.is-fixed.is-md figcaption{font-size:.95rem}.chord-diagram-piano{width:100%;max-width:100%;min-width:0;justify-items:center;overflow:hidden}.chord-diagram-piano .piano-keyboard-scroll{width:100%;max-width:100%;min-width:0;display:flex;justify-content:center;overflow-x:auto;scrollbar-width:thin}.chord-diagram-piano svg{display:block;flex:0 0 auto;height:auto;max-width:none}.piano-keyboard-scroll{overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;padding-bottom:4px;-webkit-overflow-scrolling:touch}.piano-octave-label{fill:color-mix(in srgb,var(--ink) 70%,var(--cream));font-size:10px;font-weight:700}.chord-fret-label{fill:color-mix(in srgb,var(--ink) 72%,var(--cream));font-size:11px;font-weight:700}.chord-string,.chord-fret{stroke:color-mix(in srgb,var(--ink) 72%,var(--cream));stroke-width:1.4}.chord-nut{stroke:var(--ink);stroke-width:4;stroke-linecap:round}.chord-mute,.chord-base-fret{fill:var(--ink);font-size:12px;font-weight:800;text-anchor:middle}.chord-open{fill:none;stroke:var(--red);stroke-width:1.8}.chord-dot,.chord-barre{fill:var(--red)}.chord-dot-on-black{fill:var(--cream)}.piano-key-white{fill:color-mix(in srgb,var(--cream) 88%,white);stroke:color-mix(in srgb,var(--ink) 35%,var(--cream));stroke-width:1}.piano-key-white.is-active{fill:color-mix(in srgb,var(--cream) 70%,white)}.piano-key-black{fill:var(--ink);stroke:var(--ink)}.piano-key-black.is-active{fill:color-mix(in srgb,var(--ink) 82%,var(--red))}.piano-key-white.is-expected,.piano-key-white.is-expected-right{fill:color-mix(in srgb,var(--cream) 42%,var(--green));stroke:var(--green);stroke-width:1.6;animation:practice-expect-pulse .9s ease-in-out infinite}.piano-key-black.is-expected,.piano-key-black.is-expected-right{fill:color-mix(in srgb,var(--ink) 40%,var(--green));stroke:var(--cream);stroke-width:1.4;animation:practice-expect-pulse .9s ease-in-out infinite}.piano-key-white.is-expected-left{fill:color-mix(in srgb,var(--green) 82%,var(--bg));stroke:var(--cream);stroke-width:2;animation:practice-expect-pulse .9s ease-in-out infinite}.piano-key-black.is-expected-left{fill:color-mix(in srgb,var(--green) 70%,var(--cream));stroke:var(--cream);stroke-width:1.6;animation:practice-expect-pulse .9s ease-in-out infinite}.piano-key-white.is-correct{fill:color-mix(in srgb,var(--green) 78%,white);stroke:var(--green);stroke-width:2;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--green) 55%,transparent))}.piano-key-black.is-correct{fill:var(--green);stroke:var(--cream);stroke-width:1.6;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--green) 55%,transparent))}.piano-key-white.is-wrong{fill:color-mix(in srgb,var(--red) 72%,white);stroke:var(--red);stroke-width:2;animation:practice-wrong-shake .35s ease;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--red) 55%,transparent))}.piano-key-black.is-wrong{fill:var(--red);stroke:var(--cream);stroke-width:1.6;animation:practice-wrong-shake .35s ease;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--red) 55%,transparent))}.piano-key-white.is-pressed,.piano-key-black.is-pressed{filter:brightness(1.08)}.piano-finger-badge{fill:#fff;stroke:color-mix(in srgb,var(--ink) 55%,var(--cream));stroke-width:1.2}.piano-finger-label{fill:var(--ink);font-size:11px;font-weight:800;pointer-events:none;-webkit-user-select:none;user-select:none}.practice-dot{fill:var(--red)}.practice-dot.is-expected,.practice-dot.is-expected-right{fill:var(--green);animation:practice-expect-pulse .9s ease-in-out infinite}.practice-dot.is-expected-left{fill:color-mix(in srgb,var(--green) 55%,var(--cream));animation:practice-expect-pulse .9s ease-in-out infinite}.practice-dot.is-correct{fill:var(--green)}.practice-dot.is-wrong{fill:var(--red)}.practice-dot.chord-dot-on-black.is-expected,.practice-dot.chord-dot-on-black.is-expected-right,.practice-dot.chord-dot-on-black.is-expected-left,.practice-dot.chord-dot-on-black.is-correct{fill:var(--cream)}.practice-dot.chord-dot-on-black.is-expected-left{fill:color-mix(in srgb,var(--cream) 70%,white)}@keyframes practice-expect-pulse{0%,to{opacity:1}50%{opacity:.72}}@keyframes practice-wrong-shake{0%,to{transform:translate(0)}25%{transform:translate(-1.2px)}75%{transform:translate(1.2px)}}.hanon-page{display:grid;gap:1.1rem;width:100%;max-width:100%;min-width:0;overflow-x:clip;box-sizing:border-box;color:var(--ink)}.hanon-page .practice-keyboard{width:100%;max-width:none;justify-items:stretch}.hanon-page .practice-keyboard .piano-keyboard-scroll{display:block;overflow:hidden;width:100%}.hanon-page .practice-keyboard .piano-keyboard-scroll svg{width:100%;height:auto;max-width:none}.hanon-page.is-flash-correct .hanon-progress{color:color-mix(in srgb,var(--ink) 30%,var(--green))}.hanon-page.is-flash-wrong .hanon-progress{color:color-mix(in srgb,var(--ink) 25%,var(--red))}.sequence-exercise-header{display:grid;gap:.35rem;width:100%;min-width:0}.sequence-exercise-title{margin:0;font-size:1.35rem;font-weight:600;color:var(--cream)}.sequence-exercise-description{margin:0;font-size:.95rem;line-height:1.45;color:color-mix(in srgb,var(--cream) 72%,transparent)}.hanon-intro{display:grid;gap:0;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:.85rem 1rem;border-radius:1.1rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--cream) 42%,white)}.hanon-intro.is-open{gap:.85rem;padding-bottom:1.1rem}.hanon-intro-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;flex-wrap:wrap}.hanon-intro h2{margin:0;color:var(--ink);font-size:clamp(1.2rem,2.4vw,1.5rem);min-width:0}.hanon-intro-toggle{appearance:none;flex:0 0 auto;display:inline-flex;align-items:center;gap:.2rem;border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,var(--cream) 30%,white);color:color-mix(in srgb,var(--ink) 45%,var(--green));border-radius:999px;padding:.35rem .7rem .35rem .85rem;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}.hanon-intro-toggle .material-symbols-outlined{font-size:1.2rem}.hanon-intro-details{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .35s ease,opacity .25s ease}.hanon-intro-details.is-open{grid-template-rows:1fr;opacity:1}.hanon-intro-details-inner{overflow:hidden;min-height:0;display:grid;gap:.85rem}.hanon-intro-lead{margin:0;color:color-mix(in srgb,var(--ink) 58%,var(--cream));line-height:1.5;font-size:1.02rem;max-width:52rem}.hanon-intro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;min-width:0}.hanon-intro-card{display:grid;gap:.55rem;align-content:start;min-width:0;padding:.9rem 1rem;border-radius:.85rem;background:color-mix(in srgb,var(--cream) 28%,white);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.hanon-intro-card h3{margin:0;font-size:.98rem;color:color-mix(in srgb,var(--ink) 35%,var(--green))}.hanon-intro-card p,.hanon-intro-card li{margin:0;color:color-mix(in srgb,var(--ink) 62%,var(--cream));line-height:1.45;font-size:.95rem}.hanon-intro-card ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem}.hanon-intro-pattern{margin:0;padding:.7rem .9rem;border-radius:.65rem;border-left:3px solid color-mix(in srgb,var(--green) 70%,var(--ink));background:color-mix(in srgb,var(--ink) 6%,transparent);color:color-mix(in srgb,var(--ink) 55%,var(--green));font-size:.9rem;line-height:1.45}@media(max-width:980px){.hanon-intro-grid{grid-template-columns:1fr}}.hanon-progress{margin:0;color:var(--ink);font-size:.95rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem}.hanon-progress strong{color:color-mix(in srgb,var(--ink) 40%,var(--green))}.hanon-score-flash{font-weight:800;font-size:1.2rem;animation:hanon-score-pop .52s ease}.hanon-score-flash.is-up{color:var(--green)}.hanon-score-flash.is-down{color:var(--red)}.hanon-score-hint{margin:0;color:color-mix(in srgb,var(--ink) 48%,var(--cream));font-size:.9rem}@keyframes hanon-score-pop{0%{transform:translateY(4px) scale(.9);opacity:0}30%{transform:translateY(0) scale(1.12);opacity:1}to{transform:translateY(-2px) scale(1);opacity:.85}}.practice-keyboard .piano-key[role=button]{cursor:pointer}.practice-keyboard-header,.practice-keyboard-overlay-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem;width:100%}.practice-keyboard-header figcaption,.practice-keyboard-overlay-header h2{margin:0;text-align:center;justify-self:center;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.practice-keyboard-header-side{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.practice-keyboard-header-side.is-leading{justify-self:start}.practice-keyboard-header-side.is-trailing{justify-self:end}.practice-keyboard-footer{display:grid;gap:.35rem;width:100%;min-width:0;padding-top:.35rem}.hanon-input-tools{display:inline-flex;align-items:center;gap:.35rem}.hanon-tool-btn{appearance:none;display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:color-mix(in srgb,var(--ink) 10%,var(--cream));color:color-mix(in srgb,var(--ink) 45%,var(--cream));border-radius:.65rem;padding:0;font:inherit;cursor:pointer}.hanon-tool-btn .material-symbols-outlined{font-size:1.25rem}.hanon-tool-btn.is-on{background:color-mix(in srgb,var(--green) 78%,var(--cream));border-color:color-mix(in srgb,var(--green) 55%,transparent);color:var(--cream)}.hanon-tool-btn.is-start{background:color-mix(in srgb,var(--green) 82%,var(--ink));border-color:color-mix(in srgb,var(--green) 60%,transparent);color:var(--cream)}.hanon-tool-btn:disabled{opacity:.55;cursor:wait}.hanon-tempo-wrap{position:relative}.hanon-tempo-popup{position:absolute;left:50%;top:100%;z-index:6;padding-top:8px;transform:translate(-50%) translateY(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.hanon-tempo-wrap.is-open .hanon-tempo-popup{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%) translateY(0)}.hanon-tempo-popup-label{display:grid;gap:.35rem;justify-items:center;min-width:10.5rem;padding:.7rem .8rem;border-radius:.85rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--cream) 42%,white);color:var(--ink);box-shadow:0 12px 28px color-mix(in srgb,var(--bg) 35%,transparent);font-size:.85rem;font-weight:700}.hanon-tempo-popup-label input[type=range]{width:100%;accent-color:var(--green)}.hanon-hand-wrap{position:relative}.hanon-hand-popup{position:absolute;right:0;top:100%;z-index:6;padding-top:10px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease}.hanon-hand-wrap.is-open .hanon-hand-popup{opacity:1;visibility:visible;pointer-events:auto}.hanon-hand-popup-panel{display:grid;gap:.3rem;min-width:9.5rem;padding:.55rem;border-radius:.85rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--cream) 42%,white);color:var(--ink);box-shadow:0 12px 28px color-mix(in srgb,var(--bg) 35%,transparent)}.hanon-hand-popup-title{margin:0 0 .15rem;padding:0 .25rem;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 48%,var(--cream))}.hanon-hand-popup-btn{appearance:none;border:1px solid transparent;border-radius:.55rem;margin:0;padding:.45rem .65rem;font:inherit;font-size:.88rem;font-weight:700;text-align:left;color:color-mix(in srgb,var(--ink) 55%,var(--green));background:transparent;cursor:pointer}.hanon-hand-popup-btn:hover:not(:disabled){background:color-mix(in srgb,var(--cream) 55%,white)}.hanon-hand-popup-btn.is-active{background:color-mix(in srgb,var(--green) 78%,var(--cream));color:var(--cream)}.hanon-hand-popup-btn:disabled{opacity:.55;cursor:not-allowed}.practice-keyboard-expand{appearance:none;display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--ink) 10%,var(--cream));color:var(--ink);border-radius:.65rem;padding:0;font:inherit;cursor:pointer}.practice-keyboard-expand .material-symbols-outlined{font-size:1.25rem}.practice-keyboard-expand:hover{border-color:color-mix(in srgb,var(--ink) 40%,transparent)}.practice-keyboard-overlay{position:fixed;inset:0;z-index:80;display:grid;align-items:safe center;justify-items:center;overflow:auto;padding:clamp(.75rem,2vw,1.5rem);background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.practice-keyboard-overlay-panel{position:relative;width:min(100%,1680px);max-height:min(100%,calc(100dvh - 1.5rem));display:grid;gap:.85rem;padding:clamp(.85rem,2vw,1.25rem);border-radius:1.1rem;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--cream) 42%,white);color:var(--ink);box-shadow:0 18px 48px color-mix(in srgb,var(--bg) 45%,transparent);overflow:hidden}.practice-keyboard-overlay-header h2{margin:0;font-size:clamp(1.05rem,2.2vw,1.35rem)}.practice-keyboard-overlay-stage{position:relative;width:100%;min-height:0;overflow:hidden}.practice-keyboard-overlay-stage svg{display:block;width:100%;height:auto;max-height:min(52vh,480px)}.practice-result-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;justify-items:center;box-sizing:border-box;width:100%;max-width:100vw;padding:clamp(.75rem,3vw,1.5rem);overflow:auto;background:color-mix(in srgb,var(--bg) 55%,transparent)}.practice-result-layer{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:clamp(.75rem,2.5vw,1.35rem);background:color-mix(in srgb,var(--bg) 28%,transparent);overflow:auto}.practice-result-layer.is-compact{position:relative;inset:auto;width:min(100%,26rem);max-width:100%;box-sizing:border-box;background:transparent;padding:0;overflow:visible}.practice-result{position:relative;box-sizing:border-box;width:min(100%,26rem);max-width:100%;margin:0 auto;display:grid;gap:.55rem;justify-items:center;text-align:center;padding:1.15rem 1.25rem 1.2rem;border-radius:1rem;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--cream) 28%,white);color:var(--ink);box-shadow:0 16px 40px color-mix(in srgb,var(--bg) 35%,transparent);animation:practice-result-in .45s ease}.practice-result-kicker{margin:0;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 55%,var(--green))}.practice-result-title{margin:0;font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:800;color:var(--ink)}.practice-result-grade{margin:0;font-size:1.15rem;font-weight:800}.practice-result-grade.is-perfect{color:color-mix(in srgb,var(--ink) 20%,var(--green))}.practice-result-grade.is-good{color:color-mix(in srgb,var(--ink) 30%,var(--green))}.practice-result-grade.is-ok,.practice-result-grade.is-retry{color:color-mix(in srgb,var(--ink) 55%,var(--green))}.practice-result-stats{margin:.2rem 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;width:100%}.practice-result-stats li{display:grid;gap:.15rem;padding:.55rem .65rem;border-radius:.7rem;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.practice-result-stats span{font-size:.78rem;font-weight:700;color:color-mix(in srgb,var(--ink) 48%,var(--green))}.practice-result-stats strong{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}.practice-result-place{margin:.15rem 0 0;max-width:100%;color:color-mix(in srgb,var(--ink) 42%,var(--green));font-weight:700;line-height:1.35;overflow-wrap:anywhere}.practice-result-close{appearance:none;margin-top:.2rem;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--green) 78%,var(--ink));color:var(--cream);border-radius:.55rem;padding:.55rem 1rem;font:inherit;font-weight:750;cursor:pointer}.practice-confetti{pointer-events:none;position:absolute;inset:-20% -10% auto;height:140%;overflow:hidden}.practice-confetti span{position:absolute;top:-8%;left:calc(4% + (var(--i) * 3.8%));width:.45rem;height:.75rem;border-radius:.15rem;opacity:0;background:var(--green);animation:practice-confetti-fall 1.8s ease-out forwards;animation-delay:calc(var(--i) * 35ms)}.practice-confetti span:nth-child(3n){background:var(--cream)}.practice-confetti span:nth-child(3n+1){background:var(--red)}.practice-confetti span:nth-child(4n){width:.35rem;height:.35rem;border-radius:999px}@keyframes practice-result-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes practice-confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(120%) rotate(220deg)}}@media(max-width:900px){.practice-confetti{display:none}}@media(prefers-reduced-motion:reduce){.practice-confetti,.practice-result{animation:none}}.hanon-hand-legend{color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-weight:600}.hanon-hand-legend i{font-style:normal;font-weight:800}.hanon-hand-legend i.is-left{color:color-mix(in srgb,var(--green) 70%,var(--ink))}.hanon-hand-legend i.is-right{color:color-mix(in srgb,var(--ink) 35%,var(--green))}.hanon-records{display:grid;gap:.85rem;padding:1rem 1.1rem 1.15rem;border-radius:1.1rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,var(--cream) 42%,white);color:var(--ink)}.hanon-records-head h3{margin:0 0 .25rem;font-size:clamp(1.05rem,2vw,1.25rem)}.hanon-records-head p{margin:0;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.92rem}.hanon-records-mine{margin:0;color:color-mix(in srgb,var(--ink) 42%,var(--green));font-size:.95rem}.hanon-records-mine strong{font-weight:800}.hanon-records-scroll{overflow-x:auto;scrollbar-width:thin}.hanon-records-table{width:100%;border-collapse:collapse;min-width:34rem}.hanon-records-table th,.hanon-records-table td{padding:.65rem .55rem;text-align:left;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);vertical-align:middle}.hanon-records-table th{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 52%,var(--cream));font-weight:750}.hanon-records-table tbody tr:last-child td{border-bottom:0}.hanon-records-table tbody tr:hover{background:color-mix(in srgb,var(--ink) 4%,transparent)}.hanon-records-table tbody tr.is-me td:first-child{box-shadow:inset 3px 0 color-mix(in srgb,var(--green) 70%,var(--ink))}.hanon-records-table tbody tr.is-me{background:color-mix(in srgb,var(--ink) 6%,transparent)}.hanon-records-table tbody tr.is-me:hover{background:color-mix(in srgb,var(--ink) 9%,transparent)}.hanon-records-gap td{text-align:center;letter-spacing:.35em;color:color-mix(in srgb,var(--ink) 45%,var(--cream));font-weight:800;border-bottom:0;padding-top:.2rem;padding-bottom:.2rem}.hanon-records-placeholder{color:color-mix(in srgb,var(--ink) 48%,var(--cream));text-align:center}.hanon-records-rank{width:2.2rem;font-weight:800;color:color-mix(in srgb,var(--ink) 40%,var(--green))}.hanon-records-player{display:flex;align-items:center;gap:.65rem;min-width:0}.hanon-records-avatar{width:2rem;height:2rem;border-radius:999px;object-fit:cover;flex:0 0 auto;background:color-mix(in srgb,var(--green) 55%,var(--cream))}.hanon-records-avatar.is-fallback{display:grid;place-items:center;color:var(--cream);font-size:.85rem;font-weight:800}.hanon-records-player-meta{display:grid;gap:.1rem;min-width:0}.hanon-records-name{font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hanon-records-instrument{font-size:.82rem;color:color-mix(in srgb,var(--ink) 50%,var(--cream));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hanon-records-time{font-variant-numeric:tabular-nums;font-weight:800;color:color-mix(in srgb,var(--ink) 35%,var(--green))}.practice-keyboard-overlay .piano-key[role=button]{cursor:pointer}@media(max-width:900px){.chords-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.chords-grid{grid-template-columns:1fr}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-main:has(>.metronome-page){overflow:hidden}.app-main>.metronome-page{flex:1;min-height:0}.metronome-page{display:grid;grid-template-rows:auto auto auto;align-content:center;justify-items:stretch;gap:clamp(2px,.7vh,8px);min-width:0;height:100%;padding:clamp(8px,1.4vh,14px) clamp(14px,2.2vw,24px) clamp(10px,1.6vh,16px);border-radius:28px;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,var(--cream) 58%,white),transparent 46%),color-mix(in srgb,var(--cream) 46%,white);color:var(--ink);box-sizing:border-box}.metronome-readout{display:grid;justify-items:center;gap:8px;margin-bottom:-2px}.metronome-tempo{display:grid;justify-items:center;gap:2px}.metronome-tempo strong{font-size:clamp(3.4rem,8vw,5.2rem);font-weight:800;line-height:.9;letter-spacing:.01em}.metronome-tempo span{color:color-mix(in srgb,var(--ink) 58%,var(--cream));font-size:clamp(1rem,2.2vw,1.35rem);font-weight:800;letter-spacing:.12em}.metronome-beats{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.metronome-beat{width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--ink) 22%,var(--cream));transition:background 80ms ease,transform 80ms ease}.metronome-beat.is-down{background:color-mix(in srgb,var(--red) 42%,var(--cream))}.metronome-beat.is-active{background:var(--red);transform:scale(1.2)}.metronome-stage{display:grid;place-items:center;min-width:0;min-height:0}.metronome-assembly{position:relative;width:min(100%,54vh,380px);aspect-ratio:572 / 882}.metronome-layer{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.metronome-body{z-index:1}.metronome-arm{z-index:2;transform:rotate(0);transform-origin:50% 100%}.metronome-cover{z-index:3}.metronome-page.is-playing .metronome-arm{animation:metronome-swing var(--metronome-beat, .6s) ease-in-out infinite alternate}@keyframes metronome-swing{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}.metronome-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;min-width:0;margin-top:-2px}.metronome-slider{display:grid;min-width:0}.metronome-page input,.metronome-page button,.metronome-page select{outline:none;box-shadow:none}.metronome-page input:focus,.metronome-page button:focus,.metronome-page select:focus,.metronome-page input:focus-visible,.metronome-page button:focus-visible,.metronome-page select:focus-visible{outline:none;box-shadow:none}.metronome-slider input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;margin:0;border-radius:999px;background:color-mix(in srgb,var(--ink) 16%,var(--cream));outline:none}.metronome-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border:0;border-radius:50%;background:var(--red);cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--red) 35%,transparent)}.metronome-slider input[type=range]::-moz-range-thumb{width:18px;height:18px;border:0;border-radius:50%;background:var(--red);cursor:pointer}.metronome-slider input[type=range]::-moz-range-track{height:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 16%,var(--cream))}select{appearance:none;-webkit-appearance:none;width:100%;height:44px;padding:0 40px 0 14px;border:1px solid color-mix(in srgb,var(--ink) 18%,var(--cream));border-radius:14px;background-color:color-mix(in srgb,var(--cream) 20%,white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%231A1A1A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;outline:none;box-shadow:none;transition:border-color .16s ease,background-color .16s ease}select:hover{border-color:color-mix(in srgb,var(--ink) 32%,var(--cream));background-color:color-mix(in srgb,var(--cream) 28%,white)}select:focus,select:focus-visible{outline:none;border-color:color-mix(in srgb,var(--ink) 28%,var(--cream));box-shadow:none}select option{color:var(--ink);background:color-mix(in srgb,var(--cream) 42%,white);font-weight:650}.metronome-menu{position:relative;z-index:2}.metronome-menu-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:104px;height:48px;padding:0 14px;border:1px solid color-mix(in srgb,var(--ink) 14%,var(--cream));border-radius:16px;background:color-mix(in srgb,var(--cream) 30%,white);color:var(--ink);font:inherit;font-size:1rem;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease}.metronome-menu-trigger:hover{background:color-mix(in srgb,var(--cream) 42%,white);border-color:color-mix(in srgb,var(--ink) 24%,var(--cream))}.metronome-menu-chevron{width:10px;height:10px;border-right:2px solid color-mix(in srgb,var(--ink) 55%,var(--cream));border-bottom:2px solid color-mix(in srgb,var(--ink) 55%,var(--cream));transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}.metronome-menu.is-open .metronome-menu-chevron{transform:rotate(225deg) translateY(-1px)}.metronome-menu-list{position:absolute;right:0;bottom:calc(100% + 8px);z-index:8;display:grid;gap:4px;margin:0;padding:6px;list-style:none;min-width:100%;border:1px solid color-mix(in srgb,var(--ink) 12%,var(--cream));border-radius:16px;background:color-mix(in srgb,var(--cream) 38%,white);box-shadow:0 16px 36px color-mix(in srgb,var(--ink) 16%,transparent)}.metronome-menu.is-drop-down .metronome-menu-list{top:calc(100% + 8px);bottom:auto}.metronome-menu-option{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 12px;border:0;border-radius:12px;outline:none;box-shadow:none;background:transparent;color:var(--ink);font:inherit;font-weight:750;cursor:pointer;text-align:left}.metronome-menu-option:focus,.metronome-menu-option:focus-visible{outline:none;box-shadow:none}.metronome-menu-option:hover:not(.is-selected){background:color-mix(in srgb,var(--ink) 8%,var(--cream));color:var(--ink)}.metronome-menu-option.is-selected{background:color-mix(in srgb,var(--red) 28%,var(--cream));color:var(--ink)}.metronome-menu-option.is-selected:hover{background:color-mix(in srgb,var(--red) 28%,var(--cream))}.metronome-toggle{min-width:132px;height:48px;padding:0 22px;border:0;border-radius:16px;background:var(--red);color:var(--cream);font-size:.95rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:filter .16s ease}.metronome-toggle:hover{filter:brightness(1.06)}@media(max-width:900px){.metronome-assembly{width:min(100%,280px)}}@media(max-width:640px){.metronome-controls{grid-template-columns:1fr}.metronome-menu,.metronome-menu-trigger,.metronome-toggle{width:100%}.metronome-menu-list{left:0;right:0}.metronome-assembly{width:min(100%,240px)}}.app-main .card,.app-main .account-card,.app-main .string-player,.app-main .debug-panel{box-shadow:none;border-radius:24px;background:var(--panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:var(--cream)}.account-page.auth-page,.account-page.legal-page{min-height:100vh;display:grid;place-items:center;margin:0 auto;padding:24px 0;box-sizing:border-box}.brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid var(--panel-border);color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.live-dot{width:8px;height:8px;display:inline-block;margin-right:8px;border-radius:50%;background:var(--green);transition:background .18s ease,box-shadow .18s ease}.listening .live-dot{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft),0 0 18px color-mix(in srgb,var(--accent) 45%,transparent)}.card{position:relative;overflow:hidden;padding:clamp(24px,6vw,48px);text-align:center;border:1px solid var(--panel-border);border-radius:32px;background:var(--panel);box-shadow:0 28px 80px #0000006b;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.eyebrow{min-height:1.3em;margin:0 0 4px;color:var(--muted);font-size:.82rem;font-weight:650;letter-spacing:.05em}.note-carousel{position:relative;min-height:190px;padding:4px 0 28px}.carousel-track{position:absolute;inset:0 0 26px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%)}.carousel-note{position:absolute;left:50%;top:50%;width:min(42vw,200px);color:var(--text);opacity:var(--note-opacity);text-align:center;transform:translate(-50%,-50%) translate(calc(var(--offset) * clamp(96px,24vw,132px))) scale(var(--note-scale));transform-origin:center center;transition:transform .52s cubic-bezier(.22,1,.36,1),opacity .42s ease,color .22s ease;will-change:transform,opacity}.carousel-note.is-side .note{font-size:clamp(3.2rem,14vw,5.2rem);font-weight:700}.note{line-height:.9;font-size:clamp(7.5rem,28vw,11rem);font-weight:760;letter-spacing:-.08em;text-shadow:0 0 60px color-mix(in srgb,var(--accent) 12%,transparent)}.note sup{position:absolute;margin:.2em 0 0 .15em;color:var(--muted);font-size:.2em;font-weight:650;letter-spacing:0}.on-pitch .carousel-note.is-center{color:var(--emphasis-text)}.carousel-idle{position:absolute;left:50%;top:48%;display:grid;place-items:center;width:120px;height:120px;color:var(--muted);border:1px dashed color-mix(in srgb,var(--muted) 35%,transparent);border-radius:50%;opacity:.72;transform:translate(-50%,-50%);animation:carousel-idle-pulse 2.4s ease-in-out infinite}.carousel-idle .material-symbols-outlined{font-size:54px;font-variation-settings:"FILL" 0,"wght" 300}@keyframes carousel-idle-pulse{0%,to{opacity:.55;transform:translate(-50%,-50%) scale(.96)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1)}}.carousel-directions{position:absolute;inset:auto 8% 5px;display:flex;justify-content:space-between;color:var(--muted);font-size:.58rem;font-weight:650;letter-spacing:.06em;opacity:.68;text-transform:uppercase}.frequency{height:1.5em;margin-bottom:28px;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.tuner{position:relative;height:72px;margin:0 auto 30px}.scale{position:absolute;z-index:1;inset:25px 0 auto;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--green) 8%,var(--green) 92%,transparent)}.scale:before{content:"";position:absolute;left:50%;top:-8px;width:2px;height:18px;border-radius:2px;background:var(--accent);transform:translate(-50%)}.tune-zone{position:absolute;left:45.2%;top:13px;width:9.6%;height:26px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:8px;background:var(--accent-soft)}.ticks{position:absolute;z-index:1;inset:18px 6% auto;display:flex;justify-content:space-between}.ticks i{width:1px;height:14px;background:var(--green)}.needle{position:absolute;z-index:2;left:50%;top:8px;width:4px;height:36px;border-radius:4px;opacity:0;background:var(--text);box-shadow:0 0 16px #f2f4e859;transform:translate(-50%);transition:left .36s cubic-bezier(.2,.8,.25,1),opacity .16s ease,background .16s ease}.has-pitch .needle{opacity:1}.on-pitch .needle{background:var(--accent)}.labels{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}.btn{min-width:190px;padding:15px 22px;border-radius:999px;color:var(--accent-contrast);background:var(--accent);box-shadow:0 8px 30px color-mix(in srgb,var(--accent) 28%,transparent);font-weight:750;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 11px 36px color-mix(in srgb,var(--accent) 38%,transparent)}.btn:active{transform:translateY(0)}.btn:disabled{cursor:wait;opacity:.55}.listening .btn{color:var(--text);background:#f2f4e817;box-shadow:inset 0 0 0 1px var(--panel-border)}.error{min-height:1.4em;margin:18px 0 0;color:var(--danger);font-size:.8rem}.help{margin:18px auto 0;padding:0 18px;color:var(--muted);font-size:.74rem;line-height:1.6;text-align:center}.string-player{margin-top:18px;padding:18px;border:1px solid var(--panel-border);border-radius:18px;background:var(--panel);text-align:center}.string-player>div:first-child{display:flex;justify-content:space-between;margin-bottom:14px}.string-player>div:first-child strong{font-size:.82rem}.string-player>div:first-child span{color:var(--muted);font-size:.72rem}.string-options{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:14px}.string-options button{min-width:0;padding:10px 4px;color:var(--muted);border-radius:10px;background:var(--surface-soft);box-shadow:none}.string-options button:hover,.string-options button.selected{color:var(--text);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);transform:none}.string-options button.playing{color:var(--accent-contrast);background:var(--accent);box-shadow:none}.string-error{min-height:1em;margin:9px 0 0;color:var(--danger);font-size:.7rem}.account-page{width:min(92vw,460px)}.profile-page{width:min(100%,520px);margin:0 auto}.account-card{padding:clamp(26px,7vw,42px);border:1px solid var(--panel-border);border-radius:28px;background:var(--panel);box-shadow:0 28px 80px #0000005c;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.account-kicker{margin:0 0 8px;color:var(--emphasis-text);font-size:.7rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.account-card h1{margin:0;font-size:clamp(2rem,8vw,3rem);letter-spacing:-.05em}.auth-header{text-align:center}.auth-brand{margin:0;font-size:clamp(2rem,8vw,3rem);letter-spacing:-.05em}.auth-subtitle{margin:8px 0 0;color:var(--muted);font-size:.82rem;font-weight:650;letter-spacing:.01em}.account-card>p:not(.account-kicker,.form-error,.profile-message){color:var(--muted);font-size:.82rem;line-height:1.5}.account-card form{display:grid;gap:14px;margin:24px 0 10px;min-width:0}.account-card label{display:grid;gap:7px;min-width:0;color:var(--muted);font-size:.72rem;font-weight:650}.account-card input{box-sizing:border-box;width:100%;min-height:46px;padding:12px 14px;color:var(--cream);border:1px solid color-mix(in srgb,var(--cream) 28%,transparent);border-radius:14px;outline:0;background:var(--bg);font:inherit;transition:border-color .16s ease,box-shadow .16s ease}.account-card input::placeholder{color:var(--muted)}.account-card input:hover{border-color:color-mix(in srgb,var(--cream) 42%,transparent)}.account-card input:focus{border-color:var(--cream);box-shadow:0 0 0 3px color-mix(in srgb,var(--cream) 14%,transparent)}.auth-footer{display:grid;gap:10px;margin-top:6px;text-align:center}.auth-footer a{color:var(--link);font-size:.75rem}.auth-privacy-link{color:var(--muted)!important;font-size:.72rem!important}.auth-consent-notice{margin:0 0 16px;padding:12px 14px;color:var(--muted);font-size:.78rem;line-height:1.45;border:1px solid var(--panel-border);border-radius:12px;background:var(--surface-soft)}.auth-consent-link{padding:0;color:var(--link);font:inherit;font-weight:650;text-decoration:underline;background:none;border:0;cursor:pointer}.cookie-banner{position:fixed;z-index:40;inset:auto 0 0;padding:0 max(16px,env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.cookie-banner__panel{width:min(100%,720px);margin:0 auto;padding:18px 20px;border:1px solid var(--panel-border);border-radius:18px;background:var(--panel);box-shadow:0 18px 60px #00000059;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.cookie-banner__title{margin:0 0 8px;font-size:1rem}.cookie-banner__text{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.cookie-banner__text a{color:var(--link)}.cookie-banner__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.cookie-banner__accept,.cookie-banner__reject{min-height:42px;padding:0 18px;border-radius:11px;font:inherit;font-weight:650;cursor:pointer}.cookie-banner__accept{color:var(--accent-contrast);background:var(--accent);border:0}.cookie-banner__reject{color:var(--text);background:transparent;border:1px solid var(--panel-border)}.legal-page{width:min(calc(100vw - 32px),720px)}.legal-card{text-align:left}.legal-content{display:grid;gap:14px;margin-top:20px;color:var(--muted);font-size:.84rem;line-height:1.55}.legal-content h2{margin:8px 0 0;color:var(--text);font-size:.92rem}.legal-content ul{margin:0;padding-left:18px}.legal-content a{color:var(--link)}.legal-back{display:inline-block;margin-top:20px;color:var(--link);font-size:.78rem}.form-error,.profile-message{min-height:1.2em;margin:0;color:var(--danger);font-size:.72rem}.profile-message{color:var(--muted);text-align:center}.profile-panel{display:grid;gap:16px;margin:0}.profile-display-name{margin:-2px 0 0;color:var(--ink);font-size:1.35rem;font-weight:800;letter-spacing:.02em;text-align:center;text-transform:uppercase;word-break:break-word}.profile-display-name-text{white-space:pre-wrap}.profile-display-name-initial{color:var(--red)}.profile-instrument-field{margin-top:-4px}.profile-avatar-ring{position:relative;width:144px;height:144px;display:grid;place-items:center;margin:0 auto 4px}.profile-avatar-ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none;z-index:0}.profile-avatar-ring-track,.profile-avatar-ring-value{fill:none;stroke-width:1.65}.profile-avatar-ring-track{stroke:color-mix(in srgb,var(--ink) 16%,var(--cream))}.profile-avatar-ring-value{stroke:var(--red);stroke-linecap:round;transition:stroke-dasharray .24s ease}.profile-level-badge{position:absolute;right:6px;bottom:6px;z-index:2;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:var(--cream);background:var(--red);border:3px solid var(--cream);box-shadow:0 2px 8px color-mix(in srgb,var(--bg) 28%,transparent);font-size:.92rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;pointer-events:none}.avatar-drop{position:relative;z-index:1;width:104px;height:104px;min-width:104px;max-width:104px;aspect-ratio:1;flex-shrink:0;display:grid;margin:0;overflow:hidden;place-items:center;padding:0;border:0;border-radius:50%;color:var(--cream);background:var(--red);box-shadow:none;cursor:pointer;font-size:2.2rem;font-weight:800;transition:transform .18s ease,opacity .18s ease}.avatar-drop:hover,.avatar-drop.is-dragging{transform:translateY(-1px);opacity:.96}.avatar-drop.has-image{background:color-mix(in srgb,var(--ink) 12%,var(--cream))}.avatar-drop img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}.avatar-drop-hint{position:absolute;inset:0;display:grid;place-items:center;padding:14px;text-align:center;color:var(--cream);background:color-mix(in srgb,var(--bg) 72%,transparent);font-size:.68rem;font-weight:650;line-height:1.35;opacity:0;transition:opacity .18s ease}.avatar-drop:hover .avatar-drop-hint,.avatar-drop.is-dragging .avatar-drop-hint{opacity:1}.profile-field{display:grid;gap:6px;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.78rem;font-weight:650}.profile-field input,.profile-field textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid color-mix(in srgb,var(--ink) 28%,var(--cream));border-radius:12px;color:var(--ink);background:color-mix(in srgb,var(--cream) 55%,white);font:inherit;font-size:.95rem;font-weight:650;resize:vertical}.profile-field input:focus,.profile-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 10%,transparent)}.profile-divider{height:1px;margin:8px 0 4px;background:color-mix(in srgb,var(--ink) 16%,var(--cream))}.profile-settings{display:grid;gap:12px}.profile-settings h2{margin:0;color:var(--ink);font-size:1.15rem;font-weight:800}.profile-settings-tabs{display:flex;flex-wrap:wrap;gap:16px;border-bottom:1px solid color-mix(in srgb,var(--ink) 14%,var(--cream))}.profile-settings-tabs button{position:relative;padding:8px 0 10px;color:color-mix(in srgb,var(--ink) 48%,var(--cream));font-size:.9rem;font-weight:700}.profile-settings-tabs button.is-active{color:var(--ink)}.profile-settings-tabs button.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--red)}.profile-settings-panel{min-height:120px;display:grid;border:1px solid color-mix(in srgb,var(--ink) 12%,var(--cream));border-radius:16px;background:color-mix(in srgb,var(--cream) 55%,white)}.profile-settings-panel .empty-state{color:color-mix(in srgb,var(--ink) 45%,var(--cream))}.profile-settings-panel .empty-state .material-symbols-outlined{color:color-mix(in srgb,var(--ink) 35%,var(--green))}.profile-admin-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 16px;border:1px solid color-mix(in srgb,var(--green) 40%,transparent);border-radius:14px;color:var(--ink);text-decoration:none;font-weight:700;background:color-mix(in srgb,var(--cream) 8%,transparent);transition:background .16s ease,border-color .16s ease}.profile-admin-link:hover{background:color-mix(in srgb,var(--cream) 14%,transparent);border-color:color-mix(in srgb,var(--green) 65%,transparent)}.admin-hub{color:var(--ink)}.admin-users-page,.admin-chords-page{display:grid;gap:16px;width:100%;max-width:100%;min-width:0;color:var(--ink);box-sizing:border-box}.admin-users-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;width:100%;max-width:100%;min-width:0}.admin-user-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;gap:14px;width:100%;max-width:100%;min-width:0;padding:12px;border-radius:18px;background:color-mix(in srgb,var(--cream) 55%,white);box-sizing:border-box;transition:background .18s ease,transform .18s ease}.admin-user-card:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--cream) 35%,white)}.admin-user-card.is-banned{opacity:.78}.admin-user-avatar{align-self:stretch;aspect-ratio:1;width:auto;height:100%;min-height:112px;max-width:148px;border-radius:14px;object-fit:cover}.admin-user-avatar-fallback{display:inline-grid;place-items:center;color:var(--cream);background:var(--green);font-size:1.8rem;font-weight:800;line-height:1}.admin-user-copy{display:grid;gap:8px;min-width:0;align-content:start;padding:2px 0}.admin-user-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.admin-user-heading h3{margin:0;font-size:1.08rem;font-weight:800}.admin-user-role,.admin-user-banned{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;color:var(--cream);font-size:.68rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.admin-user-role{background:var(--green)}.admin-user-banned{background:var(--red)}.admin-user-bio{margin:0;color:color-mix(in srgb,var(--ink) 72%,var(--cream));font-size:.92rem;line-height:1.45}.admin-user-styles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.admin-user-style{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;color:var(--cream);background:var(--red);font-size:.74rem;font-weight:650}.admin-user-meta{margin:0;color:color-mix(in srgb,var(--ink) 48%,var(--cream));font-size:.8rem;font-weight:650}.admin-user-actions{display:grid;gap:8px;align-content:center;min-width:104px}.admin-user-action{min-height:40px;padding:0 14px;border-radius:12px;font-weight:750;transition:opacity .15s ease,transform .15s ease}.admin-user-action:hover:not(:disabled){transform:translateY(-1px)}.admin-user-action:disabled{cursor:not-allowed;opacity:.4}.admin-user-action.is-ban{color:var(--ink);background:color-mix(in srgb,var(--cream) 70%,white);border:1px solid color-mix(in srgb,var(--ink) 18%,transparent)}.admin-user-action.is-delete{color:var(--cream);background:var(--red)}@media(max-width:720px){.admin-user-card{grid-template-columns:auto minmax(0,1fr)}.admin-user-actions{grid-column:1 / -1;grid-template-columns:1fr 1fr;min-width:0}.admin-user-avatar{min-height:96px;max-width:112px}}.admin-page{display:grid;gap:20px;min-width:0;color:var(--ink)}@media(min-width:900px){.admin-page{grid-template-columns:minmax(220px,.9fr) minmax(0,1.4fr);align-items:start}}.admin-list-panel,.admin-form-panel{display:grid;gap:14px;min-width:0;overflow:visible}.admin-list-panel{padding-inline:2px}.admin-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-list-header h2,.admin-form-panel h2{margin:0;font-size:1.05rem}.admin-new-btn{width:auto;min-height:40px;margin-top:0;padding:0 14px}.admin-song-item{width:100%;text-align:left;cursor:pointer;font:inherit}.admin-song-item.is-selected{background:color-mix(in srgb,var(--cream) 22%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 55%,transparent)}.admin-song-item.is-selected .songs-catalog-art{background:var(--red)}.admin-song-item .songs-catalog-art{width:52px;height:52px}.admin-song-item .songs-catalog-art .material-symbols-outlined{font-size:1.4rem}.admin-hint{margin:0;color:color-mix(in srgb,var(--ink) 62%,var(--cream));font-size:.9rem;line-height:1.45}.admin-hint code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em}.admin-hint a{color:var(--green)}.app-main:has(>.admin-chords-editor){overflow:hidden}.app-main>.admin-chords-editor{flex:1;min-height:0}.admin-chords-editor{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;width:100%;height:100%;min-width:0;min-height:0;color:var(--ink)}.admin-chord-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.admin-chord-toolbar-actions,.admin-chord-tabs{display:flex;flex-wrap:wrap;gap:8px}.admin-chord-tab{min-height:40px;padding:0 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--cream) 28%,transparent);background:color-mix(in srgb,var(--cream) 10%,var(--bg));color:var(--cream);font:inherit;font-weight:650;cursor:pointer}.admin-chord-tab.is-active,.admin-chord-tab[aria-selected=true]{background:color-mix(in srgb,var(--green) 70%,var(--bg));border-color:color-mix(in srgb,var(--cream) 40%,transparent)}.admin-chord-board{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;min-height:0;height:100%}.admin-chord-roots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-height:0;height:100%}.admin-chord-root-col{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;height:100%;padding:8px;border-radius:16px;background:color-mix(in srgb,var(--cream) 42%,white);box-sizing:border-box}.admin-chord-root-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:0 2px}.admin-chord-root-head h3{margin:0;font-size:1.05rem;font-weight:800}.admin-chord-root-head span{color:color-mix(in srgb,var(--ink) 45%,var(--cream));font-size:.78rem;font-weight:700}.admin-chord-root-empty{margin:0;padding:8px 2px;color:color-mix(in srgb,var(--ink) 45%,var(--cream));font-size:.82rem}.admin-chord-root-list{list-style:none;margin:0;padding:0 2px 2px;display:grid;gap:6px;align-content:start;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.admin-chord-root-list::-webkit-scrollbar{width:0;height:0;display:none}.admin-chord-list-item{display:grid;min-width:0;cursor:grab}.admin-chord-list-item:active{cursor:grabbing}.admin-chord-list-item.is-dragging{height:0;min-height:0;margin:0;overflow:hidden;opacity:0;pointer-events:none}.admin-chord-drop-ghost{list-style:none;min-width:0}.admin-chord-chip{display:grid;gap:1px;width:100%;min-width:0;padding:8px;border:0;border-radius:12px;text-align:left;color:var(--ink);background:color-mix(in srgb,var(--cream) 22%,white);font:inherit;cursor:grab;user-select:none;touch-action:none;box-sizing:border-box;-webkit-user-select:none}.admin-chord-chip:hover{background:color-mix(in srgb,var(--cream) 8%,white)}.admin-chord-chip:active{cursor:grabbing}.admin-chord-chip.is-selected{background:color-mix(in srgb,var(--cream) 8%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 55%,transparent)}.admin-chord-chip.is-ghost{pointer-events:none;opacity:.95;background:color-mix(in srgb,var(--green) 28%,var(--cream));box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 45%,transparent),0 8px 18px color-mix(in srgb,var(--ink) 16%,transparent);transform:scale(1.02)}.admin-chord-chip-symbol{font-size:.9rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-chord-chip-meta{color:color-mix(in srgb,var(--ink) 50%,var(--cream));font-size:.72rem;font-weight:650}.admin-chord-chip.is-hidden .admin-chord-chip-meta{color:color-mix(in srgb,var(--red) 55%,var(--ink))}.admin-chord-workspace{display:grid;gap:12px;min-width:0;padding:14px;border-radius:18px;background:color-mix(in srgb,var(--cream) 42%,white);box-sizing:border-box}.admin-chord-workspace-head h2{margin:0 0 4px;font-size:1.05rem}.admin-chord-workspace-fields{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:12px 18px;align-items:start}.admin-chord-hide-field .admin-chord-hide-row{display:flex;align-items:center;gap:10px;min-height:46px;box-sizing:border-box}.admin-chord-hide-field input[type=checkbox]{width:18px;height:18px;margin:0;flex:0 0 auto;accent-color:var(--green);cursor:pointer}.admin-chord-hide-field .profile-check-hint{margin:0}.admin-chord-workspace-editor{min-width:0;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--cream) 18%,white)}.chord-editor-fretted,.chord-editor-piano{min-width:0}.chord-editor-svg{width:100%;max-width:280px;height:auto;display:block;touch-action:manipulation}.chord-editor-svg-wide{max-width:none;width:auto}.admin-chord-workspace-editor .piano-keyboard-scroll{max-width:100%;display:flex;justify-content:center}.admin-chord-workspace-editor .chord-editor-svg-wide{flex:0 0 auto}.chord-editor-hit{fill:transparent;cursor:pointer}.chord-editor-hit.is-active{fill:transparent}.chord-editor-base-fret{max-width:140px;margin-bottom:10px}.admin-chord-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.admin-chord-actions .profile-save{width:auto;flex:1 1 160px}.admin-chord-actions .admin-user-action{min-height:50px;padding:0 16px}@media(max-width:1100px){.admin-chord-roots{grid-template-columns:repeat(4,minmax(0,1fr));overflow-y:auto;height:auto;max-height:42vh}.admin-chord-root-col{height:auto;min-height:140px}}@media(max-width:720px){.admin-chord-roots{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-chord-workspace-fields{grid-template-columns:1fr}}.profile-check{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:.95rem;cursor:pointer}.profile-check input{width:18px;height:18px;margin-top:2px;flex:0 0 auto;accent-color:var(--green)}.profile-check-copy{display:grid;gap:2px;min-width:0}.profile-check-title{font-weight:700;color:var(--ink)}.profile-check-hint{color:color-mix(in srgb,var(--ink) 62%,var(--cream));font-size:.85rem;line-height:1.35}.profile-save{width:100%;min-width:0;min-height:50px;display:inline-flex;align-items:center;justify-content:center;margin-top:4px;border-radius:14px;color:var(--cream);background:var(--red);font-weight:750;transition:opacity .15s ease,transform .15s ease}.profile-save:hover:not(:disabled){transform:translateY(-1px)}.profile-save:disabled{cursor:not-allowed;opacity:.45;transform:none}.music-styles{margin:0;padding:0;border:0;text-align:left}.music-styles legend{margin-bottom:8px;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.78rem;font-weight:650}.music-style-options{display:flex;flex-wrap:wrap;gap:8px}.music-style-options button{min-width:0;padding:8px 14px;color:var(--ink);border-radius:999px;border:1px solid color-mix(in srgb,var(--ink) 22%,var(--cream));background:color-mix(in srgb,var(--cream) 55%,white);box-shadow:none;font-size:.78rem;font-weight:650}.music-style-options button:hover{border-color:color-mix(in srgb,var(--ink) 40%,var(--cream))}.music-style-options button.selected{color:var(--cream);border-color:var(--red);background:var(--red)}.account-card button,.string-player button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.debug-panel{margin-top:18px;overflow:hidden;border:1px solid var(--panel-border);border-radius:18px;background:var(--panel);box-shadow:0 18px 50px #0003}.debug-panel summary{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;color:var(--muted);cursor:pointer;font-size:.72rem;font-weight:750;letter-spacing:.1em;list-style:none;text-transform:uppercase}.debug-panel summary::-webkit-details-marker{display:none}.debug-state{width:7px;height:7px;display:inline-block;margin-left:7px;border-radius:50%;background:var(--green)}.debug-state.state-capturing{background:var(--cream);box-shadow:0 0 10px color-mix(in srgb,var(--cream) 45%,transparent)}.debug-state.state-locked{background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}.debug-actions{display:flex;gap:4px}.debug-panel .clear-log,.debug-panel .copy-log{min-width:0;padding:5px 8px;color:var(--muted);border-radius:6px;background:transparent;box-shadow:none;font-size:.65rem;letter-spacing:.04em}.debug-panel .clear-log:hover,.debug-panel .copy-log:hover{color:var(--text);background:var(--surface-soft);box-shadow:none;transform:none}.debug-section-title{margin:0;padding:.55rem .9rem .2rem;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.debug-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,1fr));border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border)}.metric{min-width:0;padding:.7rem .8rem;border-right:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border)}.metric:last-child{border-right:0}.metric span,.metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric span{margin-bottom:5px;color:var(--muted);font-size:.63rem}.metric strong{color:var(--cream);font-size:.75rem;font-variant-numeric:tabular-nums}.input-level{padding:13px 18px;border-bottom:1px solid var(--panel-border)}.input-level-label{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:.64rem;font-variant-numeric:tabular-nums}.level-track{height:4px;overflow:hidden;border-radius:5px;background:var(--surface-soft)}.level-track i{width:0;height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 72%,var(--green)),var(--accent));transition:width .1s linear}.debug-empty-hint{margin:0;padding:.55rem .9rem .85rem;color:var(--muted);font-size:.8rem;line-height:1.4}.debug-compare-wrap{max-height:240px;overflow:auto;border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border)}.debug-compare-table{width:100%;border-collapse:collapse;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;color:var(--cream)}.debug-compare-table th,.debug-compare-table td{padding:.35rem .55rem;text-align:left;white-space:nowrap;border-bottom:1px solid color-mix(in srgb,var(--panel-border) 80%,transparent)}.debug-compare-table th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--bg) 88%,var(--green));color:var(--muted);font-weight:700}.debug-compare-table tr.is-hit td{color:color-mix(in srgb,var(--cream) 70%,var(--green))}.debug-compare-table tr.is-miss td{color:color-mix(in srgb,var(--cream) 55%,var(--red))}.event-log{max-height:190px;overflow-y:auto;padding:8px 0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem}.event-log>p{margin:12px 18px;color:var(--muted)}.event-row{display:grid;grid-template-columns:70px 1fr;gap:8px;padding:6px 18px}.event-row time{color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:1200px){.app-shell{grid-template-columns:228px minmax(0,1fr);width:min(100% - 24px,1280px)}.app-stage{grid-template-columns:minmax(0,1fr) 240px;column-gap:18px}.stage-header-rule-wrap{width:calc(100% - 258px)}}@media(max-width:960px){.app-shell{grid-template-columns:1fr;width:min(100% - 24px,720px);height:auto;max-height:none;overflow:visible;padding:12px 0 20px;padding-top:calc(64px + env(safe-area-inset-top))}.shell-menu-toggle{position:fixed;z-index:40;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));display:inline-grid}.shell-backdrop{position:fixed;z-index:30;inset:0;display:block;min-width:0;width:auto;height:auto;padding:0;border:0;border-radius:0;color:transparent;background:#080a067a;box-shadow:none;cursor:pointer}.shell-backdrop:hover,.shell-backdrop:active{transform:none;box-shadow:none;background:#080a067a}.app-sidebar{position:fixed;z-index:35;top:0;left:0;width:min(240px,82vw);height:100vh;height:100dvh;padding:22px 0 22px 12px;border-radius:0 24px 24px 0;background:var(--bg);transform:translate(-105%);transition:transform .2s ease}.app-shell.is-menu-open .app-sidebar{transform:translate(0)}.shell-nav a,.shell-nav-soon,.shell-account-link,.shell-logout{border-radius:16px 0 0 16px}.app-stage{grid-template-columns:1fr;grid-template-rows:none;height:auto;overflow:visible;padding:18px 16px 20px;border-radius:24px}.stage-header,.app-main,.app-rail{grid-column:auto;grid-row:auto}.stage-header-rule-wrap{width:100%}.stage-header-top{flex-wrap:wrap}.stage-title{white-space:normal}.app-main{overflow:visible}.app-main:has(>.home-page){overflow:visible}.app-main>.home-page{flex:none}.home-page{height:auto;grid-template-rows:auto auto}.home-lower{grid-template-rows:auto auto}.home-columns,.home-overview-grid{grid-template-columns:1fr}.home-overview,.home-overview-grid,.home-overview-card,.home-feature-slider,.home-feature-viewport,.home-feature-slide-wrap,.home-feature-slide{height:auto}.home-feature-slider{--feature-peek: clamp(40px, 18%, 88px);--feature-gap: 10px;display:grid;grid-template-rows:auto auto}.home-feature-media{aspect-ratio:16 / 9;max-height:min(280px,38vh);height:auto}.home-overview-art{aspect-ratio:4 / 3}.home-overview-card{grid-template-rows:auto 1fr}.app-rail{height:auto}.rail-stack{min-height:0;overflow:auto}.rail-section-panel{flex:0 0 auto;transition:border-color .24s ease,background .24s ease}.rail-section-body{max-height:220px;transition:max-height .32s cubic-bezier(.22,1,.36,1)}.rail-stack.is-focus-0 .rail-section-panel:nth-child(1) .rail-section-body,.rail-stack.is-focus-1 .rail-section-panel:nth-child(2) .rail-section-body,.rail-stack.is-focus-2 .rail-section-panel:nth-child(3) .rail-section-body{max-height:360px}.rail-stack.is-focus-0 .rail-section-panel:nth-child(2) .rail-section-body,.rail-stack.is-focus-0 .rail-section-panel:nth-child(3) .rail-section-body,.rail-stack.is-focus-1 .rail-section-panel:nth-child(1) .rail-section-body,.rail-stack.is-focus-1 .rail-section-panel:nth-child(3) .rail-section-body,.rail-stack.is-focus-2 .rail-section-panel:nth-child(1) .rail-section-body,.rail-stack.is-focus-2 .rail-section-panel:nth-child(2) .rail-section-body{max-height:120px}.account-page.auth-page,.account-page.legal-page{min-height:100dvh;width:min(calc(100vw - 32px),460px);padding:calc(16px + env(safe-area-inset-top)) 0 calc(24px + env(safe-area-inset-bottom))}}@media(max-width:480px){.card{padding:24px 18px;border-radius:24px}.note-carousel{min-height:185px}.frequency{margin-bottom:18px}.labels{font-size:.58rem}.string-options{grid-template-columns:repeat(3,1fr)}.string-player>div:first-child{align-items:flex-start;flex-direction:column;gap:3px}.account-card{padding:28px 22px;border-radius:22px}.debug-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.piano-learn-path .piano-learn-unit{margin-top:20px}.piano-learn-unit-title{margin:0 0 10px;color:var(--cream);font-size:1.05rem}.piano-learn-steps{margin:0;padding:0;list-style:none;display:grid;gap:10px}.piano-learn-step-link{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--cream) 22%,var(--bg));background:color-mix(in srgb,var(--green) 35%,var(--bg));color:inherit;text-decoration:none}.piano-learn-step.is-locked .piano-learn-step-link{opacity:.55}.piano-learn-step.is-done .piano-learn-step-link{border-color:color-mix(in srgb,var(--cream) 40%,var(--green))}.piano-learn-step-copy{display:grid;gap:4px;min-width:0}.piano-learn-step-copy span{color:color-mix(in srgb,var(--cream) 70%,var(--bg));font-size:.85rem}.piano-exercise-grid{align-items:stretch}.piano-exercise-card.is-locked{opacity:.92}.piano-exercise-art{position:relative}.piano-exercise-badge{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:750}.piano-exercise-badge.is-demo{color:var(--bg);background:color-mix(in srgb,var(--cream) 55%,var(--green))}.piano-exercise-badge.is-pro{color:var(--cream);background:color-mix(in srgb,var(--bg) 55%,var(--red))}.piano-exercise-badge .material-symbols-outlined{font-size:.95rem}.piano-exercise-meta{margin:4px 0 0;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.78rem}.piano-subscribe-cta{margin:18px 0 0;text-align:center}.piano-subscribe-cta a{color:var(--green);font-weight:700}.subscribe-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px}.subscribe-plan{display:grid;gap:10px;padding:20px 18px;border-radius:20px;border:1px solid color-mix(in srgb,var(--ink) 16%,var(--cream));background:color-mix(in srgb,var(--cream) 55%,white)}.subscribe-plan.is-featured{border-color:color-mix(in srgb,var(--red) 45%,var(--cream));background:color-mix(in srgb,var(--cream) 70%,white)}.subscribe-plan h3{margin:0;color:var(--ink);font-size:1.2rem}.subscribe-price{margin:0;color:var(--ink);font-size:1.55rem;font-weight:800}.subscribe-yearly{margin:-4px 0 0;color:color-mix(in srgb,var(--ink) 55%,var(--cream));font-size:.85rem}.subscribe-plan ul{margin:0;padding:0 0 0 1.1rem;display:grid;gap:6px;color:color-mix(in srgb,var(--ink) 72%,var(--cream));font-size:.9rem}.subscribe-active{margin:0 0 12px;padding:12px 14px;border-radius:14px;color:var(--cream);background:color-mix(in srgb,var(--green) 55%,var(--bg));font-weight:650}@media(max-width:720px){.subscribe-plans{grid-template-columns:1fr}}.paywall-panel{max-width:420px;margin:24px auto;padding:22px 20px;border-radius:20px;border:1px solid var(--panel-border);background:color-mix(in srgb,var(--green) 32%,var(--bg));text-align:center}.paywall-panel .profile-save{text-decoration:none}.paywall-price{font-size:1.35rem;font-weight:800;color:var(--cream)}.paywall-actions{display:grid;gap:10px;margin-top:16px}.paywall-back{color:color-mix(in srgb,var(--cream) 80%,var(--bg));font-size:.9rem}.home-onboarding{margin-bottom:18px;padding:16px 18px;border-radius:18px;border:1px solid color-mix(in srgb,var(--cream) 24%,var(--green));background:color-mix(in srgb,var(--green) 40%,var(--bg))}.home-onboarding-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.home-onboarding-header h2{margin:0;font-size:1.05rem;color:var(--cream)}.home-onboarding-skip{min-width:0;padding:6px 10px;color:color-mix(in srgb,var(--cream) 75%,var(--bg));background:transparent;box-shadow:none;font-size:.82rem}.home-onboarding-body p{margin:0 0 12px;color:color-mix(in srgb,var(--cream) 78%,var(--bg))}.home-onboarding-actions{display:flex;flex-wrap:wrap;gap:10px}.home-onboarding-link{padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--cream) 30%,var(--bg));color:var(--cream);text-decoration:none;font-weight:650}.home-onboarding-link.is-primary{background:color-mix(in srgb,var(--red) 85%,var(--bg));border-color:var(--red)}.home-onboarding-cta{max-width:280px}.song-transpose{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:4px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 18%,var(--cream));background:color-mix(in srgb,var(--cream) 55%,white)}.song-transpose-btn{min-width:36px;min-height:36px;padding:0;border-radius:10px;color:var(--ink);background:transparent;box-shadow:none;font-size:1.1rem;font-weight:700}.song-transpose-value{min-width:2.5rem;text-align:center;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
