
    :root { --paper:#f7f4ef; --white:#fff; --ink:#16323a; --ink-deep:#0f2329; --muted:#52666b; --line:#cdd8d8; --parent:#cb503a; --parent-deep:#a84731; --parent-pale:#fff1ea; --professional:#15808c; --professional-deep:#0e5a63; --professional-pale:#eaf6f5; --focus:#24505a; --danger:#b42318; --danger-pale:#fef3f2; }
    * { box-sizing:border-box; scrollbar-color:var(--professional) var(--paper); scrollbar-width:thin; }
    *::-webkit-scrollbar { width:10px; }
    *::-webkit-scrollbar-track { background:var(--paper); }
    *::-webkit-scrollbar-thumb { border:2px solid var(--paper); border-radius:8px; background:var(--professional); }
    html { scroll-behavior:smooth; }
    body { margin:0; background:var(--paper); color:var(--ink); font-family:"Plus Jakarta Sans",sans-serif; }
    a,button,input { -webkit-tap-highlight-color:transparent; }
    ::selection { background:var(--parent); color:var(--white); }
    :focus-visible { outline:3px solid var(--focus); outline-offset:3px; }

    .psi-header { position:sticky; z-index:20; top:0; display:grid; grid-template-columns:auto 1fr auto; min-height:72px; align-items:center; gap:36px; padding:0 clamp(22px,4vw,58px); background:rgba(247,244,239,.97); box-shadow:0 1px 0 rgba(22,50,58,.12); }
    .psi-header::after { content:""; position:absolute; right:0; bottom:-4px; left:0; height:4px; background:linear-gradient(90deg,var(--parent) 0 47%,#947068 50%,var(--professional) 53% 100%); }
    .psi-logo { display:flex; align-items:center; gap:9px; color:var(--ink); font-family:"Bricolage Grotesque",sans-serif; font-size:26px; font-weight:700; letter-spacing:-.025em; text-decoration:none; }
    .psi-logo img { display:block; width:32px; height:40px; object-fit:contain; }
    .psi-logo span span { color:var(--parent); }
    .psi-nav { display:flex; align-items:center; justify-content:center; gap:clamp(20px,2.2vw,34px); }
    .psi-nav a,.psi-signin { color:var(--ink); font-size:12px; font-weight:700; text-decoration:none; white-space:nowrap; }
    .psi-account-area { display:flex; align-items:center; gap:15px; }
    .psi-signin { display:inline-flex; min-height:44px; align-items:center; gap:7px; color:var(--ink); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:6px; }
    .psi-signin svg { width:17px; }
    .psi-account { display:flex; min-height:44px; align-items:center; padding:0 18px; border:1px solid var(--ink); border-radius:11px; color:var(--ink); font-size:12px; font-weight:700; text-decoration:none; }
    .psi-menu-toggle,.psi-mobile-nav { display:none; }

    .psi-main { position:relative; display:flex; min-height:720px; align-items:center; justify-content:center; padding:clamp(68px,8vw,112px) 24px; background:linear-gradient(90deg,rgba(203,80,58,.055) 0 50%,rgba(21,128,140,.055) 50% 100%),var(--paper); }
    .psi-form-side { display:flex; width:100%; align-items:center; justify-content:center; }
    .psi-form-wrap { position:relative; width:min(100%,500px); padding:clamp(34px,4vw,52px); border:1px solid var(--line); border-radius:16px; background:var(--white); box-shadow:0 24px 58px rgba(15,35,41,.12); }
    .psi-form-wrap::before { content:""; position:absolute; top:-1px; right:-1px; left:-1px; height:6px; border-radius:16px 16px 0 0; background:linear-gradient(90deg,var(--parent) 0 50%,var(--professional) 50% 100%); }
    .psi-form-wrap h1 { margin:0; color:var(--ink-deep); font-size:34px; font-weight:700; letter-spacing:-.025em; line-height:1.15; }
    .psi-form-wrap>p { margin:10px 0 30px; color:var(--muted); font-size:13px; line-height:1.6; }
    .psi-field { margin-top:20px; }
    .psi-field label { display:block; margin-bottom:9px; color:var(--ink-deep); font-size:13px; font-weight:800; }
    .psi-input-wrap { position:relative; }
    .psi-field input[type="email"],.psi-field input[type="password"],.psi-field input[type="text"] { width:100%; min-height:54px; padding:0 15px; border:1px solid #aebdbf; border-radius:10px; background:var(--white); color:var(--ink-deep); font:500 16px "Plus Jakarta Sans",sans-serif; }
    .psi-field input[aria-invalid="true"] { border-color:var(--danger); box-shadow:0 0 0 1px var(--danger); }
    .psi-password input { padding-right:76px !important; }
    .psi-show { position:absolute; top:5px; right:5px; min-height:44px; padding:0 12px; border:0; border-radius:7px; background:transparent; color:var(--ink); font:800 12px "Plus Jakarta Sans",sans-serif; cursor:pointer; }
    .psi-error { min-height:18px; margin:7px 0 0; color:var(--danger); font-size:12px; line-height:1.45; }
    .psi-options { display:flex; justify-content:space-between; gap:18px; align-items:center; margin:17px 0 25px; }
    .psi-remember { display:flex; min-height:44px; align-items:center; gap:9px; color:var(--muted); font-size:12px; font-weight:600; }
    .psi-remember input { width:17px; height:17px; margin:0; accent-color:var(--ink); }
    .psi-options a,.psi-create a { color:var(--ink); font-size:12px; font-weight:800; text-underline-offset:4px; }
    .psi-options a { display:flex; min-height:44px; align-items:center; }
    .psi-submit { width:100%; min-height:54px; border:0; border-radius:11px; background:var(--ink); color:var(--white); font:800 14px "Plus Jakarta Sans",sans-serif; cursor:pointer; }
    .psi-status { min-height:20px; margin:13px 0 0; color:var(--muted); font-size:12px; line-height:1.5; text-align:center; }
    .psi-auth-error { margin:15px 0 0; padding:12px 14px; border:1px solid #f3a69e; border-radius:7px; background:var(--danger-pale); color:#7a271a; font-size:12px; font-weight:600; line-height:1.55; }
    .psi-auth-error[hidden] { display:none; }
    .psi-submit:disabled { cursor:wait; opacity:.72; transform:none; }
    .psi-create { margin:25px 0 0; padding-top:23px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; text-align:center; }

    .psi-footer { padding:60px clamp(24px,5vw,74px) 28px; background:var(--ink-deep); color:var(--white); }
    .psi-footer-main { display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:40px; padding-bottom:48px; }
    .psi-footer-wordmark { color:var(--white); font-family:"Bricolage Grotesque",sans-serif; font-size:28px; font-weight:700; text-decoration:none; }
    .psi-footer-wordmark span { color:#ef765e; }
    .psi-footer-brand p { max-width:32ch; margin:16px 0 0; color:#bfd0d2; font-size:14px; line-height:1.65; }
    .psi-footer h3 { margin:0 0 15px; font-size:14px; }
    .psi-footer ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
    .psi-footer li a { color:#bfd0d2; font-size:13px; text-decoration:none; }
    .psi-footer li a[aria-current="page"] { color:var(--white); }
    .psi-footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px solid #345058; color:#9fb4b8; font-size:12px; }
    .psi-footer-bottom a { color:#bfd0d2; }
    .psi-footer :focus-visible { outline-color:#a8e1df; }

    @media (max-width:1260px) {
      .psi-header { grid-template-columns:auto 1fr; min-height:70px; }
      .psi-nav,.psi-account-area { display:none; }
      .psi-menu-toggle { display:flex; justify-self:end; min-height:44px; align-items:center; gap:8px; padding:0 13px; border:1px solid var(--ink); border-radius:10px; background:transparent; color:var(--ink); font:700 13px "Plus Jakarta Sans",sans-serif; }
      .psi-menu-toggle svg { width:17px; }
      .psi-mobile-nav { position:absolute; top:74px; right:0; left:0; padding:15px clamp(22px,4vw,58px) 18px; background:var(--white); box-shadow:0 14px 28px rgba(15,35,41,.12); }
      .psi-mobile-nav:not([hidden]) { display:grid; }
      .psi-mobile-nav>a { display:flex; min-height:44px; align-items:center; padding:0 10px; border-radius:8px; color:var(--ink); font-size:13px; font-weight:700; text-decoration:none; }
      .psi-mobile-nav>a[aria-current="page"] { background:#edf1ef; }
      .psi-mobile-account { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; padding-top:12px; border-top:1px solid var(--line); }
      .psi-mobile-account a { display:flex; min-height:44px; align-items:center; justify-content:center; border:1px solid var(--ink); border-radius:10px; color:var(--ink); font-size:13px; font-weight:700; text-decoration:none; }
      .psi-mobile-account a:last-child { background:var(--ink); color:var(--white); }
    }
    @media (max-width:820px) {
      .psi-footer-main { grid-template-columns:1fr 1fr; }
      .psi-footer-brand { grid-column:1/-1; }
      .psi-footer li a,.psi-footer-bottom a { display:flex; min-height:44px; align-items:center; }
    }
    @media (max-width:620px) {
      .psi-header { padding-inline:16px; }
      .psi-logo { font-size:25px; }
      .psi-logo img { width:31px; height:38px; }
      .psi-main { min-height:650px; padding:44px 16px; }
      .psi-form-wrap { padding:36px 22px; border-radius:15px; }
      .psi-form-wrap h1 { font-size:30px; }
      .psi-options { align-items:flex-start; }
      .psi-footer { padding-inline:20px; }
      .psi-footer-main { grid-template-columns:1fr; gap:30px; }
      .psi-footer-brand { grid-column:auto; }
      .psi-footer-bottom { flex-direction:column; }
    }
    @media (max-width:360px) {
      .psi-header { gap:10px; padding-inline:12px; }
      .psi-logo { gap:6px; font-size:21px; }
      .psi-logo img { width:27px; height:34px; }
      .psi-menu-toggle { padding-inline:10px; font-size:12px; }
      .psi-menu-toggle svg { width:15px; }
      .psi-main { padding-inline:10px; }
      .psi-form-wrap { padding-inline:18px; }
      .psi-options { display:grid; grid-template-columns:1fr; align-items:start; gap:2px; }
      .psi-options a { justify-self:start; }
      .psi-remember,.psi-options a { font-size:12px; }
    }
    @media (prefers-reduced-motion:no-preference) {
      .psi-account,.psi-submit { transition:transform 160ms ease,filter 160ms ease; }
      .psi-account:hover,.psi-submit:hover { transform:translateY(-2px); filter:brightness(.97); }
      .psi-nav a,.psi-signin,.psi-footer a { transition:color 160ms ease; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Shared application shell; the approved public pages opt in without changing account dashboards. */
html { color-scheme:light; scroll-padding-top:96px; }
body { min-width:280px; }
img { max-width:100%; }
a { color:var(--ink); text-underline-offset:4px; }
button,input { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.public-content { min-width:0; }
.psi-nav a { display:flex; align-items:center; min-height:44px; }
.psi-nav a[aria-current="page"],.psi-signin[aria-current="page"] { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:6px; }
.psi-signin { text-decoration:none; }
.psi-mobile-nav { max-height:calc(100dvh - 74px); overflow-y:auto; overscroll-behavior:contain; }
.public-skip { position:absolute; left:16px; top:-100px; z-index:50; padding:12px 20px; background:var(--ink); color:var(--white); border-radius:8px; }
.public-skip:focus { top:8px; }
.psi-error { display:block; }
.psi-error:empty { display:none; }
.psi-form-wrap .psi-create { margin:25px 0 0; }
.psi-auth-error ul { padding-left:18px; }
.psi-footer-settings { border:0; background:none; color:#bfd0d2; padding:0; font:inherit; text-decoration:underline; min-height:44px; }
.public-tiers { display:grid; gap:18px; margin-top:24px; }
.public-tier { padding-block:18px; border-top:1px solid var(--line); }
.public-tier h3 { margin:0 0 12px; font-size:20px; }
.public-tier p { margin:8px 0; }
.m-cookie { position:fixed; bottom:16px; left:16px; right:16px; z-index:40; max-width:1050px; margin:auto; padding:24px; background:var(--white); color:var(--ink); border-radius:14px; box-shadow:0 12px 48px rgba(15,35,41,.22); }
.m-cookie__body { display:flex; gap:24px; align-items:center; }
.m-cookie h2 { margin:0 0 8px; font-size:18px; }
.m-cookie p { font-size:13px; line-height:1.6; margin:0 0 8px; }
.m-cookie a { font-size:13px; }
.m-cookie__actions { display:grid; gap:10px; flex-shrink:0; }
.m-cookie button { min-height:44px; padding:10px 16px; border:1px solid var(--ink); border-radius:10px; background:var(--white); color:var(--ink); font-size:13px; font-weight:700; }
.m-cookie button:last-child { background:var(--ink); color:var(--white); }
@media(max-width:620px) { .m-cookie { padding:18px; max-height:80dvh; overflow:auto; } .m-cookie__body { display:block; } .m-cookie__actions { margin-top:16px; } }

/* Public pages share a bounded canvas; wider monitors add margins, not larger imagery. */
:root { --public-content-width: 1440px; }
.public-marketing { max-width: var(--public-content-width); margin-inline: auto; }
.psi-header { padding-inline: max(clamp(16px, 4vw, 48px), calc((100% - var(--public-content-width)) / 2 + 48px)); }
.psi-footer-main, .psi-footer-bottom { max-width: 1344px; margin-inline: auto; }

#main-content .public-hero {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 0;
}
#main-content .public-hero > * { min-width: 0; }
#main-content .public-hero .public-hero-copy {
    min-height: 0;
    padding: clamp(36px, 4vw, 64px) clamp(24px, 4vw, 56px);
}
#main-content .public-hero h1 {
    max-width: 13ch;
    font-size: clamp(40px, 4.4vw, 64px);
    line-height: 1.04;
    overflow-wrap: break-word;
}
#main-content .public-hero-copy > p { margin-top: 24px; }
#main-content .public-hero-image {
    position: relative;
    min-height: 0;
    max-height: 640px;
    overflow: hidden;
}
#main-content .public-hero-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
}
#main-content .public-hero :is(.ptpro-practice, .pth-track) {
    padding: clamp(32px, 4vw, 56px);
}
#main-content .public-hero :is(.ptpro-practice, .pth-track) h2 {
    font-size: clamp(32px, 3.3vw, 48px);
    max-width: 14ch;
    margin-bottom: 28px;
}
#main-content .public-hero :is(.ptc-hero-actions, .ptp-hero-actions, .ptpro-hero-actions, .pth-hero-actions, .pts-hero-actions) {
    flex-wrap: wrap;
}

@media (max-width: 960px) {
    #main-content .public-hero { grid-template-columns: minmax(0, 1fr); }
    #main-content .public-hero h1 { max-width: 18ch; }
    #main-content .public-hero-image {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        max-height: 480px;
    }
}
@media (max-width: 480px) {
    #main-content .public-hero .public-hero-copy { padding: 36px 20px; }
    #main-content .public-hero h1 { font-size: clamp(36px, 10vw, 44px); max-width: 15ch; }
    #main-content .public-hero-copy > p { font-size: 16px; }
}
