:root{--site-base:#18181b;--site-panel:#202024;--site-fg:#f4f4f5;--site-dim:#a1a1aa;--site-main:#22c55e;--site-accent:#38bdf8;--site-edge:#323238;--site-round:10px;--site-width:1080px;--site-heading:'Playfair Display',system-ui,sans-serif;--site-font-body:'Lato',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem} body{margin:0;background:var(--site-base);color:var(--site-fg);font:16px/1.65 var(--site-font-body);color-scheme:dark}
img{max-width:100%;height:auto} a{color:var(--site-main);text-underline-offset:3px}
input,select,textarea{max-width:100%;box-sizing:border-box}
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{min-width:0;max-width:100%}
@supports (-webkit-touch-callout:none){input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{-webkit-appearance:none;appearance:none;min-height:2.75em} input::-webkit-date-and-time-value{text-align:left}}
h1,h2,h3{font-family:var(--site-heading);line-height:1.2;letter-spacing:-.01em;color:var(--site-fg)}
h1{font-size:clamp(1.9rem,4.5vw,2.8rem);margin:.2em 0 .35em} h2{font-size:clamp(1.35rem,3vw,1.8rem);margin:2.20em 0 .6em} h3{font-size:1.15rem;margin:1.6em 0 .4em}
p,ul,ol{margin:0 0 1em}
.frame{max-width:var(--site-width);margin:0 auto;padding:0 1rem} .page{max-width:var(--site-width);margin:0 auto;padding:1.2rem 1rem 3rem}
.skip-link{position:absolute;left:-9999px} .skip-link:focus{left:1rem;top:1rem;background:var(--site-panel);padding:.5rem;z-index:99}
.header-inner{max-width:var(--site-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;flex-wrap:wrap}
.brand-link{display:flex;align-items:center;gap:.6rem;font:800 1.15rem var(--site-heading);color:var(--site-fg);text-decoration:none}
.links{display:flex;gap:1rem;flex-wrap:wrap;align-items:center} .links a{color:var(--site-fg);text-decoration:none;font-weight:600;font-size:.95rem}
.masthead{background:transparent;padding-top:.8rem} .header-inner{background:var(--site-panel);border:1px solid var(--site-edge);border-radius:999px;padding:.5rem 1.1rem}  
.page-top{margin:1rem 0 1.4rem} .lede{font-size:1.12rem;max-width:46em;color:var(--site-dim)} .page-top{text-align:center} .page-top .lede{margin-left:auto;margin-right:auto}
.panel-app{margin:1.4rem 0 2rem}
.callout{margin:1.4em 0;padding:.9em 1.1em;background:var(--site-panel);border-left:4px solid var(--site-accent);border-radius:0 var(--site-round) var(--site-round) 0}
.math-box{margin:1.2em 0;padding:.9em 1.1em;font-family:ui-monospace,Consolas,monospace;background:var(--site-panel);border:1px dashed var(--site-main);border-radius:var(--site-round);overflow-x:auto}
.table-scroll{margin:1.2em 0;overflow-x:auto;border:1px solid var(--site-edge);border-radius:var(--site-round);background:var(--site-panel)}
.data-table{width:100%;border-collapse:collapse;font-size:.95em;font-variant-numeric:tabular-nums} .data-table th,.data-table td{padding:.5em .75em;border-bottom:1px solid var(--site-edge);text-align:left}
.data-table thead th{background:color-mix(in srgb,var(--site-edge) 60%,var(--site-panel))}
ol.procedure{padding-left:1.3em} ol.procedure>li{margin:.5em 0}
.diagram{margin:1.6em 0;text-align:center} .diagram img{width:100%;max-width:720px;border-radius:var(--site-round);border:1px solid var(--site-edge);background:#fff} .diagram figcaption{font-size:.9em;color:var(--site-dim)}
.card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:1.2em 0}
.item{display:block;padding:1.1rem;background:var(--site-panel);border-radius:var(--site-round);box-shadow:0 6px 24px rgba(0,0,0,.09);border:1px solid transparent;color:var(--site-fg);text-decoration:none}
.item b{display:block;font-family:var(--site-heading);margin-bottom:.35rem} .item span{color:var(--site-dim);font-size:.92rem} .item:hover{border-color:var(--site-main)}
.item--img{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease} .item--img:hover{transform:translateY(-3px);box-shadow:0 10px 24px color-mix(in srgb,var(--site-fg) 14%,transparent)}
.card-img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover} .card-txt{display:block;padding:1rem 1.1rem 1.1rem} .card-txt>span{display:block}
.blist a,.brow,.post-kicker{background:none!important}
.card-meta{display:block;margin-top:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--site-main)}
.card-list--feat{grid-template-columns:repeat(2,minmax(0,1fr))} .card-list--feat>.item:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;align-items:center} .card-list--feat>.item:first-child b{font-size:1.35rem}
.blist{display:grid;gap:1rem;margin:1.2em 0} .brow{display:grid;grid-template-columns:240px 1fr;gap:1.1rem;align-items:center;background:var(--site-panel);border:1px solid var(--site-edge);border-radius:var(--site-round);overflow:hidden;color:var(--site-fg);text-decoration:none}
.brow .card-img{height:100%;aspect-ratio:auto;min-height:126px} .brow b{display:block;font-family:var(--site-heading);font-size:1.12rem;margin-bottom:.3rem} .brow .card-txt>span{color:var(--site-dim);font-size:.93rem} .brow:hover{border-color:var(--site-main)}
.blist--min{list-style:none;padding:0;counter-reset:bl;gap:0} .blist--min li{counter-increment:bl;border-top:1px solid var(--site-edge)} .blist--min li:last-child{border-bottom:1px solid var(--site-edge)}
.blist--min a{display:grid;grid-template-columns:4.2rem 1fr;column-gap:1rem;padding:1.1rem .2rem;color:var(--site-fg);text-decoration:none} .blist--min a::before{content:counter(bl,decimal-leading-zero);grid-row:1/4;font:800 2.4rem/1 var(--site-heading);color:var(--site-main)}
.blist--min b{font-family:var(--site-heading);font-size:1.15rem} .blist--min span{color:var(--site-dim);font-size:.93rem} .blist--min a:hover b{color:var(--site-main)}
.post-head--overlay{position:relative;margin:.6rem 0 1.6rem;border-radius:var(--site-round);overflow:hidden} .post-head--overlay>img{display:block;width:100%;height:auto;min-height:300px;object-fit:cover}
.post-ov{position:absolute;inset:auto 0 0 0;padding:4rem 1.6rem 1.4rem;background:linear-gradient(transparent,color-mix(in srgb,#000 72%,transparent))} .post-ov h1,.post-ov .post-meta,.post-ov .post-kicker{color:#fff}
.post-head--band{background:var(--site-main);color:#fff;padding:2.2rem 1.6rem;border-radius:var(--site-round)} .post-head--band h1,.post-head--band .post-meta,.post-head--band .post-kicker{color:#fff}
.post-head--split{display:grid;grid-template-columns:1.1fr 1fr;gap:1.6rem;align-items:center} .post-head--split .post-cover{margin:0}
.contents--chips ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.45rem} .contents--chips li{margin:0} .contents--chips a{display:inline-block;padding:.3rem .75rem;border:1px solid var(--site-edge);border-radius:999px;background:var(--site-base);text-decoration:none;font-size:.88rem}
.contents--rail{background:none;border:0;border-left:3px solid var(--site-accent);border-radius:0;padding:.2rem 0 .2rem 1rem}
.locale--globe summary{display:flex;align-items:center;gap:.35rem} .langpills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem} .langpills a{padding:.25rem .7rem;border:1px solid var(--site-edge);border-radius:999px;text-decoration:none} .langpills a[aria-current]{background:var(--site-main);border-color:var(--site-main);color:#fff}
@media (max-width:700px){.card-list--feat{grid-template-columns:1fr} .card-list--feat>.item:first-child{display:flex} .brow{grid-template-columns:1fr} .brow .card-img{min-height:0;aspect-ratio:1200/630} .post-head--split{grid-template-columns:1fr} .post-ov{position:static;background:var(--site-main);padding:1.2rem} .post-head--overlay>img{min-height:0}}
.post{max-width:48rem;margin:0 auto} .post-head{margin:.6rem 0 1.2rem} .post-head h1{font-size:clamp(2rem,5vw,3rem);line-height:1.12;letter-spacing:-.01em}
.post-kicker{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--site-main);text-decoration:none}
.upd{color:var(--site-dim);font-size:.9rem;margin:2rem 0 0} .sign{font-style:italic;color:var(--site-dim)} .post-meta{color:var(--site-dim);font-size:.92rem;margin:0} .post-cover{margin:0 0 1.6rem} .post-cover img{display:block;width:100%;height:auto;border-radius:var(--site-round)}
.post .lede{font-size:1.2rem;color:var(--site-fg)} .post .lede::first-letter{font-family:var(--site-heading);font-size:3.1em;float:left;line-height:.9;margin:.06em .1em 0 0;color:var(--site-main)}
.post .contents--post{position:static!important;top:auto!important;z-index:auto;margin:0 0 1.8rem;padding:1rem 1.2rem;background:var(--site-panel);border:1px solid var(--site-edge);border-left:4px solid var(--site-main);border-radius:var(--site-round);font-size:.95rem}
.contents--post ol{margin:.4rem 0 0;padding-left:1.2rem;columns:1} .contents--post li{margin:.2rem 0}
.post h3{color:var(--site-main)} .post blockquote{margin:1.4em 0;padding:.4em 1.2em;border-left:4px solid var(--site-accent);font-size:1.1em}
.qa details{border-bottom:1px solid var(--site-edge);padding:.7rem 0} .qa summary{cursor:pointer;font-weight:700;font-family:var(--site-heading)}
.where{font-size:.88rem;color:var(--site-dim);margin:.4rem 0 1rem} .where a{color:var(--site-dim)}
.callout-cta{margin:2.4rem 0;padding:1.4rem;background:var(--site-panel);border-radius:var(--site-round);box-shadow:0 6px 24px rgba(0,0,0,.09);border:1px solid transparent;text-align:center}
.pill-btn{display:inline-block;padding:.7em 1.4em;background:var(--site-main);color:#fff;border-radius:999px;font-weight:700;text-decoration:none}
.site-footer{border-top:1px solid var(--site-edge);margin-top:3rem;padding:1.6rem 0 2.4rem;font-size:.9rem;color:var(--site-dim);background:var(--site-panel)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem} .site-footer a{color:var(--site-dim)} .foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}


.locale{position:relative} .locale summary{cursor:pointer;list-style:none;padding:.25rem .6rem;border:1px solid var(--site-edge);border-radius:999px;font-size:.85rem}
.locale-list{position:absolute;right:0;top:120%;background:var(--site-panel);border:1px solid var(--site-edge);border-radius:10px;padding:.4rem;display:grid;min-width:9rem;z-index:40}
.locale-list a{padding:.3rem .5rem;text-decoration:none;color:var(--site-fg)} .locale-list a[aria-current]{font-weight:700;color:var(--site-main)}
.codes{display:flex;gap:.35rem;font-size:.8rem;font-weight:700} .codes a{text-decoration:none;color:var(--site-dim);padding:.1rem .3rem;border-radius:4px} .codes a[aria-current]{color:var(--site-main);background:color-mix(in srgb,var(--site-main) 12%,transparent)}
[data-spot]{margin:1rem auto;text-align:center;overflow:hidden;max-width:100%} [data-spot]:empty{margin:0}
[data-spot="mobile_sticky"]{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:50;background:var(--site-panel)}
[data-spot="sidebar_left"],[data-spot="sidebar_right"]{position:fixed;top:110px;width:160px;margin:0;z-index:20} [data-spot="sidebar_left"]{left:12px} [data-spot="sidebar_right"]{right:12px}
@media (max-width:1499px){[data-spot="sidebar_left"],[data-spot="sidebar_right"]{display:none}}
.adx{float:right;border:0;background:transparent;font-size:1.2rem;cursor:pointer;color:var(--site-dim)}
.pill-btn{border-radius:var(--site-round);box-shadow:0 4px 0 color-mix(in srgb,var(--site-main) 55%,#000)} .pill-btn:active{transform:translateY(2px);box-shadow:0 2px 0 color-mix(in srgb,var(--site-main) 55%,#000)}
.table-scroll{border:0;border-top:3px solid var(--site-main);border-radius:0;background:transparent} .data-table thead th{background:transparent;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em}
.section a:not(.pill-btn):not(.item){text-decoration-thickness:2px}
@media (max-width:640px){.header-inner{gap:.5rem} .links{gap:.8rem}}

/* Notes Online tool — only site tokens (--t-*) for colours, radius and fonts. */
.nt{
  --nt-bg:var(--site-base);--nt-surf:var(--site-panel);--nt-ink:var(--site-fg);--nt-muted:var(--site-dim);--nt-line:var(--site-edge);
  --nt-prim:var(--site-main);--nt-acc:var(--site-accent);--nt-r:var(--site-round);
  --nt-soft:color-mix(in srgb,var(--nt-prim) 12%,var(--nt-surf));
  --nt-rule:color-mix(in srgb,var(--nt-line) 55%,transparent);
  position:relative;color:var(--nt-ink);font-family:var(--site-font-body);font-size:1rem;line-height:1.5;color-scheme:inherit;
}
.nt.nt-flip{
  --nt-bg:var(--site-fg);--nt-ink:var(--site-base);
  --nt-surf:color-mix(in srgb,var(--site-fg) 90%,var(--site-base));
  --nt-muted:color-mix(in srgb,var(--site-base) 68%,var(--site-fg));
  --nt-line:color-mix(in srgb,var(--site-base) 22%,var(--site-fg));
  background:var(--nt-bg);padding:.8rem;border-radius:var(--nt-r);
}
.nt *,.nt *::before,.nt *::after{box-sizing:border-box}
.nt [hidden]{display:none!important}
.nt svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nt-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nt-offscreen{position:fixed;left:-9999px;top:0;opacity:0}
.nt :focus-visible{outline:2px solid var(--nt-acc);outline-offset:2px}
.nt button,.nt input,.nt select,.nt textarea{font:inherit;color:inherit}
.nt kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78em;padding:.05em .4em;border:1px solid var(--nt-line);border-bottom-width:2px;border-radius:5px;background:var(--nt-bg);color:var(--nt-muted)}

/* layout */
.nt-shell{display:grid;grid-template-columns:248px minmax(0,1fr);gap:1rem;align-items:start}
.nt.nt-side-off .nt-shell{grid-template-columns:minmax(0,1fr)}
.nt.nt-side-off .nt-side{display:none}
.nt-main{min-width:0;background:var(--nt-surf);border:1px solid var(--nt-line);border-radius:var(--nt-r);position:relative}

/* buttons */
.nt-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;padding:.45rem .85rem;border:1px solid var(--nt-line);border-radius:calc(var(--nt-r) * .7);background:var(--nt-surf);color:var(--nt-ink);font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s,transform .1s}
.nt-btn:hover{border-color:var(--nt-prim);background:var(--nt-soft)}
.nt-btn:active{transform:translateY(1px)}
.nt-btn:disabled{opacity:.5;cursor:default}
.nt-btn-prim{background:var(--nt-prim);border-color:var(--nt-prim);color:var(--nt-bg)}
.nt-btn-prim:hover{background:color-mix(in srgb,var(--nt-prim) 86%,var(--nt-ink));border-color:var(--nt-prim)}
.nt-icon{display:inline-grid;place-items:center;min-width:40px;min-height:40px;padding:0;border:1px solid transparent;border-radius:calc(var(--nt-r) * .7);background:transparent;color:var(--nt-muted);cursor:pointer}
.nt-icon:hover{color:var(--nt-ink);background:var(--nt-soft)}
.nt-link{display:flex;align-items:center;gap:.5rem;width:100%;min-height:36px;padding:.3rem .4rem;border:0;border-radius:8px;background:transparent;color:var(--nt-muted);font-size:.86rem;text-align:left;cursor:pointer}
.nt-link:hover{color:var(--nt-ink);background:var(--nt-soft)}

/* sidebar */
.nt-side{background:var(--nt-surf);border:1px solid var(--nt-line);border-radius:var(--nt-r);padding:.85rem;display:flex;flex-direction:column;gap:.65rem;max-height:min(82vh,760px)}
.nt-side-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.nt-side-title{margin:0;font:700 1.05rem/1.2 var(--site-heading);color:var(--nt-ink);display:flex;align-items:center;gap:.5rem}
.nt-count{display:inline-grid;place-items:center;min-width:1.6em;height:1.6em;padding:0 .4em;border-radius:999px;background:var(--nt-soft);color:var(--nt-prim);font:700 .75rem/1 var(--site-font-body);font-variant-numeric:tabular-nums}
.nt-side-close{display:none}
.nt-new{width:100%}
.nt-search{width:100%;min-height:40px;padding:.45rem .75rem;border:1px solid var(--nt-line);border-radius:999px;background:var(--nt-bg);color:var(--nt-ink)}
.nt-search::placeholder{color:var(--nt-muted)}
.nt-list{list-style:none;margin:0 -.3rem;padding:0 .3rem;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;flex:1 1 auto;min-height:60px}
.nt-item{display:flex;align-items:stretch;border-radius:calc(var(--nt-r) * .7);border:1px solid transparent;position:relative}
.nt-item:hover{background:color-mix(in srgb,var(--nt-ink) 5%,transparent)}
.nt-item.is-cur{background:var(--nt-soft);border-color:color-mix(in srgb,var(--nt-prim) 40%,transparent)}
.nt-item.is-cur::before{content:"";position:absolute;left:0;top:.6rem;bottom:.6rem;width:3px;border-radius:3px;background:var(--nt-prim)}
.nt-item-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;padding:.5rem .3rem .5rem .7rem;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--nt-ink)}
.nt-item-title{font-weight:700;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-item-meta{display:flex;gap:.5rem;font-size:.76rem;color:var(--nt-muted)}
.nt-item-prog{font-weight:700;color:var(--nt-prim);font-variant-numeric:tabular-nums}
.nt-item-bar{display:block;height:3px;border-radius:3px;background:var(--nt-line);overflow:hidden;margin:.15rem 0}
.nt-item-bar>span{display:block;height:100%;background:var(--nt-prim)}
.nt-item-pin,.nt-item-del{min-width:32px;min-height:32px;align-self:center;opacity:.55}
.nt-item:hover .nt-item-pin,.nt-item:hover .nt-item-del,.nt-item-pin:focus-visible,.nt-item-del:focus-visible{opacity:1}
.nt-item-pin[aria-pressed="true"]{opacity:1;color:var(--nt-acc)}
.nt-item-pin[aria-pressed="true"] path{fill:currentColor}
.nt-item-pin svg,.nt-item-del svg{width:16px;height:16px}
.nt-nores{margin:0;font-size:.85rem;color:var(--nt-muted)}
.nt-side-foot{border-top:1px solid var(--nt-line);padding-top:.5rem;display:flex;flex-direction:column;gap:.1rem}
.nt-scrim{display:none}

/* top bar */
.nt-top{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem .3rem}
.nt-drawer-btn{position:relative;color:var(--nt-ink)}
.nt-count-badge{position:absolute;top:1px;right:-2px;min-width:1.35em;height:1.35em;font-size:.65rem;background:var(--nt-prim);color:var(--nt-bg);display:none}
.nt-title{flex:1;min-width:0;min-height:44px;padding:.35rem .5rem;border:1px solid transparent;border-radius:calc(var(--nt-r) * .7);background:transparent;color:var(--nt-ink);font:700 clamp(1.1rem,2.4vw,1.35rem)/1.2 var(--site-heading)}
.nt-title:hover{border-color:var(--nt-line)}
.nt-title:focus{border-color:var(--nt-prim);background:var(--nt-bg);outline:none}
.nt-title::placeholder{color:var(--nt-muted);opacity:.8}
.nt-save{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--nt-muted);white-space:nowrap}
.nt-save::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--nt-prim);box-shadow:0 0 0 3px color-mix(in srgb,var(--nt-prim) 22%,transparent)}
.nt-save[data-state="saving"]::before{background:var(--nt-acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--nt-acc) 25%,transparent);animation:nt-pulse 1s ease-in-out infinite}
.nt-save[data-state="notsaved"],.nt-save[data-state="blocked"]{color:var(--nt-acc);font-weight:700}
.nt-save[data-state="notsaved"]::before,.nt-save[data-state="blocked"]::before{background:transparent;box-shadow:none;border:2px solid var(--nt-acc)}
@keyframes nt-pulse{50%{transform:scale(.6)}}

