:root{--bg:#131218;--surface:#1D1C25;--ink:#E9E5F0;--accent:#9A7BB5;--button-ink:#1A1620}
:root{--accent-hi:#CBAEE6}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/386dc5bed03b557b.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/1c362fdb15e3810b.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/8bb5d7badc0189c1.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/00633b031b7bb8d7.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/68db300b3e14e7a3.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/79347ed53aa14e8b.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/72025d9b68a7dd0b.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/959364b06f81af7e.woff2) format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/b0c618f6d8ea9968.woff2) format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/1a6844598cfc2dfd.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/4a82aa066670a25e.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/2d1aa21dfaa805c3.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/7a491b2cdbe292ac.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/8f0b78b2e429e308.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/90cb35eb6a6cce2a.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/02518739fec1df8c.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/02e94dc488037154.woff2) format('woff2');
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/fonts/7c3021b06004e966.woff2) format('woff2');
}

:root{color-scheme:dark;--line:color-mix(in srgb,var(--ink) 16%,transparent);--soft:color-mix(in srgb,var(--ink) 58%,var(--bg));--serif:'Fraunces',Georgia,serif;--sans:'Instrument Sans',Helvetica,Arial,sans-serif;--mono:'IBM Plex Mono',monospace}
:root{--p1:#EFC3DA;--p2:#F4D4B4;--p3:#F0E6B2;--p4:#C4E4C9;--p5:#BAD3EE;--p6:#DACDEA}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent-hi);outline-offset:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent-hi);color:var(--button-ink);padding:10px 16px;z-index:200;font:500 12px var(--mono)}
.skip:focus{left:0}
.grain{pointer-events:none;position:fixed;inset:0;opacity:.12;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");animation:grainShift 1.1s steps(4) infinite}
@keyframes grainShift{0%,100%{background-position:0 0}25%{background-position:-60px 40px}50%{background-position:40px -70px}75%{background-position:-30px -50px}}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--p1),var(--p2),var(--p3),var(--p4),var(--p5),var(--p6));transform-origin:0 50%;transform:scaleX(0);z-index:900;pointer-events:none}
header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px clamp(24px,5vw,90px);border-bottom:1px solid var(--line)}
.brand{font:500 19px/1.2 var(--serif);letter-spacing:-.02em;text-decoration:none}
.brand .mark{font:11px var(--mono);letter-spacing:.15em;vertical-align:top;margin-left:5px}
.menu{display:none;background:none;border:0;color:inherit;font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
nav{display:flex;gap:clamp(14px,2vw,32px);align-items:center}
nav a{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .4s ease;padding-bottom:3px}
nav a::after{content:attr(data-label);display:block;font-weight:700;height:0;visibility:hidden;overflow:hidden}
:root{--c-home:#8A0F14;--c-notes:#4B4B4B;--c-closet:#8E4FA8;--c-invest:#16696F;--c-admissions:#D2B783}
nav a.n-home{--hc:color-mix(in srgb,var(--c-home) 55%,white)}nav a.n-notes{--hc:#F2F2F0}nav a.n-closet{--hc:color-mix(in srgb,var(--c-closet) 60%,white)}nav a.n-invest{--hc:color-mix(in srgb,var(--c-invest) 45%,white)}nav a.n-admissions{--hc:var(--c-admissions)}
@media(hover:hover){nav a:hover{background-size:100% 1px;font-weight:700;color:var(--hc,var(--accent-hi))}}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.hero{position:relative;min-height:82vh;display:flex;flex-direction:column;justify-content:center;padding:80px 0 60px;border-bottom:1px solid var(--line)}
.side-note{position:absolute;right:clamp(8px,1.5vw,24px);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font:500 10px var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--soft)}
h1{font:340 clamp(44px,7vw,100px)/0.98 var(--serif);letter-spacing:-.03em;font-optical-sizing:auto}
h1 em,h2 em{font-style:italic;font-weight:400;background:linear-gradient(100deg,var(--p1),var(--p3),var(--p5));-webkit-background-clip:text;background-clip:text;color:transparent}
.line-indent{display:inline-block;margin-left:clamp(28px,6vw,110px)}
.lead{max-width:560px;margin-top:26px;font-size:clamp(16px,1.6vw,19px)}
.muted{color:var(--soft)}
.small{font-size:13px}
.hero-foot{margin-top:36px}
.text-link{font:500 11px var(--mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:6px;transition:border-color .3s,color .3s}
.text-link:hover{color:var(--accent-hi);border-color:var(--accent-hi)}
.hero-meta{display:flex;gap:26px;margin-top:56px;font:500 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--soft)}
.artifact{position:absolute;right:clamp(20px,6vw,110px);top:50%;transform:translateY(-50%);width:clamp(180px,22vw,300px);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.artifact-inner{width:62%;aspect-ratio:1;border:1px solid var(--line);border-radius:32% 68% 55% 45%/48% 40% 60% 52%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,color-mix(in srgb,var(--p1) 26%,transparent),transparent 60%),radial-gradient(circle at 70% 74%,color-mix(in srgb,var(--p5) 24%,transparent),transparent 60%)}
.artifact-inner span{font:italic 300 clamp(60px,8vw,110px) var(--serif);color:var(--ink)}
.section{padding:clamp(70px,10vh,120px) 0}
.rule{border-bottom:1px solid var(--line)}
.section-head{margin-bottom:40px}
.eyebrow{display:block;text-align:right;font:500 11px var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent-hi);margin-bottom:18px}
h2{font:340 clamp(30px,3.6vw,52px)/1.05 var(--serif);letter-spacing:-.02em}
.reveal{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease;transition-delay:calc(var(--i,0)*90ms)}
.reveal.visible{opacity:1;transform:none}
h1 .w{display:inline-block;vertical-align:bottom;white-space:nowrap}
h1 .l{display:inline-block;overflow:hidden;vertical-align:bottom}
h1 .l>span{display:inline-block;transform:translateY(115%) rotate(4deg);animation:rise .95s cubic-bezier(.19,.66,.22,1) forwards;animation-delay:calc(.12s + var(--i,0)*34ms)}
@keyframes rise{to{transform:none}}
.footer{display:flex;justify-content:space-between;gap:34px;padding-block:56px 64px;flex-wrap:wrap}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;align-items:start}
.footer-links a{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .4s ease;padding-bottom:3px}
.footer-links a:hover{background-size:100% 1px}
.site-clock{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;margin-top:10px}
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:999;border-radius:50%;transform:translate(-100px,-100px)}
.cursor-dot{width:6px;height:6px;background:var(--accent-hi);margin:-3px 0 0 -3px}
.cursor-ring{width:34px;height:34px;border:1px solid var(--accent-hi);margin:-17px 0 0 -17px;mix-blend-mode:difference;transition:scale .25s}
@media(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}
.gallery-wrap{display:grid;grid-template-columns:1.12fr .88fr;gap:34px;align-items:start;margin-top:8px}
.g-map svg{width:100%;height:auto;display:block;background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 88%,var(--p5)),var(--surface) 45%);border:1px solid var(--line)}
.g-land circle{fill:color-mix(in srgb,var(--ink) 30%,transparent)}
.g-pin .pin-dot{fill:var(--pc,var(--accent-hi))}
.g-pin .pin-ring{fill:none;stroke:var(--pc,var(--accent-hi));stroke-width:1;opacity:.3}
.g-pin.active .pin-ring{animation:pinPulse 1.7s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes pinPulse{0%{transform:scale(.45);opacity:.95}100%{transform:scale(2);opacity:0}}
.g-info{margin-top:14px;font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;border-left:2px solid var(--pc,var(--accent-hi));padding-left:12px}
.g-info .g-cap{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:13px;margin:6px 0 0}
.g-info .g-date{margin-left:10px;color:var(--soft)}
.g-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:calc((100cqw - 30px)/4);gap:10px;grid-auto-flow:dense;container-type:inline-size}
.g-tile{position:relative;border:1px dashed color-mix(in srgb,var(--pc,var(--ink)) 55%,transparent);background:color-mix(in srgb,var(--pc,var(--surface)) 13%,var(--surface));display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:transform .3s,border-color .3s,background .3s}
.g-tile.span2{grid-column:span 2;grid-row:span 2}
.g-tile .g-ph{font:300 30px var(--serif);color:color-mix(in srgb,var(--pc,var(--soft)) 70%,var(--soft))}
.g-tile .g-tag{position:absolute;left:9px;bottom:7px;font:500 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.g-tile .g-sample{position:absolute;top:7px;right:9px;font:500 8px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--pc,var(--accent-hi)) 80%,var(--ink))}
.g-tile:hover{transform:translateY(-3px)}
.g-tile.active{border:1px solid var(--pc,var(--accent-hi));background:color-mix(in srgb,var(--pc,var(--surface)) 24%,var(--surface))}
.g-empty{grid-column:1/-1;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;min-height:180px}
@media(max-width:900px){.gallery-wrap{grid-template-columns:1fr}.g-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:calc((100cqw - 20px)/3)}}
@media(max-width:760px){nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:25px;flex-direction:column;align-items:start}nav.open{display:flex}.menu{display:block}.hero{min-height:70vh}.artifact{display:none}.hero-meta{flex-direction:column;gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}h1 .l>span{transform:none;animation:none}.grain{animation:none}.g-pin.active .pin-ring{opacity:.6}}

