:root{--paper:#f3f1ec;--paper-raised:#faf9f5;--ink:#21242b;--ink-soft:#565a63;--ink-faint:#8b8e96;--line:#e4e1d9;--accent:#1f6e54;--accent-deep:#16513e;--wash:#e2ece6;--font-display:ui-sans-serif, system-ui, sans-serif;--font-body:ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--measure:60ch;--sheet:820px;--step--1:clamp(.8rem, .77rem + .15vw, .88rem);--step-0:clamp(1.08rem, 1.02rem + .3vw, 1.2rem);--step-1:clamp(1.35rem, 1.2rem + .6vw, 1.7rem);--step-2:clamp(1.9rem, 1.55rem + 1.6vw, 2.7rem);--step-3:clamp(2.7rem, 2rem + 3.4vw, 4.6rem)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);background:var(--paper);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.68}img{max-width:100%;height:auto}::selection{background:var(--wash);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.sheet{max-width:var(--sheet);margin-inline:auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,6vw,2.5rem) 4rem}.sheet--admin{max-width:none}@media (width>=60rem){.sheet--admin .editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.masthead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:clamp(3rem,8vw,5rem);display:flex}.wordmark{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.005em;color:var(--ink);align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.wordmark__logo{width:auto;height:1.6em;color:var(--accent);display:block}.wordmark__accent{color:var(--accent)}.nav{font-family:var(--font-body);font-size:var(--step--1);text-transform:lowercase;letter-spacing:.08em;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1.25rem;margin-left:auto;font-weight:500;display:flex}.nav a{color:var(--ink-soft);text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--accent)}@media (width<=34rem){.nav{flex-basis:100%}}.hero{margin-bottom:clamp(3rem,7vw,4.5rem)}.hero__eyebrow{font-family:var(--font-body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-faint);margin:0 0 1.25rem;font-weight:500}.hero__thesis{font-family:var(--font-display);font-weight:400;font-size:var(--step-3);letter-spacing:-.005em;max-width:18ch;margin:0;line-height:1.04}.hero__thesis em{color:var(--accent);font-style:italic}.section__label{font-family:var(--font-body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);align-items:baseline;gap:.85rem;margin:clamp(3rem,7vw,4.5rem) 0 1.75rem;font-weight:600;display:flex}.section__label:before{content:"⁂";font-family:var(--font-display);letter-spacing:0;color:var(--accent);font-size:1.25em;font-weight:400;transform:translateY(.05em)}.log{margin:0;padding:0;list-style:none}.entry{border-top:1px solid var(--line);padding-block:1.9rem}.entry:first-child{border-top:none;padding-top:0}.entry__date{font-family:var(--font-body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:0 0 .5rem;font-weight:500}.entry__title{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);margin:0 0 .5rem;line-height:1.1}.entry__title a{color:var(--ink);background-image:linear-gradient(var(--accent), var(--accent));background-position:0 1.05em;background-repeat:no-repeat;background-size:0% 1px;text-decoration:none;transition:background-size .3s,color .3s}.entry__title a:hover{color:var(--accent);background-size:100% 1px}.entry__summary{max-width:var(--measure);color:var(--ink-soft);margin:0}.products{grid-template-columns:1fr;gap:1.5rem;display:grid}.product{background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:1.75rem;position:relative;overflow:hidden}.product:before{content:"";background:var(--accent);height:3px;position:absolute;inset:0 0 auto}.product__title{font-family:var(--font-display);font-weight:400;font-size:var(--step-1);margin:0 0 .5rem}.product__blurb{color:var(--ink-soft);margin:0 0 1.5rem}.product__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.price{font-family:var(--font-display);font-size:var(--step-1);color:var(--ink)}.buy{font-family:var(--font-body);font-weight:600;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;color:var(--paper-raised);background:var(--accent);border:none;border-radius:3px;align-items:center;gap:.5ch;padding:.65rem 1.15rem;text-decoration:none;transition:background .2s;display:inline-flex}.buy:hover{background:var(--accent-deep)}.fineprint{font-size:var(--step--1);color:var(--ink-faint);margin-top:2rem}.fineprint a{color:var(--ink-soft)}.backlink{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:2.5rem;font-weight:500;text-decoration:none;display:inline-block}.backlink:hover{color:var(--accent)}.post__meta{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);margin:0 0 1rem;font-weight:500}.post__title{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);margin:0 0 2.25rem;line-height:1.08}.prose{max-width:var(--measure)}.prose p{margin:0 0 1.4rem}.prose h2{font-family:var(--font-display);font-weight:400;font-size:var(--step-2);margin:2.75rem 0 1rem;line-height:1.12}.prose h3{font-family:var(--font-body);font-weight:600;font-size:var(--step-1);margin:2.25rem 0 .75rem}.prose a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}.prose a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin:1.75rem 0;padding-left:1.5rem;font-size:1.05em;font-style:italic}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--wash);border-radius:3px;padding:.12em .4em;font-size:.86em}.prose pre{font-family:var(--font-mono);font-size:var(--step--1);border-radius:4px;margin:1.75rem 0;padding:1.2rem 1.35rem;line-height:1.6;overflow:auto}.prose ul,.prose ol{margin:0 0 1.4rem;padding-left:1.5rem}.prose li{margin-bottom:.4rem}.prose hr{text-align:center;border:none;margin:2.75rem 0}.prose hr:after{content:"⁂";color:var(--ink-faint);font-family:var(--font-display);letter-spacing:.3em;font-size:1.3rem}.tag{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:2px;margin-right:.4rem;padding:.12rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.contact__lead{max-width:var(--measure);color:var(--ink-soft);margin:0 0 1.5rem}.contact__addr{font-family:var(--font-display);font-size:var(--step-2);margin:0 0 1.75rem;line-height:1.1}.contact__addr a{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 35%, transparent);text-decoration:none}.contact__addr a:hover{border-bottom-color:var(--accent)}.foot{border-top:1px solid var(--line);font-size:var(--step--1);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:clamp(3.5rem,8vw,5.5rem);padding-top:1.75rem;display:flex}.foot a{color:var(--ink-soft);text-decoration:none}.foot a:hover{color:var(--accent)}.form{gap:1.25rem;max-width:24rem;margin-top:.5rem;display:grid}.field{gap:.4rem;display:grid}.field label{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);font-weight:600}.field input{width:100%;font-family:var(--font-body);font-size:var(--step-0);color:var(--ink);background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:.65rem .8rem}.field input:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent) 30%, transparent);outline-offset:1px}.form button.buy{text-align:center;cursor:pointer;font:inherit;border:none;justify-content:center;justify-self:stretch}.oauth__logo{flex:none}.buy.oauth{background:var(--paper-raised);color:var(--ink);border:1px solid var(--ink)}.buy.oauth:hover{background:var(--wash)}.buy[disabled]{opacity:.6;cursor:default}.form__sep{font-size:var(--step--1);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:.75rem;display:flex}.form__sep:before,.form__sep:after{content:"";background:var(--line);flex:1;height:1px}.form__error{color:#a3341f;font-size:var(--step--1);margin:0}.form__alt{font-size:var(--step--1);color:var(--ink-faint);margin-top:1.5rem}.form__alt a{color:var(--accent)}.masthead .nav{align-items:center}.nav__avatar{object-fit:cover;border:1px solid var(--line);border-radius:50%;width:28px;height:28px;display:block}.nav__avatar--blank{background:var(--wash);color:var(--accent);font-family:var(--font-display);justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.usermenu{align-items:center;display:inline-flex;position:relative}.usermenu__trigger{align-items:center;display:inline-flex}.usermenu__toggle{opacity:0;cursor:pointer;z-index:2;margin:0;position:absolute;inset:0}.usermenu__toggle:focus-visible~.usermenu__trigger .nav__avatar{outline:2px solid var(--accent);outline-offset:2px}.usermenu__backdrop{z-index:10;display:none;position:fixed;inset:0}.usermenu__toggle:checked~.usermenu__backdrop{display:block}.usermenu__panel{z-index:20;background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;min-width:12rem;padding:.4rem;display:none;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 8px 24px #0000001f}.usermenu__toggle:checked~.usermenu__panel{display:block}.usermenu__name{font-family:var(--font-body);font-weight:500;font-size:var(--step--1);color:var(--ink-faint);border-bottom:1px solid var(--line);word-break:break-word;margin:0 0 .25rem;padding:.4rem .6rem .55rem}.usermenu__link,.usermenu__signout{text-align:left;width:100%;font:inherit;font-size:var(--step--1);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:5px;margin:.15rem 0 0;padding:.45rem .6rem;text-decoration:none;display:block}.usermenu__link:hover,.usermenu__signout:hover{background:var(--wash);color:var(--accent)}.members-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);vertical-align:.12em;border-radius:2px;margin-left:.6rem;padding:.05rem .4rem;font-size:.66rem;font-weight:600;display:inline-block}.gate{max-width:var(--measure);border:1px solid var(--line);background:var(--paper-raised);box-shadow:5px 5px 0 var(--accent);border-radius:4px;margin-top:2rem;padding:1.75rem}.gate__msg{font-family:var(--font-display);font-size:var(--step-1);margin:0 0 1rem}.gate .buy{margin-bottom:.75rem}.gate__alt{font-size:var(--step--1);color:var(--ink-faint);margin:0}.gate__alt a{color:var(--accent)}.field textarea,.field select{width:100%;font-family:var(--font-body);font-size:var(--step-0);color:var(--ink);background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:.65rem .8rem}.field textarea{resize:vertical;line-height:1.55}.editor{grid-template-columns:minmax(0, var(--measure)) minmax(0, 22rem);align-items:start;gap:2rem;display:grid}.editor .form{min-width:0;max-width:none}.editor #bodyMarkdown{font-family:var(--font-mono);font-size:var(--step--1)}@media (width<=60rem){.editor{grid-template-columns:minmax(0,1fr)}}.field__hint{text-transform:none;letter-spacing:0;color:var(--ink-faint);font-weight:400}.checkfield{font-size:var(--step-0);color:var(--ink);align-items:center;gap:.5rem;display:flex}.checkfield input{width:auto}.editor__actions{align-items:center;gap:1.25rem;display:flex}.editor__actions .form__alt{margin:0}.editor__delete{font:inherit;font-size:var(--step--1);color:#a3341f;cursor:pointer;background:0 0;border:none;justify-self:start;margin-top:.25rem;padding:0}.editor__delete:hover{text-decoration:underline}.adminlist{margin:1.5rem 0 0;padding:0;list-style:none}.adminlist__row{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding-block:.9rem;display:flex}.adminlist__row a{color:var(--ink);font-weight:500;text-decoration:none}.adminlist__row a:hover{color:var(--accent)}.adminlist__meta{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.admin__links{flex-wrap:wrap;gap:1rem;display:flex}.aichat{background:var(--paper-raised);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:.75rem;max-height:calc(100vh - 3rem);padding:1rem;display:flex;position:sticky;top:1.5rem}.aichat__head{flex-direction:column;gap:.5rem;display:flex}.aichat__title{font-size:var(--step--1);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0;font-weight:600}.aichat__model{align-items:center;gap:.5rem;display:flex}.aichat__model-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-size:.7rem}.aichat__model select{min-width:0;font:inherit;font-size:var(--step--1);color:var(--ink);background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:4px;flex:1;padding:.3rem .5rem}.aichat__chips{flex-wrap:wrap;gap:.4rem;display:flex}.aichat__chip{font:inherit;font-size:var(--step--1);color:var(--ink);background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:.25rem .7rem}.aichat__chip:hover{border-color:var(--accent);color:var(--accent)}.aichat__chip:disabled{opacity:.5;cursor:default}.aichat__log{flex-direction:column;gap:.75rem;min-height:6rem;padding-right:.25rem;display:flex;overflow-y:auto}.aichat__empty{font-size:var(--step--1);color:var(--ink-faint);margin:0;line-height:1.5}.aichat__msg{flex-direction:column;gap:.4rem;display:flex}.aichat__msg--user{align-items:flex-end}.aichat__text{max-width:90%;font-size:var(--step--1);border-radius:8px;margin:0;padding:.45rem .7rem;line-height:1.5}.aichat__msg--user .aichat__text{background:var(--accent);color:var(--paper)}.aichat__msg--assistant .aichat__text{background:var(--paper);border:1px solid var(--line)}.aichat__proposal{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);border-radius:4px;padding:.55rem .65rem}.aichat__proplabel{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:0 0 .35rem;font-size:.7rem}.aichat__propval{white-space:pre-wrap;word-break:break-word;max-height:12rem;font-family:var(--font-mono);color:var(--ink);margin:0 0 .5rem;font-size:.78rem;line-height:1.45;overflow:auto}.aichat__apply{font:inherit;font-size:var(--step--1);color:var(--paper);background:var(--accent);cursor:pointer;border:none;border-radius:3px;padding:.3rem .7rem}.aichat__apply:disabled{background:var(--ochre);cursor:default}.aichat__busy{font-size:var(--step--1);color:var(--ochre);margin:0;font-style:italic}.aichat__compose{flex-direction:column;gap:.5rem;display:flex}.aichat__compose textarea{width:100%;font:inherit;font-size:var(--step--1);background:var(--paper);border:1px solid var(--line);resize:vertical;border-radius:4px;padding:.5rem .6rem;line-height:1.5}.aichat__compose .buy{cursor:pointer;font:inherit;border:none;align-self:flex-start}.aichat__compose .buy:disabled{opacity:.5;cursor:default}.comments{margin-top:3rem}.commentform{max-width:var(--measure);gap:.75rem;margin-bottom:2.5rem;display:grid}.commentform button.buy{cursor:pointer;font:inherit;border:none;justify-self:start}.commentform__ok{font-size:var(--step--1);color:var(--accent);margin:0}.comments__note{max-width:var(--measure);color:var(--ink-soft);margin:0 0 2rem}.comments__note a{color:var(--accent)}.commentlist{max-width:var(--measure);margin:0;padding:0;list-style:none}.comment{border-top:1px solid var(--line);padding-block:1.5rem}.comment__head{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.comment__avatar{object-fit:cover;border:1px solid var(--line);border-radius:50%;width:28px;height:28px}.comment__avatar--blank{background:var(--wash);color:var(--accent);font-family:var(--font-display);justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.comment__author{color:var(--ink);font-weight:600}.comment__when{font-size:var(--step--1);color:var(--ink-faint)}.comment__body{color:var(--ink-soft);white-space:pre-wrap;margin:0}.modqueue{max-width:var(--measure);margin:1.5rem 0 0;padding:0;list-style:none}.modcard{border:1px solid var(--line);background:var(--paper-raised);border-radius:4px;margin-bottom:1.25rem;padding:1.25rem}.modcard__meta{font-size:var(--step--1);color:var(--ink-faint);margin:0 0 .6rem}.modcard__verdict{color:var(--ochre)}.modcard__body{color:var(--ink);white-space:pre-wrap;margin:0 0 1rem}.modcard__actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.modcard__actions button.buy{cursor:pointer;font:inherit;border:none}.modcard__del,.modcard__ban{font:inherit;font-size:var(--step--1);cursor:pointer;color:#a3341f;background:0 0;border:none;padding:0}.modcard__del:hover,.modcard__ban:hover{text-decoration:underline}