/* toolbar */
.nt-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .8rem .7rem;border-bottom:1px solid var(--nt-line)}
.nt-views{display:inline-flex;padding:3px;gap:2px;background:var(--nt-bg);border:1px solid var(--nt-line);border-radius:999px}
.nt-tab{display:inline-flex;align-items:center;gap:.4rem;min-height:38px;padding:.3rem .9rem;border:0;border-radius:999px;background:transparent;color:var(--nt-muted);font-size:.88rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.nt-tab:hover{color:var(--nt-ink)}
.nt-tab[aria-selected="true"]{background:var(--nt-prim);color:var(--nt-bg)}
.nt-acts{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.nt-act{padding:.4rem .65rem}
.nt-menu-wrap{position:relative}
.nt-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:250px;max-width:calc(100vw - 2rem);padding:.4rem;display:flex;flex-direction:column;background:var(--nt-surf);border:1px solid var(--nt-line);border-radius:var(--nt-r);box-shadow:0 14px 34px color-mix(in srgb,var(--site-fg) 22%,transparent)}
.nt-menu-wide{min-width:300px}
.nt-mi{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:40px;padding:.4rem .65rem;border:0;border-radius:8px;background:transparent;color:var(--nt-ink);font-size:.9rem;text-align:left;cursor:pointer}
.nt-mi:hover,.nt-mi:focus-visible{background:var(--nt-soft)}
.nt-mgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.nt-mgrid .nt-mi kbd{display:none}
.nt-mdiv{display:block;height:1px;margin:.35rem .2rem;background:var(--nt-line)}
.nt-set{display:grid;gap:.35rem;padding:.2rem .45rem}
.nt-set-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.88rem;min-height:36px}
.nt-set-row small{color:var(--nt-muted)}
.nt-set-check{justify-content:flex-start;cursor:pointer}
.nt-set-check input,.nt-chk input{width:18px;height:18px;accent-color:var(--nt-prim)}
.nt-select{min-height:36px;padding:.25rem .5rem;border:1px solid var(--nt-line);border-radius:8px;background:var(--nt-bg);color:var(--nt-ink)}

