/* Shared invitation and practice library. All selectors stay within practice UI. */
.practice-invitation{margin:34px 0 48px;border:1px solid var(--line,#d8d9de);border-radius:20px;overflow:hidden;background:var(--panel,#fff);color:var(--ink,#202334)}
.practice-heading{padding:28px 32px 22px;display:flex;gap:24px;align-items:end;justify-content:space-between}
.practice-heading h2{font-family:var(--serif,Georgia,serif);font-size:clamp(28px,3.2vw,36px);line-height:1.18;letter-spacing:-.5px;margin:0 0 9px}
.practice-heading p{font-size:17px;line-height:1.6;margin:0;max-width:54ch;color:var(--muted,#575d70)}
.practice-kicker{display:block;font:700 12px/1.5 var(--sans,system-ui);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;color:var(--green,#384bb4)}
.practice-library-link{font:650 15px/1.5 var(--sans,system-ui);white-space:nowrap;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center;gap:8px}
.practice-library-link:hover{text-decoration:underline}
.practice-feature{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);background:#17213d;color:#fff;isolation:isolate}
.practice-feature-copy{padding:32px;align-self:center}
.practice-invitation .practice-meta{font:650 13px/1.5 var(--sans,system-ui);letter-spacing:.02em;color:#c4d1f8;margin:0 0 16px;display:flex;align-items:center;gap:9px}
.practice-meta svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7}
.practice-feature h3,.practice-feature h2{font:400 clamp(28px,3.2vw,37px)/1.15 var(--serif,Georgia,serif);letter-spacing:-.4px;margin:0 0 16px;color:#fff}
.practice-feature-copy>p{font:400 17px/1.65 var(--sans,system-ui);margin:0 0 22px;color:#e3e8f7;max-width:43ch}
.practice-cta{display:inline-flex;gap:12px;align-items:center;justify-content:center;font:650 16px/1.4 var(--sans,system-ui);text-decoration:none;min-height:48px;padding:12px 20px;border-radius:9px;background:#e4ecff;color:#17213d;border:1px solid transparent;transition:background .18s,transform .18s;cursor:pointer}
.practice-cta:hover{background:#fff;transform:translateY(-2px)}
.practice-cta svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}
.practice-invitation a:focus-visible,.practice-page a:focus-visible,.practice-page button:focus-visible{outline:3px solid #dd9b28;outline-offset:5px}
.practice-window{margin:28px 28px 28px 0;align-self:center;min-width:0;background:#fbfbfd;color:#24304a;border:1px solid #e1e5ef;border-radius:13px;box-shadow:0 14px 36px #0003;overflow:hidden;font-family:var(--sans,system-ui)}
.practice-window-bar{display:flex;align-items:center;gap:9px;padding:12px 17px;border-bottom:1px solid #dde2ed;background:#eef1f8;font-size:12px;font-weight:650;letter-spacing:.02em;color:#58627b}
.practice-window-bar svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5}
.practice-email{padding:18px 20px 20px}
.practice-sender{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:14px;line-height:1.5}
.practice-avatar{display:grid;place-items:center;background:#e1e5f2;width:34px;height:34px;border-radius:50%;font-size:12px;font-weight:750;color:#405077;flex-shrink:0}
.practice-sender strong{display:block;font-weight:650}
.practice-sender small{font-size:12px;color:#657089}
.practice-email h4,.practice-email h3{font:650 17px/1.35 var(--sans,system-ui);letter-spacing:0;margin:0 0 10px;color:#24304a}
.practice-email p{font:400 15px/1.6 var(--sans,system-ui);margin:0;color:#4d5972}
.practice-decision{margin:0 14px 14px;padding:15px 16px;background:#edf1fc;border-left:3px solid #6b81cb;border-radius:5px}
.practice-decision span{font-size:11px;line-height:1.5;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#42578c}
.practice-decision p{font-size:16px;line-height:1.5;margin:6px 0 0;color:#23375d}
.practice-check{padding:27px 32px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:20px;align-items:center;background:var(--panel,#fff)}
.practice-check-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--soft,#edf0fa);color:var(--green,#354aad)}
.practice-check-icon svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.5}
.practice-check h3,.practice-check h2{font-family:var(--serif,Georgia,serif);font-size:25px;line-height:1.2;letter-spacing:-.2px;margin:0 0 8px}
.practice-check p{font:400 16px/1.6 var(--sans,system-ui);color:var(--muted,#575d70);margin:0;max-width:53ch}
.practice-check .practice-cta{background:transparent;color:var(--green,#354aad);border-color:var(--line,#d8d9de)}
.practice-check .practice-cta:hover{background:var(--soft,#edf0fa)}
.cover-practice-links{display:flex;flex-wrap:wrap;column-gap:18px;row-gap:3px;margin:0 0 25px;font:500 15px/1.6 var(--sans,system-ui)}
.cover-practice-links span{width:100%;color:var(--muted)}
.cover-practice-links a{display:inline-flex;align-items:center;gap:7px;color:var(--green);text-decoration:underline;text-underline-offset:5px;min-height:44px}
.cover-practice-links svg{width:16px;height:16px}
.practice-page{--ink:#202334;--muted:#5b6173;--paper:#f7f7f3;--panel:#fff;--soft:#edf0fa;--line:#dadce3;--green:#364aae;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
.practice-page *{box-sizing:border-box}
[data-theme=dark] .practice-page{--ink:#eceefa;--muted:#b8bece;--paper:#141723;--panel:#1d2231;--soft:#2b344a;--line:#394157;--green:#b6c3ff;color-scheme:dark}
.practice-page a{color:inherit;text-underline-offset:5px}
.practice-site-nav{max-width:1120px;margin:auto;padding:25px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}
.practice-wordmark{font-size:24px;font-weight:750;letter-spacing:-1px;text-decoration:none}
.practice-wordmark span{color:var(--green)}
.practice-site-actions{display:flex;align-items:center;gap:24px}
.practice-site-actions>a{font-size:15px}
.practice-theme{font:inherit;color:var(--ink);border:1px solid var(--line);background:var(--panel);min-width:44px;min-height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.practice-theme svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.5}
.practice-main{max-width:1120px;margin:0 auto;padding:58px 32px 30px}
.practice-page h1{font:400 clamp(40px,5.5vw,62px)/1.06 var(--serif);letter-spacing:-1.5px;margin:0 0 23px;max-width:14ch}
.practice-lede{font:400 19px/1.7 var(--sans);max-width:65ch;color:var(--muted);margin:0 0 12px}
.practice-page .practice-heading{display:none}
.practice-page .practice-invitation{margin-top:36px}
.practice-note{max-width:65ch;margin:0;font-size:16px;color:var(--muted)}
.practice-footer{max-width:1120px;margin:0 auto;padding:24px 32px 36px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;font-size:14px;color:var(--muted)}
.practice-skip{position:absolute;left:16px;top:-100px;padding:12px 20px;background:var(--panel);z-index:10}
.practice-skip:focus{top:10px}
@media(max-width:1050px){.practice-heading{align-items:start;flex-direction:column;gap:8px}.practice-check{grid-template-columns:42px minmax(0,1fr);gap:16px}.practice-check .practice-cta{grid-column:2;justify-self:start}}
@media(max-width:800px){.practice-feature{grid-template-columns:1fr}.practice-window{margin:0 28px 28px}.practice-feature-copy{padding:28px}.practice-feature-copy>p{max-width:60ch}.practice-heading,.practice-check{padding:25px}.practice-check-icon{width:42px;height:42px}.practice-site-nav{padding:20px}.practice-site-actions{gap:14px}.practice-main{padding:38px 20px 26px}.practice-footer{padding-inline:20px}}
@media(max-width:460px){.practice-invitation{border-radius:14px;margin-block:26px 32px}.practice-heading{padding:23px 20px 18px}.practice-feature-copy{padding:25px 20px}.practice-window{margin:0 16px 22px}.practice-email{padding:16px}.practice-check{padding:24px 20px;grid-template-columns:1fr;gap:12px}.practice-check-icon{display:none}.practice-check .practice-cta{grid-column:1}.practice-check h3,.practice-check h2{font-size:27px}.practice-site-actions>a{font-size:14px}.practice-page .practice-cta{width:100%}.cover-practice-links{font-size:16px;column-gap:22px}}
@media(prefers-reduced-motion:reduce){.practice-cta{transition:none!important;transform:none!important}}
.reduce-motion .practice-cta{transition:none!important;transform:none!important}
@media print{.practice-invitation,.cover-practice-links{display:none}.practice-page .practice-invitation{display:block}.practice-page .practice-heading{display:block}.practice-site-actions,.practice-theme{display:none}}

.practice-page .practice-feature .practice-cta{color:#17213d}.practice-site-actions>a{display:inline-flex;align-items:center;min-height:44px}.practice-page .practice-check .practice-cta{color:var(--green)}

.practice-page .author-affiliation{font-size:16px;line-height:1.6;max-width:60ch;margin:24px 0;color:var(--muted);padding-left:16px;border-left:3px solid #b32938}.practice-page .author-affiliation strong{display:block;font-size:17px;color:var(--ink)}.practice-page .author-affiliation span{display:block;margin-top:3px}.practice-page .author-affiliation a{color:var(--ink)}[data-theme=dark] .practice-page .author-affiliation{border-left-color:#ed8894}

/* Focused simulations are scoped to the library, not the guide invitation. */
.practice-page .skill-library{margin:48px 0 64px}
.practice-page .skill-library-heading{display:flex;align-items:end;gap:36px;justify-content:space-between;padding-bottom:24px;border-bottom:2px solid var(--ink)}
.practice-page .skill-library-heading h2,.practice-page .practice-longer-heading h2{font:400 clamp(29px,3vw,36px)/1.18 var(--serif);letter-spacing:-.5px;margin:0}
.practice-page .skill-library-heading p{font-size:16px;line-height:1.6;color:var(--muted);max-width:35ch;margin:0}
.practice-page .skill-list{display:grid;grid-template-columns:1fr 1fr;column-gap:42px}
.practice-page .skill-entry{padding:28px 0 22px;border-bottom:1px solid var(--line);min-width:0}
.practice-page .skill-entry-top{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);line-height:1.4}
.practice-page .skill-symbol{display:grid;place-items:center;width:37px;height:37px;flex-shrink:0;background:var(--soft);color:var(--green);border-radius:10px}
.practice-page .skill-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.practice-page .skill-time{white-space:nowrap;margin-left:auto;font-size:13px}
.practice-page .skill-entry h3{font:400 clamp(25px,2.4vw,30px)/1.23 var(--serif);letter-spacing:-.35px;margin:19px 0 12px;max-width:28ch}
.practice-page .skill-entry h3 a{display:block;min-height:44px;text-decoration:none}
.practice-page .skill-entry h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.practice-page .skill-entry p{font-size:17px;line-height:1.6;color:var(--muted);margin:0 0 13px;max-width:42ch}
.practice-page .skill-open{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--green);font-size:16px;font-weight:650;text-decoration:none}
.practice-page .skill-open:hover{text-decoration:underline}
.practice-page .skill-open svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;transition:transform .2s}
.practice-page .skill-open:hover svg{transform:translateX(4px)}
@media(max-width:700px){.practice-page .skill-library-heading{display:block}.practice-page .skill-library-heading p{margin-top:15px;max-width:none}.practice-page .skill-list{grid-template-columns:1fr}.practice-page .skill-library{margin-block:38px 42px}.practice-page .skill-entry h3{max-width:32ch}}
@media(prefers-reduced-motion:reduce){.practice-page .skill-open svg{transition:none;transform:none}}
.reduce-motion.practice-page .skill-open svg{transition:none;transform:none}

.practice-page .practice-library-jump{display:inline-flex;align-items:center;gap:14px;min-height:46px;margin:8px 0 0;font-size:17px;font-weight:650;color:var(--green)}.practice-page #skill-library-title{scroll-margin-top:24px}
