/* IBM Plex, self-hosted (D10cd). Copied from the app's own next/font build,
   so the four static pages and the app render the identical files and the
   site makes no third-party request at all. Latin and latin-ext only;
   unicode-range means a page fetches a file only if it uses a character in
   it. To refresh: pnpm build, then re-copy the woff2 from
   .next/static/media and re-point the @font-face blocks in
   .next/static/css at /fonts/. */
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}

/* The folder: the site's one frame. Every page is a sheet with the notched
   corner, the masthead tabs on its top edge, and the footer at its foot; only
   what is inside changes. At every size the folder is fixed to the viewport
   and its contents scroll inside it. Selectors are .sheet.folder so this file
   wins over a page's own .sheet rule whatever the load order. */
.sheet.folder header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--rule)}
.sheet.folder header a.wordmark{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none}
.tabs{margin-left:auto;display:flex;gap:14px}
.tabs .btn{display:inline-block;padding:9px 16px;font-size:.8125rem;font-weight:600;text-decoration:none;text-align:center;color:var(--ink);font-family:inherit;cursor:pointer}
.tabs .btn{border:1px solid var(--ink);background:var(--paper)}
.sheet.folder footer{margin-top:clamp(40px,6vw,64px);padding-top:20px;border-top:1px solid var(--rule);
     display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sheet.folder footer a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.sheet.folder footer a:hover{color:var(--ink)}

/* The notched frame mark drawn at page scale: the corner is clipped out of
   the sheet itself and the outline is a clipped border, so no covering
   tricks and no rounding slivers. */
.sheet.folder{--notchw:96px;--notchh:34px;
     --notchcut:polygon(0 0,calc(100% - var(--notchw)) 0,calc(100% - var(--notchw)) var(--notchh),100% var(--notchh),100% 100%,0 100%);
     position:relative;clip-path:var(--notchcut);display:flex;flex-direction:column;max-width:1040px;
     height:calc(100vh - 2*clamp(12px,3vw,40px));height:calc(100dvh - 2*clamp(12px,3vw,40px));min-height:0;
     padding:24px clamp(24px,5vw,56px);padding-top:max(28px,calc(var(--notchh) + 12px))}
.sheet.folder::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
     border:1.5px solid var(--ink);clip-path:var(--notchcut)}
/* The step's two inner lines, drawn just inside the clip so nothing is cut off */
.sheet.folder .notch{position:absolute;top:0;right:var(--notchw);width:1.5px;height:var(--notchh);
     background:var(--ink);pointer-events:none;z-index:1}
.sheet.folder .notch::after{content:"";position:absolute;top:var(--notchh);left:0;
     width:calc(var(--notchw) + 1.5px);height:1.5px;background:var(--ink)}
.sheet.folder header{padding-bottom:10px}
/* The masthead buttons sit on the sheet's top edge against the notch, the
   height of the notch step to the foot of its line, no gap: tabs on a folder. */
.sheet.folder .tabs{position:absolute;top:0;right:var(--notchw);max-width:calc(100% - var(--notchw));display:flex;gap:0;margin:0;z-index:2}
.sheet.folder .tabs .btn{display:inline-flex;align-items:center;height:calc(var(--notchh) + 1.5px);padding:0 14px;font-size:.78125rem;white-space:nowrap}
/* Tabs are cut from the folder's paper (D10bb, D10bc, D10be). Every tab has
   all four lines in the sheet's 1.5px; the open tab (aria-current) is paper
   and keeps its bottom line (D10bq), the menu tab joins the sheet when open.
   When there is more than one tab, the tabs
   behind step back in shades of gray, each tab its own: ground, then ground
   with 22% ink, then 44%; ink text throughout. The page's one ink button is its CTA. */
.sheet.folder .tabs .btn{border:1.5px solid var(--ink);background:var(--ground);color:var(--ink)}
.sheet.folder .tabs>:nth-child(2)>.btn,.sheet.folder .tabs>:nth-child(2).btn{background:color-mix(in srgb,var(--ground),var(--ink) 22%)}
.sheet.folder .tabs>:nth-child(3)>.btn,.sheet.folder .tabs>:nth-child(3).btn{background:color-mix(in srgb,var(--ground),var(--ink) 44%)}
.sheet.folder .tabs>:not(:first-child)>.btn,.sheet.folder .tabs>.btn:not(:first-child){border-left:0} /* neighbours share one line */
/* The session email is not a tab (D10bm): plain muted text on the top edge, no line or fill. The tab after it is the first tab. */
.sheet.folder .tabs>.uinfo+*>.btn{background:var(--ground);border-left:1.5px solid var(--ink)}
.sheet.folder .tabs .btn[aria-current="page"]{background:var(--paper);color:var(--ink)}
/* The contents scroll inside the folder */
.sheet.folder main{flex:1;min-height:0;overflow:auto}
.sheet.folder footer{margin-top:8px;padding-top:8px;font-size:.5625rem;line-height:1.9}
/* On a phone the two tabs fold into one: a menu tab on the notch edge (D10ay,
   D10ba). Opening it swaps the folder's contents for the tab items, full
   width under the masthead; the frame, masthead and footer stay. Native
   details, no script: the sheet reads the open state with :has. The glyph is
   three hairlines in the access glyph's stroke: the house's second icon, by
   founder direction. */
.tabs .menu{display:none}
.tabs .menu summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;
     width:44px;height:calc(var(--notchh) + 1.5px);border:1.5px solid var(--ink);background:var(--ground);cursor:pointer}
.tabs .menu summary::-webkit-details-marker{display:none}
.tabs .menu svg{width:16px;height:12px;display:block}
.tabs .menu svg path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linecap:round}
.tabs .menu[open] summary{background:var(--paper);border-bottom:0} /* open: the sheet's paper, joined */
.menupage{display:none}
.menupage .btn{display:block;padding:14px 18px;font-size:.9375rem;font-weight:600;text-align:left;text-decoration:none;
     color:var(--ink);border:1px solid var(--ink);background:var(--paper);font-family:inherit;cursor:pointer;width:100%}
.menupage .primary{background:var(--ink);color:var(--paper)}
@media (max-width:560px){
  .sheet.folder .tabs>.btn,.sheet.folder .tabs>.uinfo,.sheet.folder .tabs>form{display:none}
  .sheet.folder .tabs .menu{display:block}
  .sheet.folder:has(.menu[open])>:not(.notch):not(header):not(footer):not(.menupage){display:none}
  .sheet.folder:has(.menu[open]) .menupage{display:flex;flex-direction:column;flex:1;padding-top:24px;gap:12px}
}