/* reminder chip */
.nt-remind{display:flex;align-items:center;gap:.5rem;margin:.6rem .8rem 0;padding:.45rem .8rem;border:1px dashed var(--nt-acc);border-radius:999px;background:color-mix(in srgb,var(--nt-acc) 10%,transparent);color:var(--nt-ink);font-size:.85rem;font-weight:600;cursor:pointer}
.nt-remind::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--nt-acc)}

/* panels */
.nt-panel{display:grid;gap:.6rem;padding:.8rem;border-bottom:1px solid var(--nt-line);background:color-mix(in srgb,var(--nt-prim) 5%,var(--nt-surf));animation:nt-in .18s ease-out}
.nt-panel-h{margin:0;font:700 1rem/1.3 var(--site-heading)}
.nt-find-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.nt-field{display:grid;gap:.2rem;font-size:.8rem;font-weight:700;color:var(--nt-muted)}
.nt-input{width:100%;min-height:40px;padding:.4rem .65rem;border:1px solid var(--nt-line);border-radius:calc(var(--nt-r) * .7);background:var(--nt-bg);color:var(--nt-ink);font-size:.95rem}
.nt-input:focus{border-color:var(--nt-prim);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--nt-prim) 22%,transparent)}
.nt-find-row{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center}
.nt-chk{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;cursor:pointer;min-height:32px}
.nt-fmsg{font-size:.85rem;color:var(--nt-prim);font-weight:700}
.nt-panel-x{margin-left:auto}
.nt-share-link{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}
.nt-share-msg{margin:0;font-size:.88rem;font-weight:600}
.nt-hint{margin:0;font-size:.82rem;color:var(--nt-muted);max-width:62ch}
.nt-st{margin:0;padding-left:1.1rem;font-size:.9rem;display:grid;gap:.2rem}
.nt-keys{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;font-size:.88rem}
.nt-keys dt{white-space:nowrap}
.nt-keys dd{margin:0;color:var(--nt-muted)}
@keyframes nt-in{from{opacity:0;transform:translateY(-4px)}}

