:root{--etude-color-callout-check-bg:#eaf1f8;--etude-color-callout-check-border:#3f6b9e;--etude-color-callout-check-label:#35597f;--etude-color-callout-ex-bg:#edf3ee;--etude-color-callout-ex-border:#4a7c4e;--etude-color-callout-ex-label:#2d5530;--etude-color-callout-key-bg:#faf3df;--etude-color-callout-key-border:#b8860b;--etude-color-callout-key-label:#8a6508;--etude-color-callout-warn-bg:#f9ebe7;--etude-color-callout-warn-border:#b04a34;--etude-color-callout-warn-label:#96432f;--etude-color-callout-why-bg:#f1eef7;--etude-color-callout-why-border:#6d5a96;--etude-color-callout-why-label:#57487c;--etude-color-danger:#a83a2a;--etude-color-danger-deep:#7a3226;--etude-color-danger-tint:#f9ebe7;--etude-color-focus-ring:#4a7c4e;--etude-color-hairline:#e6e1d5;--etude-color-hairline-strong:#d8d2c4;--etude-color-ink:#1a1a17;--etude-color-ink-faint:#a09c90;--etude-color-ink-secondary:#6a6862;--etude-color-oauth-apple-bg:#000;--etude-color-oauth-apple-hover-bg:#1a1a1a;--etude-color-oauth-apple-label:#fff;--etude-color-oauth-google-bg:#fff;--etude-color-oauth-google-border:#747775;--etude-color-oauth-google-g-blue:#4285f4;--etude-color-oauth-google-g-green:#34a853;--etude-color-oauth-google-g-red:#ea4335;--etude-color-oauth-google-g-yellow:#fbbc05;--etude-color-oauth-google-hover-bg:#eee;--etude-color-oauth-google-label:#1f1f1f;--etude-color-paper:#faf9f5;--etude-color-paper-warm:#f5f2ea;--etude-color-primary:#4a7c4e;--etude-color-primary-deep:#2d5530;--etude-color-primary-hover:#3d6740;--etude-color-primary-tint:#ecf2ed;--etude-color-secondary:#b8860b;--etude-color-secondary-deep:#8a6508;--etude-color-secondary-tint:#faf3df;--etude-color-surface:#fff;--etude-space-huge:64px;--etude-space-l:16px;--etude-space-m:12px;--etude-space-s:8px;--etude-space-xl:24px;--etude-space-xs:4px;--etude-space-xxl:32px;--etude-space-xxxl:48px;--etude-radius-full:999px;--etude-radius-l:8px;--etude-radius-m:6px;--etude-radius-s:4px;--etude-radius-xl:12px;--etude-elevation-card:0 1px 2px #1a1a170d;--etude-elevation-modal:0 20px 60px #1a1a172e;--etude-elevation-raised:0 4px 12px #1a1a1714;--etude-motion-duration-base:.3s;--etude-motion-duration-fast:.15s;--etude-motion-duration-slow:.5s;--etude-motion-easing-enter:cubic-bezier(0, 0, .2, 1);--etude-motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--etude-font-display:"Fraunces", Georgia, serif;--etude-font-mono:"JetBrains Mono", ui-monospace, monospace;--etude-font-ui:"Inter", system-ui, sans-serif;--etude-type-display-xl-family:var(--etude-font-display);--etude-type-display-xl-size:36px;--etude-type-display-xl-line-height:1.15;--etude-type-display-xl-weight:600;--etude-type-display-xl-letter-spacing:-.015em;--etude-type-display-l-family:var(--etude-font-display);--etude-type-display-l-size:26px;--etude-type-display-l-line-height:1.2;--etude-type-display-l-weight:600;--etude-type-display-l-letter-spacing:-.01em;--etude-type-display-m-family:var(--etude-font-display);--etude-type-display-m-size:20px;--etude-type-display-m-line-height:1.3;--etude-type-display-m-weight:600;--etude-type-title-family:var(--etude-font-ui);--etude-type-title-size:16px;--etude-type-title-line-height:1.4;--etude-type-title-weight:600;--etude-type-body-family:var(--etude-font-ui);--etude-type-body-size:14px;--etude-type-body-line-height:1.55;--etude-type-body-weight:400;--etude-type-body-s-family:var(--etude-font-ui);--etude-type-body-s-size:13.5px;--etude-type-body-s-line-height:1.5;--etude-type-body-s-weight:400;--etude-type-caption-family:var(--etude-font-ui);--etude-type-caption-size:12px;--etude-type-caption-line-height:1.4;--etude-type-caption-weight:500;--etude-type-micro-family:var(--etude-font-ui);--etude-type-micro-size:11px;--etude-type-micro-line-height:1.35;--etude-type-micro-weight:500;--etude-type-label-chip-family:var(--etude-font-ui);--etude-type-label-chip-size:10.5px;--etude-type-label-chip-line-height:1;--etude-type-label-chip-weight:700;--etude-type-label-chip-letter-spacing:.08em;--etude-type-label-chip-transform:uppercase;--etude-derived-annotation-shadow:0 1px 3px color-mix(in srgb, var(--etude-color-ink) 8%, transparent);--etude-derived-card-border:color-mix(in srgb, var(--etude-color-hairline) 88%, var(--etude-color-paper) 12%);--etude-derived-check-btn-border:color-mix(in srgb, var(--etude-color-primary) 47%, var(--etude-color-surface) 53%);--etude-derived-chip-border:color-mix(in srgb, var(--etude-color-primary) 14%, var(--etude-color-primary-tint) 86%);--etude-derived-close-border:color-mix(in srgb, var(--etude-color-surface) 9%, var(--etude-color-hairline-strong) 91%);--etude-derived-correct-banner-border:color-mix(in srgb, var(--etude-color-primary) 17%, var(--etude-color-primary-tint) 83%);--etude-derived-danger-hover:color-mix(in srgb, var(--etude-color-danger) 82%, black 18%);--etude-derived-dd-badge-new-bg:color-mix(in srgb, var(--etude-color-paper-warm) 67%, var(--etude-color-hairline) 33%);--etude-derived-dd-heat-0:var(--etude-color-primary-tint);--etude-derived-dd-heat-1:color-mix(in srgb, var(--etude-color-primary) 12%, var(--etude-color-primary-tint) 88%);--etude-derived-dd-heat-2:color-mix(in srgb, var(--etude-color-primary) 30%, var(--etude-color-primary-tint) 70%);--etude-derived-dd-heat-3:color-mix(in srgb, var(--etude-color-primary) 55%, var(--etude-color-primary-tint) 45%);--etude-derived-dd-heat-4:var(--etude-color-primary);--etude-derived-dd-row-divider:color-mix(in srgb, var(--etude-color-paper-warm) 93%, var(--etude-color-hairline) 7%);--etude-derived-disabled-bg:color-mix(in srgb, var(--etude-color-ink-faint) 28%, var(--etude-color-hairline-strong) 72%);--etude-derived-dismiss-hover:color-mix(in srgb, var(--etude-color-secondary) 9%, var(--etude-color-secondary-tint) 91%);--etude-derived-error-border:color-mix(in srgb, var(--etude-color-danger) 16%, var(--etude-color-danger-tint) 84%);--etude-derived-error-btn-border:color-mix(in srgb, var(--etude-color-danger) 39%, var(--etude-color-danger-tint) 61%);--etude-derived-error-btn-hover:color-mix(in srgb, var(--etude-color-danger) 7%, var(--etude-color-danger-tint) 93%);--etude-derived-formula-step-border:color-mix(in srgb, var(--etude-color-paper-warm) 80%, var(--etude-color-hairline-strong) 20%);--etude-derived-frame-bg:color-mix(in srgb, var(--etude-color-paper-warm) 80%, var(--etude-color-hairline-strong) 20%);--etude-derived-hairline-soft:color-mix(in srgb, var(--etude-color-paper-warm) 80%, var(--etude-color-hairline-strong) 20%);--etude-derived-heat-0:var(--etude-derived-track-bg);--etude-derived-heat-1:color-mix(in srgb, var(--etude-color-primary) 12%, var(--etude-color-primary-tint) 88%);--etude-derived-heat-2:color-mix(in srgb, var(--etude-color-primary) 30%, var(--etude-color-primary-tint) 70%);--etude-derived-heat-3:color-mix(in srgb, var(--etude-color-primary) 55%, var(--etude-color-primary-tint) 45%);--etude-derived-heat-4:var(--etude-color-primary);--etude-derived-hover-bg:color-mix(in srgb, var(--etude-color-paper-warm) 80%, var(--etude-color-hairline-strong) 20%);--etude-derived-incorrect-banner-border:color-mix(in srgb, var(--etude-color-danger) 16%, var(--etude-color-danger-tint) 84%);--etude-derived-note:var(--etude-color-ink-secondary);--etude-derived-option-border:color-mix(in srgb, var(--etude-color-surface) 9%, var(--etude-color-hairline-strong) 91%);--etude-derived-option-marker-border:color-mix(in srgb, var(--etude-color-hairline-strong) 34%, var(--etude-color-ink-faint) 66%);--etude-derived-panel-border:color-mix(in srgb, var(--etude-color-hairline) 88%, var(--etude-color-paper) 12%);--etude-derived-pill-border:color-mix(in srgb, var(--etude-color-hairline) 88%, var(--etude-color-paper) 12%);--etude-derived-primary-border-soft:color-mix(in srgb, var(--etude-color-primary) 14%, var(--etude-color-primary-tint) 86%);--etude-derived-pro-badge-border:color-mix(in srgb, var(--etude-color-secondary) 54%, var(--etude-color-secondary-tint) 46%);--etude-derived-reveal-btn-border:color-mix(in srgb, var(--etude-color-primary) 47%, var(--etude-color-surface) 53%);--etude-derived-row-border:color-mix(in srgb, var(--etude-color-surface) 9%, var(--etude-color-hairline-strong) 91%);--etude-derived-secondary-border:color-mix(in srgb, var(--etude-color-primary) 47%, var(--etude-color-surface) 53%);--etude-derived-secondary-border-soft:color-mix(in srgb, var(--etude-color-secondary) 20%, var(--etude-color-secondary-tint) 80%);--etude-derived-sheet-shadow:color-mix(in srgb, var(--etude-color-ink) 15%, transparent);--etude-derived-shimmer-base:color-mix(in srgb, var(--etude-color-hairline) 55%, var(--etude-color-paper-warm) 45%);--etude-derived-shimmer-highlight:var(--etude-color-paper-warm);--etude-derived-soft-primary-border:color-mix(in srgb, var(--etude-color-primary) 14%, var(--etude-color-primary-tint) 86%);--etude-derived-tertiary-hover-bg:color-mix(in srgb, var(--etude-color-ink) 9%, var(--etude-color-surface) 91%);--etude-derived-toast-shadow:color-mix(in srgb, var(--etude-color-ink) 20%, transparent);--etude-derived-track-bg:color-mix(in srgb, var(--etude-color-paper-warm) 80%, var(--etude-color-hairline-strong) 20%);--etude-derived-waveform-inactive:color-mix(in srgb, var(--etude-color-primary) 30%, var(--etude-color-primary-tint) 70%);--etude-derived-wizard-back-border:color-mix(in srgb, var(--etude-color-primary) 47%, var(--etude-color-surface) 53%)}[data-theme=dark]{--etude-color-callout-check-bg:#1e2733;--etude-color-callout-check-border:#7d9fc4;--etude-color-callout-check-label:#a3bfda;--etude-color-callout-ex-bg:#243026;--etude-color-callout-ex-border:#7fae83;--etude-color-callout-ex-label:#a5c9a8;--etude-color-callout-key-bg:#2e2817;--etude-color-callout-key-border:#d4a72c;--etude-color-callout-key-label:#e4bd52;--etude-color-callout-warn-bg:#33211d;--etude-color-callout-warn-border:#d07460;--etude-color-callout-warn-label:#e09484;--etude-color-callout-why-bg:#292435;--etude-color-callout-why-border:#9d8bc4;--etude-color-callout-why-label:#bcaeda;--etude-color-danger:#d07460;--etude-color-danger-deep:#e09484;--etude-color-danger-tint:#33211d;--etude-color-focus-ring:#7fae83;--etude-color-hairline:#35342e;--etude-color-hairline-strong:#45443c;--etude-color-ink:#ece9e0;--etude-color-ink-faint:#6a6862;--etude-color-ink-secondary:#a3a099;--etude-color-oauth-apple-bg:#000;--etude-color-oauth-apple-hover-bg:#1a1a1a;--etude-color-oauth-apple-label:#fff;--etude-color-oauth-google-bg:#fff;--etude-color-oauth-google-border:#747775;--etude-color-oauth-google-g-blue:#4285f4;--etude-color-oauth-google-g-green:#34a853;--etude-color-oauth-google-g-red:#ea4335;--etude-color-oauth-google-g-yellow:#fbbc05;--etude-color-oauth-google-hover-bg:#eee;--etude-color-oauth-google-label:#1f1f1f;--etude-color-paper:#1a1a17;--etude-color-paper-warm:#161613;--etude-color-primary:#7fae83;--etude-color-primary-deep:#a5c9a8;--etude-color-primary-hover:#8fbc93;--etude-color-primary-tint:#243026;--etude-color-secondary:#d4a72c;--etude-color-secondary-deep:#e4bd52;--etude-color-secondary-tint:#2e2817;--etude-color-surface:#22221e}
.etude-callout-stack{flex-direction:column;gap:14px;max-width:680px;display:flex}.etude-callout,.etude-callout *{box-sizing:border-box}.etude-callout{border-radius:var(--etude-radius-m);padding:13px var(--etude-space-l);border-left:3px solid}.etude-callout--interactive{cursor:pointer}.etude-callout__label{align-items:center;gap:7px;margin-bottom:6px;display:flex}.etude-callout__label-text{font-size:var(--etude-type-label-chip-size);letter-spacing:var(--etude-type-label-chip-letter-spacing);text-transform:uppercase;font-weight:700}.etude-callout__body{font-size:var(--etude-type-body-s-size);line-height:var(--etude-type-body-line-height);color:var(--etude-color-ink);margin:0}.etude-callout--key{background:var(--etude-color-callout-key-bg);border-left-color:var(--etude-color-callout-key-border)}.etude-callout--key .etude-callout__label{color:var(--etude-color-callout-key-label)}.etude-callout--warn{background:var(--etude-color-callout-warn-bg);border-left-color:var(--etude-color-callout-warn-border)}.etude-callout--warn .etude-callout__label{color:var(--etude-color-callout-warn-label)}.etude-callout--check{background:var(--etude-color-callout-check-bg);border-left-color:var(--etude-color-callout-check-border)}.etude-callout--check .etude-callout__label{color:var(--etude-color-callout-check-label)}.etude-callout--example{background:var(--etude-color-callout-ex-bg);border-left-color:var(--etude-color-callout-ex-border)}.etude-callout--example .etude-callout__label{color:var(--etude-color-callout-ex-label)}.etude-callout--why{background:var(--etude-color-callout-why-bg);border-left-color:var(--etude-color-callout-why-border)}.etude-callout--why .etude-callout__label{color:var(--etude-color-callout-why-label)}
.etude-bf,.etude-bf *{box-sizing:border-box}.etude-bf__block+.etude-bf__block{margin-top:var(--etude-space-xxl)}.etude-bf__subhead{font-family:var(--etude-font-display);font-size:var(--etude-type-display-m-size);margin:0 0 var(--etude-space-m);font-weight:600}.etude-bf :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-btn-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.etude-btn{border-radius:var(--etude-radius-m);min-height:44px;font-size:var(--etude-type-body-s-size);font-weight:600;font-family:var(--etude-font-ui);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);border:1px solid #0000;align-items:center;gap:9px;padding:10px 22px;display:inline-flex}.etude-btn:disabled{cursor:not-allowed}.etude-btn__spinner{border-radius:var(--etude-radius-full);border:2px solid color-mix(in srgb, currentColor 35%, transparent);border-top-color:currentColor;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite etude-bf-spin}@keyframes etude-bf-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.etude-btn__spinner{animation:none}}.etude-btn--primary{background:var(--etude-color-primary);color:var(--etude-color-surface);border-color:var(--etude-color-primary)}.etude-btn--primary:hover,.etude-btn--primary.is-hover-demo{background:var(--etude-color-primary-hover);border-color:var(--etude-color-primary-hover)}.etude-btn--primary:active,.etude-btn--primary.is-active-demo{background:var(--etude-color-primary-deep);border-color:var(--etude-color-primary-deep)}.etude-btn--primary:disabled{background:var(--etude-derived-disabled-bg);border-color:var(--etude-derived-disabled-bg);color:var(--etude-color-paper-warm)}.etude-btn--primary.is-loading-demo{background:var(--etude-color-primary-hover);border-color:var(--etude-color-primary-hover);color:var(--etude-color-surface);cursor:wait}.etude-btn--secondary{color:var(--etude-color-primary-deep);border-color:var(--etude-derived-secondary-border);background:0 0}.etude-btn--secondary:hover,.etude-btn--secondary.is-hover-demo{background:var(--etude-color-primary-tint)}.etude-btn--secondary:active,.etude-btn--secondary.is-active-demo{background:var(--etude-color-primary-tint);border-color:var(--etude-color-primary-hover)}.etude-btn--secondary:disabled{color:var(--etude-color-ink-faint);border-color:var(--etude-color-hairline)}.etude-btn--secondary.is-loading-demo{cursor:wait}.etude-btn--tertiary{color:var(--etude-color-ink-secondary);background:0 0;border:none;padding:10px 18px;font-weight:500}.etude-btn--tertiary:hover,.etude-btn--tertiary.is-hover-demo{background:var(--etude-derived-tertiary-hover-bg);color:var(--etude-color-ink)}.etude-btn--tertiary:active,.etude-btn--tertiary.is-active-demo{background:color-mix(in srgb, var(--etude-derived-tertiary-hover-bg) 55%, var(--etude-color-hairline-strong) 45%);color:var(--etude-color-ink)}.etude-btn--tertiary:disabled{color:var(--etude-color-ink-faint)}.etude-btn--tertiary.is-loading-demo{cursor:wait}.etude-btn--icon{background:var(--etude-color-surface);width:44px;height:44px;min-height:44px;color:var(--etude-color-ink-secondary);border-color:var(--etude-color-hairline-strong);justify-content:center;padding:0}.etude-btn--icon:hover,.etude-btn--icon.is-hover-demo{background:var(--etude-color-paper);color:var(--etude-color-ink)}.etude-btn--icon:active,.etude-btn--icon.is-active-demo{background:var(--etude-color-hairline);color:var(--etude-color-ink)}.etude-btn--icon:disabled{color:var(--etude-color-ink-faint);border-color:var(--etude-color-hairline)}.etude-btn--icon.is-loading-demo{cursor:wait}.etude-btn--destructive{background:var(--etude-color-danger);color:var(--etude-color-surface);border-color:var(--etude-color-danger)}.etude-btn--destructive:hover,.etude-btn--destructive.is-hover-demo{background:var(--etude-derived-danger-hover);border-color:var(--etude-derived-danger-hover)}.etude-btn--destructive:active,.etude-btn--destructive.is-active-demo{background:color-mix(in srgb, var(--etude-derived-danger-hover) 85%, black 15%);border-color:color-mix(in srgb, var(--etude-derived-danger-hover) 85%, black 15%)}.etude-btn--destructive:disabled{background:var(--etude-derived-disabled-bg);border-color:var(--etude-derived-disabled-bg);color:var(--etude-color-paper-warm)}.etude-btn--destructive.is-loading-demo{cursor:wait}.etude-btn-gallery{gap:var(--etude-space-l);margin-top:var(--etude-space-l);padding-top:var(--etude-space-l);border-top:1px dashed var(--etude-color-hairline-strong);flex-direction:column;display:flex}.etude-btn-gallery__variant-label{font-family:var(--etude-font-mono);font-size:var(--etude-type-micro-size);letter-spacing:var(--etude-type-label-chip-letter-spacing);text-transform:uppercase;color:var(--etude-color-ink-secondary);margin-bottom:var(--etude-space-s);display:block}.etude-btn-gallery__states{gap:var(--etude-space-l);flex-wrap:wrap;align-items:flex-end;display:flex}.etude-btn-gallery__state{gap:var(--etude-space-xs);flex-direction:column;align-items:flex-start;display:flex}.etude-btn-gallery__state-label{font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary)}.etude-form-grid{gap:var(--etude-space-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;display:grid}.etude-form-card{background:var(--etude-color-paper);border:1px solid var(--etude-color-hairline);gap:var(--etude-space-l);border-radius:10px;flex-direction:column;padding:20px;display:flex}.etude-form-card--controls{gap:20px}.etude-form-field{display:block}.etude-form-label{color:var(--etude-color-ink);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.etude-form-label--disabled{color:var(--etude-color-ink-faint)}.etude-form-label__note{color:var(--etude-derived-note);font-weight:400}.etude-form-input,.etude-form-select{width:100%;min-height:44px;padding:10px var(--etude-space-m);border:1px solid var(--etude-color-hairline-strong);border-radius:var(--etude-radius-m);font-family:inherit;font-size:var(--etude-type-body-s-size);background:var(--etude-color-surface);color:var(--etude-color-ink)}.etude-form-select{cursor:pointer}.etude-form-input:focus-visible,.etude-form-select:focus-visible,.etude-form-textarea:focus-visible{border-color:var(--etude-color-primary)}.etude-form-input--error{border-color:var(--etude-color-danger)}.etude-form-error{color:var(--etude-color-danger-deep);margin-top:5px;font-size:11.5px}.etude-form-input--disabled{background:var(--etude-color-paper-warm);color:var(--etude-color-ink-faint);cursor:not-allowed}.etude-form-textarea{width:100%;padding:10px var(--etude-space-m);border:1px solid var(--etude-color-hairline-strong);border-radius:var(--etude-radius-m);font-family:inherit;font-size:var(--etude-type-body-s-size);line-height:var(--etude-type-body-s-line-height);background:var(--etude-color-surface);color:var(--etude-color-ink);resize:vertical}.etude-form-count{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-derived-note);text-align:right;margin-top:var(--etude-space-xs)}.etude-form-input--datetime{padding:9px 10px;font-size:13px}.etude-form-datetime{gap:var(--etude-space-m);grid-template-columns:1fr 1fr;display:grid}.etude-form-extra{flex-direction:column;gap:20px;display:flex}.etude-form-group-label{margin-bottom:var(--etude-space-s);color:var(--etude-color-ink);font-size:12.5px;font-weight:600}.etude-form-check{cursor:pointer;min-height:44px;color:var(--etude-color-ink);align-items:center;gap:10px;font-size:13px;display:flex}.etude-form-check input[type=checkbox],.etude-form-check input[type=radio]{width:16px;height:16px;accent-color:var(--etude-color-primary);cursor:pointer;flex-shrink:0}.etude-form-radiogroup{flex-direction:column;display:flex}.etude-form-toggle-row{align-items:center;gap:var(--etude-space-m);display:flex}.etude-form-toggle-caption{color:var(--etude-color-ink-secondary);font-size:12.5px}.etude-toggle{cursor:pointer;border-radius:var(--etude-radius-full);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;display:inline-flex}.etude-toggle__track{border-radius:var(--etude-radius-full);background:var(--etude-derived-disabled-bg);width:40px;height:24px;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);display:block;position:relative}.etude-toggle[aria-checked=true] .etude-toggle__track{background:var(--etude-color-primary)}.etude-toggle__knob{border-radius:var(--etude-radius-full);background:var(--etude-color-surface);width:18px;height:18px;transition:left var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);position:absolute;top:3px;left:3px}.etude-toggle[aria-checked=true] .etude-toggle__knob{left:19px}
.etude-card-grid,.etude-card-grid *{box-sizing:border-box}.etude-card-grid :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-card-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:20px;display:grid}.etude-card-item--full{grid-column:1/-1}.etude-card-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 10px;font-size:10px}.etude-card{background:var(--etude-color-surface);border-radius:var(--etude-radius-l);color:var(--etude-color-ink);font-family:var(--etude-font-ui)}.etude-card--session-compact,.etude-card--session-expanded,.etude-card--class,.etude-card--progress-snapshot{border:1px solid var(--etude-derived-card-border);box-shadow:var(--etude-elevation-card)}.etude-card__title{margin:0;font-weight:600}.etude-card__title--sm{font-size:var(--etude-type-body-size)}.etude-card__title--class{font-size:15px}.etude-card__title--snapshot{font-size:13px}.etude-card__title--display{font-family:var(--etude-font-display);font-size:var(--etude-type-display-m-size);margin-top:2px}.etude-card__meta{font-size:var(--etude-type-caption-size);color:var(--etude-derived-note)}.etude-card__meta--medium{font-weight:500}.etude-card__meta--tight{margin-top:2px}.etude-card__description{color:var(--etude-color-ink-secondary);margin:var(--etude-space-xs) 0 0 0;font-size:13px}.etude-card__description--tight{margin-top:2px;font-size:12.5px}.etude-card--session-compact{padding:var(--etude-space-m) 14px;gap:var(--etude-space-m);align-items:flex-start;display:flex}.etude-card__checkbox{width:18px;height:18px;accent-color:var(--etude-color-primary);cursor:pointer;margin-top:2px}.etude-card__body{flex:1;min-width:0}.etude-card__title-row{align-items:center;gap:var(--etude-space-s);margin-top:2px;display:flex}.etude-card__tier{letter-spacing:.05em;text-transform:uppercase;background:var(--etude-color-primary);color:var(--etude-color-surface);border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700}.etude-card__actions{margin-top:var(--etude-space-s);flex-wrap:wrap;gap:6px;display:flex}.etude-card__action{align-items:center;gap:var(--etude-space-xs);font-size:var(--etude-type-micro-size);border-radius:var(--etude-radius-s);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);border:1px solid #0000;padding:5px 10px;font-family:inherit;font-weight:600;display:inline-flex}.etude-card__action--primary{background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep);border-color:var(--etude-derived-primary-border-soft)}.etude-card__action--primary:hover{background:color-mix(in srgb, var(--etude-color-primary-tint) 55%, var(--etude-color-primary) 12%, transparent)}.etude-card__action--secondary{background:var(--etude-color-secondary-tint);color:var(--etude-color-secondary-deep);border-color:var(--etude-derived-secondary-border-soft)}.etude-card__action--secondary:hover{background:color-mix(in srgb, var(--etude-color-secondary-tint) 55%, var(--etude-color-secondary) 12%, transparent)}.etude-card--session-expanded{padding:var(--etude-space-l)}.etude-card__progress-row{margin-top:var(--etude-space-m);align-items:center;gap:10px;display:flex}.etude-card__progress-track{background:var(--etude-derived-track-bg);border-radius:3px;flex:1;height:6px;overflow:hidden}.etude-card__progress-fill{background:var(--etude-color-primary);border-radius:3px;height:100%}.etude-card__progress-caption{color:var(--etude-derived-note);font-size:11.5px}.etude-card__cta{background:var(--etude-color-primary);min-height:44px;color:var(--etude-color-surface);border:1px solid var(--etude-color-primary);border-radius:var(--etude-radius-m);font-size:var(--etude-type-body-s-size);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);margin-top:14px;padding:10px 20px;font-family:inherit;font-weight:600}.etude-card__cta:hover{background:var(--etude-color-primary-hover);border-color:var(--etude-color-primary-hover)}.etude-card--class{padding:var(--etude-space-l);justify-content:space-between;gap:var(--etude-space-m);display:flex}.etude-card__grade-row{align-items:baseline;gap:var(--etude-space-s);margin-top:var(--etude-space-m);display:flex}.etude-card__grade{font-family:var(--etude-font-display);font-size:32px;font-weight:600;line-height:var(--etude-type-label-chip-line-height)}.etude-card__delta{font-size:var(--etude-type-caption-size);color:var(--etude-color-primary-deep);background:var(--etude-color-primary-tint);padding:3px var(--etude-space-s);border-radius:var(--etude-radius-full);align-items:center;gap:3px;font-weight:700;display:inline-flex}.etude-card__sparkline{stroke:var(--etude-color-primary);align-self:flex-end}.etude-card__sparkline circle{fill:var(--etude-color-primary)}.etude-card--progress-snapshot{padding:var(--etude-space-l)}.etude-card__snapshot-head{justify-content:space-between;align-items:baseline;display:flex}.etude-card__streak{font-size:var(--etude-type-caption-size);color:var(--etude-color-secondary-deep);align-items:center;gap:5px;font-weight:600;display:inline-flex}.etude-card__progress-list{margin-top:var(--etude-space-m);flex-direction:column;gap:9px;display:flex}.etude-card__progress-item{grid-template-columns:64px 1fr 34px;align-items:center;gap:10px;display:grid}.etude-card__progress-item-label{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary)}.etude-card__progress-item-track{background:var(--etude-derived-track-bg);border-radius:3px;height:5px;overflow:hidden}.etude-card__progress-item-fill{background:var(--etude-color-primary);height:100%}.etude-card__progress-item-fraction{font-size:var(--etude-type-micro-size);color:var(--etude-derived-note);text-align:right}.etude-card--recommendation{background:var(--etude-color-secondary-tint);border:1px solid var(--etude-derived-secondary-border-soft);padding:var(--etude-space-l)}.etude-card__eyebrow-inline{font-size:var(--etude-type-label-chip-size);letter-spacing:var(--etude-type-label-chip-letter-spacing);text-transform:uppercase;color:var(--etude-color-secondary-deep);font-weight:700}.etude-card__recommendation-body{font-size:var(--etude-type-body-s-size);line-height:var(--etude-type-body-line-height);margin:6px 0 0}.etude-card__recommendation-actions{gap:var(--etude-space-s);margin-top:var(--etude-space-m);display:flex}.etude-card__cta--compact{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);margin-top:0;font-size:12.5px}.etude-card__dismiss{min-height:38px;padding:var(--etude-space-s) 14px;color:var(--etude-color-ink-secondary);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;border:none;font-family:inherit;font-size:12.5px;font-weight:500}.etude-card__dismiss:hover{background:var(--etude-derived-dismiss-hover)}.etude-card--achievement{background:var(--etude-color-paper);padding:18px}.etude-card__eyebrow-inline--achievement{letter-spacing:.1em;color:var(--etude-color-secondary)}.etude-card__title--achievement{font-family:var(--etude-font-display);margin-top:6px;font-size:22px}.etude-card__meta--achievement{color:var(--etude-color-ink-secondary);margin-top:3px;font-size:12.5px;font-weight:400}.etude-card-countdown-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.etude-card--countdown{border:1px solid var(--etude-derived-card-border);padding:14px var(--etude-space-l)}.etude-card--countdown-warn{border-left-width:3px;border-left-color:var(--etude-color-secondary)}.etude-card--countdown-ready{border-left-width:3px;border-left-color:var(--etude-color-primary)}.etude-card__title--countdown{font-size:var(--etude-type-body-size);margin-top:3px}
.etude-connector-grid{gap:var(--etude-space-l);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.etude-connector-grid,.etude-connector-grid *{box-sizing:border-box}.etude-connector-grid :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-card--connector{border:1px solid var(--etude-derived-card-border);box-shadow:var(--etude-elevation-card);padding:var(--etude-space-l);gap:var(--etude-space-m);flex-direction:column;display:flex}.etude-connector-card__head{justify-content:space-between;align-items:baseline;gap:var(--etude-space-s);display:flex}.etude-connector-card__summary{font-family:var(--etude-font-mono);font-size:var(--etude-type-micro-size);letter-spacing:.06em;color:var(--etude-color-ink-secondary)}.etude-connector-card__list{gap:var(--etude-space-s);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.etude-connector-card__row{align-items:center;gap:2px var(--etude-space-s);padding-bottom:var(--etude-space-s);border-bottom:1px solid var(--etude-derived-card-border);grid-template-columns:1fr auto;grid-template-areas:"provider status""checked checked";display:grid}.etude-connector-card__row:last-child{border-bottom:none;padding-bottom:0}.etude-connector-card__provider{font-weight:600;font-size:var(--etude-type-body-size);color:var(--etude-color-ink);grid-area:provider}.etude-connector-card__status{font-size:var(--etude-type-caption-size);padding:2px var(--etude-space-s);border-radius:var(--etude-radius-full);grid-area:status;justify-self:end;font-weight:600}.etude-connector-card__status--connected{color:var(--etude-color-primary-deep);background:var(--etude-color-primary-tint)}.etude-connector-card__status--idle{color:var(--etude-color-ink-secondary);background:var(--etude-color-paper-warm)}.etude-connector-card__checked{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary);grid-area:checked}.etude-connector-card__empty{font-size:var(--etude-type-body-s-size);color:var(--etude-color-ink-secondary);margin:0}
.etude-progress-grid,.etude-progress-grid *{box-sizing:border-box}.etude-progress-grid{font-family:var(--etude-font-ui);color:var(--etude-color-ink);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:20px;display:grid}.etude-progress-card{background:var(--etude-color-paper);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-xl);padding:20px}.etude-progress-label{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 var(--etude-space-m) 0;font-size:10px}.etude-progress-label--spaced{margin-top:var(--etude-space-xl)}.etude-progress-bar-row{align-items:center;gap:var(--etude-space-m);display:flex}.etude-progress-bar{background:var(--etude-derived-track-bg);border-radius:var(--etude-radius-s);flex:1;height:8px;overflow:hidden}.etude-progress-bar__fill{background:var(--etude-color-primary);border-radius:var(--etude-radius-s);height:100%;transition:width var(--etude-motion-duration-base) var(--etude-motion-easing-standard)}.etude-progress-bar__caption{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary);white-space:nowrap}.etude-progress-streak{align-items:center;gap:var(--etude-space-s);background:var(--etude-color-surface);border:1px solid var(--etude-derived-pill-border);border-radius:var(--etude-radius-full);padding:var(--etude-space-s) var(--etude-space-l);display:inline-flex}.etude-progress-streak__icon{stroke:var(--etude-color-secondary)}.etude-progress-streak__days{font-size:var(--etude-type-body-size);font-weight:700}.etude-progress-streak__unit{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary)}.etude-progress-sparkline{align-items:center;gap:var(--etude-space-m);display:flex}.etude-progress-sparkline__svg polyline{stroke:var(--etude-color-primary)}.etude-progress-sparkline__svg circle{fill:var(--etude-color-primary)}.etude-progress-sparkline__caption{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary)}.etude-progress-sparkline__caption strong{color:var(--etude-color-primary-deep)}.etude-progress-card--ring-heatmap{gap:var(--etude-space-xl);flex-wrap:wrap;align-items:flex-start;display:flex}.etude-progress-heatmap-labelled{flex:1;min-width:150px}.etude-progress-ring__track{fill:none;stroke:var(--etude-derived-track-bg);stroke-width:7px}.etude-progress-ring__fill{fill:none;stroke:var(--etude-color-primary);stroke-width:7px;stroke-linecap:round}.etude-progress-ring__label{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.etude-progress-ring__percent{font-size:18px;font-weight:700;line-height:var(--etude-type-label-chip-line-height)}.etude-progress-ring__caption{color:var(--etude-color-ink-secondary);margin-top:2px;font-size:10px}.etude-progress-heatmap{gap:var(--etude-space-xs);grid-template-columns:repeat(5,18px);display:grid}.etude-progress-heatmap__cell{border-radius:3px;width:18px;height:18px}.etude-progress-heatmap__cell--level-0,.etude-progress-heatmap__swatch--level-0{background:var(--etude-derived-heat-0)}.etude-progress-heatmap__cell--level-1,.etude-progress-heatmap__swatch--level-1{background:var(--etude-derived-heat-1)}.etude-progress-heatmap__cell--level-2,.etude-progress-heatmap__swatch--level-2{background:var(--etude-derived-heat-2)}.etude-progress-heatmap__cell--level-3,.etude-progress-heatmap__swatch--level-3{background:var(--etude-derived-heat-3)}.etude-progress-heatmap__cell--level-4,.etude-progress-heatmap__swatch--level-4{background:var(--etude-derived-heat-4)}.etude-progress-heatmap__legend{align-items:center;gap:6px;margin-top:10px;display:flex}.etude-progress-heatmap__legend-label{font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary)}.etude-progress-heatmap__swatch{border-radius:3px;width:12px;height:12px}.etude-progress-barchart{flex-direction:column;gap:10px;display:flex}.etude-progress-barchart__row{grid-template-columns:70px 1fr 28px;align-items:center;gap:10px;display:grid}.etude-progress-barchart__label{font-size:var(--etude-type-caption-size);color:var(--etude-color-ink-secondary)}.etude-progress-barchart__track{background:var(--etude-derived-track-bg);border-radius:3px;height:14px;overflow:hidden}.etude-progress-barchart__fill{background:var(--etude-color-primary);height:100%}.etude-progress-barchart__count{font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary)}.etude-progress-barchart__footnote{font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary);margin-top:10px}
.etude-quiz-choice,.etude-quiz-choice *{box-sizing:border-box}.etude-quiz-choice{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.etude-quiz-choice :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-quiz-panel{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);flex:320px;width:320px;max-width:100%;padding:20px}.etude-quiz-panel__head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.etude-quiz-panel__eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-quiz-mode-dot{border-radius:var(--etude-radius-full);width:7px;height:7px}.etude-quiz-mode-dot--auto{background:var(--etude-color-primary)}.etude-quiz-prompt{margin:0 0 var(--etude-space-s);font-size:var(--etude-type-body-size);line-height:var(--etude-type-body-s-line-height)}.etude-quiz-options{flex-direction:column;display:flex}.etude-quiz-option{border:1px solid var(--etude-derived-option-border);border-radius:var(--etude-radius-m);cursor:pointer;min-height:44px;font-size:var(--etude-type-body-s-size);background:var(--etude-color-surface);color:var(--etude-color-ink);transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);align-items:center;gap:10px;margin:6px 0;padding:9px 14px;display:flex}.etude-quiz-option--correct{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint)}.etude-quiz-option--incorrect{border-color:var(--etude-color-callout-warn-border);background:var(--etude-color-danger-tint)}.etude-quiz-option__marker{border:1.5px solid var(--etude-derived-option-marker-border);background:var(--etude-color-surface);flex-shrink:0;width:15px;height:15px}.etude-quiz-option__marker--dot{border-radius:var(--etude-radius-full)}.etude-quiz-option__marker--box{border-radius:var(--etude-radius-s)}.etude-quiz-option--picked .etude-quiz-option__marker--dot{border-color:var(--etude-color-primary);background:var(--etude-color-primary);box-shadow:inset 0 0 0 3px var(--etude-color-surface)}.etude-quiz-option--picked .etude-quiz-option__marker--box{border-color:var(--etude-color-primary);background:var(--etude-color-primary);box-shadow:inset 0 0 0 2.5px var(--etude-color-surface)}.etude-quiz-check-btn{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-check-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;margin-top:10px;font-family:inherit;font-size:12.5px;font-weight:600}.etude-quiz-check-btn:hover{background:var(--etude-color-primary-tint)}.etude-quiz-feedback{padding:9px var(--etude-space-m);border-radius:var(--etude-radius-m);margin-top:10px;font-size:13px;line-height:1.45}.etude-quiz-feedback--correct{background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-correct-banner-border);color:var(--etude-color-primary-deep)}.etude-quiz-feedback--incorrect{background:var(--etude-color-danger-tint);border:1px solid var(--etude-derived-incorrect-banner-border);color:var(--etude-color-danger-deep)}
.etude-quiz-text,.etude-quiz-text *{box-sizing:border-box}.etude-quiz-text{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.etude-quiz-text :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-qt-panel{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);flex:320px;width:320px;max-width:100%;padding:20px}.etude-qt-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.etude-qt-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-qt-mode-dot{border-radius:var(--etude-radius-full);background:var(--etude-color-primary);width:7px;height:7px}.etude-qt-prompt{font-size:var(--etude-type-body-size);line-height:var(--etude-type-body-s-line-height);margin:0 0 10px}.etude-qt-row{gap:var(--etude-space-s);flex-wrap:wrap;display:flex}.etude-qt-input{min-width:150px;min-height:40px;padding:var(--etude-space-s) var(--etude-space-m);border:1px solid var(--etude-color-hairline-strong);border-radius:var(--etude-radius-m);font-family:inherit;font-size:var(--etude-type-body-s-size);background:var(--etude-color-surface);color:var(--etude-color-ink);transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);flex:1}.etude-qt-input:focus{border-color:var(--etude-color-primary)}.etude-qt-input--formula{width:110px;font-family:var(--etude-font-mono);flex:none}.etude-qt-check-btn{min-height:40px;padding:var(--etude-space-s) var(--etude-space-l);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-check-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;font-family:inherit;font-size:12.5px;font-weight:600}.etude-qt-check-btn:hover{background:var(--etude-color-primary-tint)}.etude-qt-fill-sentence{font-size:var(--etude-type-body-s-size);flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:10px;line-height:2;display:flex}.etude-qt-blank{border:1px solid var(--etude-color-hairline-strong);border-radius:var(--etude-radius-m);background:var(--etude-color-surface);width:110px;min-height:36px;color:var(--etude-color-ink);transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);padding:6px 10px;font-family:inherit;font-size:13px}.etude-qt-blank:focus{border-color:var(--etude-color-primary)}.etude-qt-blank--correct{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint)}.etude-qt-blank--incorrect{border-color:var(--etude-color-callout-warn-border);background:var(--etude-color-danger-tint)}.etude-qt-formula-step{font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary);background:var(--etude-color-paper);border:1px solid var(--etude-derived-formula-step-border);border-radius:var(--etude-radius-m);padding:var(--etude-space-s) var(--etude-space-m);margin-bottom:10px;font-size:13px}.etude-qt-feedback{padding:9px var(--etude-space-m);border-radius:var(--etude-radius-m);margin-top:10px;font-size:13px;line-height:1.45}.etude-qt-feedback--correct{background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-correct-banner-border);color:var(--etude-color-primary-deep)}.etude-qt-feedback--incorrect{background:var(--etude-color-danger-tint);border:1px solid var(--etude-derived-incorrect-banner-border);color:var(--etude-color-danger-deep)}
.etude-quiz-drag,.etude-quiz-drag *{box-sizing:border-box}.etude-quiz-drag{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.etude-quiz-drag :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-qd-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.etude-qd-panel{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);flex:320px;width:320px;max-width:100%;padding:20px}.etude-qd-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.etude-qd-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-qd-mode-dot{border-radius:var(--etude-radius-full);background:var(--etude-color-primary);width:7px;height:7px}.etude-qd-prompt{margin:0 0 var(--etude-space-s);font-size:var(--etude-type-body-size);line-height:var(--etude-type-body-s-line-height)}.etude-qd-panel--sort .etude-qd-prompt{color:var(--etude-color-ink-secondary);font-size:13px;line-height:normal}.etude-qd-sort-list{margin:0 0 var(--etude-space-xs);padding:0;list-style:none}.etude-qd-sort-row{align-items:center;gap:var(--etude-space-s);min-height:40px;padding:6px var(--etude-space-s);margin:var(--etude-space-xs) 0;border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-m);background:var(--etude-color-surface);transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), opacity var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-size:13px;display:flex}.etude-qd-sort-row.etude-qd-dragging{opacity:.5;border-color:var(--etude-color-primary)}.etude-qd-drag-handle{color:var(--etude-color-ink-secondary);cursor:grab;flex-shrink:0;display:inline-flex}.etude-qd-sort-text{flex:1}.etude-qd-sort-controls{gap:var(--etude-space-xs);flex-shrink:0;display:flex}.etude-qd-move-btn{background:var(--etude-color-paper);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-s);cursor:pointer;width:30px;height:30px;color:var(--etude-color-ink-secondary);transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);justify-content:center;align-items:center;font-family:inherit;display:inline-flex}.etude-qd-move-btn:hover{background:var(--etude-derived-hover-bg)}.etude-qd-event-bank{gap:var(--etude-space-s);flex-wrap:wrap;margin-bottom:18px;display:flex}.etude-qd-event-chip{min-height:36px;padding:7px var(--etude-space-m);background:var(--etude-color-surface);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-m);color:var(--etude-color-ink);cursor:grab;transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-family:inherit;font-size:12.5px}.etude-qd-event-chip[aria-pressed=true]{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint)}.etude-qd-event-chip.etude-qd-dragging{opacity:.5}.etude-qd-event-chip--correct{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep)}.etude-qd-event-chip--incorrect{border-color:var(--etude-color-callout-warn-border);background:var(--etude-color-danger-tint);color:var(--etude-color-danger-deep)}.etude-qd-timeline-track{justify-content:space-between;gap:var(--etude-space-s);background:var(--etude-color-hairline-strong);height:2px;margin:26px var(--etude-space-s) 34px;display:flex;position:relative}.etude-qd-slot{align-items:center;gap:var(--etude-space-s);flex-direction:column;display:flex;position:relative;transform:translateY(-19px)}.etude-qd-slot-target{min-width:44px;min-height:30px;padding:var(--etude-space-xs) 10px;background:var(--etude-color-paper);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-s);font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-size:11.5px}.etude-qd-slot-target:hover{background:var(--etude-derived-hover-bg)}.etude-qd-slot-drop{justify-content:center;align-items:center;min-width:80px;min-height:40px;display:flex}.etude-qd-check-btn{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-check-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;margin-top:10px;font-family:inherit;font-size:12.5px;font-weight:600}.etude-qd-check-btn:hover{background:var(--etude-color-primary-tint)}.etude-qd-feedback{padding:9px var(--etude-space-m);border-radius:var(--etude-radius-m);margin-top:10px;font-size:13px;line-height:1.45}.etude-qd-feedback--correct{background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-correct-banner-border);color:var(--etude-color-primary-deep)}.etude-qd-feedback--incorrect{background:var(--etude-color-danger-tint);border:1px solid var(--etude-derived-incorrect-banner-border);color:var(--etude-color-danger-deep)}
.etude-quiz-target,.etude-quiz-target *{box-sizing:border-box}.etude-quiz-target{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.etude-quiz-target :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-qt-panel{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);flex:320px;width:320px;max-width:100%;padding:20px}.etude-qt-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.etude-qt-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-qt-mode-dot{border-radius:var(--etude-radius-full);background:var(--etude-color-primary);width:7px;height:7px}.etude-qt-prompt{font-size:var(--etude-type-body-size);line-height:var(--etude-type-body-s-line-height);margin:0 0 10px}.etude-qt-match-rows{flex-direction:column;display:flex}.etude-qt-match-row{min-height:40px;transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:13px;display:flex}.etude-qt-match-row--correct{border-color:var(--etude-color-primary)}.etude-qt-match-row--incorrect{border-color:var(--etude-color-callout-warn-border)}.etude-qt-match-left{flex:1}.etude-qt-match-select{min-width:44px;min-height:40px;padding:var(--etude-space-s) 10px;border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-m);background:var(--etude-color-surface);color:var(--etude-color-ink);cursor:pointer;font-family:inherit;font-size:12.5px}.etude-qt-match-row--correct .etude-qt-match-select{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint)}.etude-qt-match-row--incorrect .etude-qt-match-select{border-color:var(--etude-color-callout-warn-border);background:var(--etude-color-danger-tint)}.etude-qt-hotspot-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:170px;position:relative}.etude-qt-hotspot-caption{font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary);max-width:calc(100% - 24px);font-size:10px;position:absolute;top:10px;left:12px}.etude-qt-hotspot-target{min-width:44px;min-height:36px;padding:7px var(--etude-space-m);background:var(--etude-color-surface);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-m);color:var(--etude-color-ink);cursor:pointer;transition:border-color var(--etude-motion-duration-fast) var(--etude-motion-easing-standard), background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-family:inherit;font-size:12.5px;position:absolute}.etude-qt-hotspot-target--pos0{top:62%;left:14%}.etude-qt-hotspot-target--pos1{top:22%;left:42%}.etude-qt-hotspot-target--pos2{top:58%;left:68%}.etude-qt-hotspot-target--picked{border-color:var(--etude-color-primary)}.etude-qt-hotspot-target--correct{border-color:var(--etude-color-primary);background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep)}.etude-qt-hotspot-target--incorrect{border-color:var(--etude-color-callout-warn-border);background:var(--etude-color-danger-tint);color:var(--etude-color-danger-deep)}.etude-qt-check-btn{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-check-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;margin-top:10px;font-family:inherit;font-size:12.5px;font-weight:600}.etude-qt-check-btn:hover{background:var(--etude-color-primary-tint)}.etude-qt-feedback{padding:9px var(--etude-space-m);border-radius:var(--etude-radius-m);margin-top:10px;font-size:13px;line-height:1.45}.etude-qt-feedback--correct{background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-correct-banner-border);color:var(--etude-color-primary-deep)}.etude-qt-feedback--incorrect{background:var(--etude-color-danger-tint);border:1px solid var(--etude-derived-incorrect-banner-border);color:var(--etude-color-danger-deep)}
.etude-quiz-selfassess,.etude-quiz-selfassess *{box-sizing:border-box}.etude-quiz-selfassess{flex-wrap:wrap;display:flex}.etude-quiz-selfassess :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-fr-panel{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);width:100%;max-width:680px;padding:20px}.etude-fr-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.etude-fr-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-fr-mode-dot{border-radius:var(--etude-radius-full);background:var(--etude-color-ink-faint);width:7px;height:7px}.etude-fr-prompt{font-size:var(--etude-type-body-size);line-height:var(--etude-type-body-s-line-height);margin:0 0 10px}.etude-fr-response{width:100%;padding:10px var(--etude-space-m);border:1px solid var(--etude-color-hairline-strong);border-radius:var(--etude-radius-m);font-family:inherit;font-size:var(--etude-type-body-s-size);line-height:var(--etude-type-body-s-line-height);background:var(--etude-color-surface);color:var(--etude-color-ink);resize:vertical}.etude-fr-response:focus-visible{border-color:var(--etude-color-primary)}.etude-fr-reveal-btn{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-reveal-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;margin-top:10px;font-family:inherit;font-size:12.5px;font-weight:600}.etude-fr-reveal-btn:hover{background:var(--etude-color-primary-tint)}.etude-fr-rubric{border-top:1px solid var(--etude-color-paper-warm);padding-top:var(--etude-space-m);margin-top:14px}.etude-fr-rubric-label{font-size:var(--etude-type-micro-size);letter-spacing:var(--etude-type-label-chip-letter-spacing);text-transform:uppercase;color:var(--etude-color-ink-secondary);margin-bottom:var(--etude-space-s);font-weight:700}.etude-fr-rubric-rows{flex-direction:column;display:flex}.etude-fr-rubric-row{justify-content:space-between;align-items:center;gap:var(--etude-space-m);padding:var(--etude-space-s) 0;border-bottom:1px solid var(--etude-color-paper-warm);display:flex}.etude-fr-rubric-row:last-child{border-bottom:none}.etude-fr-rubric-text{font-size:13px;line-height:1.4}.etude-fr-mark-btn{border-radius:var(--etude-radius-full);cursor:pointer;border:1px solid var(--etude-color-hairline-strong);background:var(--etude-color-surface);min-width:44px;min-height:32px;color:var(--etude-color-ink-secondary);transition:all var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);flex-shrink:0;padding:5px 11px;font-family:inherit;font-size:11.5px;font-weight:600}.etude-fr-mark-btn--met{background:var(--etude-color-primary);border-color:var(--etude-color-primary);color:var(--etude-color-surface)}.etude-fr-mark-btn--partially{background:var(--etude-color-secondary);border-color:var(--etude-color-secondary);color:var(--etude-color-surface)}.etude-fr-mark-btn--missed{background:var(--etude-color-danger-tint);border-color:var(--etude-color-callout-warn-border);color:var(--etude-color-danger-deep)}.etude-fr-score-chip{margin-top:var(--etude-space-m);background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-chip-border);color:var(--etude-color-primary-deep);border-radius:var(--etude-radius-full);align-items:center;gap:7px;padding:6px 14px;font-size:12.5px;font-weight:700;display:inline-flex}.etude-fr-score-chip[hidden]{display:none}
.etude-nav-overlays,.etude-nav-overlays *{box-sizing:border-box}.etude-nav-overlays{font-family:var(--etude-font-ui);color:var(--etude-color-ink)}.etude-nav-overlays :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-no-nav-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:20px;display:grid}.etude-no-panel{background:var(--etude-color-paper);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);padding:20px}.etude-no-tablist{border-bottom:1px solid var(--etude-color-hairline);display:flex}.etude-no-tab{appearance:none;font:inherit;color:var(--etude-color-ink-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:13px;font-weight:500}.etude-no-tab--active{color:var(--etude-color-ink);border-bottom-color:var(--etude-color-primary);font-weight:600}.etude-no-breadcrumbs{align-items:center;gap:var(--etude-space-s);margin-top:var(--etude-space-xl);font-size:12.5px;display:flex}.etude-no-breadcrumb-link{color:var(--etude-color-ink-secondary);text-decoration:none}.etude-no-breadcrumb-link:hover{text-decoration:underline}.etude-no-breadcrumb-sep{color:var(--etude-color-hairline-strong)}.etude-no-breadcrumb-current{color:var(--etude-color-ink);font-weight:600}.etude-no-back-btn{min-height:40px;margin-top:var(--etude-space-xl);padding:var(--etude-space-s) 14px;border-radius:var(--etude-radius-m);font:inherit;color:var(--etude-color-ink-secondary);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);background:0 0;border:none;align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.etude-no-back-btn:hover{background:var(--etude-color-paper-warm);color:var(--etude-color-ink)}.etude-no-sidebar{background:var(--etude-color-surface);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);flex-direction:column;gap:2px;width:190px;padding:10px;display:flex}.etude-no-sidebar-item{border-radius:var(--etude-radius-m);color:var(--etude-color-ink-secondary);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);align-items:center;gap:9px;padding:9px 11px;font-size:13px;text-decoration:none;display:flex}.etude-no-sidebar-item:hover{background:var(--etude-color-paper);color:var(--etude-color-ink)}.etude-no-sidebar-item--active{background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep);font-weight:600}.etude-no-sidebar-item--active:hover{background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep)}.etude-no-sidebar-divider{border-top:1px solid var(--etude-color-paper-warm);margin:6px 2px}.etude-no-wizard{border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-l);background:var(--etude-color-surface);overflow:hidden}.etude-no-wizard-content{height:64px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);background:var(--etude-color-paper);justify-content:center;align-items:center;display:flex}.etude-no-wizard-footer{border-top:1px solid var(--etude-color-paper-warm);padding:var(--etude-space-m) var(--etude-space-l);justify-content:space-between;align-items:center;gap:10px;display:flex}.etude-no-wizard-footer button{min-height:44px;font:inherit;border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-size:13px;font-weight:500}.etude-no-wizard-actions{gap:10px;display:flex}.etude-no-wizard-skip{padding:10px var(--etude-space-l);color:var(--etude-color-ink-secondary);background:0 0;border:none}.etude-no-wizard-skip:hover{background:var(--etude-color-paper-warm)}.etude-no-wizard-back{color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-wizard-back-border);background:0 0;padding:10px 18px;font-weight:600}.etude-no-wizard-back:hover{background:var(--etude-color-primary-tint)}.etude-no-wizard-continue{background:var(--etude-color-primary);color:var(--etude-color-surface);border:1px solid var(--etude-color-primary);padding:10px 22px;font-weight:600}.etude-no-wizard-continue:hover{background:var(--etude-color-primary-hover)}.etude-no-triggers{margin-top:var(--etude-space-xl);flex-wrap:wrap;gap:10px;display:flex}.etude-no-trigger-btn{min-height:40px;padding:9px var(--etude-space-l);background:var(--etude-color-primary);color:var(--etude-color-surface);border:1px solid var(--etude-color-primary);border-radius:var(--etude-radius-m);font:inherit;cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-size:13px;font-weight:600}.etude-no-trigger-btn:hover{background:var(--etude-color-primary-hover)}.etude-no-overlay{z-index:100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.etude-no-overlay[hidden]{display:none}.etude-no-overlay--sheet{align-items:flex-end}.etude-no-backdrop{background-color:var(--etude-color-ink);opacity:.45;position:absolute;inset:0}.etude-no-dialog{width:100%;max-width:330px;margin:0 var(--etude-space-l);background:var(--etude-color-surface);box-shadow:var(--etude-elevation-modal);animation:etude-no-rise var(--etude-motion-duration-base) var(--etude-motion-easing-enter);border-radius:10px;padding:20px;position:relative}.etude-no-dialog-title{font-family:var(--etude-font-display);font-size:18px;font-weight:600}.etude-no-dialog-body{margin:var(--etude-space-s) 0 0 0;font-size:13px;line-height:var(--etude-type-body-line-height);color:var(--etude-color-ink-secondary)}.etude-no-dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.etude-no-dialog-actions button{min-height:40px;padding:9px var(--etude-space-l);border-radius:var(--etude-radius-m);font:inherit;cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-size:12.5px;font-weight:600}.etude-no-dialog-cancel{color:var(--etude-color-ink-secondary);border:1px solid var(--etude-color-hairline-strong);background:0 0}.etude-no-dialog-cancel:hover{background:var(--etude-color-paper)}.etude-no-dialog-archive{background:var(--etude-color-danger);color:var(--etude-color-surface);border:1px solid var(--etude-color-danger)}.etude-no-dialog-archive:hover{background:var(--etude-color-danger-deep)}.etude-no-toast{z-index:102;background:var(--etude-color-paper);color:var(--etude-color-ink);padding:11px var(--etude-space-l);box-shadow:0 4px 12px var(--etude-derived-toast-shadow);animation:etude-no-toast-rise var(--etude-motion-duration-base) var(--etude-motion-easing-enter);border-radius:10px;align-items:center;gap:10px;font-size:13px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.etude-no-toast[hidden]{display:none}.etude-no-toast-icon{color:var(--etude-color-primary)}.etude-no-toast-undo{appearance:none;color:var(--etude-color-secondary);font:inherit;cursor:pointer;padding:var(--etude-space-xs);background:0 0;border:none;font-size:12.5px;font-weight:600}.etude-no-sheet{width:100%;max-width:420px;margin:0 var(--etude-space-l);background:var(--etude-color-surface);border-radius:var(--etude-radius-xl) var(--etude-radius-xl) 0 0;box-shadow:0 -6px 24px var(--etude-derived-sheet-shadow);padding:10px 14px 14px;position:relative}.etude-no-sheet-handle{appearance:none;cursor:grab;touch-action:none;background:0 0;border:none;width:100%;margin:0 0 10px;padding:0;display:block}.etude-no-sheet-handle:active{cursor:grabbing}.etude-no-sheet-grabber{background:var(--etude-color-hairline-strong);border-radius:2px;width:32px;height:4px;margin:0 auto;display:block}.etude-no-sheet-title{font-size:var(--etude-type-caption-size);font-weight:600}.etude-no-sheet-option{text-align:left;appearance:none;border:none;border-bottom:1px solid var(--etude-color-paper-warm);width:100%;color:var(--etude-color-ink-secondary);font:inherit;font-size:var(--etude-type-micro-size);cursor:pointer;background:0 0;padding:7px 0;display:block}.etude-no-sheet-option:last-child{border-bottom:none}.etude-no-sheet-option:hover{color:var(--etude-color-ink)}.etude-no-modal{width:100%;max-width:640px;margin:0 var(--etude-space-l);background:var(--etude-color-surface);box-shadow:var(--etude-elevation-modal);animation:etude-no-rise var(--etude-motion-duration-base) var(--etude-motion-easing-enter);border-radius:10px;position:relative;overflow:hidden}.etude-no-modal-header{padding:var(--etude-space-m) var(--etude-space-l);border-bottom:1px solid var(--etude-derived-hairline-soft);justify-content:space-between;align-items:center;display:flex}.etude-no-modal-title{font-size:13px;font-weight:600}.etude-no-modal-close{background:var(--etude-color-paper);border:1px solid var(--etude-derived-close-border);border-radius:var(--etude-radius-m);width:32px;height:32px;color:var(--etude-color-ink-secondary);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);justify-content:center;align-items:center;display:inline-flex}.etude-no-modal-close:hover{background:var(--etude-color-paper-warm)}.etude-no-modal-body{height:64px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);justify-content:center;align-items:center;display:flex}@keyframes etude-no-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes etude-no-toast-rise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.etude-no-dialog,.etude-no-modal,.etude-no-toast{animation:none}}
.etude-dd-grid,.etude-dd-grid *{box-sizing:border-box}.etude-dd-grid{font-family:var(--etude-font-ui);color:var(--etude-color-ink);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:20px;display:grid}.etude-dd-card{background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-xl);padding:18px}.etude-dd-card--full{grid-column:1/-1;max-width:560px}.etude-dd-label{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 var(--etude-space-m) 0;font-size:10px}.etude-dd-table{border-collapse:collapse;width:100%;font-size:12.5px}.etude-dd-table th{font-weight:700;font-size:var(--etude-type-micro-size);letter-spacing:.05em;text-transform:uppercase;color:var(--etude-color-ink-secondary);border-bottom:1px solid var(--etude-color-ink);text-align:left;padding:7px 0}.etude-dd-table td{padding:var(--etude-space-s) 0;border-bottom:1px solid var(--etude-derived-dd-row-divider)}.etude-dd-table tbody tr:last-child td{border-bottom:none}.etude-dd-table__num{text-align:right;font-family:var(--etude-font-mono);font-size:var(--etude-type-caption-size);font-variant-numeric:tabular-nums}.etude-dd-table__change{color:var(--etude-color-primary-deep);font-weight:700}.etude-dd-list{margin:0;padding:0;list-style:none}.etude-dd-list__item{justify-content:space-between;align-items:center;gap:var(--etude-space-m);border-bottom:1px solid var(--etude-derived-dd-row-divider);padding:10px 0;display:flex}.etude-dd-list__item:last-child{border-bottom:none}.etude-dd-list__title{font-size:13px;font-weight:600}.etude-dd-list__meta{font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary)}.etude-dd-list__badge{font-size:var(--etude-type-label-chip-size);letter-spacing:.05em;text-transform:uppercase;padding:3px var(--etude-space-s);border-radius:var(--etude-radius-full);flex-shrink:0;font-weight:700}.etude-dd-list__badge--read{color:var(--etude-color-primary-deep);background:var(--etude-color-primary-tint)}.etude-dd-list__badge--retake{color:var(--etude-color-secondary-deep);background:var(--etude-color-secondary-tint)}.etude-dd-list__badge--new{color:var(--etude-color-ink-secondary);background:var(--etude-derived-dd-badge-new-bg)}.etude-dd-linechart__grid{stroke:var(--etude-derived-dd-row-divider);stroke-width:1px}.etude-dd-linechart__axis{stroke:var(--etude-color-hairline);stroke-width:1px}.etude-dd-linechart__ticklabel,.etude-dd-linechart__monthlabel{font-family:var(--etude-font-mono);fill:var(--etude-color-ink-secondary);font-size:9px}.etude-dd-linechart__line{stroke:var(--etude-color-primary);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.etude-dd-linechart__dot{fill:var(--etude-color-primary)}.etude-dd-linechart__value{font-family:var(--etude-font-ui);fill:var(--etude-color-primary-deep);font-size:10px;font-weight:700}.etude-dd-calendar{grid-template-rows:repeat(7,11px);grid-template-columns:repeat(18,11px);grid-auto-flow:column;gap:3px;display:grid}.etude-dd-calendar__cell{border-radius:2px}.etude-dd-calendar__cell--level-0{background:var(--etude-derived-dd-heat-0)}.etude-dd-calendar__cell--level-1{background:var(--etude-derived-dd-heat-1)}.etude-dd-calendar__cell--level-2{background:var(--etude-derived-dd-heat-2)}.etude-dd-calendar__cell--level-3{background:var(--etude-derived-dd-heat-3)}.etude-dd-calendar__cell--level-4{background:var(--etude-derived-dd-heat-4)}.etude-dd-calendar__months{margin-top:var(--etude-space-s);font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary);justify-content:space-between;font-size:10px;display:flex}.etude-dd-timeline{margin:0;padding-left:22px;list-style:none;position:relative}.etude-dd-timeline:before{content:"";background:var(--etude-color-hairline-strong);width:1px;position:absolute;top:6px;bottom:6px;left:5px}.etude-dd-timeline__entry{padding:0 0 var(--etude-space-l) 0;display:block;position:relative}.etude-dd-timeline__entry:last-child{padding-bottom:0}.etude-dd-timeline__dot{border-radius:var(--etude-radius-full);width:9px;height:9px;display:block;position:absolute;top:4px;left:-21px}.etude-dd-timeline__entry--studied .etude-dd-timeline__dot{background:var(--etude-color-primary);border:2px solid var(--etude-color-surface);box-shadow:0 0 0 1px var(--etude-color-primary)}.etude-dd-timeline__entry--unstudied .etude-dd-timeline__dot{background:var(--etude-color-surface);border:2px solid var(--etude-color-surface);box-shadow:0 0 0 1px var(--etude-color-ink-faint)}.etude-dd-timeline__year{font-family:var(--etude-font-mono);font-size:var(--etude-type-micro-size);display:block}.etude-dd-timeline__entry--studied .etude-dd-timeline__year{color:var(--etude-color-secondary-deep)}.etude-dd-timeline__entry--unstudied .etude-dd-timeline__year{color:var(--etude-color-ink-secondary)}.etude-dd-timeline__title{margin-top:1px;font-size:13px;font-weight:600;display:block}.etude-dd-timeline__entry--unstudied .etude-dd-timeline__title{color:var(--etude-color-ink-secondary)}.etude-dd-timeline__note{font-weight:400;font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary)}
.etude-el-section,.etude-el-section *{box-sizing:border-box}.etude-el-section :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-el-section{font-family:var(--etude-font-ui);color:var(--etude-color-ink)}.etude-el-top-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:20px;display:grid}.etude-el-col{flex-direction:column;gap:20px;display:flex}.etude-el-gallery{margin-top:20px}.etude-el-gallery-label{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 var(--etude-space-m) 0;font-size:10px}.etude-el-gallery-grid{gap:var(--etude-space-l);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.etude-el-panel{background:var(--etude-color-surface);border:1px solid var(--etude-derived-panel-border);border-radius:10px}.etude-el-panel--empty{padding:var(--etude-space-xxl) var(--etude-space-xl);text-align:center}.etude-el-panel--skeleton,.etude-el-panel--spinner,.etude-el-panel--error,.etude-el-panel--gallery{padding:18px}.etude-el-caption{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 var(--etude-space-m) 0;font-size:10px}.etude-el-panel--empty>.etude-el-caption{text-align:left}.etude-el-empty-icon{border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-full);width:88px;height:88px;font-family:var(--etude-font-mono);font-size:9px;line-height:var(--etude-type-body-s-line-height);color:var(--etude-color-ink-secondary);justify-content:center;align-items:center;margin:0 auto;padding:10px;display:flex}.etude-el-empty-heading{font-family:var(--etude-font-display);margin-top:var(--etude-space-l);font-size:18px;font-weight:600}.etude-el-empty-body{font-size:13px;line-height:var(--etude-type-body-line-height);color:var(--etude-color-ink-secondary);max-width:260px;margin:6px auto 0}.etude-el-empty-cta{margin-top:var(--etude-space-l);background:var(--etude-color-primary);min-height:44px;color:var(--etude-color-surface);border:1px solid var(--etude-color-primary);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);padding:10px 20px;font-family:inherit;font-size:13px;font-weight:600}.etude-el-empty-cta:hover{background:var(--etude-color-primary-hover);border-color:var(--etude-color-primary-hover)}.etude-el-skel-row{gap:var(--etude-space-m);align-items:flex-start;display:flex}.etude-el-skel-row--between{justify-content:space-between}.etude-el-skel-col{gap:var(--etude-space-s);flex-direction:column;flex:1;min-width:0;display:flex}.etude-el-skel-col--block{display:flex}.etude-el-skel-pill-row{gap:6px;display:flex}.etude-el-skel-progress-row{align-items:center;gap:10px;display:flex}.etude-el-skel-countdown-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;display:grid}.etude-el-skel-countdown-item{gap:var(--etude-space-s)}.etude-el-skel-bar{border-radius:var(--etude-radius-s);background-image:linear-gradient(90deg, var(--etude-derived-shimmer-base) 25%, var(--etude-derived-shimmer-highlight) 37%, var(--etude-derived-shimmer-base) 63%);background-size:400px 100%}.etude-el-skel-bar--track{flex:1;height:6px}.etude-el-skel-bar--track-thin{height:5px}@media (prefers-reduced-motion:no-preference){.etude-el-skel-bar{animation:1.4s linear infinite etude-el-shimmer}}@keyframes etude-el-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.etude-el-spinner-row{align-items:center;gap:var(--etude-space-m);display:flex}.etude-el-spinner{border-radius:var(--etude-radius-full);border:2px solid var(--etude-color-hairline);border-top-color:var(--etude-color-primary);flex-shrink:0;width:18px;height:18px}@media (prefers-reduced-motion:no-preference){.etude-el-spinner{animation:.8s linear infinite etude-el-spin}}@keyframes etude-el-spin{to{transform:rotate(360deg)}}.etude-el-spinner-headline{font-size:13px;font-weight:600}.etude-el-spinner-detail{color:var(--etude-color-ink-secondary);font-size:11.5px}.etude-el-error{background:var(--etude-color-danger-tint);border:1px solid var(--etude-derived-error-border);border-radius:var(--etude-radius-l);padding:14px var(--etude-space-l)}.etude-el-error-heading{color:var(--etude-color-danger-deep);font-size:13px;font-weight:600}.etude-el-error-body{margin:var(--etude-space-xs) 0 0 0;font-size:12.5px;line-height:var(--etude-type-body-s-line-height);color:var(--etude-color-danger-deep)}.etude-el-error-retry{min-height:38px;padding:var(--etude-space-s) var(--etude-space-l);background:var(--etude-color-surface);color:var(--etude-color-danger-deep);border:1px solid var(--etude-derived-error-btn-border);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);margin-top:10px;font-family:inherit;font-size:12.5px;font-weight:600}.etude-el-error-retry:hover{background:var(--etude-derived-error-btn-hover)}
.etude-lb1-grid,.etude-lb1-grid *{box-sizing:border-box}.etude-lb1-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));align-items:start;gap:18px;display:grid}.etude-lb1-grid :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-lb1-card{background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-l);padding:18px}.etude-lb1-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);margin:0 0 10px;font-size:10px}.etude-lb1-note{color:var(--etude-color-ink-secondary);margin-top:var(--etude-space-s);font-size:11.5px}.etude-lb1-text-paragraph{font-size:var(--etude-type-body-s-size);margin:0 0 10px;line-height:1.6}.etude-lb1-inline-callout{background:var(--etude-color-callout-key-bg);border-left:3px solid var(--etude-color-callout-key-border);border-radius:var(--etude-radius-m);padding:10px 13px}.etude-lb1-inline-callout__label{letter-spacing:var(--etude-type-label-chip-letter-spacing);text-transform:uppercase;color:var(--etude-color-callout-key-label);margin-bottom:var(--etude-space-xs);font-size:10px;font-weight:700}.etude-lb1-inline-callout__body{font-size:12.5px;line-height:var(--etude-type-body-s-line-height);margin:0}.etude-lb1-image-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:120px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);text-align:center;padding:0 var(--etude-space-m);justify-content:center;align-items:center;display:flex}.etude-lb1-image-caption{color:var(--etude-color-ink-secondary);margin-top:var(--etude-space-s);font-size:11.5px;font-style:italic}.etude-lb1-formula{background:var(--etude-color-paper);border-radius:var(--etude-radius-l);text-align:center;font-family:var(--etude-font-display);font-size:var(--etude-type-display-m-size);padding:18px;font-style:italic}.etude-lb1-formula__frac{vertical-align:middle;text-align:center;font-size:var(--etude-type-body-size);line-height:1.1;display:inline-block}.etude-lb1-formula__frac-num{border-bottom:1px solid var(--etude-color-ink);padding:0 var(--etude-space-xs);display:block}.etude-lb1-formula__frac-den{padding:0 var(--etude-space-xs);display:block}.etude-lb1-formula-note{color:var(--etude-color-ink-secondary);margin:10px 0 0;font-size:12.5px}.etude-lb1-formula-note__inline{font-family:var(--etude-font-display);font-style:italic}.etude-lb1-hotspot-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:110px;position:relative}.etude-lb1-hotspot-caption{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);position:absolute;top:10px;left:12px}.etude-lb1-hotspot-label{background:var(--etude-color-paper);color:var(--etude-color-ink);font-size:var(--etude-type-label-chip-size);padding:3px var(--etude-space-s);border-radius:var(--etude-radius-s);white-space:nowrap;position:absolute}.etude-lb1-timeline-box{background:var(--etude-color-paper);border-radius:var(--etude-radius-l);padding:var(--etude-space-l)}.etude-lb1-timeline-label{font-family:var(--etude-font-display);font-size:var(--etude-type-title-size);min-height:24px;font-weight:600}.etude-lb1-timeline-range{width:100%;margin-top:var(--etude-space-m);accent-color:var(--etude-color-primary)}.etude-lb1-timeline-ticks{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);justify-content:space-between;display:flex}.etude-lb1-cmp-frame{border-radius:var(--etude-radius-l);background:var(--etude-derived-frame-bg);border:1px solid var(--etude-derived-card-border);height:100px;position:relative;overflow:hidden}.etude-lb1-cmp-label{font-family:var(--etude-font-mono);font-size:10px;position:absolute;bottom:8px}.etude-lb1-cmp-label--after{color:var(--etude-color-ink-secondary);right:10px}.etude-lb1-cmp-label--before{color:var(--etude-color-surface);left:10px}.etude-lb1-cmp-before{width:var(--etude-lb1-cmp-pct,50%);background:var(--etude-color-ink);position:absolute;inset:0;overflow:hidden}.etude-lb1-cmp-handle{top:50%;left:var(--etude-lb1-cmp-pct,50%);border-radius:var(--etude-radius-full);background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);width:28px;height:28px;color:var(--etude-color-ink);justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.etude-lb1-cmp-range{width:100%;accent-color:var(--etude-color-primary);margin-top:10px}.etude-lb1-flash-card{background:var(--etude-color-paper);border:1px solid var(--etude-color-hairline);border-radius:var(--etude-radius-xl);text-align:center;cursor:pointer;min-height:96px;transition:background var(--etude-motion-duration-base) var(--etude-motion-easing-standard);justify-content:center;align-items:center;padding:18px;display:flex;position:relative}.etude-lb1-flash-card:hover{background:var(--etude-color-paper-warm)}.etude-lb1-flash-face{display:none}.etude-lb1-flash-face--front{font-family:var(--etude-font-display);font-size:var(--etude-type-title-size);font-weight:600;display:block}.etude-lb1-flash-card[data-flipped=true] .etude-lb1-flash-face--front{display:none}.etude-lb1-flash-card[data-flipped=true] .etude-lb1-flash-face--back{font-size:var(--etude-type-body-s-size);line-height:var(--etude-type-body-s-line-height);color:var(--etude-color-primary-deep);display:block}.etude-lb1-flash-actions{gap:var(--etude-space-s);align-items:center;margin-top:10px;display:flex}.etude-lb1-flash-btn{min-height:34px;font-size:var(--etude-type-caption-size);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);padding:7px 14px;font-family:inherit;font-weight:600}.etude-lb1-flash-btn--know{background:var(--etude-color-primary-tint);color:var(--etude-color-primary-deep);border:1px solid var(--etude-derived-soft-primary-border)}.etude-lb1-flash-btn--know:hover{background:color-mix(in srgb, var(--etude-color-primary-tint) 80%, var(--etude-color-primary) 20%)}.etude-lb1-flash-btn--dont{background:var(--etude-color-paper);color:var(--etude-color-ink-secondary);border:1px solid var(--etude-derived-row-border)}.etude-lb1-flash-btn--dont:hover{background:var(--etude-derived-frame-bg)}.etude-lb1-flash-status{font-size:var(--etude-type-micro-size);color:var(--etude-color-ink-secondary)}.etude-lb1-achievement{align-items:center;gap:var(--etude-space-m);background:var(--etude-color-paper);border-radius:var(--etude-radius-l);padding:14px var(--etude-space-l);display:flex}.etude-lb1-achievement__icon{color:var(--etude-color-secondary);flex-shrink:0}.etude-lb1-achievement__heading{font-size:var(--etude-type-body-s-size);color:var(--etude-color-ink);font-weight:600}.etude-lb1-achievement__meta{color:var(--etude-color-ink-secondary);margin-top:1px;font-size:11.5px}
.etude-lb2-grid,.etude-lb2-grid *{box-sizing:border-box}.etude-lb2-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));align-items:start;gap:18px;display:grid}.etude-lb2-grid :focus-visible{outline:2px solid var(--etude-color-focus-ring);outline-offset:2px}.etude-lb2-card{background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-l);padding:18px}.etude-lb2-header-row{justify-content:space-between;align-items:center;margin:0 0 10px;display:flex}.etude-lb2-eyebrow{font-family:var(--etude-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--etude-color-ink-secondary);font-size:10px}.etude-lb2-pro-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--etude-color-secondary-deep);border:1px solid var(--etude-derived-pro-badge-border);border-radius:var(--etude-radius-full);padding:1px 7px;font-size:10px;font-weight:700}.etude-lb2-speed-btn,.etude-lb2-svganim-btn,.etude-lb2-canvas-btn,.etude-lb2-threejs-btn,.etude-lb2-map-zoom-btn{background:var(--etude-color-paper);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-m);cursor:pointer;color:var(--etude-color-ink);transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);font-family:inherit}.etude-lb2-speed-btn:hover,.etude-lb2-svganim-btn:hover,.etude-lb2-canvas-btn:hover,.etude-lb2-threejs-btn:hover{background:var(--etude-derived-frame-bg)}.etude-lb2-audio-controls{align-items:center;gap:var(--etude-space-m);display:flex}.etude-lb2-play-btn{border-radius:var(--etude-radius-full);background:var(--etude-color-primary);cursor:pointer;width:40px;height:40px;color:var(--etude-color-surface);transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);border:none;justify-content:center;align-items:center;display:flex}.etude-lb2-play-btn:hover{background:var(--etude-color-primary-hover)}.etude-lb2-waveform{flex:1;align-items:center;gap:2px;height:28px;display:flex}.etude-lb2-wave-bar{background:var(--etude-derived-waveform-inactive);border-radius:2px;width:3px}.etude-lb2-wave-bar--active{background:var(--etude-color-primary)}.etude-lb2-speed-btn{min-height:28px;padding:var(--etude-space-xs) 9px;font-size:var(--etude-type-micro-size);font-weight:600;font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary)}.etude-lb2-cc-btn{min-height:28px;padding:var(--etude-space-xs) 9px;font-size:var(--etude-type-micro-size);background:var(--etude-color-primary-tint);border:1px solid var(--etude-derived-soft-primary-border);border-radius:var(--etude-radius-m);cursor:pointer;color:var(--etude-color-primary-deep);font-family:inherit;font-weight:700}.etude-lb2-transcript{background:var(--etude-color-paper);border-radius:var(--etude-radius-m);padding:var(--etude-space-s) var(--etude-space-m);color:var(--etude-color-ink);margin-top:10px;font-size:12.5px}.etude-lb2-video-frame{border-radius:var(--etude-radius-l);border:1px solid var(--etude-derived-card-border);overflow:hidden}.etude-lb2-video-thumb{background:var(--etude-color-paper);justify-content:center;align-items:center;height:110px;display:flex}.etude-lb2-video-play-overlay{border-radius:var(--etude-radius-full);background:color-mix(in srgb, var(--etude-color-ink) 14%, transparent);border:1px solid color-mix(in srgb, var(--etude-color-ink) 40%, transparent);width:44px;height:44px;color:var(--etude-color-ink);justify-content:center;align-items:center;display:flex}.etude-lb2-video-controls{background:var(--etude-color-surface);padding:var(--etude-space-s) var(--etude-space-m);align-items:center;gap:10px;display:flex}.etude-lb2-video-progress-track{background:var(--etude-color-hairline-strong);border-radius:2px;flex:1;height:3px;overflow:hidden}.etude-lb2-video-progress-fill{background:var(--etude-color-primary);height:100%}.etude-lb2-video-time,.etude-lb2-video-speed{font-family:var(--etude-font-mono);color:var(--etude-color-ink-secondary);font-size:10px}.etude-lb2-video-cc{color:var(--etude-color-ink);font-size:10px;font-weight:700}.etude-lb2-lottie-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:100px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);text-align:center;padding:0 var(--etude-space-m);justify-content:center;align-items:center;display:flex;position:relative}.etude-lb2-lottie-badge{letter-spacing:.06em;text-transform:uppercase;background:var(--etude-color-surface);border:1px solid var(--etude-derived-row-border);border-radius:var(--etude-radius-full);padding:2px var(--etude-space-s);color:var(--etude-color-ink-secondary);font-size:9.5px;font-weight:700;position:absolute;top:8px;right:8px}.etude-lb2-svganim-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:80px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);text-align:center;padding:0 var(--etude-space-m);justify-content:center;align-items:center;display:flex}.etude-lb2-svganim-controls{gap:var(--etude-space-s);align-items:center;margin-top:10px;display:flex}.etude-lb2-svganim-btn{border-radius:var(--etude-radius-m);width:32px;height:32px;color:var(--etude-color-ink-secondary);justify-content:center;align-items:center;display:inline-flex}.etude-lb2-svganim-btn--play{background:var(--etude-color-primary);border-color:var(--etude-color-primary);color:var(--etude-color-surface)}.etude-lb2-svganim-btn--play:hover{background:var(--etude-color-primary-hover)}.etude-lb2-svganim-step{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary)}.etude-lb2-canvas-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:110px;position:relative}.etude-lb2-canvas-caption{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);position:absolute;top:10px;left:12px}.etude-lb2-canvas-tooltip{background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-m);color:var(--etude-color-ink);box-shadow:var(--etude-derived-annotation-shadow);padding:6px 10px;font-size:11.5px;position:absolute;bottom:10px;left:10px}.etude-lb2-canvas-controls{gap:var(--etude-space-s);margin-top:10px;display:flex}.etude-lb2-canvas-btn{min-height:32px;padding:6px var(--etude-space-m);font-size:11.5px;font-weight:600}.etude-lb2-threejs-frame{background:var(--etude-color-surface);border-radius:var(--etude-radius-l);height:100px;font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);text-align:center;padding:0 var(--etude-space-m);justify-content:center;align-items:center;display:flex}.etude-lb2-threejs-controls{gap:var(--etude-space-s);margin-top:10px;display:flex}.etude-lb2-threejs-btn{min-height:32px;padding:6px var(--etude-space-m);font-size:11.5px;font-weight:600}.etude-lb2-map-frame{background:var(--etude-derived-frame-bg);border:1px dashed var(--etude-color-hairline-strong);border-radius:var(--etude-radius-l);height:110px;position:relative}.etude-lb2-map-caption{font-family:var(--etude-font-mono);font-size:var(--etude-type-label-chip-size);color:var(--etude-color-ink-secondary);position:absolute;top:10px;left:12px}.etude-lb2-map-chip{background:var(--etude-color-surface);border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-m);padding:var(--etude-space-xs) 10px;font-size:var(--etude-type-micro-size);color:var(--etude-color-ink);box-shadow:var(--etude-derived-annotation-shadow);font-weight:600;position:absolute;bottom:10px;left:10px}.etude-lb2-map-zoom{gap:var(--etude-space-xs);flex-direction:column;display:flex;position:absolute;top:10px;right:10px}.etude-lb2-map-zoom-btn{background:var(--etude-color-surface);border-radius:var(--etude-radius-s);width:28px;height:28px;font-size:var(--etude-type-body-size);color:var(--etude-color-ink-secondary);line-height:var(--etude-type-label-chip-line-height)}.etude-lb2-code-wrap{border:1px solid var(--etude-derived-card-border);border-radius:var(--etude-radius-l);overflow:hidden}.etude-lb2-code-block{background:color-mix(in srgb, var(--etude-color-hairline-strong) 18%, var(--etude-color-paper) 82%);padding:var(--etude-space-m) 14px;font-family:var(--etude-font-mono);color:var(--etude-color-ink);font-size:11.5px;line-height:1.7}.etude-lb2-code-kw{color:var(--etude-color-primary)}.etude-lb2-code-num{color:var(--etude-color-secondary)}.etude-lb2-code-footer{background:var(--etude-color-paper);border-top:1px solid var(--etude-derived-card-border);padding:var(--etude-space-s) var(--etude-space-m);justify-content:space-between;align-items:center;display:flex}.etude-lb2-code-output{font-family:var(--etude-font-mono);color:var(--etude-color-primary-deep);font-size:11.5px}.etude-lb2-run-btn{background:var(--etude-color-primary);min-height:30px;color:var(--etude-color-surface);border:1px solid var(--etude-color-primary);border-radius:var(--etude-radius-m);cursor:pointer;transition:background var(--etude-motion-duration-fast) var(--etude-motion-easing-standard);padding:5px 14px;font-family:inherit;font-size:11.5px;font-weight:600}.etude-lb2-run-btn:hover{background:var(--etude-color-primary-hover)}
