:root{color-scheme:light;--paper:#f6f5ef;--ink:#122547;--blue:#20498c;--rule:#bcc8d2;--muted:#475774;--pale:#e7edf5;--white:#fcfcf8}
*{box-sizing:border-box}html{font-family:"DM Sans",Arial,sans-serif;background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{min-height:100svh;margin:0;display:flex;flex-direction:column}main{flex:1}
a{color:var(--blue);text-underline-offset:.23em}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #306bb3;outline-offset:3px}
.frame{width:min(100% - 9vw,1220px);margin-inline:auto}.skip{position:absolute;inset-block-start:-100px;padding:12px;background:white}.skip:focus{inset-block-start:0}
header,footer,header nav,footer div,.brand,.langs,.actions,.pager,.cardfoot{display:flex;align-items:center}header,footer,.cardfoot{justify-content:space-between}
header{min-height:80px;border-bottom:1px solid var(--rule);gap:1rem}header nav,.actions,.pager{gap:1rem;flex-wrap:wrap}header a,footer a{color:var(--ink)}header a{text-decoration:none}header nav>a:hover,footer a:hover{text-decoration:underline}
.brand{gap:.65rem;text-decoration:none;letter-spacing:-.04em;font-size:1.15rem;font-weight:700;white-space:nowrap}.brand i{width:1.4rem;height:1.4rem;border:5px solid var(--blue);border-right-color:transparent;border-radius:50%;transform:rotate(-32deg)}.langs{border-left:1px solid var(--rule);padding-left:.85rem;gap:.7rem}.langs a{font-size:.85rem;padding-block:.8rem}.langs [aria-current]{font-weight:700;text-decoration:underline}
h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{letter-spacing:-.05em;line-height:1.04;margin:0}h1{font-size:clamp(2.6rem,5.6vw,5.3rem)}h2{font-size:clamp(1.85rem,3.6vw,3.15rem)}h3{font-size:1.55rem}p{line-height:1.55}button,input,textarea,select{font:inherit}.lead{font-family:Georgia,serif;font-size:clamp(1.22rem,2vw,1.7rem);line-height:1.42;margin:1.3rem 0 1.8rem;max-width:38rem}
.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:3%;padding:2rem 0 2.3rem;min-height:370px}.hero h1{font-size:clamp(3rem,6.75vw,6.6rem);line-height:.99;max-width:10.5em;letter-spacing:-.065em}.globe{display:block;width:min(100%,460px);height:auto;justify-self:end}
.button,button.button{display:inline-flex;width:fit-content;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--blue);color:white;background:var(--blue);border-radius:5px;padding:.84rem 1.13rem;min-height:44px;font-size:.96rem;font-weight:650;line-height:1.22;cursor:pointer}.button:hover{background:#17376b}.button.secondary{background:transparent;color:var(--ink);border-color:#abb8c5}.button.secondary:hover{background:#e8edf2}
.directory{border-top:1px solid var(--rule);padding:2rem 0 3.7rem}.filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(150px,1fr) auto;align-items:end;gap:1rem;margin:1.4rem 0}.filters label,.stack label{display:grid;gap:.4rem;color:var(--ink);font-weight:600}.filters label{font-size:.86rem}input,textarea,select{min-width:0;border:1px solid #9baab8;border-radius:4px;padding:.74rem .8rem;background:var(--white);color:var(--ink);width:100%;line-height:1.32}textarea{resize:vertical}.filters select{min-height:44px}
.empty,.panel,.notice{border:1px solid var(--rule);padding:clamp(1.1rem,3vw,2rem);border-radius:6px}.empty{border-style:dashed;margin-top:1.1rem}.empty p,.panel p{margin:.6rem 0 1.2rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1rem;margin-top:1.6rem}.card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:6px;background:var(--white);padding:1.25rem;min-width:0}.card h3{margin:.7rem 0 0}.card h3 a{text-decoration:none;color:var(--ink)}.card h3 a:hover{text-decoration:underline}.card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted)}.cardfoot{margin-top:auto;gap:.5rem;flex-wrap:wrap;font-size:.87rem;border-top:1px solid var(--rule);padding-top:.85rem}.meta,.byline{color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}.meta span+span{margin-left:.5rem}.pager{margin-top:1.5rem}
.sheet{padding-block:clamp(2.4rem,6vw,5rem)}.slim,.reading{max-width:790px;margin-inline:auto}.stack{display:grid;gap:1.2rem}.stack small{color:var(--muted);line-height:1.5}.stack label.check{display:flex;align-items:baseline;gap:.7rem;font-weight:400;line-height:1.5}.check input{flex:0 0 1.1rem;width:1.1rem;height:1.1rem}.reading>.meta{margin:1.6rem 0 .7rem}.reading h2{margin-top:2rem;font-size:clamp(1.5rem,3vw,2.15rem)}.bodytext{white-space:pre-wrap;line-height:1.65}.panel{background:var(--pale);margin:2rem 0}.panel h2{margin-top:0}.panel .stack{margin-top:1.4rem}.notice{background:var(--pale);padding:1rem}.reading details{margin-top:2rem}summary{cursor:pointer}.back{font-size:.95rem}footer{flex-wrap:wrap;padding-block:1.5rem;border-top:1px solid var(--rule);gap:1rem;color:var(--muted)}footer .brand{font-size:1rem}footer div{gap:.55rem;flex-wrap:wrap;font-size:.9rem}
@media(max-width:700px){.frame{width:calc(100% - 36px)}header{min-height:70px;flex-wrap:wrap;padding-block:12px;gap:.5rem}header nav{gap:.7rem;font-size:.87rem}.hero{padding:2rem 0 1rem;gap:.5rem;grid-template-columns:1fr}.hero h1{max-width:13ch}.globe{width:min(65%,240px);justify-self:end}.filters{grid-template-columns:1fr 1fr}.filters label:first-child{grid-column:1/-1}.filters button{width:100%}.actions{gap:.6rem}.langs{padding-left:.5rem;gap:.5rem}footer{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