/* text view */
.nt-ed-wrap{display:flex;align-items:stretch}
.nt-editor{display:block;flex:1;min-width:0;width:100%;min-height:52vh;margin:0;padding:1rem 1.1rem;border:0;resize:vertical;background:var(--nt-bg);color:var(--nt-ink);font-family:var(--site-font-body);font-size:16px;line-height:1.65;tab-size:4;-moz-tab-size:4;
  background-image:linear-gradient(to bottom,transparent calc(1.65em - 1px),var(--nt-rule) calc(1.65em - 1px));background-size:100% 1.65em;background-position:0 1rem;background-attachment:local}
.nt-editor::placeholder{color:var(--nt-muted);opacity:.85}
.nt-editor:focus{outline:none;box-shadow:inset 3px 0 0 var(--nt-prim)}
.nt.nt-nowrap .nt-editor{white-space:pre;overflow-wrap:normal;overflow-x:auto}
.nt-gutter{flex:0 0 auto;min-width:3.2ch;padding:1rem .55rem 1rem .7rem;overflow:hidden;white-space:pre;text-align:right;line-height:1.65;font-variant-numeric:tabular-nums;color:var(--nt-muted);background:var(--nt-surf);border-right:1px solid var(--nt-line);user-select:none;-webkit-user-select:none}
.nt[data-font="mono"] .nt-editor,.nt[data-font="mono"] .nt-gutter{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}
.nt[data-font="serif"] .nt-editor{font-family:Georgia,"Iowan Old Style","Palatino Linotype","Times New Roman",serif}
.nt-pane-text{border-radius:0}

