/* Laptop refinement: denser copy, a larger portrait, viewport-aware spacing.
   Keep the jaw in place and preserve both theme palettes. No asset mirroring. */
.hero-track .hero-stage{min-height:450px;max-height:860px}
.hero-track .hero-copy{width:38%;max-width:560px;margin-left:clamp(32px,6.5vw,125px);padding-top:clamp(60px,9.5vh,100px)}
.header .header-book{background:var(--text);color:var(--bg);border-color:var(--text);min-height:44px;font-size:13px;transition:background-color .2s,border-color .2s,color .2s}
.header .header-book:hover{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
.hero-track .hero-eyebrow{max-width:440px;margin-bottom:24px;font-size:11px;line-height:1.65}
.hero-track .hero-copy h1{font-size:clamp(44px,4.95vw,84px);font-weight:440;line-height:1.045;letter-spacing:-.043em;text-transform:none;margin-left:-2px}
.hero-track .hero-copy h1 span:last-child{font-weight:440}
.hero-track .hero-subtitle{max-width:440px;margin-top:22px;font-size:18px;font-weight:520;line-height:1.45}
.hero-track .hero-intro{max-width:390px;margin-top:22px;font-size:15px}
.hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:270px;max-width:100%;margin-top:25px}
.hero-track .hero-actions .button{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;margin:0;width:100%;min-height:50px;padding:13px 17px;gap:8px;font-size:13px;line-height:1.45;max-width:100%;align-items:center}
.hero-track .hero-actions .button>span:first-child{grid-column:2;text-align:center;justify-self:center}
.hero-track .hero-actions .button>span:last-child{grid-column:3;justify-self:center}
.hero-track .hero-secondary{border:1px solid color-mix(in srgb,var(--accent) 65%,var(--line));background:color-mix(in srgb,var(--surface) 75%,var(--wash));color:var(--text);width:100%;letter-spacing:0;transition:background-color .2s,border-color .2s,transform .15s}
.hero-track .hero-secondary span+span{margin-left:0}
.hero-track .hero-secondary-arrow{font-size:20px;line-height:1;flex-shrink:0;transition:transform .22s var(--ease)}
.hero-track .hero-secondary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.hero-track .hero-secondary:active{transform:translateY(2px)}
@media(hover:hover){
 .hero-track .hero-secondary:hover{background:var(--wash);border-color:var(--accent)}
 .hero-track .hero-secondary:hover .hero-secondary-arrow{transform:translateY(4px)}
}
.hero-track.has-real-portrait .portrait{left:32%;width:49%;height:118%;bottom:-12%;mask-image:none;-webkit-mask-image:none}
.hero-track.has-real-portrait .portrait img,.hero-track.has-real-portrait .portrait video{object-fit:contain;object-position:center bottom;transform:none}
.hero-track.has-real-portrait .hero-anatomy{right:-1%;width:36%;height:70%;top:19%;opacity:.83;mask-image:linear-gradient(to right,transparent 5%,black 33%);-webkit-mask-image:linear-gradient(to right,transparent 5%,black 33%)}
[data-theme=dark] .hero-track.has-real-portrait .hero-anatomy{opacity:.62}
.hero-track .hero-footer{left:clamp(32px,6.5vw,125px);bottom:18px}
.hero-track .hero-principles{display:flex;align-items:center;gap:0;max-width:min(650px,58vw);margin:0;padding:0;list-style:none;color:var(--text);font-size:13px;line-height:1.45}
.hero-track .hero-principles li{display:flex;align-items:center;white-space:nowrap}
.hero-track .hero-principles li+li::before{content:"";width:3px;height:3px;margin:0 14px;border-radius:50%;background:var(--accent);opacity:.8}
.hero-track .scroll-cue{min-width:44px;min-height:44px;margin-left:auto}
/* Existing action links get a tactile secondary-button treatment. Source and
   attribution links keep their conventional text-link presentation. */
.text-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:28px;background:color-mix(in srgb,var(--surface) 80%,transparent);font-size:12px;font-weight:500;line-height:1.5;transition:background-color .2s,border-color .2s,transform .15s}
.text-link:hover{background:var(--wash);border-color:var(--accent);color:var(--text)}
.text-link:active{transform:translateY(1px)}
.contact-reviews.text-link{display:inline-flex}
.journey-panel{transition:background-color .4s,box-shadow .4s}
.journey-panel.is-arrival{background:var(--wash);box-shadow:0 0 0 14px var(--wash);border-radius:8px}

@media(max-width:1100px) and (min-width:761px){
 .hero-track .hero-copy{width:38%;margin-left:var(--gutter);padding-top:66px}
 .hero-track .hero-eyebrow{font-size:10px;letter-spacing:.11em;max-width:290px;margin-bottom:25px}
 .hero-track .hero-copy h1{font-size:clamp(40px,4.9vw,54px)}
 .hero-track .hero-subtitle{font-size:15px;max-width:285px}
 .hero-track .hero-actions{width:250px}
 .hero-track .hero-intro{font-size:13px;max-width:255px;margin-top:22px}
 .hero-track .hero-actions .button{font-size:12px;padding:12px 16px;gap:14px;min-height:48px}
 .hero-track.has-real-portrait .portrait{left:31%;width:50%;height:111%;bottom:-7%}
 .hero-track.has-real-portrait .hero-anatomy{right:-1%;width:35%;height:63%;top:22%}
 .hero-track .hero-footer{left:var(--gutter)}
 .hero-track .hero-principles{max-width:60vw;font-size:11px}
 .hero-track .hero-principles li+li::before{margin:0 9px}
}
/* Browser chrome reduces the usable height on laptops. Compact vertical gaps,
   not the readable copy, and keep both actions plus the footer inside the hero. */
