:root{--bg:#100d19;--surface:#191123;--text:#faf5ff;--muted:#c1b2ce;--line:#4a355b;--accent:#e7cdf2;--radius:18px;--gap:16px}body{background:#191522;color:var(--text);font:400 14px Onest,sans-serif}.catalog{height:auto;display:block;padding:20px 24px;position:relative;background:#21182c;border-bottom:1px solid var(--line)}.catalog>div{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.catalog a{color:#dcbdec;text-decoration:none}.catalog b{font:600 23px Jura}.catalog span{color:var(--muted);font-size:12px}.catalog-tabs{position:static;height:auto;background:none;border:0;display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px;margin:20px 0}.catalog-tabs button{padding:10px 14px;background:#2f223d;border:1px solid #6a4a7e;color:#e9dbf2;border-radius:10px;font:600 15px Jura;cursor:pointer}.catalog-tabs button.active{background:var(--accent);color:#23162e}.catalog-select{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px}.catalog-select select{max-width:330px;padding:10px;background:#171021;color:#eee3f9;border:1px solid var(--line);border-radius:8px}.gallery{display:flex;justify-content:center;align-items:start;flex-wrap:wrap;padding:28px 24px;gap:28px;max-width:none;margin:0}.gallery>.g-panel{width:390px;height:auto}.g-panel[hidden]{display:none!important}.g-caption{font:500 14px Jura;color:#c6aedb;text-align:center;margin:0 0 12px}.g-phone{position:relative;width:390px;height:844px;border-radius:24px;overflow:hidden;background:var(--bg);isolation:isolate;box-shadow:0 18px 50px #0004}.g-phone:before{content:'';position:absolute;inset:0;z-index:-1;background:url(../design-assets/backgrounds/ritm-schedule.png) top center / 390px auto no-repeat;opacity:.7}.g-top{height:82px;display:flex;align-items:center;padding:22px 20px;gap:22px}.g-logo{width:108px;height:32px;background:url(assets/ritm-logo.svg) center / contain no-repeat}.g-back{height:42px;width:32px;border:0;background:transparent;color:#e8d9f4;font:500 25px Jura;cursor:pointer}.g-dot{margin-left:auto;width:5px;height:5px;background:#c39ee7;border-radius:50%}.g-body{height:762px;overflow:auto;padding:15px 22px 32px;scrollbar-width:thin;scrollbar-color:#5b3e70 transparent}.g-phone:has(.g-bottom) .g-body{height:680px}.g-body h1{font:650 30px/1.12 Jura;margin:5px 0 25px;letter-spacing:-.035em}.g-body h2{font:650 22px/1.2 Jura;margin:0 0 12px}.g-sub{font:500 15px/1.5 Jura;color:#c8b9d9;margin:-10px 0 24px}.g-muted{color:var(--muted);font:400 14px/1.65 Onest;margin:10px 0 22px}.g-note{font:400 12px/1.65 Onest;color:#bdadcc;margin:10px 0 18px}.g-primary,.g-secondary,.g-text{display:block;text-decoration:none;text-align:center;width:100%;min-height:48px;padding:13px 16px;font:650 18px/1.3 Jura;border-radius:24px;cursor:pointer;margin:12px 0}.g-primary{background:var(--accent);color:#21142a;border:1px solid var(--accent)}.g-secondary{border:1px solid #a58ab8;background:#1e142980;color:#ead9f5}.g-text{background:transparent;border:0;color:#d4b4e6;font-size:16px}.g-primary:disabled,.g-secondary:disabled,.g-text:disabled{opacity:.45;cursor:default}.g-card{padding:20px 18px;margin:16px 0 22px;background:#181121df;border:1px solid var(--line);border-radius:var(--radius)}.g-card p:last-child{margin-bottom:0}.g-card.glow{border-color:#aa7dd0;box-shadow:inset 0 1px 16px #74469324}.g-menu{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:600 19px Jura;cursor:pointer}.g-menu small{display:block;color:var(--muted);font:400 12px/1.6 Onest;margin-top:7px}.profile-hero{text-align:center;background:radial-gradient(at top,#38234c88,#17101e)}.g-avatar{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;background:linear-gradient(140deg,#89b7f7,#c197e1,#eaa6d6);color:#261336;border-radius:22px;font:650 34px Jura}.g-bottom{position:absolute;bottom:0;width:100%;height:82px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;background:var(--bg)}.g-bottom a,.g-bottom button{background:none;border:0;color:#c6b1d5;text-decoration:none;font:500 12px Jura;padding:15px 5px}.g-bottom .is-active{color:#ffe5ff}.g-body label{display:block;font:600 17px Jura;color:#e4d5ef;margin:18px 0}.g-body input:not([type=checkbox]),.g-body select{display:block;width:100%;padding:14px;border:1px solid #69517c;background:#1d1429;color:#f5eaff;border-radius:12px;font:500 19px Jura;margin-top:10px;min-height:48px;color-scheme:dark}.g-body input:disabled{opacity:.6}.g-body .g-check{display:flex;align-items:start;gap:12px;font:400 13px/1.6 Onest}.g-check input{width:21px;height:21px;flex-shrink:0;accent-color:#cda1ea}.g-body .g-switch{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);font:600 18px Jura}.g-switch small{display:block;font:400 12px/1.6 Onest;color:var(--muted);margin-top:6px}.g-switch input{appearance:none;flex-shrink:0;width:43px;height:25px;background:#574063;border-radius:20px;position:relative;cursor:pointer}.g-switch input:before{content:'';position:absolute;width:19px;height:19px;background:#e9d7f1;border-radius:50%;top:3px;left:3px;transition:transform .15s}.g-switch input:checked{background:#9866bb}.g-switch input:checked:before{transform:translateX(18px)}.g-feedback{font:400 13px/1.6 Onest;color:#ecc3e8}.g-month{display:flex;justify-content:space-between;font:600 16px Jura}.g-month span{font-size:13px;color:#c0aacd}.g-orbit-progress{height:220px;display:grid;place-items:center;position:relative;margin:10px 0 20px;background:url(../design-assets/backgrounds/ritm-membership.png) center 22% / 345px auto no-repeat}.g-orbit-progress>div{text-align:center}.g-orbit-progress b{font:650 65px Jura;display:block}.g-orbit-progress small{font:500 26px Jura;color:#c6b1d5}.g-orbit-progress span{font:500 14px Jura;display:block;margin-top:12px}.g-progress-track{height:5px;background:#4d365b;border-radius:5px;overflow:hidden;margin:18px 0}.g-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#70bdff,#d797ef);border-radius:5px}.g-eyebrow{font:500 10px Onest;letter-spacing:.08em;color:#ccb5dd;display:block;margin-bottom:15px}.g-big-time{font:650 44px Jura;margin:18px 0 12px;letter-spacing:-.035em}.g-big-time small{font:500 26px Jura;color:var(--muted)}.g-date{font:600 19px Jura;margin:12px 0 20px}.g-tag{display:inline-block;color:#f0bfeb;border:1px solid #89628e;border-radius:20px;padding:7px 13px;font:500 13px Jura}.g-facts{margin:22px 0}.g-facts>div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.g-facts dt{color:var(--muted)}.g-facts dd{margin:0;text-align:right;max-width:60%}.g-success{display:grid;place-items:center;margin:26px auto 34px;border:1px solid #ba91d5;border-radius:28px;background:linear-gradient(140deg,#739ff344,#e5a4de33);width:90px;height:90px;font:500 40px Jura}.g-message{border-left:2px solid #a4c6de;background:#1d1929;padding:18px;margin:24px 0}.g-message p{font:400 14px/1.6 Onest;color:#d6c6e2;margin:10px 0 0}.g-message.warm{border-color:#d8b4db}.g-timer{font:650 70px Jura;text-align:center;margin:32px 0 10px;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.g-center{text-align:center}.studio-logo{width:240px;height:64px;margin:28px 0 34px}.g-plan{display:flex;align-items:center;justify-content:space-between;gap:12px}.g-plan h2{margin:0}.g-plan b{font:650 23px Jura;white-space:nowrap}.g-visit{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.g-visit>div:first-child{width:52px;flex-shrink:0;text-align:center}.g-visit b{font:600 27px Jura;display:block}.g-visit small{font-size:10px;color:var(--muted)}.g-visit h2{font-size:19px;margin:2px 0 8px}.g-visit p{font:400 12px/1.5 Onest;color:var(--muted);margin:0}.g-segment{display:flex;border:1px solid var(--line);border-radius:14px;padding:4px;gap:4px;margin-bottom:22px}.g-segment button{width:50%;padding:10px;border:0;border-radius:10px;background:none;color:var(--muted);font:600 17px Jura;cursor:pointer}.g-segment button.selected{color:#20132a;background:var(--accent)}.g-attendance-title{font:600 19px Jura;color:#dbbfed;padding:12px 0}.g-person{padding:15px 0;border-bottom:1px solid var(--line)}.g-person h2{font-size:19px;margin:0}.g-person .g-note{margin:6px 0 10px}.g-attendance{display:flex;gap:10px}.g-attendance button{flex:1;min-height:48px;border:1px solid #6e5482;border-radius:10px;background:#21162e;color:#d8c4e8;font:600 16px Jura;cursor:pointer}.g-attendance button.selected{background:#c3b9e6;color:#1c1426;border-color:#c3b9e6}.g-attendance button[data-mark=absent].selected{background:#71596e;color:#fff}.g-scan-frame{aspect-ratio:1;border:1px solid #aa81c8;border-radius:24px;display:grid;place-items:center;margin:25px 0;background:#191021;position:relative}.g-scan-frame p{text-align:center;color:#c8b4d6;font:500 19px/1.5 Jura}.g-scan-frame span{position:absolute;left:20px;right:20px;top:50%;height:1px;background:linear-gradient(90deg,#72abfc,#d8a3ed)}.g-state-row{display:flex;gap:18px}.g-state-row strong{font:650 23px Jura}.g-state-row h2{font-size:19px;margin:0}.g-state-row .g-note{margin-bottom:0}.g-skeleton{height:110px;border-radius:16px;margin:18px 0;background:linear-gradient(110deg,#241a30,#32233e,#241a30);background-size:200% 100%;animation:sk 2s ease-in-out infinite}.pass-state{min-height:260px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(140deg,#2b1b4180,#17101ec9)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #9bc4ff;outline-offset:3px}@keyframes sk{to{background-position:200% 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:430px){.gallery{padding:20px 0}.gallery>.g-panel,.g-phone{width:100vw;max-width:390px}.g-phone{border-radius:0}.catalog{padding:16px}.catalog-select{display:block}.catalog-select select{width:100%;margin-top:8px}.g-body{padding-left:18px;padding-right:18px}}
@media(max-width:430px){.gallery>.g-panel{width:100%;max-width:390px}.g-phone{width:100%;max-width:390px}.catalog-select select{max-width:100%}}