/* checklist view */
.nt-pane-check{background:var(--nt-bg)}
.nt-progress{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--nt-line)}
.nt-ring{width:58px!important;height:58px!important;transform:rotate(-90deg)}
.nt-ring circle{fill:none;stroke-width:5}
.nt-ring-track{stroke:var(--nt-line)}
.nt-ring-fill{stroke:var(--nt-prim);stroke-linecap:round;transition:stroke-dasharray .35s ease}
.nt-ring-tick{stroke:var(--nt-prim);stroke-width:3.2;transform:rotate(90deg);transform-origin:24px 24px;opacity:0;transition:opacity .25s}
.nt-progress.is-all .nt-ring-tick{opacity:1}
.nt-prog-txt{display:grid;gap:.2rem;flex:1;min-width:0}
.nt-prog-txt strong{font:700 1.15rem/1.2 var(--site-heading);color:var(--nt-ink)}
.nt-prog-pct{font-size:.85rem;color:var(--nt-muted);font-variant-numeric:tabular-nums}
.nt-prog-bar{display:block;height:6px;border-radius:6px;background:var(--nt-line);overflow:hidden;max-width:360px}
.nt-prog-bar>span{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--nt-prim),color-mix(in srgb,var(--nt-prim) 60%,var(--nt-acc)));transition:width .35s ease}
.nt-check-tools{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem 1.1rem;border-bottom:1px solid var(--nt-line)}
.nt-check-tools .nt-btn{font-size:.82rem;min-height:36px;padding:.3rem .7rem}
.nt-tasks{list-style:none;margin:0;padding:.3rem 0}
.nt-task{display:flex;align-items:center;gap:.75rem;min-height:50px;padding:.2rem 1.1rem;padding-left:calc(1.1rem + var(--nt-indent,0) * 1.4rem);border-bottom:1px solid var(--nt-rule);transition:background .15s}
.nt-task:hover{background:color-mix(in srgb,var(--nt-prim) 5%,transparent)}
.nt-task:focus-within{background:color-mix(in srgb,var(--nt-prim) 8%,transparent)}
.nt-cb{-webkit-appearance:none;appearance:none;flex:0 0 auto;display:inline-grid;place-content:center;width:26px;height:26px;margin:0;border:2px solid var(--nt-muted);border-radius:8px;background:var(--nt-bg);cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.nt-cb::after{content:"";width:7px;height:13px;margin-top:-3px;border:solid var(--nt-bg);border-width:0 3px 3px 0;transform:rotate(45deg) scale(0);transition:transform .18s cubic-bezier(.3,1.6,.5,1)}
.nt-cb:hover{border-color:var(--nt-prim)}
.nt-cb:checked{background:var(--nt-prim);border-color:var(--nt-prim)}
.nt-cb:checked::after{transform:rotate(45deg) scale(1)}
.nt-cb:active{transform:scale(.9)}
.nt-cb-sm{width:20px;height:20px;border-radius:6px;vertical-align:-4px;margin-right:.5rem}
.nt-cb-sm::after{width:5px;height:10px;border-width:0 2.5px 2.5px 0;margin-top:-2px}
.nt-task-text{flex:1;min-width:0;min-height:42px;padding:.45rem .3rem;border:0;border-radius:6px;background:transparent;color:var(--nt-ink);font-size:1rem}
.nt-task-text:focus{outline:none;background:color-mix(in srgb,var(--nt-ink) 5%,transparent)}
.nt-task.is-done .nt-task-text{color:var(--nt-muted);text-decoration:line-through;text-decoration-color:var(--nt-prim);text-decoration-thickness:2px}
.nt-task-head{padding:1rem 1.1rem .35rem;font:700 1.02rem/1.3 var(--site-heading);color:var(--nt-ink);border-bottom:1px solid var(--nt-line)}
.nt-task-note{padding:.55rem 1.1rem;font-size:.92rem;color:var(--nt-muted);border-bottom:1px solid var(--nt-rule);overflow-wrap:anywhere}
.nt-add{display:flex;gap:.5rem;padding:.8rem 1.1rem;border-top:1px dashed var(--nt-line)}
.nt-empty{display:grid;justify-items:center;gap:.4rem;margin:0;padding:1.6rem 1.1rem;text-align:center;color:var(--nt-muted);font-size:.92rem}
.nt-empty svg{width:56px;height:56px;stroke:var(--nt-prim);stroke-width:2.2;opacity:.8}
.nt-empty p{margin:0;max-width:42ch}

/* preview */
.nt-pane-preview{background:var(--nt-bg)}
.nt-md{padding:1rem 1.3rem 1.4rem;min-height:30vh;overflow-wrap:anywhere;color:var(--nt-ink)}
.nt-md>:first-child{margin-top:0}
.nt-md .nt-md-h{font-family:var(--site-heading);line-height:1.25;margin:1.1em 0 .45em;color:var(--nt-ink)}
.nt-md h1.nt-md-h{font-size:1.6rem}.nt-md h2.nt-md-h{font-size:1.35rem}.nt-md h3.nt-md-h{font-size:1.15rem}
.nt-md h4.nt-md-h,.nt-md h5.nt-md-h,.nt-md h6.nt-md-h{font-size:1rem}
.nt-md p,.nt-md ul,.nt-md ol,.nt-md blockquote,.nt-md pre,.nt-md-table{margin:0 0 .85em}
.nt-md ul,.nt-md ol{padding-left:1.4em}
.nt-md li{margin:.2em 0}
.nt-md li.nt-md-task{list-style:none;margin-left:-1.4em}
.nt-md li.nt-md-task.is-done>span{color:var(--nt-muted);text-decoration:line-through;text-decoration-color:var(--nt-prim)}
.nt-md a{color:var(--nt-prim);text-underline-offset:3px}
.nt-md code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;padding:.1em .35em;border-radius:5px;background:var(--nt-surf);border:1px solid var(--nt-line)}
.nt-md pre{padding:.8rem 1rem;border-radius:calc(var(--nt-r) * .7);background:var(--nt-surf);border:1px solid var(--nt-line);overflow-x:auto}
.nt-md pre code{padding:0;border:0;background:none;white-space:pre}
.nt-md blockquote{padding:.3rem 0 .3rem 1rem;border-left:4px solid var(--nt-acc);color:var(--nt-muted)}
.nt-md hr{border:0;border-top:2px dashed var(--nt-line);margin:1.2em 0}
.nt-md del{color:var(--nt-muted)}
.nt-md-table{overflow-x:auto;border:1px solid var(--nt-line);border-radius:calc(var(--nt-r) * .7)}
.nt-md table{border-collapse:collapse;width:100%;font-size:.92rem}
.nt-md th,.nt-md td{padding:.45em .7em;border-bottom:1px solid var(--nt-line);text-align:left}
.nt-md th{background:var(--nt-surf);font-weight:700}
.nt-md .nt-empty{display:block}

/* status bar + privacy */
.nt-status{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;padding:.55rem 1.1rem;border-top:1px solid var(--nt-line);font-size:.82rem;color:var(--nt-muted);font-variant-numeric:tabular-nums;border-radius:0 0 var(--nt-r) var(--nt-r)}
.nt-status b{color:var(--nt-ink)}
.nt-pos{margin-right:auto}
.nt-privacy{display:flex;align-items:center;gap:.5rem;margin:.7rem 0 0;font-size:.84rem;color:var(--nt-muted)}
.nt-privacy svg{color:var(--nt-prim)}
.nt-banner{display:flex;align-items:center;gap:.6rem;margin:0 0 .8rem;padding:.65rem .9rem;border:1px solid var(--nt-acc);border-radius:var(--nt-r);background:color-mix(in srgb,var(--nt-acc) 12%,var(--nt-surf));font-size:.9rem;font-weight:600}