html,body{overflow-x:clip}
.arrow svg,.text-link svg,.dot svg,.admit-dot svg,.hero-meta svg{display:inline-block;vertical-align:-1px}
@media (max-width:640px){.footer{gap:22px}.footer-links{gap:12px 16px}.footer-links a{letter-spacing:.1em}}

/* v5: language switcher (hub pattern) */
details.lang{position:relative;display:inline-block;margin-inline-start:.9rem;vertical-align:middle}
details.lang summary{list-style:none;cursor:pointer;font-family:var(--mono,monospace);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7;border:1px solid currentColor;border-radius:999px;padding:.28em .8em;user-select:none}
details.lang summary::-webkit-details-marker{display:none}
details.lang summary:hover{opacity:1}
details.lang[open] summary{opacity:1}
.lang-menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:60;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.4rem;min-width:6.5em;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.lang-menu a{display:block;padding:.45em .7em;font-family:var(--mono,monospace);font-size:.72rem;letter-spacing:.1em;text-decoration:none;color:inherit;border-radius:4px;text-align:start}
.lang-menu a:hover{opacity:.7}
html[lang=zh-CN] h1,html[lang=zh-CN] h2{line-height:1.14}
html[lang=ar] h1,html[lang=ar] h2,html[lang=ar] h3,html[lang=ar] .eyebrow,html[lang=ar] .num,html[lang=ar] .label,html[lang=ar] nav a,html[lang=ar] .menu,html[lang=ar] details.lang summary,html[lang=ar] .lang-menu a,html[lang=ar] .text-link,html[lang=ar] .brand{letter-spacing:0}
html[lang=ar] h1 em,html[lang=ar] h2 em,html[lang=ar] h3 em{font-style:normal}
html[lang=ar] .hero .artifact{right:auto;left:-3%}
html[lang=ar] .side-note{display:none}
/* v5: gradient em must paint per split char, not transparent */
h1 em .l>span,h2 em .l>span{background:linear-gradient(100deg,var(--p1),var(--p3),var(--p5));-webkit-background-clip:text;background-clip:text;color:transparent}

