@font-face{font-family:Caveat;font-weight:500;font-display:swap;src:url(/fonts/caveat-500-normal.woff2)format("woff2")}@font-face{font-family:Caveat;font-weight:700;font-display:swap;src:url(/fonts/caveat-700-normal.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-normal.woff2)format("woff2")}@font-face{font-family:Literata;font-weight:400;font-display:swap;src:url(/fonts/literata-400-normal.woff2)format("woff2")}@font-face{font-family:Literata;font-weight:400;font-style:italic;font-display:swap;src:url(/fonts/literata-400-italic.woff2)format("woff2")}@font-face{font-family:Literata;font-weight:600;font-display:swap;src:url(/fonts/literata-600-normal.woff2)format("woff2")}@font-face{font-family:Literata;font-weight:700;font-display:swap;src:url(/fonts/literata-700-normal.woff2)format("woff2")}:root{--blue:#143f74;--cyanotype:radial-gradient(110% 130% at 18% 0, #1f5592 0, var(--blue) 48%, var(--deep) 100%);--deep:#0c2b54;--hand:500 24px/1.14 Caveat, cursive;--ink:#16273e;--mono:400 13.5px/1.5 "JetBrains Mono", monospace;--muted:#5f6c7b;--on-blue:#eef3f8;--on-blue-soft:#cbdaea;--paper:#f6f6f1;--pencil:#1f5592;--rule:#dcded9}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:19.5px/1.7 Literata,Georgia,serif}a{color:inherit}.wrap{max-width:1304px;margin:0 auto;padding:0 32px}.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 22px;padding:30px 0 0;font-size:15px}.top .home{font-weight:600;text-decoration:none}.top nav{display:flex;flex-wrap:wrap;gap:4px 22px;font:var(--mono)}.top nav a{color:var(--on-blue-soft);text-decoration:none}.top nav a:hover{color:#fff}.external::after{content:"↗";display:inline-block;margin-left:.2em;font-size:.8em}.bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 22px;padding:22px 0 40px;border-top:1px solid var(--rule);font-size:15px}.bottom nav{display:flex;gap:22px}.build{margin:0;color:var(--muted);font:var(--mono)}.bottom a{color:var(--muted);text-decoration:none}.bottom a:hover{color:var(--pencil)}.band{position:relative;overflow:hidden;padding-bottom:58px;color:var(--on-blue);background:linear-gradient(rgba(255,255,255,5%) 1px,transparent 1px)0 0/120px 120px,linear-gradient(90deg,rgba(255,255,255,5%) 1px,transparent 1px)0 0/120px 120px,linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px)0 0/24px 24px,linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px)0 0/24px 24px,var(--cyanotype)}.band::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:44px;background:url(/img/edge.svg)no-repeat bottom/100% 100%}.band .wrap{position:relative;z-index:1}.band-fern::before{content:"";position:absolute;top:0;right:0;bottom:0;width:44%;transform:scaleX(-1);background:url(/img/fern.svg)no-repeat -40px -150px/auto 210%;opacity:.8}.plant{position:absolute;top:72px;right:-30px;height:600px;opacity:.9}.hero{padding:92px 0 44px}.hero h1{margin:0;font:700 clamp(50px,8.2vw,112px)/1.15 Literata,serif;letter-spacing:-.03em}.fix{position:relative;white-space:nowrap}.fix s{color:#a9bed4;text-decoration:none;background:linear-gradient(transparent 53%,#eaf1f8 53%,#eaf1f8 58%,transparent 58%)}.fix b{position:absolute;left:-2%;bottom:74%;color:#fff;font:700 clamp(40px,5.8vw,80px)/1 Caveat,cursive;letter-spacing:0;white-space:nowrap;transform:rotate(-3deg)}.head{max-width:760px;padding:60px 0 40px}.head h1{margin:0;font:700 clamp(40px,5.2vw,74px)/1.07 Literata,serif;letter-spacing:-.028em}.head p{margin:20px 0 0;color:#fff;font:500 28px/1.1 Caveat,cursive;transform:rotate(-1deg);transform-origin:left}.head p code{padding:0 9px;background:0 0;color:var(--on-blue-soft);font:var(--mono);font-size:13px;vertical-align:.25em}.head p code:first-child{padding-left:0}.grown{display:block;margin-top:14px;color:#8fb2d8;font:var(--mono);font-size:12.5px;opacity:.8}.dimension{position:absolute;top:76px;bottom:62px;right:545px;width:1px;background:rgba(238,243,248,.3)}.dimension::before,.dimension::after{content:"";position:absolute;left:-5px;width:11px;height:1px;background:rgba(238,243,248,.45)}.dimension::before{top:0}.dimension::after{bottom:0}.dimension span{position:absolute;top:50%;right:8px;color:var(--on-blue-soft);font:var(--mono);font-size:11px;line-height:1;white-space:nowrap;opacity:.7;writing-mode:vertical-rl;transform:translateY(-50%)rotate(180deg)}.specimen-anchor{position:relative}.specimen{position:absolute;right:28px;top:-32px;z-index:2;margin:0;padding:14px 18px 12px;border-radius:2px;background:var(--paper);color:var(--ink);font:var(--mono);font-size:12.5px;box-shadow:0 3px 12px rgba(6,22,44,.45);transform:rotate(1.2deg)}@media(min-width:1181px){.specimen-anchor+main article>:first-child+aside{margin-top:60px}}.specimen::before{content:"Herbarium lyrixxi";display:block;margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--rule);color:var(--pencil);font:500 22px/1 Caveat,cursive}.specimen div{display:flex;gap:14px}.specimen dt{width:9ch;color:var(--muted)}.specimen dd{margin:0}@keyframes grow{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}.regrow .plant,.regrow.band-fern::before{animation:grow 1.8s ease-out}.plant-dried{top:-40px;right:-90px;opacity:.5;transform:scaleY(-1)}.list{margin:0;padding:30px 0 90px;list-style:none}.entry{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr)330px;gap:0 36px;align-items:center;padding:18px 0;border-top:1px solid var(--rule)}.entry:first-child{border-top:0}.entry img{display:block;width:112px;height:auto;transition:transform .2s}.entry:hover img{transform:rotate(-2deg)scale(1.04)}.entry time{display:flex;flex-wrap:wrap;gap:0 14px;white-space:nowrap;align-items:baseline;color:var(--muted);font:var(--mono)}.entry a{display:block;margin-top:3px;font-size:27px;font-weight:600;line-height:1.26;letter-spacing:-.012em;text-decoration:none}.entry a::after{content:"";position:absolute;inset:0}.entry:hover a,.entry a:focus-visible{color:var(--pencil)}.entry:has(a:focus-visible) img{transform:rotate(-2deg)scale(1.04)}.entry a:focus-visible{outline:none}.entry:has(a:focus-visible){outline:2px solid var(--pencil);outline-offset:6px;border-radius:2px}.fresh{color:var(--pencil);font:500 24px/1 Caveat,cursive;transform:rotate(-1.5deg)}.fig{display:flex;justify-content:flex-end;align-items:baseline;gap:7px;margin:0;white-space:nowrap}.fig code{padding:0;background:0 0;color:var(--muted);font:var(--mono);font-size:12.5px}.fig b{color:var(--pencil);font:500 26px/1.1 Caveat,cursive}.plants-note{margin:10px 0 -34px;color:var(--muted);font:500 21px/1.15 Caveat,cursive;text-align:right}.gallery{padding:46px 0 90px}.gallery h2:first-child{margin-top:0}.gallery h2{margin-bottom:26px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:44px 36px;margin:0 0 20px;padding:0;list-style:none}.card{position:relative;margin:0}.card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:4px;box-shadow:0 2px 8px rgba(12,43,84,.2);transition:transform .2s}.card:hover img{transform:rotate(-1deg)scale(1.02)}.card a{display:block;margin-top:14px;font-size:21px;font-weight:600;line-height:1.3;letter-spacing:-.01em;text-decoration:none}.card a::after{content:"";position:absolute;inset:0}.card:hover a{color:var(--pencil)}.card-highlight{z-index:0}.card-highlight::before{content:"";position:absolute;inset:-16px;z-index:-1;border-radius:3px;background:var(--cyanotype);box-shadow:0 4px 14px rgba(12,43,84,.3)}.card-highlight a{color:var(--on-blue);font:700 31px/1.08 Caveat,cursive;letter-spacing:0}.card-highlight:hover a{color:#fff}.sheet{display:grid;grid-template-columns:minmax(0,780px)minmax(0,340px);column-gap:60px;justify-content:space-between;padding:46px 0 96px}article{grid-column:1/-1;display:grid;grid-template-columns:subgrid}article>*{grid-column:1;min-width:0}article>aside{grid-column:2;align-self:start;margin:0;color:var(--pencil);font:var(--hand);transform:rotate(-1deg)}article>.code{grid-column:1/-1}article>p:first-child{font-size:22.5px;line-height:1.52}article a{color:var(--pencil);text-decoration-thickness:1px;text-underline-offset:.15em}article a[href^=http]:not(:has(img))::after{content:"↗";display:inline-block;margin-left:.15em;font:.62em/1 jetbrains mono,monospace;vertical-align:.45em}.anchor{position:absolute;right:100%;bottom:.3em;margin-right:.5em;color:#c0c9d3;font:.5em/1 jetbrains mono,monospace;text-decoration:none}.anchor:hover,.anchor:focus-visible{color:var(--pencil)}article>p:has(>img:only-child:not([src$=".svg"])){grid-column:1/-1}article img{display:block;max-width:100%;height:auto;border-radius:4px;box-shadow:0 2px 8px rgba(12,43,84,.2)}article img[src$=".svg"]{border-radius:0;box-shadow:none}article .end{margin-top:26px;color:var(--pencil);font:500 29px/1.1 Caveat,cursive}p,ul,ol,blockquote{margin:0 0 1.05em}li{margin-bottom:.3em}h2,h3{position:relative}h2{margin:46px 0 10px;color:var(--blue);font:700 30px/1.2 Literata,serif;letter-spacing:-.015em}h3{margin:34px 0 8px;color:var(--blue);font:700 23px/1.25 Literata,serif}blockquote{padding-left:18px;border-left:2px solid var(--rule);color:var(--muted)}mark{padding-bottom:3px;color:inherit;background:url(/img/under-thin-blue.svg)no-repeat 0 100%/100% 8px}code{padding:.1em .3em;border-radius:3px;background:#e7ebee;font:.8em jetbrains mono,monospace;font-variant-ligatures:none}kbd{display:inline-block;min-width:1.9em;padding:.05em .45em;border:1px solid #b9c2cc;border-bottom-width:3px;border-radius:5px;background:#fff;color:var(--ink);font:.78em/1.5 jetbrains mono,monospace;text-align:center}.code{margin:22px 0 30px;overflow:hidden;border-radius:3px;background:var(--deep);color:#e8eff7}.code-bar{display:flex;justify-content:space-between;align-items:center;padding:7px 28px;border-bottom:1px solid rgba(203,218,234,.16);color:#8fa9c6;font:var(--mono);font-size:12.5px}.copy{padding:0;border:0;background:0 0;color:inherit;font:inherit;cursor:pointer}.copy:hover,.copy:focus-visible{color:#fff}.code-bash .line::before{content:"$ ";color:#8fa9c6}pre{margin:0;padding:20px 28px 24px;overflow-x:auto;font-size:15px;line-height:1.6}pre code{padding:0;background:0 0;color:inherit;font-size:inherit}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .nb,.chroma .nt{color:#9cc5f2}.chroma .nc,.chroma .nn,.chroma .no,.chroma .nx{color:#f1e7c9}.chroma .na,.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:#cfe0f3}.chroma .fm,.chroma .nf{color:#fff}.chroma .m,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .s,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sr,.chroma .ss,.chroma .sx{color:#c9e7cf}.chroma .c,.chroma .c1,.chroma .ch,.chroma .cm,.chroma .cp,.chroma .cpf,.chroma .cs{color:#8fa9c6}.chroma .hl{display:block;background:rgba(156,197,242,.14)}.keys{width:min(430px,calc(100% - 40px));padding:26px 30px 22px;border:0;border-radius:3px;background:var(--paper);color:var(--ink);box-shadow:0 10px 40px rgba(6,22,44,.5)}.keys::backdrop{background:rgba(12,43,84,.6)}.keys h2{margin:0 0 14px;color:var(--pencil);font:700 34px/1 Caveat,cursive;transform:rotate(-1.5deg);transform-origin:left}.keys dl{margin:0;font-size:16px}.keys div{display:flex;gap:16px;align-items:baseline;padding:5px 0}.keys dt{flex:none;width:5.2em}.keys dd{margin:0}.keys form{margin-top:12px;text-align:right}.keys button{padding:0;border:0;background:0 0;color:var(--muted);font:var(--mono);cursor:pointer}.keys button:hover{color:var(--pencil)}body{padding-bottom:27px}.status-line{position:fixed;left:0;right:0;bottom:0;z-index:2;display:flex;gap:18px;align-items:center;height:27px;padding-right:14px;background:var(--deep);color:var(--on-blue-soft);font:var(--mono);font-size:12.5px;line-height:1;white-space:nowrap}.status-line b{align-self:stretch;display:flex;align-items:center;padding:0 12px;background:#9cc5f2;color:var(--deep);font-weight:400}.status-line i{flex:1}.status-line .file{overflow:hidden;color:var(--on-blue);text-overflow:ellipsis}@media(hover:none){.keys-hint{display:none}}@media(prefers-reduced-motion:reduce){.card img,.entry img{transition:none}.regrow .plant,.regrow.band-fern::before{animation:none}}@media(max-width:1320px){.head{max-width:680px}}@media(max-width:1180px){.plant{opacity:.42}.dimension{display:none}.specimen-anchor{padding:0 32px}.specimen{position:static;display:flex;flex-wrap:wrap;gap:2px 22px;max-width:860px;margin:22px auto -24px;padding:0;background:0 0;box-shadow:none;transform:none}.specimen::before{content:none}.specimen div{gap:8px}.specimen dt{width:auto}.sheet{display:block;max-width:860px;margin:0 auto}article{display:block}article>aside{margin:-6px 0 18px;padding-left:14px;border-left:2px solid var(--pencil);transform:none}}@media(max-width:900px){.entry{grid-template-columns:96px minmax(0,1fr)}.entry a{font-size:23px}.fig{grid-column:2;justify-content:flex-start;margin-top:4px;white-space:normal}.fig code{display:none}}@media(max-width:760px){.plant{top:10px;right:-60px;height:130%;opacity:.24}}@media(max-width:620px){body{font-size:18.5px}.anchor{position:static;margin:0 .5em 0 0;vertical-align:.2em}.grown,.head p code,.status-line span:not(.file,#position){display:none}.plants-note{font-size:19px}.specimen-anchor,.wrap{padding:0 20px}.band-fern::before{width:70%;background-position:-90px -60px;background-size:auto 160%;opacity:.32}.hero{padding:72px 0 44px}.head{padding:44px 0 24px}.sheet{padding:30px 0 70px}.entry{grid-template-columns:72px minmax(0,1fr);gap:0 16px;align-items:start}.entry img{width:72px}.entry a{font-size:20px}.fig b{font-size:22px}article>p:first-child{font-size:20.5px}h2{font-size:26px}.code{margin-inline:-20px;border-radius:0}.code-bar{padding-inline:20px}pre{padding:16px 20px 18px;font-size:12.5px}}