/* toasts */
.nt-toasts{position:fixed;left:50%;bottom:1rem;z-index:90;display:flex;flex-direction:column;gap:.5rem;width:min(calc(100vw - 2rem),440px);transform:translateX(-50%);pointer-events:none}
.nt-toast{display:flex;align-items:center;gap:.6rem;padding:.6rem .6rem .6rem 1rem;border-radius:var(--nt-r);background:var(--nt-ink);color:var(--nt-bg);font-size:.9rem;box-shadow:0 10px 30px color-mix(in srgb,var(--site-fg) 30%,transparent);pointer-events:auto;animation:nt-up .2s ease-out}
.nt-toast-msg{flex:1}
.nt-toast-act{min-height:34px;padding:.25rem .7rem;border:0;border-radius:8px;background:var(--nt-prim);color:var(--nt-bg);font-weight:700;cursor:pointer}
.nt-toast-x{min-width:30px;min-height:30px;border:0;border-radius:8px;background:transparent;color:inherit;font-size:1.2rem;line-height:1;cursor:pointer;opacity:.7}
@keyframes nt-up{from{opacity:0;transform:translateY(8px)}}

/* full screen */
.nt:fullscreen{background:var(--nt-bg);padding:1rem;overflow:auto}
.nt:-webkit-full-screen{background:var(--nt-bg);padding:1rem;overflow:auto}
.nt.nt-full{position:fixed;inset:0;z-index:80;background:var(--nt-bg);padding:1rem;overflow:auto;border-radius:0}
.nt:fullscreen .nt-editor{min-height:72vh}
.nt.nt-full .nt-editor{min-height:72vh}

/* phones: the notes list becomes a drawer */
@media (max-width:760px){
  .nt-shell{grid-template-columns:minmax(0,1fr)}
  .nt.nt-side-off .nt-side{display:flex}
  .nt-side{position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(86vw,330px);max-height:none;border-radius:0 var(--nt-r) var(--nt-r) 0;transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility .22s}
  .nt.nt-drawer-open .nt-side{transform:none;visibility:visible;box-shadow:0 0 40px color-mix(in srgb,var(--site-fg) 25%,transparent)}
  .nt-scrim{display:block;position:fixed;inset:0;z-index:65;background:color-mix(in srgb,var(--site-base) 55%,transparent)}
  .nt-side-close{display:inline-grid}
  .nt-count-badge{display:inline-grid}
  .nt-top{padding:.5rem .55rem .2rem}
  .nt-bar{padding:.3rem .55rem .6rem}
  .nt-views{width:100%}
  .nt-tab{flex:1;justify-content:center;padding:.3rem .5rem}
  .nt-acts{width:100%;justify-content:space-between}
  .nt-act{min-width:44px;min-height:44px}
  .nt-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .nt-find-grid{grid-template-columns:1fr}
  .nt-editor{min-height:58vh;padding:.9rem .85rem}
  .nt-task{padding-right:.7rem}
  .nt-menu-wide{min-width:0;width:calc(100vw - 2rem)}
  .nt-mgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .nt *,.nt *::before,.nt *::after{animation:none!important;transition:none!important}
}

/* print: only the note, layout kept */
.nt-print-root{display:none}
.nt-print-root .nt-p-text{white-space:pre-wrap;tab-size:4;-moz-tab-size:4;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11pt;line-height:1.5}
.nt-print-root .nt-p-task{white-space:pre-wrap;overflow-wrap:anywhere;padding:.15em 0;font-size:12pt}
.nt-print-root .nt-p-task.is-done{text-decoration:line-through}
@media print{
  html.nt-printing body>:not(.nt-print-root){display:none!important}
  html.nt-printing body{background:none!important;margin:0}
  html.nt-printing .nt-print-root{display:block;color-scheme:light;color:CanvasText;background:Canvas;font-family:var(--site-font-body);padding:0}
  .nt-print-root .nt-p-title{font:700 18pt/1.2 var(--site-heading);margin:0 0 .6em}
  .nt-print-root .nt-p-meta{margin:0 0 .8em;font-size:10pt}
  .nt-print-root .nt-md{padding:0;min-height:0;color:CanvasText}
  .nt-print-root .nt-md code,.nt-print-root .nt-md pre{background:none}
  .nt-print-root .nt-md pre code{white-space:pre-wrap}
}

/* design: sites/<d>/design/site.css */
/* notes-online.com — night writing desk under a green-glass banker's lamp.
   Motif: the done-tick. Tokens only; the tool (.panel-app) is not restyled inside. */

/* ---- the desk and the pool of lamplight ---- */
body{
  background-color:var(--site-base);
  background-image:
    radial-gradient(900px 460px at 50% -60px,color-mix(in srgb,var(--site-main) 12%,transparent),transparent 70%),
    radial-gradient(1400px 900px at 50% 0,color-mix(in srgb,var(--site-fg) 3%,transparent),transparent 75%);
  background-repeat:no-repeat;
}
::selection{background:color-mix(in srgb,var(--site-main) 40%,var(--site-base));color:var(--site-fg)}
a:focus-visible,summary:focus-visible,.pill-btn:focus-visible{outline:2px solid var(--site-accent);outline-offset:3px;border-radius:4px}

/* ---- header: the green glass shade with a lit rim ---- */
.masthead{
  position:relative;border-bottom:0;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--site-main) 30%,var(--site-base)) 0,
    color-mix(in srgb,var(--site-main) 19%,var(--site-base)) 62%,
    color-mix(in srgb,var(--site-main) 11%,var(--site-base)) 100%);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--site-main) 45%,transparent),0 18px 40px -22px color-mix(in srgb,var(--site-main) 60%,transparent);
}
.masthead::before{content:'';position:absolute;left:8%;right:8%;top:7px;height:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--site-main) 55%,var(--site-fg)) 30% 70%,transparent);opacity:.35}
.masthead::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:3px;pointer-events:none;
  background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--site-main) 55%,var(--site-fg)) 18%,color-mix(in srgb,var(--site-main) 35%,var(--site-fg)) 50%,color-mix(in srgb,var(--site-main) 55%,var(--site-fg)) 82%,transparent 100%);opacity:.75}
.header-inner{padding:.85rem 1rem .95rem}
.brand-link{letter-spacing:.005em;font-size:1.22rem}
.brand-link svg{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--site-main) 45%,transparent))}
.links{gap:1.1rem}
.links>a{position:relative;padding:.2rem 0;color:var(--site-fg);border-bottom:2px solid transparent;transition:border-color .2s ease}
.links>a:hover{border-color:color-mix(in srgb,var(--site-main) 70%,transparent)}
.links>a[aria-current]{border-color:var(--site-main)}