/* v8: line-art replaces monogram */
.artifact-inner svg{width:36%;height:auto;color:var(--ink);opacity:.8}

/* Failure recovery without changing the cursor. */
main.error-page{max-width:780px;margin:clamp(60px,12vh,160px) auto;padding:32px 24px;min-height:55vh}main.error-page h1{font-size:clamp(38px,7vw,76px);line-height:1.15;animation:none;transform:none}main.error-page p{max-width:54ch;line-height:1.7}main.error-page a{display:inline-block;margin:20px 28px 0 0;text-decoration:underline}html[dir=rtl] main.error-page{letter-spacing:0} .connection-notice{position:fixed;bottom:12px;left:12px;right:12px;z-index:10000;background:var(--surface,var(--bg,#171717));color:var(--ink,var(--text,#ddd));border:1px solid var(--line,#888);padding:14px 18px;font-size:14px;line-height:1.5}.connection-notice[hidden]{display:none}.nojs-help{display:block;padding:24px;line-height:1.65;border-top:1px solid var(--line,#888)} .nojs-help a{margin-inline-end:24px;text-decoration:underline}

/* Light rainbow proposal, not yet published. */
:root{color-scheme:light;--bg:#F9F5FB;--surface:#F0EAF5;--ink:#392F43;--accent:#806392;--accent-hi:#684D7A;--button-ink:#FAF7FD;--line:#D8CEE1;--soft:#696075;--p1:#B5688F;--p2:#AF7650;--p3:#9C8A37;--p4:#558367;--p5:#5B7FA6;--p6:#88719D}
nav a.n-home{--hc:#8A0F14}nav a.n-notes{--hc:#4B4B4B}nav a.n-closet{--hc:#8E4FA8}nav a.n-invest{--hc:#16696F}
.grain{opacity:.055}.hero{background:radial-gradient(ellipse at 10% 95%,#F6DDE466,transparent 40%),radial-gradient(ellipse at 50% 100%,#DAEEE255,transparent 40%),radial-gradient(ellipse at 90% 90%,#DFE9FA88,transparent 40%)}

/* Direction-safe hidden skip link; keep keyboard access without RTL page overflow. */
.skip{left:0;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{left:8px;top:8px;width:auto;height:auto;padding:8px;overflow:visible;clip-path:none;white-space:normal}

/* Personal navigation / account UI — inherits this site's palette and fonts. */
header{flex-wrap:wrap}
header nav#site-nav{flex:1 1 650px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;column-gap:clamp(10px,1.4vw,22px);row-gap:12px;min-width:0}
header nav#site-nav > a,header nav#site-nav > .nav-drop > a{display:inline-block}
header nav#site-nav .nav-drop{position:relative;display:inline-flex;align-items:center}
header nav#site-nav .drop-panel{
 position:absolute;z-index:80;top:100%;left:50%;transform:translateX(-50%);
 width:max-content;min-width:220px;max-width:min(320px,calc(100vw - 36px));
 max-height:min(65vh,520px);overflow-y:auto;overscroll-behavior:contain;
 display:flex;flex-direction:column;gap:2px;padding:14px 16px;
 background:var(--surface,var(--bg));color:var(--ink);border:1px solid var(--line);
 border-radius:8px;box-shadow:0 18px 40px -18px rgba(0,0,0,.35);
 opacity:0;visibility:hidden;pointer-events:none;
}
header nav#site-nav .nav-drop:hover .drop-panel,header nav#site-nav .nav-drop:focus-within .drop-panel{
 opacity:1;visibility:visible;pointer-events:auto;
}
header nav#site-nav .drop-panel a{
 display:block;padding:7px 8px;white-space:normal;text-align:start;text-transform:none;
 letter-spacing:.02em;font:500 11px/1.5 var(--mono,monospace);
 text-decoration:none;color:var(--ink);background:none;
}
header nav#site-nav .drop-panel a::after{display:none}
header nav#site-nav .drop-panel a:hover{font-weight:600;color:var(--accent-hi,var(--accent));background:color-mix(in srgb,var(--accent) 9%,transparent)}
header nav#site-nav .drop-panel a:focus-visible,header nav#site-nav > a:focus-visible,header nav#site-nav > .nav-drop > a:focus-visible{
 outline:2px solid var(--accent-hi,var(--accent));outline-offset:3px
}
header nav#site-nav .drop-eyebrow{
 font:500 10px/1.5 var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;
 opacity:.75;margin:10px 8px 3px
}
header nav#site-nav .drop-eyebrow:first-child{margin-top:0}
header nav#site-nav a.n-study,header nav#site-nav a.n-media,header nav#site-nav a.n-account{--hc:var(--accent-hi,var(--accent))}
html[dir=rtl] header nav#site-nav .drop-panel,html[lang=ar] header nav#site-nav .drop-panel{direction:rtl;text-align:start}
html[lang=ar] header nav#site-nav a,html[dir=rtl] header nav#site-nav a{letter-spacing:0}

/* Google sign-in dialog and read-only account dashboard. */
#site-auth-dialog,#notes-account-dialog{
 box-sizing:border-box;color:var(--ink);background:var(--surface,var(--bg));
 border:1px solid var(--line);border-radius:8px;
 width:min(740px,calc(100% - 28px));max-height:min(85dvh,850px);
 margin:auto;padding:clamp(20px,4vw,36px);overflow-y:auto;
}
#site-auth-dialog{width:min(460px,calc(100% - 28px))}
#site-auth-dialog::backdrop,#notes-account-dialog::backdrop{background:rgba(0,0,0,.68)}
#site-auth-dialog h2,#notes-account-dialog h2{
 font:600 clamp(25px,4vw,39px)/1.2 var(--serif,serif);margin:0 0 14px;color:inherit
}
#site-auth-dialog p,#notes-account-dialog p,#notes-account-dialog li{
 font:400 14px/1.65 var(--sans,sans-serif);overflow-wrap:anywhere
}
#notes-account-dialog h3{font:600 17px/1.4 var(--sans,sans-serif);margin:0 0 12px}
#notes-account-dialog .account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
#notes-account-dialog .account-section{padding:20px 0;border-top:1px solid var(--line)}
#notes-account-dialog ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
#site-auth-dialog a,#notes-account-dialog a{color:inherit;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
#site-auth-dialog button,#notes-account-dialog button{
 font:500 12px var(--mono,monospace);color:inherit;background:transparent;
 border:1px solid var(--line);padding:10px 13px;cursor:pointer
}
#site-auth-dialog .auth-close{float:right}
#site-auth-dialog .auth-google{width:100%;margin:12px 0}
#site-auth-dialog button:disabled,#notes-account-dialog button:disabled{opacity:.55}
#notes-account-dialog .account-controls{display:flex;gap:10px;flex-wrap:wrap}
#site-auth-dialog button:focus-visible,#notes-account-dialog button:focus-visible,#notes-account-dialog a:focus-visible{
 outline:2px solid var(--accent-hi,var(--accent));outline-offset:3px
}
@media(max-width:900px){
 header nav#site-nav:not(.open){display:none}
 header nav#site-nav.open{
   display:flex;position:absolute;z-index:100;top:100%;
   inset-inline:0;left:0;right:0;
   flex:initial;flex-flow:column nowrap;align-items:stretch;justify-content:flex-start;
   gap:15px;box-sizing:border-box;width:100%;min-width:0;
   max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain;
   scrollbar-width:thin;padding:20px 24px;
   background:var(--surface,var(--bg));color:var(--ink);border-bottom:1px solid var(--line)
 }
 header nav#site-nav.open > a{align-self:flex-start}
 header nav#site-nav .nav-drop{width:100%;display:flex;flex-direction:column;align-items:stretch}
 header nav#site-nav .nav-drop > a{align-self:flex-start}
 header nav#site-nav .drop-panel{
   position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
   box-sizing:border-box;width:100%;max-width:100%;max-height:none;overflow:visible;
   padding:8px 0 0 12px;margin-top:8px;box-shadow:none;border:0;border-radius:0;
   border-top:1px dashed var(--line);background:transparent;gap:0
 }
 header nav#site-nav .drop-panel a{padding:9px 8px}
 html[dir=rtl] header nav#site-nav .drop-panel,html[lang=ar] header nav#site-nav .drop-panel{padding:8px 12px 0 0}
}

/* Compact display type on narrow screens. */
@media(max-width:900px){h1{font-size:clamp(36px,10.5vw,48px)}}
