:root{--ink:#351b2a;--muted:#674859;--rose:#a20e53;--dark:#561139;--paper:#fff9f6;--pink:#f9dce7;--line:#edc9d8;--white:#fff;--title:Georgia,serif;--body:system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--body)}a{color:var(--rose);text-underline-offset:.19em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid #9c175a;outline-offset:4px}img{display:block;width:100%;height:auto;object-fit:cover}h1,h2,h3{font-family:var(--title);line-height:1.09;margin:0;color:var(--dark)}h1{font-size:clamp(2.65rem,6vw,5.35rem);letter-spacing:-.065em;font-weight:normal}h2{font-size:clamp(1.8rem,3.1vw,2.8rem);letter-spacing:-.035em;font-weight:normal}h3{font-size:1.5rem;letter-spacing:-.025em}.wrap{width:min(1180px,calc(100% - 3rem));margin-inline:auto}.skip{position:absolute;left:1rem;top:-10rem;background:white;padding:.6rem;z-index:3}.skip:focus{top:.5rem}.top{background:var(--paper);border-bottom:1px solid var(--line)}.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:75px}.brand{font:700 1.7rem var(--title);letter-spacing:-.06em;color:var(--dark);text-decoration:none;white-space:nowrap}.brand span{color:var(--rose)}nav ul{display:flex;flex-wrap:wrap;gap:.5rem 1.55rem;padding:0;margin:0;list-style:none}nav a{font-size:.88rem;font-weight:650;color:var(--dark);text-decoration:none}nav a:hover,nav a[aria-current=page]{text-decoration:underline}.hero{background:var(--pink);margin-top:1.6rem;border-radius:1.6rem;overflow:hidden;display:grid;grid-template-columns:1.04fr 1fr;min-height:435px}.hero-copy{padding:clamp(1.5rem,4.3vw,4rem);align-self:center}.hero img{height:100%;min-height:300px}.tag{display:block;color:#801246;font-size:.76rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase;margin-bottom:1rem}.intro{font-size:clamp(1rem,1.5vw,1.18rem);color:var(--muted);margin:1.25rem 0 0;max-width:39ch}.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}.button{display:inline-block;border:1px solid var(--dark);background:var(--dark);color:white;text-decoration:none;border-radius:100px;font:650 .92rem/1.4 var(--body);padding:.72rem 1.15rem;cursor:pointer}.button:hover{background:#77194c}.button.secondary{background:transparent;color:var(--dark)}.button.secondary:hover{background:#f4c4d6}.section{padding:3.2rem 0;border-bottom:1px solid var(--line)}.section h2{margin-bottom:1.25rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--white);border-radius:1.05rem;overflow:hidden;color:var(--ink);text-decoration:none}.card:hover{border-color:var(--rose)}.card img{aspect-ratio:2/1}.card div{padding:1.1rem 1.25rem 1.25rem}.card p{font-size:.93rem;color:var(--muted);margin:.6rem 0}.card b{font-size:.83rem;color:var(--rose)}.crumb{font-size:.85rem;margin:1.25rem 0;color:var(--muted)}.article-hero{margin-top:0;min-height:345px}.article-hero h1{font-size:clamp(2.35rem,5vw,4.25rem)}.article-body{display:grid;grid-template-columns:minmax(0,740px) minmax(180px,1fr);gap:clamp(1rem,5vw,5rem);padding:2.8rem 0}.article-body section{margin-bottom:2.1rem;scroll-margin-top:1rem}.article-body h2{font-size:clamp(1.65rem,3vw,2.3rem)}.article-body p{margin:.85rem 0}.aside{align-self:start;background:#fce9ef;padding:1.25rem;border-radius:1rem}.aside strong{color:var(--dark)}.aside ul{margin:.5rem 0 0;padding-left:1.1rem}.aside li{margin:.35rem 0}.sources{font-size:.89rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.8rem}.scrolltable{overflow:auto;margin:1rem 0}table{border-collapse:collapse;width:100%;background:white;font-size:.93rem}th,td{border:1px solid var(--line);padding:.58rem .75rem;text-align:left;vertical-align:top}thead{background:var(--pink);color:var(--dark)}caption{text-align:left;font-weight:700;margin-bottom:.45rem}.tool{background:#fbe5ed;border:1px solid var(--line);border-radius:1rem;padding:1.35rem;margin-bottom:2rem}.fields{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:1rem 0}label{display:grid;gap:.25rem;font-size:.92rem;font-weight:700}input{min-width:0;width:100%;padding:.6rem .7rem;background:white;border:1px solid #9e6983;border-radius:.45rem;font:inherit;color:var(--ink)}output{display:block}output:not(:empty){border-top:1px solid var(--line);padding-top:.9rem;margin-top:1rem}footer{margin-top:2.5rem;background:#4a1233;color:#fff4f8;padding:1.65rem 0}footer .wrap{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}footer a{color:#fff4f8}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr)}.article-body{grid-template-columns:1fr}.aside{grid-row:1}.hero-copy{padding:1.7rem}.top .wrap{padding-block:.7rem}}
@media(max-width:580px){.wrap{width:calc(100% - 1.5rem)}.top .wrap{display:block}.top nav{margin-top:.5rem}nav ul{gap:.3rem .85rem}nav a{font-size:.82rem}.hero{grid-template-columns:1fr;min-height:0;border-radius:1.1rem}.hero img{height:auto;min-height:0;aspect-ratio:1.65}.grid{grid-template-columns:1fr}.section{padding:2rem 0}.article-body{padding-top:1.5rem}.fields{grid-template-columns:1fr}}
.storage{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}.storage img{border-radius:1rem}.diagram{margin:1.5rem 0}.diagram img{border:1px solid var(--line);border-radius:1rem}figcaption{font-size:.85rem;color:var(--muted);margin-top:.6rem}select{max-width:100%;padding:.6rem;border:1px solid #9e6983;border-radius:.45rem;background:white;font:inherit;color:var(--ink)}details{margin:1.25rem 0}summary{cursor:pointer;font-weight:650}output a{display:inline-block;margin:.25rem .8rem .25rem 0}@media(max-width:580px){.storage{grid-template-columns:1fr}}