/* language codes as keyboard keycaps; the current one is a lit key */
.codes{gap:.32rem;margin-left:.3rem}
.codes a{display:inline-grid;place-items:center;min-width:2.15rem;height:2.05rem;padding:0 .35rem;border-radius:6px;
  font:700 .72rem/1 var(--site-font-body);letter-spacing:.07em;color:var(--site-dim);
  background:linear-gradient(180deg,color-mix(in srgb,var(--site-fg) 7%,var(--site-panel)),var(--site-panel));
  border:1px solid var(--site-edge);box-shadow:0 2px 0 color-mix(in srgb,#000 60%,var(--site-base));transition:color .15s ease,transform .15s ease}
.codes a:hover{color:var(--site-fg);transform:translateY(-1px)}
.codes a[aria-current]{color:var(--site-fg);background:linear-gradient(180deg,color-mix(in srgb,var(--site-main) 34%,var(--site-panel)),color-mix(in srgb,var(--site-main) 20%,var(--site-panel)));
  border-color:color-mix(in srgb,var(--site-main) 65%,var(--site-edge));box-shadow:0 2px 0 color-mix(in srgb,var(--site-main) 30%,#000),0 0 12px color-mix(in srgb,var(--site-main) 35%,transparent)}

/* ---- first screen: the lamp itself ---- */
.page-top{position:relative;margin:.8rem 0 1.2rem;padding:1.6rem 0 1rem}
.page-top h1{font-size:clamp(2rem,4.8vw,3.15rem);line-height:1.08;letter-spacing:-.018em;margin-bottom:.4em}
.page-top .lede{color:color-mix(in srgb,var(--site-fg) 80%,var(--site-dim));font-size:1.14rem;max-width:40em}
@media (min-width:880px){
  .page-top{padding-right:340px;min-height:290px;background:url(/assets/img/d-lamp.svg) right 0 bottom 0/320px auto no-repeat}
}
.panel-app{margin:1.2rem 0 2.2rem}

/* ---- breadcrumbs: a quiet path line ---- */
.where{font-size:.86rem;letter-spacing:.01em;color:var(--site-dim);margin:.9rem 0 1rem}
.where a{color:var(--site-dim);text-decoration-color:color-mix(in srgb,var(--site-dim) 45%,transparent)}
.where a:hover{color:var(--site-fg);text-decoration-color:var(--site-main)}

/* ---- section headings: a ticked box on a fading lamplit rule ---- */
.section>h2{position:relative;padding:0 0 .55rem 2.15rem;margin-top:2.4em;
  border-bottom:1px solid transparent;
  border-image:linear-gradient(90deg,color-mix(in srgb,var(--site-main) 60%,var(--site-edge)),var(--site-edge) 45%,transparent 92%) 1}
.section>h2::before{content:'';position:absolute;left:0;top:.2em;width:1.3rem;height:1.3rem;border-radius:5px;
  background:var(--site-main) url(/assets/img/d-tick.svg) center/80% no-repeat;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--site-main) 16%,transparent),0 0 16px color-mix(in srgb,var(--site-main) 30%,transparent)}
.section h3{color:var(--site-fg)}
.section>p,.section>ul,.section>ol{color:color-mix(in srgb,var(--site-fg) 90%,var(--site-dim))}
.section strong{color:var(--site-fg)}
.section a:not(.pill-btn):not(.item){text-decoration-color:color-mix(in srgb,var(--site-main) 55%,transparent);text-decoration-thickness:2px}
.section a:not(.pill-btn):not(.item):hover{text-decoration-color:var(--site-main)}

/* bullet lists: open checkboxes */
.section>ul{list-style:none;padding-left:1.7rem}
.section>ul>li{position:relative;margin:.35em 0}
.section>ul>li::before{content:'';position:absolute;left:-1.6rem;top:.38em;width:.82rem;height:.82rem;border:1.5px solid color-mix(in srgb,var(--site-accent) 80%,var(--site-dim));border-radius:3px}

/* steps: numbered keycaps */
ol.procedure{list-style:none;padding-left:0;counter-reset:nstep}
ol.procedure>li{counter-increment:nstep;position:relative;padding-left:2.9rem;min-height:2rem;margin:.7em 0}
ol.procedure>li::before{content:counter(nstep);position:absolute;left:0;top:-.05em;display:grid;place-items:center;width:2rem;height:2rem;border-radius:6px;
  font:800 .9rem/1 var(--site-font-body);color:var(--site-fg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--site-fg) 8%,var(--site-panel)),var(--site-panel));
  border:1px solid var(--site-edge);box-shadow:0 2px 0 color-mix(in srgb,#000 60%,var(--site-base))}

/* notes: a memo under the lamp, sky cursor bar on the left */
.callout{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--site-accent) 7%,var(--site-panel)),var(--site-panel));
  border:1px solid var(--site-edge);border-left:3px solid var(--site-accent);border-radius:var(--site-round);padding:1em 1.15em}

