/* Icons supplement real labels: page, section, top, external site, copy, mail. */
.ui-arrow{--arrow-angle:0deg;--arrow-shift-x:3px;--arrow-shift-y:0px;display:inline-block;position:relative;flex:0 0 20px;width:20px;height:20px;vertical-align:middle;transform:translate(0,0);transition:transform .2s ease}
/* One silhouette keeps the shaft and head joined at every size and direction. */
.ui-arrow::before{content:"";position:absolute;inset:0;background:currentColor;clip-path:polygon(10% 45%,70% 45%,50% 25%,57% 18%,90% 50%,57% 82%,50% 75%,70% 55%,10% 55%);transform:rotate(var(--arrow-angle));transform-origin:50% 50%}
.ui-arrow::after{content:none}
.arrow-south{--arrow-angle:90deg;--arrow-shift-x:0px;--arrow-shift-y:3px}
.arrow-north{--arrow-angle:-90deg;--arrow-shift-x:0px;--arrow-shift-y:-3px}
.arrow-west{--arrow-angle:180deg;--arrow-shift-x:-3px}
.arrow-northeast{--arrow-angle:-45deg;--arrow-shift-x:3px;--arrow-shift-y:-3px}
.ui-copy,.ui-mail{display:inline-block;position:relative;flex:0 0 20px;width:20px;height:20px}
.ui-copy::before,.ui-copy::after{content:"";position:absolute;width:11px;height:12px;border:1.5px solid currentColor;border-radius:1px}
.ui-copy::before{left:2px;top:2px;border-right:0;border-bottom:0}
.ui-copy::after{left:6px;top:6px}
.ui-mail::before{content:"";position:absolute;inset:4px 1px;border:1.5px solid currentColor;border-radius:1px}
.ui-mail::after{content:"";position:absolute;width:9px;height:9px;left:5px;top:0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.ui-chevron{display:inline-block;width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s ease;flex:0 0 8px}
details[open]>summary .ui-chevron{transform:rotate(225deg)}
a:is(:hover,:focus-visible) .ui-arrow{transform:translate(var(--arrow-shift-x),var(--arrow-shift-y))}
:is(.theme-f,.product-page) a:focus-visible,:is(.theme-f,.product-page) summary:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.theme-f .cover-bottom{justify-content:flex-end;text-transform:none;letter-spacing:0}
.theme-f .cover-bottom>a{font-size:13px;letter-spacing:0;text-transform:none}
.site-menu{position:relative;display:none}
.site-menu summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;list-style:none;padding:8px 12px;cursor:pointer;border:1px solid transparent;color:var(--naval-ink);font-size:13px;line-height:1.5}
.site-menu summary::-webkit-details-marker{display:none}
.site-menu[open]>summary{border-color:var(--brass-line);background:#d5ba7c16}
.site-menu ul{position:absolute;right:0;top:calc(100% + 12px);margin:0;padding:8px;list-style:none;width:min(280px,calc(100vw - 32px));background:var(--naval-deep);border:1px solid var(--brass-line);box-shadow:0 12px 32px #061b2855;max-height:65svh;overflow:auto}
:is(.theme-f,.product-page) .site-menu li>a{display:flex;align-items:center;padding:12px;min-height:48px;font-size:14px;line-height:1.6;border-left:2px solid transparent}
:is(.theme-f,.product-page) .site-menu a:is(:hover,:focus-visible,[aria-current=location]){background:#d5ba7c12;color:var(--naval-ink);border-left-color:var(--brass)}
:is(.theme-f,.product-page) .site-menu a::after{content:none}
.product-page .product-toc a{padding:9px 12px;margin-inline:-12px;border-left:2px solid transparent;line-height:1.6}
.product-page .product-toc a[aria-current=location]{border-left-color:var(--brass);background:#d5ba7c12;color:var(--naval-ink)}
.product-page .product-toc a:is(:hover,:focus-visible){background:#d5ba7c0d;text-decoration:none}
@media(max-width:760px){.site-menu{display:block}.theme-f .cover header nav{gap:4px}.site-menu summary{font-size:12px;gap:8px;padding-inline:8px}.site-menu ul{position:fixed;left:16px;right:16px;top:calc(var(--site-header-height,78px) + 8px);width:auto;max-width:360px;margin-left:auto}.product-page .product-toc{gap:0 16px}.product-page .product-toc a{margin:0;padding-inline:10px}}
@media(max-width:359px){.site-menu summary{padding-inline:6px;gap:6px}}
@media(prefers-reduced-motion:reduce){.ui-arrow,.ui-chevron{transition:none}a:is(:hover,:focus-visible) .ui-arrow{transform:none!important}}

/* The error page shares control language, keeping the sky unobstructed. */
.theme-f .software-primary,.product-page .primary-entry{box-shadow:none;background:#153b50;border-color:#d5ba7c66}
.theme-f .software-primary::before,.theme-f .software-primary::after,.product-page .primary-entry::before,.product-page .primary-entry::after{content:none}
.theme-f .software-primary:is(:hover,:focus-visible),.product-page .primary-entry:is(:hover,:focus-visible){box-shadow:none;background:#204a60}
.theme-f .harbour-index,.theme-f .reading-article,.theme-f .reading-rail,.theme-f .reading-mobile-toc{box-shadow:none}
.theme-f .product-entry .computer-mark{border:0;background:none;border-radius:0;padding:0;width:56px;height:56px}
.theme-f .cover header,.product-page header{box-shadow:none}
.theme-f .cover header::after,.product-page header::after{content:none}
.product-page .product-toc{background:transparent;border:0;border-left:1px solid #aa946644;color:var(--sheet-ink)}
.product-page .product-toc a{color:var(--sheet-ink)}
.product-page .product-toc p,html[data-night=false] body.product-page .product-toc p{color:var(--sheet-muted)}
.product-page .product-toc a[aria-current=location]{color:var(--sheet-ink);border-left-color:#99793f;background:#aa946615}
.error-page{--brass:#d5ba7c;--brass-line:#d5ba7c75}
.error-page .wordmark{gap:10px;letter-spacing:-.025em;font-size:18px}
.error-page .url{border-radius:0;border-color:#7c98a055;background:#081722c9}
.error-page .actions{gap:12px;margin-top:18px}
.error-page .home{gap:12px;padding:12px 18px;min-height:48px;border:1px solid var(--brass-line);background:linear-gradient(135deg,#20495d,#123449);color:#f3efdf;text-decoration:none;border-radius:0;line-height:1.5;transition:background-color .2s,border-color .2s}
.error-page .home .ui-arrow{color:var(--brass)}
.error-page .home:is(:hover,:focus-visible){background:#254f62;border-color:#edcf92}
.error-page #copy-url,html[data-night=false] body.error-page #copy-url{display:inline-flex;align-items:center;gap:10px;background:#081722b3;color:#edf0f4;border:1px solid #7c98a066;border-radius:0;padding:12px 14px;font-size:14px;min-height:48px}
.error-page #copy-url:hover,html[data-night=false] body.error-page #copy-url:hover{background:#183142;border-color:#b5cdd5}
.error-page #copy-url .ui-copy{color:#c4d6dc}
.error-page :is(a,button,.url):focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.error-page .status[data-state=success]{color:#c8e0c7}
@media(max-width:360px){.error-page .actions{gap:8px}.error-page .home{padding-inline:12px}.error-page #copy-url{padding-inline:10px;gap:8px}}
@media(prefers-reduced-motion:reduce){.error-page .home{transition:none}}

/* Distinguish a hover invitation from the single current reading position. */
.theme-f .reading-toc a:hover:not([aria-current]),html[data-night=true] body.theme-f .reading-toc a:hover:not([aria-current]){background:#d5ba7c08;color:var(--naval-ink);border-left-color:transparent}
.theme-f .reading-article,html[data-night=true] body.theme-f .reading-article,.theme-f .reading-rail,html[data-night=true] body.theme-f .reading-rail,.theme-f .reading-mobile-toc{box-shadow:none}
/* Resolve the fallback illustration from the same early palette as the Canvas. */
html[data-night=true] .sea-static #sky stop{stop-color:#173451}
html[data-night=true] .sea-static #sky stop[offset]{stop-color:#344365}
html[data-night=true] .sea-static #sea stop{stop-color:#1a3658}
html[data-night=true] .sea-static #sea stop[offset]{stop-color:#123f59}
html[data-night=true] .sea-static path[fill="#99b8c5"]{fill:#243751}
html[data-night=true] .sea-static path[fill="#dbccaf"]{fill:#50616d}
html[data-night=true] .sea-static path[stroke]{stroke:#a3bdd066}
html[data-night=true] .seascape{background:#173451}

html[data-night=true] body.theme-f .software-primary,html[data-night=false] body.theme-f .software-primary,html[data-night=true] body.product-page .primary-entry,html[data-night=false] body.product-page .primary-entry{box-shadow:none}
html[data-night=true] body.theme-f .software-primary:is(:hover,:focus-visible),html[data-night=false] body.theme-f .software-primary:is(:hover,:focus-visible),html[data-night=true] body.product-page .primary-entry:is(:hover,:focus-visible),html[data-night=false] body.product-page .primary-entry:is(:hover,:focus-visible){box-shadow:none}

/* The fallback light retains the same circular proportions as the Canvas. */
.sea-fallback-orb{position:absolute;left:74%;top:20%;width:9vmin;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:#ffedb8;pointer-events:none}
html[data-night=true] .sea-fallback-orb{background:#f4e2b3}
:is(.theme-f,.product-page) header nav>a[aria-current=location]{font-weight:600}
:is(.theme-f,.product-page) header nav>a[aria-current=location]::after{height:2px}

/* The product uses the same native menu without duplicating it below the intro. */
@media(max-width:760px){
 .product-page header nav{flex-wrap:nowrap;gap:4px}
 .product-page header nav>a,.product-page .product-layout aside{display:none}
 .product-page header{position:relative}
 .product-page .site-menu{position:static}
 .product-page .site-menu ul{position:absolute;left:auto;right:16px;top:calc(100% + 8px);margin:0;width:min(280px,calc(100vw - 32px));z-index:21}
 .product-page .product-main{padding-top:12px}
 .product-page .product-intro{padding:12px 0 28px;margin-bottom:24px}
}
/* A visible boundary identifies the primary action against the night sheet. */
html[data-night=true] body.product-page .primary-entry{border-color:#a7bdc2}
