/* Alexander Mirvis • public design system • October 2026 */
:root{--modern-bg:#050c1b;--modern-panel:rgba(12,26,50,.78);--modern-text:#edf6ff;--modern-subtle:#b0c4da;--modern-border:rgba(129,192,255,.18);--modern-accent:#79dcff;--modern-accent2:#9ca5ff;--modern-shadow:0 30px 85px rgba(0,4,20,.32);--modern-radius:25px;color-scheme:dark}
html[data-theme="light"]{--space:#f4f8ff;--space-2:#ebf2ff;--navy:#dbe8fb;--cyan:#1661c6;--ice:#102b49;--white:#10233e;--muted:#445c77;--line:rgba(26,83,151,.14);--glass:rgba(255,255,255,.86);--glass-strong:rgba(255,255,255,.96);--modern-bg:#f4f8ff;--modern-panel:rgba(255,255,255,.9);--modern-text:#152c4a;--modern-subtle:#506781;--modern-border:rgba(25,93,175,.13);--modern-accent:#1463c8;--modern-accent2:#554fc3;--modern-shadow:0 22px 70px rgba(29,63,113,.11);--shadow:var(--modern-shadow);color-scheme:light}
body{font-family:"DM Sans",Inter,system-ui,-apple-system,sans-serif;background:var(--modern-bg);color:var(--modern-text);-webkit-font-smoothing:antialiased}
.hero-title,.section-title,.profile-card h3,.contact-card h2,.contact-form h2,.cta-panel h2{font-family:"Fraunces",Georgia,serif;letter-spacing:-.044em;font-weight:600;line-height:1.1}
.hero-title{font-size:clamp(2.8rem,5.2vw,5.4rem);max-width:940px}
.hero-title em,.section-title em{background:linear-gradient(105deg,#72ddf7,#9baaff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.eyebrow{font-size:.7rem;letter-spacing:.24em;font-weight:800}
.lead{font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.8;color:var(--modern-subtle)}
.container{width:min(1280px,calc(100% - 3rem))}
.site-header{background:rgba(5,12,28,.77);border-bottom:1px solid var(--modern-border);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}
.site-header .nav{gap:.65rem;max-width:1380px}
.brand{gap:.72rem}
.brand-mark{width:47px;height:47px;border-color:rgba(114,221,247,.38);box-shadow:0 0 28px rgba(51,153,246,.09)}
.brand-name{font-family:"Fraunces",Georgia,serif;font-size:1.16rem;letter-spacing:-.035em;font-weight:600}
.brand-tagline{font-weight:700;letter-spacing:.09em;font-size:.54rem}
.nav-links{gap:.1rem}
.nav-link{font-family:"DM Sans",system-ui,sans-serif;font-size:.67rem;letter-spacing:.035em;text-transform:none;font-weight:750}
.nav-cta{color:#e8f8ff;border:1px solid rgba(103,211,255,.3);background:rgba(47,140,255,.12)}
.nav-link:hover,.nav-link.active{background:rgba(91,160,255,.16)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex:0 0 auto;min-width:45px;height:43px;padding:.5rem .7rem;border:1px solid var(--modern-border);border-radius:14px;background:rgba(123,189,255,.08);color:#e5f5ff;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.theme-toggle:hover{transform:translateY(-1px);border-color:rgba(123,189,255,.48);background:rgba(123,189,255,.15)}
.theme-toggle svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .theme-sun{display:none}
html[data-theme="light"] .theme-toggle .theme-moon{display:none}
html[data-theme="light"] .theme-toggle .theme-sun{display:block}
.theme-toggle-label{font-size:.68rem;font-weight:750}
main{background:radial-gradient(ellipse at 13% 4%,rgba(59,129,242,.1),transparent 36%),radial-gradient(ellipse at 87% 21%,rgba(89,170,229,.07),transparent 28%)}
.hero{padding-top:calc(var(--nav-height) + 5rem);padding-bottom:5.5rem}
.hero.compact{padding-top:calc(var(--nav-height) + 4rem);padding-bottom:4rem}
.section-title{line-height:1.06}
.button{border-radius:14px;min-height:51px;font-size:.75rem;letter-spacing:.035em;text-transform:none;padding:.8rem 1.38rem}
.button-primary{background:linear-gradient(110deg,#176add,#527bfa);color:#fff!important;box-shadow:0 15px 35px rgba(26,91,214,.23)}
.button-primary:hover{background:linear-gradient(110deg,#2779ee,#687fff);color:#fff!important}
.button-secondary{border:1px solid var(--modern-border);color:var(--modern-accent);background:var(--modern-panel)}
.profile-card,.info-card,.stat-card,.glass-card,.contact-card,.contact-form,.cta-panel,.publication-card,.quick-post-card{border:1px solid var(--modern-border);background:var(--modern-panel);border-radius:var(--modern-radius);box-shadow:var(--modern-shadow);backdrop-filter:blur(16px)}
.info-card,.stat-card,.contact-card,.contact-form{transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.info-card:hover,.stat-card:hover{border-color:rgba(108,183,254,.45);transform:translateY(-5px);box-shadow:0 30px 72px rgba(25,77,157,.14)}
.info-card{padding:1.7rem}.card-icon{border-radius:14px}
.prose p,.card-copy,.section-copy,.contact-card p,.contact-list,.cta-panel p,.profile-card p,.book-content p{color:var(--modern-subtle)}
.surface-deep{background:linear-gradient(180deg,rgba(11,27,53,.58),rgba(6,17,36,.62));border-block:1px solid var(--modern-border)}
.site-footer{background:rgba(2,9,23,.95);border-top:1px solid var(--modern-border)}
.footer-logo{font-family:"Fraunces",Georgia,serif;font-weight:600}
.footer-copy-main,.footer-bottom,.footer-links a{color:var(--modern-subtle)}
:focus-visible{outline:3px solid #69caff;outline-offset:3px}
/* Contact page: payment is the first stage, never a visually disabled textarea. */
.contact-hero{isolation:isolate;overflow:hidden;background:radial-gradient(circle at 75% 38%,rgba(95,136,255,.16),transparent 30rem),radial-gradient(circle at 20% 70%,rgba(67,215,245,.1),transparent 30rem);border-bottom:1px solid var(--modern-border)}
.contact-hero:after{content:"";position:absolute;width:460px;height:460px;top:-190px;right:-120px;border:1px solid rgba(112,194,255,.13);border-radius:50%;box-shadow:0 0 0 70px rgba(122,181,246,.018),0 0 0 140px rgba(122,181,246,.012);pointer-events:none}
.contact-hero-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;z-index:1}
.contact-hero .hero-title{font-size:clamp(3.1rem,6vw,5.8rem);margin-bottom:1.15rem}
.contact-hero .lead{max-width:710px;margin:0}
.status-dot{display:inline-block;width:9px;height:9px;margin-right:.6rem;border-radius:50%;background:#55e3be;box-shadow:0 0 0 5px rgba(85,227,190,.1),0 0 16px rgba(85,227,190,.3);vertical-align:middle}
.contact-hero-price{flex:0 0 250px;display:flex;flex-direction:column;gap:.3rem;padding:1.5rem 1.6rem;border:1px solid var(--modern-border);border-radius:24px;background:var(--modern-panel);box-shadow:var(--modern-shadow);text-align:left}
.contact-hero-price span{font-size:.78rem;color:var(--modern-subtle)}
.contact-hero-price strong{font-family:"Fraunces",Georgia,serif;font-size:3rem;font-weight:600;letter-spacing:-.07em;line-height:1.2}
.contact-hero-price small{font-size:.72rem;font-weight:600;color:var(--modern-accent)}
.contact-experience{padding:3rem 0 7rem}
.contact-progress{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding:0 1.2rem;margin:0 auto 2.1rem;max-width:940px}
.contact-progress-step{display:flex;align-items:center;gap:.7rem;white-space:nowrap;color:var(--modern-subtle);font-size:.81rem;font-weight:650;opacity:.57}
.contact-progress-step b{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--modern-border);border-radius:50%;background:var(--modern-panel);font-size:.72rem;color:var(--modern-subtle)}
.contact-progress-step.current,.contact-progress-step.completed{opacity:1;color:var(--modern-text)}
.contact-progress-step.current b,.contact-progress-step.completed b{background:linear-gradient(135deg,#266fe0,#807dff);border-color:transparent;color:white}
.contact-progress-line{height:1px;max-width:75px;flex:1;background:var(--modern-border)}
.contact-v2-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:1.5rem}
.contact-v2-aside,.contact-v2-form{padding:clamp(1.6rem,3vw,3rem);overflow:hidden}
.contact-v2-aside{position:relative;background:linear-gradient(160deg,rgba(27,61,117,.73),rgba(8,23,46,.82));display:flex;flex-direction:column}
.contact-aside-icon{width:56px;height:56px;display:grid;place-items:center;margin-bottom:2rem;border-radius:18px;border:1px solid rgba(133,213,255,.26);background:rgba(133,213,255,.1);color:#9ee7ff;font-size:1.8rem}
.contact-v2-aside h2{font-size:clamp(2.05rem,3.2vw,3rem);line-height:1.12;margin-bottom:1.25rem}
.contact-v2-aside>p{font-size:.95rem;line-height:1.9}
.contact-topics{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.25rem 0 2rem}
.contact-topics span{display:inline-block;padding:.52rem .78rem;border:1px solid rgba(120,195,248,.24);border-radius:999px;background:rgba(91,151,240,.1);color:#d5eafa;font-size:.74rem;font-weight:650}
.contact-aside-note{margin-top:auto;padding:1.1rem 1.15rem;border:1px solid rgba(123,194,255,.2);border-radius:16px;background:rgba(99,165,247,.07)}
.contact-aside-note strong{font-size:.88rem;color:#e5f2ff}
.contact-aside-note p{font-size:.79rem;margin:.35rem 0 0;line-height:1.75;color:#b5cde5}
.contact-notary-link{margin-top:1.75rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;color:#9edbff;font-size:.84rem;font-weight:700;text-decoration:none}
.contact-notary-link:hover{text-decoration:underline}
.contact-v2-form{min-height:530px;background:var(--modern-panel)}
.payment-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:465px;text-align:center}
.payment-lock{width:80px;height:80px;display:grid;place-items:center;border:1px solid rgba(124,197,255,.27);border-radius:24px;margin-bottom:1.55rem;background:linear-gradient(145deg,rgba(84,142,255,.15),rgba(122,197,255,.055));color:var(--modern-accent);box-shadow:0 13px 35px rgba(35,89,178,.08)}
.payment-gate-tag{color:var(--modern-accent);font-weight:800;font-size:.71rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.95rem}
.payment-gate h2{font-size:clamp(2rem,3.3vw,2.75rem);margin-bottom:.8rem}
.payment-gate>p{max-width:510px;color:var(--modern-subtle);font-size:.9rem;line-height:1.84}
.payment-gate-price{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;margin:1.9rem 0 1rem;padding:1.1rem 1.4rem;border:1px solid var(--modern-border);background:rgba(74,133,225,.06);border-radius:17px;text-align:left}
.payment-gate-price>div{display:flex;flex-direction:column;gap:.2rem}
.payment-gate-price small{font-size:.72rem;color:var(--modern-subtle)}
.payment-gate-price strong{font-size:1.8rem;line-height:1.2;font-weight:850;color:var(--modern-text)}
.payment-gate-price>span{text-align:right;font-size:.7rem;line-height:1.6;color:var(--modern-subtle)}
.payment-gate form{width:100%}
.contact-pay-button{width:100%;font-size:.93rem;min-height:57px;display:flex;justify-content:space-between;padding-inline:1.5rem;border:0}
.contact-pay-button span{font-size:1.4rem;line-height:1}
.payment-caption{font-size:.73rem!important;color:var(--modern-subtle)!important;line-height:1.8!important;margin-top:1rem;max-width:450px}
.payment-caption span{color:#28cda4}
.contact-alert{padding:1rem 1.15rem;margin-bottom:1.5rem;border:1px solid var(--modern-border);border-radius:16px;background:var(--modern-panel);color:var(--modern-text);font-size:.85rem}
.contact-alert-error{border-color:rgba(245,105,122,.38);background:rgba(220,73,85,.1)}
.contact-alert ul{padding:0 0 0 1.25rem;margin:.5rem 0 0}
.contact-unlocked-label{display:inline-flex;align-items:center;padding:.6rem 1rem;margin-bottom:1.2rem;border:1px solid rgba(86,227,183,.25);border-radius:999px;color:#63dcb9;background:rgba(58,183,150,.08);font-size:.77rem;font-weight:750}
.composer-heading h2{font-size:2.35rem}.composer-heading p{margin-top:.4rem;font-size:.88rem;color:var(--modern-subtle);line-height:1.7}
.contact-compose{gap:1.2rem;margin-top:2rem}
.contact-compose .input-group label{font-size:.74rem;letter-spacing:.015em;text-transform:none;font-weight:750;color:var(--modern-text)}
.contact-compose .input-group input,.contact-compose .input-group select,.contact-compose .input-group textarea{border-radius:13px;border:1px solid var(--modern-border);background:rgba(91,145,227,.07);font-size:.86rem;color:var(--modern-text);padding:1rem 1.1rem}
.contact-compose .input-group textarea{min-height:200px;line-height:1.75}
.contact-compose .input-group input::placeholder,.contact-compose .input-group textarea::placeholder{color:var(--modern-subtle);opacity:.72}
.contact-message-label{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.contact-message-label span{font-size:.72rem;color:var(--modern-subtle)}
.contact-success-card{max-width:750px;margin:2rem auto;text-align:center;padding:4rem 2rem;background:var(--modern-panel);border:1px solid var(--modern-border);border-radius:28px;box-shadow:var(--modern-shadow)}
.contact-success-card .contact-graphic-icon{display:grid;place-items:center;margin:0 auto 1.5rem;width:74px;height:74px;border-radius:50%;background:rgba(54,203,152,.12);color:#48d2a0;font-size:2.5rem}
.contact-success-card h2{font-family:"Fraunces",Georgia,serif;font-size:2.5rem;margin:.7rem 0}
.contact-success-card>p:not(.eyebrow){color:var(--modern-subtle);line-height:1.8;margin-bottom:2rem}
/* Light theme: deliberate contrast over former dark-only components. */
html[data-theme="light"] body{background:#f4f8ff;color:#152c4a}
html[data-theme="light"] .star-field{opacity:.12;background:linear-gradient(160deg,#f0f6ff,#e6f4fc);filter:none}
html[data-theme="light"] .star-field canvas,html[data-theme="light"] .site-celestial-body,html[data-theme="light"] .solar-system{opacity:.6}
html[data-theme="light"] .site-header{background:rgba(255,255,255,.9);border-bottom-color:#dce7f5}
html[data-theme="light"] .brand-name,html[data-theme="light"] .nav-link{color:#173553}
html[data-theme="light"] .brand-tagline{color:#4e6883}
html[data-theme="light"] .nav-link:hover,html[data-theme="light"] .nav-link.active{background:#eaf2ff;color:#075dc3}
html[data-theme="light"] .nav-cta{color:#075dc3;border-color:#bfd5f8;background:#eff6ff}
html[data-theme="light"] .theme-toggle{color:#1f477b;background:#edf5ff;border-color:#d7e6f8}
html[data-theme="light"] .nav-toggle{background:#edf5ff;color:#163b63}
html[data-theme="light"] .nav-link,html[data-theme="light"] .lead,html[data-theme="light"] .prose p,html[data-theme="light"] .section-copy,html[data-theme="light"] .card-copy,html[data-theme="light"] .contact-card p{color:#425c78}
html[data-theme="light"] .hero-title,html[data-theme="light"] .section-title,html[data-theme="light"] .prose h2,html[data-theme="light"] .prose h3,html[data-theme="light"] .card-title{color:#132f50}
html[data-theme="light"] .hero-title em,html[data-theme="light"] .section-title em{background:linear-gradient(100deg,#0362c9,#6559d8);-webkit-background-clip:text;background-clip:text}
html[data-theme="light"] .surface-deep{background:linear-gradient(180deg,#edf4fd,#f7faff)}
html[data-theme="light"] .info-card,html[data-theme="light"] .profile-card,html[data-theme="light"] .stat-card,html[data-theme="light"] .glass-card{background:rgba(255,255,255,.92)}
html[data-theme="light"] .notice,html[data-theme="light"] .cta-panel{background:#edf4ff;border-color:#cfe0f7;color:#284766}
html[data-theme="light"] .info-card:hover{background:white}
html[data-theme="light"] .stat-label,html[data-theme="light"] .profile-card p,html[data-theme="light"] .contact-list,html[data-theme="light"] .cta-panel p{color:#526a85}
html[data-theme="light"] .footer-copy-main,html[data-theme="light"] .footer-links a,html[data-theme="light"] .footer-bottom{color:#637a92}
html[data-theme="light"] .site-footer{background:#e9f1fc;border-top-color:#d4e3f6}
html[data-theme="light"] .footer-title{color:#2466a9}
html[data-theme="light"] .footer-logo{color:#125da9}
html[data-theme="light"] .contact-v2-aside{background:linear-gradient(160deg,#183d76,#0d2443);color:#fff}
html[data-theme="light"] .contact-v2-aside h2,html[data-theme="light"] .contact-v2-aside .eyebrow{color:#fff}
html[data-theme="light"] .contact-v2-aside>p{color:#c5d6ec}
html[data-theme="light"] .contact-v2-aside .contact-aside-note p{color:#b5cde5}
html[data-theme="light"] .contact-v2-aside .contact-aside-note strong{color:#eaf7ff}
html[data-theme="light"] .payment-gate-price{background:#f4f8ff}
html[data-theme="light"] .contact-unlocked-label{color:#14795a}
html[data-theme="light"] .contact-compose select option{background:#fff;color:#152c4a}
html[data-theme="light"] .alert-success{color:#096342}
html[data-theme="light"] .alert-error{color:#932735}
html[data-theme="light"] .solar-note{background:rgba(255,255,255,.94);color:#153455}
html[data-theme="light"] .solar-note span{color:#506b85}
html[data-theme="light"] .quick-post-body,html[data-theme="light"] .article-body p,html[data-theme="light"] .article-body li,html[data-theme="light"] .cms-page-content{color:#263e59}
html[data-theme="light"] .article-body a,html[data-theme="light"] .prose a{color:#075cbe}
html[data-theme="light"] .quick-post-card,html[data-theme="light"] .publication-card{background:#fff;color:#213c5b}
html[data-theme="light"] .quick-posts-hero,html[data-theme="light"] .nypd-liability-hero{background:linear-gradient(145deg,#edf5ff,#fff)}
html[data-theme="light"] .quick-posts-surface,html[data-theme="light"] .nypd-liability-surface{background:#f3f7fd}
html[data-theme="light"] .paywall-card{background:#fff;color:#152c4a}
@media(max-width:1000px){.site-header .nav{gap:.4rem}.theme-toggle{order:3;margin-right:.2rem}.nav-toggle{order:4}.nav-links{order:5}html[data-theme="light"] .nav-links{background:rgba(255,255,255,.98);border-color:#d9e5f4;box-shadow:0 18px 50px rgba(23,57,99,.13)}.contact-hero-price{flex-basis:200px}}
@media(max-width:740px){.container{width:min(100% - 2rem,1280px)}.contact-hero-inner{flex-direction:column;align-items:stretch}.contact-hero-price{flex:initial;width:100%;padding:1.1rem 1.3rem}.contact-hero-price strong{font-size:2.3rem}.contact-hero .hero-title{font-size:clamp(2.55rem,10vw,4rem)}.contact-experience{padding:2rem 0 4rem}.contact-progress{gap:.6rem;padding:0 .1rem}.contact-progress-step{font-size:.65rem;gap:.35rem}.contact-progress-step b{width:30px;height:30px;font-size:.61rem}.contact-progress-line{max-width:25px}.contact-v2-grid{grid-template-columns:1fr}.contact-v2-aside,.contact-v2-form{padding:1.35rem}.contact-v2-aside h2{font-size:2rem}.payment-gate{min-height:auto;padding:1rem 0}.contact-success-card{padding:3rem 1.3rem}.contact-compose .two-col{grid-template-columns:1fr}}
@media(max-width:420px){.theme-toggle{min-width:39px;height:39px;padding:.4rem}.brand-mark{width:34px;height:34px}.contact-progress-step span{max-width:70px;white-space:normal;line-height:1.25}.contact-progress{justify-content:space-between}.contact-progress-line{width:12px}}
@media(prefers-reduced-motion:reduce){.info-card,.button,.theme-toggle,.stat-card{transition:none!important}}
/* Small-screen navigation: keep theme, languages and menu accessible without clipping. */
html[data-theme="light"] .language-button{background:#eef4fd;color:#2c557c;border-color:#dce9f7}
html[data-theme="light"] .language-button.active{background:#176ecf;color:#fff;border-color:#176ecf}
@media(max-width:440px){.site-header .nav{gap:.18rem}.brand{min-width:0;gap:.32rem}.brand-name{font-size:.67rem}.brand-mark{width:29px;height:29px;flex:0 0 29px}.brand-orbit{width:23px}.language-switcher{gap:.08rem;margin-right:0}.language-button{min-width:23px;width:23px;height:25px;font-size:.46rem;padding:0}.theme-toggle{width:35px;min-width:35px;height:37px;padding:.34rem}.nav-toggle{width:37px;height:37px;flex:0 0 37px}}
@media(max-width:350px){.brand-text{display:none}}