/* formulas and code-like boxes: a typed line on a dark key well */
.math-box{background:color-mix(in srgb,#000 22%,var(--site-base));border:1px solid var(--site-edge);border-left:3px solid var(--site-main);border-radius:var(--site-round);
  color:var(--site-fg);line-height:1.7}

/* figures: dark mats, not white cards */
.diagram img{background:var(--site-panel);border-color:var(--site-edge)}
.diagram figcaption{margin-top:.5rem}

/* tables: a lamp-lit ledger */
.table-scroll{border:1px solid var(--site-edge);border-top:2px solid color-mix(in srgb,var(--site-main) 70%,var(--site-edge));border-radius:var(--site-round);background:var(--site-panel)}
.data-table caption{caption-side:top;text-align:left;padding:.7rem .75rem .5rem;font-size:.85rem;color:var(--site-dim);font-weight:700;letter-spacing:.02em}
.data-table thead th{background:color-mix(in srgb,var(--site-main) 10%,var(--site-panel));color:var(--site-fg);font-size:.76rem;text-transform:uppercase;letter-spacing:.07em}
.data-table td{color:color-mix(in srgb,var(--site-fg) 90%,var(--site-dim))}
.data-table tbody tr{transition:background-color .15s ease}
.data-table tbody tr:hover{background:color-mix(in srgb,var(--site-main) 9%,transparent)}
.data-table tbody tr:last-child td{border-bottom:0}

/* blockquote: a line read under the lamp */
.post blockquote,.section blockquote{border-left:3px solid var(--site-main);background:color-mix(in srgb,var(--site-main) 6%,transparent);border-radius:0 var(--site-round) var(--site-round) 0;
  font-family:var(--site-heading);font-style:italic;color:var(--site-fg)}

/* ---- buttons and call to action: the lamp switch ---- */
.pill-btn{background:var(--site-main);color:var(--site-base);font-weight:800;letter-spacing:.01em;border-radius:8px;
  box-shadow:0 3px 0 color-mix(in srgb,var(--site-main) 45%,#000),0 0 22px color-mix(in srgb,var(--site-main) 25%,transparent);transition:transform .12s ease,box-shadow .12s ease}
.pill-btn:hover{transform:translateY(-1px);color:var(--site-base)}
.pill-btn:active{transform:translateY(2px);box-shadow:0 1px 0 color-mix(in srgb,var(--site-main) 45%,#000)}
.callout-cta{border:1px solid var(--site-edge);background:
  radial-gradient(420px 140px at 50% 0,color-mix(in srgb,var(--site-main) 14%,transparent),transparent 75%),var(--site-panel)}

/* ---- guide cards: a page on the desk; its box ticks on hover ---- */
.item{background:var(--site-panel);border:1px solid var(--site-edge);color:var(--site-fg)}
.item b,.brow b{color:var(--site-fg)}
.card-txt b{position:relative;padding-left:1.75rem;line-height:1.3}
.card-txt b::before{content:'';position:absolute;left:0;top:.12em;width:1.05rem;height:1.05rem;border:1.5px solid var(--site-dim);border-radius:4px;transition:background-color .2s ease,border-color .2s ease}
.item:hover .card-txt b::before,.item:focus-visible .card-txt b::before{background:var(--site-main) url(/assets/img/d-tick.svg) center/80% no-repeat;border-color:var(--site-main)}
.item .card-txt>span{color:var(--site-dim)}
.item--img:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--site-main) 55%,var(--site-edge));
  box-shadow:0 16px 32px -16px color-mix(in srgb,var(--site-main) 45%,transparent)}
.card-img{border-bottom:1px solid var(--site-edge)}
.card-list--feat>.item:first-child .card-img{border-bottom:0;border-right:1px solid var(--site-edge);height:100%}
.card-list--feat>.item:first-child .card-txt{padding:1.4rem 1.5rem}
.card-meta{color:var(--site-main)}

/* ---- article ---- */
.post-head--split{margin:.4rem 0 1.8rem;padding:1.4rem;border:1px solid var(--site-edge);border-radius:calc(var(--site-round) + 4px);
  background:radial-gradient(520px 220px at 30% 0,color-mix(in srgb,var(--site-main) 13%,transparent),transparent 72%),var(--site-panel)}
.post-head--split .post-cover img{border:1px solid var(--site-edge)}
.post-head h1{margin:.25em 0 .35em}
.post-kicker{color:var(--site-main);letter-spacing:.16em}
.post-kicker:hover{text-decoration:underline}
.post-meta{color:var(--site-dim)}
.post .lede{font-size:1.2rem;line-height:1.6}
.post .lede::first-letter{color:var(--site-main);font-weight:700}
.post .section>p,.post .section>ul,.post .section>ol{font-size:1.04rem;line-height:1.72}
.post h3{color:color-mix(in srgb,var(--site-main) 55%,var(--site-fg))}

/* article contents: an unticked checklist (in the flow, never sticky) */
.post .contents--post{background:var(--site-panel);border:1px solid var(--site-edge);border-left:1px solid var(--site-edge);border-radius:var(--site-round);padding:1rem 1.25rem 1.1rem}
.contents--post>strong{display:block;font-family:var(--site-heading);font-size:1.02rem;margin-bottom:.15rem}
.contents--post ol{list-style:none;padding:0;margin:.5rem 0 0}
.contents--post li{position:relative;padding-left:1.75rem;margin:.42rem 0}
.contents--post li::before{content:'';position:absolute;left:0;top:.22em;width:1rem;height:1rem;border:1.5px solid var(--site-dim);border-radius:4px;transition:background-color .2s ease,border-color .2s ease}
.contents--post li:hover::before{background:var(--site-main) url(/assets/img/d-tick.svg) center/80% no-repeat;border-color:var(--site-main)}
.contents--post a{color:var(--site-fg);text-decoration:none}
.contents--post a:hover{text-decoration:underline;text-decoration-color:var(--site-main)}

/* ---- FAQ: each answer ticks its box when opened ---- */
.qa details{border:1px solid var(--site-edge);border-radius:var(--site-round);background:var(--site-panel);padding:0;margin:.6rem 0;transition:border-color .2s ease}
.qa details[open]{border-color:color-mix(in srgb,var(--site-main) 45%,var(--site-edge))}
.qa summary{list-style:none;position:relative;padding:.95rem 1.1rem .95rem 3rem;font-family:var(--site-heading);font-weight:700;line-height:1.35}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:'';position:absolute;left:1.1rem;top:1.05rem;width:1.1rem;height:1.1rem;border:1.5px solid var(--site-dim);border-radius:4px;transition:background-color .2s ease,border-color .2s ease}
.qa summary:hover::before{border-color:var(--site-main)}
.qa details[open]>summary::before{background:var(--site-main) url(/assets/img/d-tick.svg) center/80% no-repeat;border-color:var(--site-main)}
.qa details>:not(summary){margin:0;padding:0 1.1rem 1rem 3rem;color:color-mix(in srgb,var(--site-fg) 86%,var(--site-dim))}

/* ---- footer: the dark bevelled front edge of the desk ---- */
.site-footer{position:relative;margin-top:3.4rem;border-top:0;padding:2rem 0 2.6rem;color:var(--site-dim);
  background:linear-gradient(180deg,color-mix(in srgb,#000 28%,var(--site-base)),color-mix(in srgb,#000 48%,var(--site-base)))}
.site-footer::before{content:'';position:absolute;left:0;right:0;top:0;height:7px;pointer-events:none;
  background:linear-gradient(180deg,color-mix(in srgb,var(--site-fg) 16%,var(--site-panel)),var(--site-panel) 45%,color-mix(in srgb,#000 30%,var(--site-base)))}
.site-footer::after{content:'';position:absolute;left:20%;right:20%;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--site-main) 70%,var(--site-fg)),transparent);opacity:.6}
.foot-in p{margin:0;color:var(--site-dim)}
.site-footer a{color:color-mix(in srgb,var(--site-fg) 82%,var(--site-dim));text-decoration-color:color-mix(in srgb,var(--site-dim) 40%,transparent)}
.site-footer a:hover{color:var(--site-fg);text-decoration-color:var(--site-main)}

/* ---- phones ---- */
@media (max-width:700px){
  .header-inner{padding:.75rem 1rem .8rem;row-gap:.6rem}
  .links{gap:.75rem;row-gap:.5rem}
  .codes{margin-left:auto;gap:.25rem}
  .codes a{min-width:2rem;height:2.1rem;padding:0 .2rem;font-size:.7rem}
  .page-top{padding-top:.8rem}
  .section>h2{padding-left:2rem}
  .post-head--split{padding:1rem}
  .card-list--feat>.item:first-child .card-img{border-right:0;border-bottom:1px solid var(--site-edge);height:auto}
  .qa summary{padding-left:2.8rem}
  .qa details>:not(summary){padding-left:1.1rem}
}
@media (prefers-reduced-motion:reduce){
  .codes a,.links>a,.pill-btn,.item--img,.data-table tbody tr,.qa details,.qa summary::before,.contents--post li::before,.card-txt b::before{transition:none}
  .item--img:hover,.codes a:hover,.pill-btn:hover{transform:none}
}