@media(min-width:761px) and (max-height:720px){
 .hero-track .hero-copy{padding-top:44px}
 .hero-track .hero-eyebrow{margin-bottom:16px;line-height:1.45}
 .hero-track .hero-copy h1{font-size:clamp(40px,4.75vw,64px);line-height:1.035}
 .hero-track .hero-subtitle{font-size:15px;margin-top:16px;max-width:440px}
 .hero-track .hero-intro{font-size:14px;margin-top:16px;line-height:1.55;max-width:390px}
 .hero-track .hero-actions{margin-top:20px;gap:10px}
 .hero-track .hero-actions .button{min-height:46px;padding:11px 18px}
 .hero-track .hero-footer{bottom:14px}
}
@media(min-width:761px) and (max-height:660px){
 .hero-track .hero-copy{padding-top:32px}
 .hero-track .hero-eyebrow{font-size:10px;margin-bottom:12px}
 .hero-track .hero-copy h1{font-size:clamp(38px,4.3vw,58px)}
 .hero-track .hero-subtitle{font-size:15px;margin-top:12px;max-width:460px}
 .hero-track .hero-intro{margin-top:12px;max-width:410px;line-height:1.5}
 .hero-track .hero-actions{margin-top:16px;gap:8px}
 .hero-track .hero-actions .button{min-height:44px;padding:10px 17px}
 .hero-track .hero-principles{font-size:11px}
}
@media(max-width:760px){
 .hero-track .hero-stage{height:auto;min-height:0;max-height:none}
 .hero-track .hero-copy{width:100%;max-width:none;margin:0;padding:28px var(--gutter) 0}
 .hero-track .hero-eyebrow{max-width:none;margin-bottom:18px;font-size:8px}
 .hero-track .hero-copy h1{font-size:clamp(34px,9.3vw,52px);line-height:1.05;letter-spacing:-.04em}
 .hero-track .hero-subtitle{max-width:none;font-size:12px;margin-top:16px}
 .hero-track .hero-intro{font-size:13px;max-width:350px;margin-top:18px}
 .hero-track.is-motion .hero-intro{display:none}
 .hero-actions{margin-top:19px;gap:9px;width:max-content;max-width:100%}
 .hero-track .hero-actions .button{font-size:12px;min-height:45px;padding:10px 17px;gap:20px}
 .hero-track .hero-actions .hero-secondary{display:flex;max-width:100%;margin:0}
 .hero-track.has-real-portrait .portrait{position:relative;left:auto;bottom:auto;width:82%;height:460px;margin:10px 0 0 -2%}
 .hero-track.is-motion .portrait{height:calc(var(--stage-height) - 392px);min-height:180px}
 .hero-track.has-real-portrait .hero-anatomy{top:auto;bottom:65px;right:-4%;width:49%;height:250px;opacity:.67}
 [data-theme=dark] .hero-track.has-real-portrait .hero-anatomy{opacity:.55}
 .hero-track .hero-footer{left:var(--gutter);bottom:14px;align-items:flex-end;gap:16px}
 .hero-track .hero-principles{display:grid;grid-template-columns:1fr;gap:4px;max-width:none;flex:1;min-width:0;font-size:10px;line-height:1.35}
 .hero-track .hero-principles li{white-space:normal}
 .hero-track .hero-principles li+li::before{width:12px;height:1px;margin:0 7px 0 0;border-radius:0}
 .hero-track .hero-footer .scroll-cue{flex-shrink:0}
 .hero-track:not(.is-motion) .hero-footer{position:relative;left:auto;right:auto;bottom:auto;margin:18px var(--gutter) 24px}
 .journey-panel.is-arrival{box-shadow:0 0 0 8px var(--wash)}
}
@media(max-width:360px){
 .hero-track .hero-copy{padding-top:24px}
 .hero-track .hero-copy h1{font-size:33px}
 .hero-track .hero-eyebrow{font-size:7px;letter-spacing:.1em}
 .hero-track .hero-actions .button{font-size:11px;padding:10px 14px;gap:13px}
 .hero-track.is-motion .portrait{height:calc(var(--stage-height) - 392px)}
 .hero-track.has-real-portrait .hero-anatomy{right:-5%;width:48%;height:220px}
}
@media(prefers-reduced-motion:reduce){
 .hero-track .hero-secondary-arrow,.hero-track .hero-secondary,.text-link,.journey-panel{transition:none}
 .hero-track .hero-secondary:hover .hero-secondary-arrow,.hero-track .hero-secondary:active,.text-link:active{transform:none}
}

.mobile-toggle .menu-line{
 transform-box:view-box;transform-origin:12px 12px;
 transition:transform .28s var(--ease),opacity .2s;
}
.mobile-toggle .menu-close-mark{
 opacity:0;transform:scale(.72) rotate(-18deg);transform-box:view-box;transform-origin:12px 12px;
 transition:opacity .2s,transform .28s var(--ease);
}
.mobile-toggle[aria-expanded=true] .menu-line{opacity:0;transform:scale(.72)}
.mobile-toggle[aria-expanded=true] .menu-close-mark{opacity:1;transform:scale(1) rotate(0)}
@media(prefers-reduced-motion:reduce){.mobile-toggle .menu-line,.mobile-toggle .menu-close-mark{transition:none}}
