/* PalShade shared page chrome: skip link, sale notice, header, menu, footer.
   Source of truth for the marketing site (generated into site/styles.css by
   scripts/sync-site-chrome.mjs) and for the members, downloads and admin pages
   (licensing/scripts/build-browser.mjs). Token values are scoped to the chrome
   elements so this works under the Worker's own stylesheet too.
   The brand section below is also used on its own by the admin console. */
/* brand:start */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-400.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-400-italic.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/instrument-sans-var.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/dm-mono-400.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/dm-mono-500.woff2) format("woff2")}

.skip,.preview-notice,.site-header,.site-footer,.brand{
  --ink0:#06090E;--ink1:#0A0E14;--ink2:#0F141C;--ink3:#151B25;
  --bone:#F1EDE4;--t2:#A7B0BC;--t3:#7C8694;
  --line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.22);
  --accent:#9ADCEF;
  --serif:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  --mono:"DM Mono","Cascadia Mono",ui-monospace,Consolas,monospace;
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand{display:flex;align-items:center;gap:14px;color:var(--bone);text-decoration:none}
.brand svg,.brand img{display:block;width:40px;height:40px;flex:none}
.brand-name{display:flex;align-items:baseline;gap:10px;font-family:var(--serif);line-height:1}
.brand-name b{font-weight:400;font-size:32px;letter-spacing:-.4px;color:var(--bone)}
.brand-name i{font-size:22px;color:var(--accent);font-style:italic}
.brand-tag{margin-left:4px;padding-left:14px;border-left:1px solid var(--line2);font:400 14px/1 var(--sans);color:var(--t2)}
/* brand:end */

.site-header,.site-header *,.site-footer,.site-footer *{box-sizing:border-box}
.site-header a,.site-footer a{color:inherit;text-decoration:none}
.site-header svg,.site-footer svg{display:block;max-width:100%}
.site-header,.site-footer{font-family:var(--sans);line-height:1.6}
.wrap{width:min(1200px,calc(100% - 48px));margin-inline:auto}
.skip{position:absolute;left:12px;top:-100px;background:var(--bone);color:var(--ink1);padding:12px;z-index:50;border-radius:6px;font-family:var(--sans);text-decoration:none}
.skip:focus{top:12px}
.icon{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* sale notice */
.preview-notice{display:flex;align-items:center;justify-content:center;gap:12px;min-height:40px;padding:8px 20px;background:var(--ink0);border-bottom:1px solid rgba(255,255,255,.06);font:400 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--t2);text-align:center}
.preview-notice::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* header */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:96px;padding-block:20px}
.site-header>nav{display:flex;align-items:center;gap:40px;font-size:15px;color:var(--t2)}
.site-header nav a:hover{color:var(--bone)}
.site-header nav a[aria-current="page"]{color:var(--bone)}
.header-actions{display:flex;align-items:center;gap:12px}
.header-cta{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border:1px solid var(--line2);border-radius:22px;font-size:14.5px;font-weight:500;color:var(--bone);white-space:nowrap;background:transparent;cursor:pointer}
.header-cta:hover{background:rgba(255,255,255,.07)}
.header-cta[hidden]{display:none}

/* menu (no JavaScript: a <details> disclosure shown where the inline nav is hidden) */
.menu{display:none;position:relative}
.menu summary{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line2);border-radius:22px;color:var(--bone);cursor:pointer;list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary:hover,.menu[open] summary{background:rgba(255,255,255,.07)}
.menu summary .icon{width:20px;height:20px}
.menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:60;display:flex;flex-direction:column;gap:2px;min-width:220px;padding:8px;background:var(--ink2);border:1px solid var(--line2);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.45);font-size:15px;color:var(--t2)}
.menu-panel a{padding:12px 14px;border-radius:8px}
.menu-panel a:hover,.menu-panel a[aria-current="page"]{color:var(--bone);background:rgba(255,255,255,.06)}

/* footer */
.site-footer{background:var(--ink0);border-top:1px solid rgba(255,255,255,.06);padding:88px 0 56px;color:var(--bone)}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:48px}
.foot-brand{display:flex;flex-direction:column;gap:20px;max-width:420px}
.foot-brand .brand-name b{font-size:40px}
.foot-brand .brand-name i{font-size:26px}
.foot-brand .brand svg{width:44px;height:44px}
.foot-brand .tag{margin:0;font-family:var(--serif);font-style:italic;font-size:28px;line-height:1.15}
.foot-brand p:last-child{margin:0;font-size:16px;line-height:1.55;color:var(--t2)}
.foot-links{display:flex;gap:96px}
.foot-links nav{display:flex;flex-direction:column;gap:14px;font-size:15px;color:var(--t2)}
.foot-links nav span{font:400 11.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3)}
.foot-links a:hover,.foot-inline a:hover{color:var(--bone)}
.foot-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:80px;margin-top:56px;padding-top:28px;border-top:1px solid rgba(255,255,255,.08)}
.foot-bottom p{margin:0;max-width:720px;font-size:14px;line-height:1.6;color:var(--t3)}
.foot-bottom a{text-decoration:underline}
.foot-bottom span{flex:none;font:400 12.5px/1 var(--mono);letter-spacing:.06em;color:var(--t3)}
.site-footer-short{padding:40px 0 40px}
.site-footer-short .foot-bottom{margin-top:24px}
.foot-inline{display:flex;flex-wrap:wrap;gap:8px 32px;font-size:15px;color:var(--t2)}

@media (max-width:1180px){
  .foot-top{flex-direction:column}
}
@media (max-width:1100px){
  .site-header>nav{display:none}
  .menu{display:block}
}
@media (max-width:900px){
  .brand-name b{font-size:28px}
  .brand-name i{font-size:18px}
  .brand-name{flex-direction:column;align-items:flex-start;gap:2px}
  .brand svg{width:34px;height:34px}
  .foot-links{gap:56px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:16px}
}
@media (max-width:640px){
  .wrap{width:calc(100% - 32px)}
  .site-header{min-height:72px;padding-block:14px}
  .header-cta{padding:0 16px;font-size:14px}
  .header-actions{flex-wrap:wrap;justify-content:flex-end;row-gap:8px}
  .site-footer{padding:52px 0 40px}
  .site-footer-short{padding:32px 0 32px}
  .foot-brand .brand-name{flex-direction:row;align-items:baseline;gap:10px}
  .foot-brand .brand-name b{font-size:36px}
  .foot-brand .brand-name i{font-size:22px}
  .foot-brand .tag{font-size:26px}
  .foot-links{gap:48px}
}
@media print{.menu{display:none}}
#totp-secret{display:block;font-family:monospace;overflow-wrap:anywhere;user-select:all;padding:10px 0}#totp-qr{display:block;max-width:100%;margin:20px auto}#totp-confirm-form{margin-top:20px}.security-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.auth-method{padding:24px 0;border-top:1px solid var(--line)}.method-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px}.method-heading h3{margin-bottom:7px}.method-state{color:var(--accent);font-size:14px;text-align:right}#authentication form,#authorization form{margin:20px 0;max-width:540px}#authentication label,#authorization label,dialog label{display:block;margin:12px 0 6px}#authentication input,#authorization input,#authorization select,dialog input{font:inherit;color:var(--text);background:var(--panel);border:1px solid #637082;border-radius:7px;padding:10px;width:100%;margin-bottom:16px}#security-detail{margin-bottom:18px}#passkey-entry{margin-bottom:26px;padding-bottom:16px;border-bottom:1px solid var(--line)}#passkey-list button{margin-left:8px}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:min(620px,calc(100% - 32px));max-height:90vh;overflow:auto}dialog::backdrop{background:#000b}dialog p{margin:16px 0}dialog button{margin:6px}.dialog-actions{display:flex;gap:6px;flex-wrap:wrap}#backup-list{font-family:monospace;overflow-wrap:anywhere}#authorization{border-left:3px solid var(--accent)!important;padding-left:24px!important}#authorization button{margin:8px 8px 0 0}@media(max-width:760px){.method-heading{grid-template-columns:1fr;gap:7px}.method-state{text-align:left}}.steps{margin:18px 0 0;padding-left:22px;line-height:1.6}.steps li+li{margin-top:6px}.download-intro .download-link{margin:8px 0 12px}.break{overflow-wrap:anywhere}.invite-banner{margin-top:18px}.invite-claim{margin-top:18px}#invite-share{margin:12px 0}#invite-link{flex:1;min-width:0}#invite-stats{margin-top:8px}
:root{color-scheme:dark;--ink:#0a0e14;--panel:#0f141c;--raised:#151b25;--text:#f1ede4;--muted:#a7b0bc;--accent:#9adcef;--line:#394351;font-family:"Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--text);font-size:16px;line-height:1.6}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,input{font:inherit}button{background:var(--accent);color:#07121a;border:1px solid transparent;border-radius:24px;padding:.6rem 1.1rem;cursor:pointer;font-weight:600}button:hover{filter:brightness(1.08)}button:disabled{opacity:.6;cursor:wait}.quiet{background:transparent;color:var(--text);border-color:var(--line);font-weight:400}.danger{color:#ffc8bd}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
main{width:min(1200px,calc(100% - 48px));margin-inline:auto}#member-email{font-size:14px;color:var(--muted);overflow-wrap:anywhere}#admin-link{font-size:14px;color:var(--accent);text-decoration:underline;text-underline-offset:4px}h1,h2,h3,p{margin:0}h1{font-family:"Palatino Linotype",Georgia,serif;font-size:clamp(38px,5.4vw,62px);line-height:1.08;font-weight:400;letter-spacing:-.03em}h2{font-size:22px;font-weight:600;line-height:1.3}h3{font-size:17px;line-height:1.35}.notice{min-height:32px;margin:20px 0;color:var(--accent);max-width:78ch}.notice.error{color:#ffc8bd}.muted,.small,.section-heading>span{color:var(--muted)}.muted{max-width:76ch}.small{font-size:14px}.sign-in{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:100px;min-height:560px;padding-bottom:70px}.sign-in .intro{font-size:21px;margin:28px 0 18px;max-width:32ch}.sign-in .muted{max-width:44ch}.login-box{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:36px}.login-box p{color:var(--muted);margin:12px 0 28px}.login-box label{display:block;margin-bottom:8px}.login-box input{background:var(--ink);border:1px solid #637082;border-radius:7px;width:100%;padding:12px;color:var(--text);margin-bottom:22px}.login-box button{margin:0 8px 10px 0}.account-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.account-nav{display:flex;gap:30px;flex-wrap:wrap;padding-bottom:28px}.account-nav a{color:var(--muted);text-decoration:none}.account-nav a:hover{color:var(--accent)}section{scroll-margin-top:24px}#account>section{padding:38px 0;border-top:1px solid var(--line)}#account>.license{display:grid;grid-template-columns:1fr minmax(240px,.65fr);gap:50px;padding:32px 36px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 16px 16px 0;margin-bottom:20px}.license h2{font-size:16px;color:var(--muted);font-weight:400}.license-state{font-size:34px;line-height:1.2;margin:12px 0}.license-action{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.license-action .small{max-width:36ch}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:14px}.section-heading>p,.section-heading>span{font-size:14px;color:var(--muted)}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:24px 0;border-top:1px solid var(--line)}.settings-row:first-of-type{border-top:0}.settings-row h3{margin-bottom:8px}.settings-control{justify-self:end}.settings-facts{margin:10px 0 8px}.settings-facts div{display:flex;align-items:baseline;gap:18px}.settings-facts dt{color:var(--muted);font-size:14px}.settings-facts dd{margin:0;overflow-wrap:anywhere}.settings-form{max-width:600px;padding:24px 0;border-top:1px solid var(--line)}.settings-form h3{margin-bottom:8px}.settings-form label{display:block;margin:18px 0 7px}.settings-form input{font:inherit;color:var(--text);background:var(--panel);border:1px solid #637082;border-radius:7px;padding:10px;width:100%;margin-bottom:16px}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.button-link{display:inline-block;border:1px solid var(--line);border-radius:24px;padding:.55rem 1rem;color:var(--text);text-decoration:none;white-space:nowrap}.button-link:hover{color:var(--accent);border-color:var(--accent)}.device-list{padding:0;margin:24px 0 0;list-style:none}.device-list li{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--panel);padding:20px 22px;border-bottom:1px solid var(--line)}.device-list li:first-child{border-radius:10px 10px 0 0}.device-list li:last-child{border-radius:0 0 10px 10px;border:0}.device-list strong{display:block;font-weight:600}.device-list .small{display:block;margin-top:4px}.empty{padding:24px 0;color:var(--muted)}.release-list{margin-top:24px}.release{display:grid;grid-template-columns:1fr auto;gap:12px 24px;padding:24px 0;border-top:1px solid var(--line)}.release:first-child{border:0}.release h3{font-size:19px;font-weight:600;margin:0 0 6px}.release p{font-size:14px;color:var(--muted)}.release .eligibility{color:var(--accent);margin-top:8px}.release .eligibility.uncovered{color:#f3cca0}.release>a{align-self:center;border:1px solid var(--line);border-radius:24px;padding:9px 18px;text-decoration:none;white-space:nowrap}.release details{grid-column:1/-1;font-size:13px;color:var(--muted)}.release summary{cursor:pointer}.release code{display:block;overflow-wrap:anywhere;padding-top:8px}.table-wrap{overflow-x:auto;margin-top:24px}table{width:100%;border-collapse:collapse;text-align:left;min-width:680px}th,td{padding:17px 14px;border-bottom:1px solid var(--line);font-size:14px}th{font-weight:400;color:var(--muted)}th:first-child,td:first-child{padding-left:0}td button{font-size:13px}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:20px;font-size:14px}.download-intro{padding-top:54px}.download-link{display:inline-block;background:var(--accent);color:#07121a;border-radius:24px;padding:.65rem 1.2rem;text-decoration:none;font-weight:600}
@media(max-width:760px){main{width:calc(100% - 32px)}#member-email{max-width:190px;font-size:12px}.sign-in{grid-template-columns:1fr;gap:32px;min-height:auto;padding:20px 0 40px}.sign-in h1 br{display:none}.login-box{padding:24px}.account-heading{align-items:flex-start}.account-heading button{font-size:13px}.account-nav{gap:22px}#account>.license{grid-template-columns:1fr;padding:24px;gap:26px}.license-state{font-size:30px}.section-heading{align-items:flex-start;flex-direction:column;gap:5px}.settings-row{grid-template-columns:1fr;gap:16px}.settings-control{justify-self:start}.settings-facts div{display:block}.settings-facts dt{margin-bottom:2px}.device-list li{padding:18px 14px;gap:14px}.release{grid-template-columns:1fr}.release>a{justify-self:start}.release details{grid-column:1}.device-list button{font-size:13px;padding:8px 12px}}