/* ============================================================
   FARBBAND — the blog of a (fictional) author, typed live on a
   1960s portable typewriter. The sheet sits in the machine at the
   centre of the desk; the carriage moves, keys go down, the
   bell rings and the paper feeds up line by line.
   JS: js/farbband.js · Fonts: assets/fonts (see FONTS-LICENSE.txt)
   ============================================================ */
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/courier-prime-400-latin.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:italic;font-weight:400;font-display:swap;src:url(../assets/fonts/courier-prime-400i-latin.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/courier-prime-700-latin.woff2) format("woff2")}
@font-face{font-family:"Special Elite";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/special-elite-400-latin.woff2) format("woff2")}

:root{
  --desk:#1b1613; --desk-2:#241d18; --desk-ink:#ece2cf; --desk-dim:#b3a58f; --desk-line:rgba(236,226,207,.14);
  --lamp:rgba(255,196,120,.16); --card:#262019; --card-hi:#2e2720; --rail-red:#f0917f;
  --paper:#f6f0e2; --paper-edge:#e7dcc6; --ink:#1e1a17; --ink-dim:#5e544a; --red:#b3261e;
  --enamel-hi:#9cc4b5; --enamel:#6f9d8f; --enamel-lo:#4d786b; --enamel-dk:#35574d;
  --key:#f1ead9; --key-lo:#d8cdb4; --chrome-hi:#f4f4f1; --chrome:#b9bcbc; --chrome-lo:#6d7272;
  --pw:min(700px, calc(100vw - 28px));
  --k:1;
  --mv:0px;
  --type:"Courier Prime","Courier New",Courier,monospace;
  --elite:"Special Elite","Courier Prime","Courier New",monospace;
  color-scheme:dark;
}
:root[data-lamp="day"]{
  --desk:#e6dccb; --desk-2:#dcd0bc; --desk-ink:#2a221b; --desk-dim:#665847; --desk-line:rgba(42,34,27,.16);
  --lamp:rgba(255,255,255,.4); --card:#efe7da; --card-hi:#f5efe5; --rail-red:#a8231b;
  --paper:#fbf7ee; --paper-edge:#e9dfcb;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;
  background:
    radial-gradient(90% 60% at 50% 0%,var(--lamp),transparent 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .6' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"),
    var(--desk);
  color:var(--desk-ink);font:16px/1.6 var(--type);
  padding-bottom:var(--mv);
  overflow-x:clip;
  transition:padding-bottom .5s cubic-bezier(.3,.7,.2,1),background-color .4s;
}
a{color:inherit}
button{font:inherit;color:inherit}
kbd{font:inherit;font-size:.86em;padding:0 .35em;border:1px solid var(--desk-line);border-radius:4px;background:rgba(255,255,255,.04)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--paper);color:var(--ink);padding:10px 14px;border-radius:6px}
.skip-link:focus{top:10px}
:focus-visible{outline:2px solid #e2672e;outline-offset:3px}

/* demo ribbon (same as the other TDI demos) */
.demo-ribbon{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;padding:7px 16px;font:12px/1.4 var(--type);background:#0e0b09;color:#cdbfa8;text-align:center}
.demo-ribbon a{color:#f3b27f;text-decoration:none;font-weight:700}
.demo-ribbon a:hover{text-decoration:underline}
:root[data-lamp="day"] .demo-ribbon{background:#2a221b;color:#e6dccb}

/* ---------- header ---------- */
.desk-head{border-bottom:1px solid var(--desk-line)}
.head-inner{max-width:1240px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--key);color:var(--ink);font:24px/1 var(--elite);box-shadow:0 0 0 3px var(--chrome),0 3px 0 4px rgba(0,0,0,.35)}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text b{font:26px/1 var(--elite);letter-spacing:.01em}
.brand-text small{font-size:12.5px;color:var(--desk-dim);margin-top:4px}
.main-nav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0}
.main-nav a{display:block;padding:7px 11px;border-radius:999px;text-decoration:none;font-size:14.5px;color:var(--desk-dim);transition:color .2s,background .2s}
.main-nav a:hover{color:var(--desk-ink);background:rgba(255,255,255,.06)}
:root[data-lamp="day"] .main-nav a:hover{background:rgba(0,0,0,.05)}
.main-nav a[aria-current="page"]{color:var(--desk-ink);background:rgba(255,255,255,.08);box-shadow:inset 0 -2px 0 var(--red)}
:root[data-lamp="day"] .main-nav a[aria-current="page"]{background:rgba(0,0,0,.06)}

/* ---------- desk layout ---------- */
.desk{
  max-width:1240px;margin:0 auto;padding:28px 22px 0;
  display:grid;grid-template-columns:minmax(0,1fr) var(--pw) minmax(0,1fr);column-gap:34px;align-items:start;
}
.date-rail{grid-column:1;justify-self:end;position:sticky;z-index:5;top:24px;width:100%;max-width:230px}
.sheet-slot{grid-column:2;position:relative;outline:none}
.controls{grid-column:3;justify-self:start;position:sticky;z-index:5;top:24px;display:flex;flex-direction:column;gap:8px;max-width:210px}

/* card-index rail */
.rail-label{margin:0 0 10px;font:13px/1 var(--elite);letter-spacing:.14em;text-transform:uppercase;color:var(--desk-dim)}
.date-rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.date-rail a{
  position:relative;display:block;padding:9px 12px 10px 14px;text-decoration:none;
  border-radius:3px 10px 10px 3px;background:var(--card);border:1px solid var(--desk-line);
  transition:transform .25s cubic-bezier(.3,.7,.2,1),background .2s,border-color .2s;
}
.date-rail a:hover{transform:translateX(4px);border-color:rgba(236,226,207,.3)}
.rd{display:block;font:13px/1.2 var(--elite);color:var(--rail-red);letter-spacing:.05em}
.rt{display:block;font-size:13.5px;line-height:1.35;margin-top:3px;color:var(--desk-ink)}
.date-rail a[aria-current="page"]{background:var(--paper);border-color:var(--paper);transform:translateX(8px);box-shadow:0 6px 18px rgba(0,0,0,.28)}
.date-rail a[aria-current="page"] .rt{color:var(--ink)}
.date-rail a[aria-current="page"] .rd{color:var(--red)}
.date-rail a[aria-current="page"]::before{content:"";position:absolute;left:-8px;top:50%;width:8px;height:2px;background:var(--red)}

/* controls */
.ctl{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  padding:9px 12px;border-radius:10px;border:1px solid var(--desk-line);background:var(--card);
  font-size:13.5px;color:var(--desk-ink);transition:background .2s,border-color .2s,opacity .3s;
}
.ctl:hover{border-color:rgba(236,226,207,.34)}
:root[data-lamp="day"] .ctl:hover{border-color:rgba(42,34,27,.35)}
.ctl-ico{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--key);color:var(--ink);font-size:13px;line-height:1;box-shadow:0 0 0 2px var(--chrome)}
.ctl[aria-pressed="true"] .ctl-ico{background:var(--red);color:#fff}
.ctl-main{background:var(--paper);color:var(--ink);border-color:var(--paper);font-weight:700}
.ctl-main .ctl-ico{background:var(--ink);color:var(--paper);box-shadow:none}
.ctl-main:hover{border-color:var(--paper)}
.ctl-main[data-state="idle"]{background:var(--card);color:var(--desk-ink);border-color:var(--desk-line)}
.ctl-main[data-state="idle"] .ctl-ico{background:var(--key);color:var(--ink);box-shadow:0 0 0 2px var(--chrome)}
.ctl-extra{display:flex;flex-direction:column;gap:8px}
.ctl-more{display:none}
.ctl-hint{margin:6px 2px 0;font-size:12px;line-height:1.7;color:var(--desk-dim)}

/* ---------- the sheet ---------- */
.sheet{
  position:relative;z-index:1;width:var(--pw);min-height:520px;
  padding:64px 72px 84px;margin:0 0 calc(var(--k) * -20px);
  background:
    linear-gradient(90deg,rgba(0,0,0,.035),transparent 8%,transparent 92%,rgba(0,0,0,.035)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .18 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23p)'/%3E%3C/svg%3E"),
    var(--paper);
  color:var(--ink);font:17px/1.78 var(--type);
  box-shadow:0 1px 0 var(--paper-edge),0 18px 40px -12px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.18);
  will-change:transform;
  transform-origin:50% 100%;
}
:root[data-lamp="day"] .sheet{box-shadow:0 1px 0 var(--paper-edge),0 18px 40px -16px rgba(60,40,20,.35),0 2px 6px rgba(60,40,20,.12)}
.sheet h1{font:400 clamp(28px,4.2vw,40px)/1.18 var(--elite);margin:0 0 .8em;letter-spacing:.005em}
.sheet h2{font:400 21px/1.35 var(--elite);color:var(--red);margin:1.9em 0 .6em;letter-spacing:.02em}
.sheet p{margin:0 0 1.15em}
.sheet em{font-style:normal;color:var(--red)}
.sheet strong{font-weight:400;text-shadow:.45px 0 0 currentColor,-.2px 0 0 currentColor}
.sheet a{color:inherit;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:1.5px;text-underline-offset:4px;border-radius:2px}
.sheet a:hover{background:rgba(179,38,30,.1)}
.sheet blockquote{margin:1.6em 0 1.6em 1.6em;padding-left:1.2em;position:relative;color:var(--red);font-size:1.04em}
.sheet blockquote::before{content:"";position:absolute;left:0;top:.3em;bottom:.3em;width:3px;border-left:1px solid var(--red);border-right:1px solid var(--red);transform:scaleY(0);transform-origin:top;transition:transform .6s ease}
.sheet ul{list-style:none;padding:0;margin:0 0 1.2em}
.sheet li{position:relative;padding-left:2ch;margin-bottom:.2em}
.sheet li::before{content:"–";position:absolute;left:0;opacity:0;transition:opacity .15s}
.sheet .letterhead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);padding-bottom:14px;margin-bottom:34px;position:relative}
.sheet .letterhead::after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1.5px dashed rgba(30,26,23,.35);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.3,.7,.2,1)}
.sheet .meta{color:var(--ink-dim);font-size:14.5px;margin-top:-.4em}
.sheet .sign{margin-top:2em}
.sheet .index-list li{padding-left:0}
.sheet .index-list li::before{display:none}
.sheet .index-list a{text-decoration:none;display:flex;gap:1.2ch;align-items:baseline}
.sheet .index-list a:hover .it{text-decoration:underline;text-decoration-color:var(--red)}
.sheet .index-list .id{color:var(--red);flex:none}
.sheet .dates li::before{content:"·"}
.sheet .dates strong{color:var(--red)}
.sheet .sheet-nav{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:2.6em;font-size:15px}
.sheet .sheet-nav a:only-child{margin-left:auto}
.sheet .sheet-nav a[rel="prev"]:only-child{margin-left:0}
.sheet .colophon{margin:3.2em 0 0;padding-top:12px;font-size:12.5px;line-height:1.6;color:var(--ink-dim);position:relative}
.sheet .colophon::before{content:"";position:absolute;left:0;right:0;top:0;border-top:1.5px dashed rgba(30,26,23,.25)}

/* typed characters */
.c{position:relative;top:var(--y,0);opacity:0}
.c.on{opacity:var(--o,1);animation:strike .2s ease-out}
.sheet.done .c{opacity:var(--o,1)}
.sheet.instant .c{opacity:var(--o,1);animation:none}
.c.tx{background:#fffdf7;border-radius:3px;box-shadow:0 0 0 2px #fffdf7,0 1px 2px 2px rgba(80,60,30,.12)}
@keyframes strike{0%{opacity:0;text-shadow:0 0 4px currentColor}45%{opacity:1;text-shadow:0 0 .6px currentColor}100%{opacity:var(--o,1);text-shadow:none}}
.b-on.letterhead::after,.done .letterhead::after,.instant .letterhead::after{transform:scaleX(1)}
blockquote.b-on::before,.done blockquote::before,.instant blockquote::before{transform:scaleY(1)}
li.b-on::before,.done li::before,.instant li::before{opacity:1}

/* elements that appear rather than get typed */
.pop{opacity:0;transform:translateY(-6px) rotate(-1.5deg) scale(1.04);transition:opacity .35s ease,transform .45s cubic-bezier(.2,1.4,.4,1)}
.pop.b-on,.done .pop,.instant .pop{opacity:1;transform:none}

/* pasted-in figures */
.cover,.portrait{position:relative;margin:.2em 0 1em 1.6em;float:right;box-shadow:0 8px 16px -6px rgba(0,0,0,.35)}
.cover{width:118px;height:170px;display:flex;align-items:flex-end;padding:12px 11px;border-radius:2px 5px 5px 2px;color:#f7f1e3;font:15px/1.2 var(--elite)}
.cover::before,.portrait::before{content:"";position:absolute;top:-9px;left:50%;width:58px;height:20px;margin-left:-29px;background:rgba(236,226,190,.62);transform:rotate(-4deg);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.cover::after{content:"";position:absolute;left:7px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.18)}
.cover.c1{background:linear-gradient(160deg,#35574d,#1f3a33);transform-origin:top}
.cover.c2{background:linear-gradient(160deg,#9e2a22,#651712)}
.cover.c3{background:linear-gradient(160deg,#27354d,#141d2d)}
.cover.c1.b-on,.done .cover.c1,.instant .cover.c1{transform:rotate(1.5deg)}
.cover.c2.b-on,.done .cover.c2,.instant .cover.c2{transform:rotate(-1.2deg)}
.cover.c3.b-on,.done .cover.c3,.instant .cover.c3{transform:rotate(.8deg)}
.cover span{position:relative}
.portrait{width:170px;height:206px;padding:9px 9px 34px;background:#fbfaf6;transform:rotate(2deg)}
.portrait.b-on,.done .portrait,.instant .portrait{transform:rotate(2deg)}
.portrait::after{
  content:"";position:absolute;inset:9px 9px 34px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 160'%3E%3Cdefs%3E%3CradialGradient id='l' cx='.78' cy='.18' r='.8'%3E%3Cstop offset='0' stop-color='%23f3d9a8'/%3E%3Cstop offset='1' stop-color='%236b5238'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect width='150' height='160' fill='url(%23l)'/%3E%3Crect x='96' y='12' width='40' height='56' fill='%23fff3d6' opacity='.55'/%3E%3Cpath d='M96 40h40M116 12v56' stroke='%236b5238' stroke-width='2' opacity='.5'/%3E%3Ccircle cx='58' cy='54' r='17' fill='%233a2a1c'/%3E%3Cpath d='M26 118c2-30 16-44 32-44s30 14 32 44z' fill='%233a2a1c'/%3E%3Cpath d='M14 160v-34h124v34z' fill='%232a1f16'/%3E%3Crect x='50' y='104' width='56' height='20' rx='5' fill='%234d786b'/%3E%3Crect x='56' y='96' width='44' height='10' rx='2' fill='%23efe4cc'/%3E%3C/svg%3E") center/cover;
  filter:sepia(.35) contrast(1.05);
}
.portrait span{position:absolute;left:0;right:0;bottom:8px;text-align:center;font:13px/1 var(--elite);color:#4a3f35}

/* the letter form on the sheet */
.letter{display:flex;flex-direction:column;margin:.4em 0 1.4em}
.letter label{margin-top:.9em;font-size:14px;color:var(--ink-dim)}
.letter abbr{text-decoration:none;color:var(--red)}
.letter input,.letter textarea{
  width:100%;margin:0;padding:4px 2px;border:0;border-bottom:1.5px dotted rgba(30,26,23,.5);border-radius:0;background:transparent;
  font:17px/1.78 var(--type);color:var(--ink);caret-color:var(--red);
}
.letter textarea{resize:vertical;line-height:1.78;border-bottom:0;background:repeating-linear-gradient(transparent 0 calc(1.78em - 1.5px),rgba(30,26,23,.3) calc(1.78em - 1.5px) 1.78em);background-attachment:local;padding:0 2px;min-height:calc(1.78em * 6)}
.letter input:focus,.letter textarea:focus{outline:none;background-color:rgba(179,38,30,.05)}
.letter input:focus-visible,.letter textarea:focus-visible{outline:2px solid rgba(179,38,30,.45);outline-offset:2px}
.letter [aria-invalid="true"]{border-bottom-color:var(--red)}
.letter .send{
  align-self:flex-start;margin-top:1.4em;padding:10px 20px;border-radius:999px;cursor:pointer;
  background:var(--ink);color:var(--paper);border:0;font:700 15px/1 var(--type);letter-spacing:.04em;
  box-shadow:0 3px 0 #000;transition:transform .08s,box-shadow .08s;
}
.letter .send:active{transform:translateY(3px);box-shadow:0 0 0 #000}
.letter-inline{flex-flow:row wrap;align-items:flex-end;column-gap:14px}
.letter-inline label{flex:1 0 100%}
.letter-inline input{flex:1 1 220px;width:auto}
.letter-inline .send{margin-top:.8em}
.form-note{margin:.9em 0 0!important;min-height:1.78em;color:var(--red);flex:1 0 100%}

/* ---------- follow pill ---------- */
.follow-pill{
  position:fixed;left:50%;bottom:calc(var(--mv) + 14px);z-index:40;transform:translateX(-50%);
  padding:9px 16px;border-radius:999px;border:0;cursor:pointer;background:var(--ink);color:var(--paper);
  font:700 13.5px/1 var(--type);box-shadow:0 8px 20px rgba(0,0,0,.35);
}
:root:not([data-lamp="day"]) .follow-pill{background:var(--paper);color:var(--ink)}

/* ============================================================
   THE TYPEWRITER — everything is sized in units of --k (set by JS
   from the viewport) so the whole machine scales as one object.
   ============================================================ */
.machine{
  position:fixed;left:0;right:0;bottom:0;z-index:30;pointer-events:none;
  transform:translateY(var(--park,0px));
  transition:transform .55s cubic-bezier(.3,.7,.2,1);
  filter:drop-shadow(0 -6px 18px rgba(0,0,0,.35));
}
.machine > *{pointer-events:auto}
.carriage{
  position:relative;z-index:3;margin:0 auto;
  width:calc(var(--pw) + var(--k) * 150px);height:calc(var(--k) * 58px);
  will-change:transform;
}
.platen{
  position:absolute;left:calc(var(--k) * 75px);right:calc(var(--k) * 75px);top:calc(var(--k) * 10px);height:calc(var(--k) * 40px);
  border-radius:calc(var(--k) * 20px);
  background:linear-gradient(180deg,#4a4441 0%,#1b1816 30%,#0c0b0a 55%,#2a2624 80%,#0a0908 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 6px rgba(0,0,0,.4);
}
.platen::before,.platen::after{content:"";position:absolute;top:calc(var(--k) * -3px);bottom:calc(var(--k) * -3px);width:calc(var(--k) * 12px);border-radius:calc(var(--k) * 4px);background:linear-gradient(90deg,var(--chrome-lo),var(--chrome-hi) 45%,var(--chrome) 70%,var(--chrome-lo))}
.platen::before{left:calc(var(--k) * -10px)}
.platen::after{right:calc(var(--k) * -10px)}
.bail{position:absolute;left:8%;right:8%;top:calc(var(--k) * 24px);height:calc(var(--k) * 4px);border-radius:4px;background:linear-gradient(180deg,var(--chrome-hi),var(--chrome-lo))}
.bail i{position:absolute;top:calc(var(--k) * -4px);width:calc(var(--k) * 26px);height:calc(var(--k) * 12px);border-radius:calc(var(--k) * 6px);background:linear-gradient(180deg,#3a3634,#0e0c0b)}
.bail i:first-child{left:22%}
.bail i:last-child{right:22%}
.knob{
  position:absolute;top:calc(var(--k) * 4px);width:calc(var(--k) * 52px);height:calc(var(--k) * 52px);border-radius:50%;
  background:repeating-conic-gradient(#1b1816 0 6deg,#3b3532 6deg 12deg);
  box-shadow:inset 0 0 0 calc(var(--k) * 3px) #0c0b0a,0 3px 6px rgba(0,0,0,.45);
}
.knob i{position:absolute;inset:28%;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--chrome-hi),var(--chrome) 45%,var(--chrome-lo))}
.knob-l{left:calc(var(--k) * 8px)}
.knob-r{right:calc(var(--k) * 8px)}
.lever{
  position:absolute;left:calc(var(--k) * -6px);top:calc(var(--k) * -8px);width:calc(var(--k) * 64px);height:calc(var(--k) * 9px);
  border-radius:calc(var(--k) * 5px);background:linear-gradient(180deg,var(--chrome-hi),var(--chrome-lo));
  transform-origin:100% 50%;transform:rotate(22deg);box-shadow:0 2px 3px rgba(0,0,0,.35);
}
.lever::before{content:"";position:absolute;left:calc(var(--k) * -4px);top:calc(var(--k) * -6px);width:calc(var(--k) * 16px);height:calc(var(--k) * 21px);border-radius:calc(var(--k) * 5px);background:linear-gradient(90deg,var(--chrome-lo),var(--chrome-hi))}

/* type guide + ribbon vibrator: fixed at the strike point, the carriage moves under it */
.guide{position:absolute;left:50%;top:calc(var(--k) * 10px);z-index:4;width:0;height:0;pointer-events:none}
.notch{position:absolute;left:calc(var(--k) * -18px);top:calc(var(--k) * -3px);width:calc(var(--k) * 36px);height:calc(var(--k) * 15px);background:linear-gradient(180deg,var(--chrome-hi),var(--chrome-lo));clip-path:polygon(0 0,36% 0,50% 60%,64% 0,100% 0,86% 100%,14% 100%);filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}
.ribbon{position:absolute;left:calc(var(--k) * -13px);top:calc(var(--k) * -1px);width:calc(var(--k) * 26px);height:calc(var(--k) * 9px);background:linear-gradient(180deg,#141210 50%,var(--red) 50%);border-radius:1px;opacity:.85}

.body{
  position:relative;z-index:2;margin:calc(var(--k) * -22px) auto 0;
  width:min(100vw,calc(var(--pw) + var(--k) * 40px));
  padding:calc(var(--k) * 30px) calc(var(--k) * 18px) calc(var(--k) * 14px + env(safe-area-inset-bottom));
  border-radius:calc(var(--k) * 30px) calc(var(--k) * 30px) 0 0;
  background:
    radial-gradient(120% 60% at 50% 0%,rgba(255,255,255,.22),transparent 60%),
    linear-gradient(180deg,var(--enamel-hi),var(--enamel) 22%,var(--enamel-lo) 75%,var(--enamel-dk));
  box-shadow:inset 0 2px 0 rgba(255,255,255,.35),inset 0 -8px 16px rgba(0,0,0,.18);
}
.spool{
  position:absolute;top:calc(var(--k) * 16px);width:calc(var(--k) * 58px);height:calc(var(--k) * 58px);border-radius:50%;
  background:
    radial-gradient(circle,var(--chrome-hi) 0 14%,transparent 15%),
    repeating-conic-gradient(var(--chrome) 0 20deg,var(--chrome-lo) 20deg 40deg);
  box-shadow:inset 0 0 0 calc(var(--k) * 10px) #1a1715,inset 0 0 0 calc(var(--k) * 12px) #0c0b0a,0 2px 4px rgba(0,0,0,.35);
}
.spool-l{left:calc(var(--k) * 30px)}
.spool-r{right:calc(var(--k) * 30px)}
.basket{
  position:relative;margin:0 auto;width:calc(var(--k) * 190px);height:calc(var(--k) * 64px);
  border-radius:0 0 calc(var(--k) * 95px) calc(var(--k) * 95px)/0 0 calc(var(--k) * 64px) calc(var(--k) * 64px);
  background:radial-gradient(120% 100% at 50% 0%,#2b2825,#0e0c0b 80%);
  box-shadow:inset 0 4px 10px rgba(0,0,0,.7),0 1px 0 rgba(255,255,255,.3);
  overflow:hidden;
}
.bar{position:absolute;left:50%;top:0;width:calc(var(--k) * 3px);height:calc(var(--k) * 60px);margin-left:calc(var(--k) * -1.5px);transform-origin:50% 0}
.bar i{position:absolute;inset:0;transform-origin:50% 100%;transform:scaleY(.62);background:linear-gradient(180deg,var(--chrome-hi),var(--chrome-lo));border-radius:2px}
.bar i::before{content:"";position:absolute;left:-1px;right:-1px;top:0;height:calc(var(--k) * 6px);background:var(--chrome-hi);border-radius:1px}
.plate{
  display:block;margin:calc(var(--k) * 8px) auto calc(var(--k) * 10px);width:max-content;
  font:calc(var(--k) * 11px)/1 var(--elite);letter-spacing:.34em;color:#f4efe2;
  text-shadow:0 1px 0 rgba(0,0,0,.35);opacity:.9;
}
.plate em{font-style:normal;color:#ffd7c9;letter-spacing:.1em}
.keys{display:flex;flex-direction:column;align-items:center;gap:calc(var(--k) * 7px)}
.krow{display:flex;gap:calc(var(--k) * 8px)}
.krow:nth-child(2){transform:translateX(calc(var(--k) * 10px))}
.krow:nth-child(3){transform:translateX(calc(var(--k) * 20px))}
.krow:nth-child(4){transform:translateX(calc(var(--k) * 0px))}
.key{
  position:relative;width:calc(var(--k) * 31px);height:calc(var(--k) * 31px);flex:none;border-radius:50%;padding:0;border:0;cursor:pointer;
  background:radial-gradient(circle at 50% 38%,#fffaf0,var(--key) 55%,var(--key-lo));
  box-shadow:0 0 0 calc(var(--k) * 2.5px) var(--chrome),0 0 0 calc(var(--k) * 3.5px) var(--chrome-lo),0 calc(var(--k) * 5px) 0 calc(var(--k) * 3px) rgba(20,30,27,.55);
  font:700 calc(var(--k) * 12px)/1 var(--type);color:#2a2522;
  display:grid;place-items:center;
  transition:transform .07s ease-out,box-shadow .07s ease-out;
  -webkit-tap-highlight-color:transparent;
}
.key.wide{width:calc(var(--k) * 52px);border-radius:calc(var(--k) * 16px);font-size:calc(var(--k) * 13px)}
.key.down{transform:translateY(calc(var(--k) * 4px));box-shadow:0 0 0 calc(var(--k) * 2.5px) var(--chrome),0 0 0 calc(var(--k) * 3.5px) var(--chrome-lo),0 calc(var(--k) * 1px) 0 calc(var(--k) * 2px) rgba(20,30,27,.55)}
.space{
  width:calc(var(--k) * 270px);height:calc(var(--k) * 15px);margin-top:calc(var(--k) * 4px);border:0;padding:0;cursor:pointer;
  border-radius:calc(var(--k) * 8px);background:linear-gradient(180deg,var(--chrome-hi),var(--chrome) 50%,var(--chrome-lo));
  box-shadow:0 calc(var(--k) * 4px) 0 rgba(20,30,27,.5);transition:transform .07s,box-shadow .07s;
}
.space.down{transform:translateY(calc(var(--k) * 3px));box-shadow:0 calc(var(--k) * 1px) 0 rgba(20,30,27,.5)}

/* ---------- no JS: sources are just a readable page ---------- */
.sources section{width:var(--pw);margin:0 auto 34px;padding:48px 56px;background:var(--paper);color:var(--ink);font:17px/1.78 var(--type)}
.js .sources{display:none}
html:not(.js) .desk,html:not(.js) .machine{display:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .desk{grid-template-columns:minmax(0,1fr);justify-items:center;padding-top:14px}
  .date-rail{grid-column:1;position:static;justify-self:stretch;max-width:none;margin:0 -22px 18px;padding:0}
  .rail-label{display:none}
  .date-rail ol{flex-direction:row;overflow-x:auto;padding:4px 22px 10px;scroll-snap-type:x proximity;scrollbar-width:none}
  .date-rail ol::-webkit-scrollbar{display:none}
  .date-rail li{flex:none;scroll-snap-align:start}
  .date-rail a{width:176px;height:100%;border-radius:10px 10px 3px 3px}
  .date-rail a:hover{transform:translateY(-2px)}
  .date-rail a[aria-current="page"]{transform:translateY(-4px)}
  .date-rail a[aria-current="page"]::before{left:50%;top:auto;bottom:-6px;width:22px;height:2px;margin-left:-11px}
  .sheet-slot{grid-column:1}
  .controls{
    position:fixed;z-index:35;right:12px;bottom:calc(var(--mv) + 12px);top:auto;max-width:none;
    flex-direction:column-reverse;align-items:flex-end;gap:8px;transition:bottom .5s cubic-bezier(.3,.7,.2,1);
  }
  .ctl{width:auto;padding:0;border-radius:999px;background:rgba(27,22,19,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 16px rgba(0,0,0,.3)}
  :root[data-lamp="day"] .ctl{background:rgba(250,246,238,.9)}
  .ctl-ico{width:40px;height:40px;font-size:17px;box-shadow:none;background:transparent;color:var(--desk-ink)}
  .ctl .ctl-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ctl[aria-pressed="true"] .ctl-ico{background:var(--red);color:#fff;border-radius:50%}
  .ctl-main{padding:0 14px 0 0;background:var(--paper)}
  .ctl-main .ctl-txt{position:static;width:auto;height:auto;clip:auto;font-size:13px}
  .ctl-main .ctl-ico{background:transparent;color:var(--ink)}
  .ctl-main[data-state="idle"]{background:rgba(27,22,19,.82);color:var(--desk-ink)}
  :root[data-lamp="day"] .ctl-main[data-state="idle"]{background:rgba(250,246,238,.9)}
  .ctl-main[data-state="idle"] .ctl-ico{background:transparent;color:var(--desk-ink);box-shadow:none}
  .ctl-more{display:flex}
  .ctl-extra{display:none;position:absolute;right:0;bottom:calc(100% + 8px);flex-direction:column-reverse;align-items:flex-end}
  .controls.open .ctl-extra{display:flex}
  .ctl-hint{display:none}
  /* while the machine is up, the buttons sit on its body next to the typebasket */
  .m-up .controls{bottom:calc(var(--mv) - var(--k) * 36px - 48px);flex-direction:row-reverse;align-items:center}
  .m-up .ctl-main{padding:0}
  .m-up .ctl-main .ctl-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (max-width:860px){
  .head-inner{padding:12px 16px 0;flex-wrap:wrap;gap:10px}
  .main-nav{flex:1 0 100%;margin:0 -16px;overflow-x:auto;scrollbar-width:none}
  .main-nav::-webkit-scrollbar{display:none}
  .main-nav ul{padding:0 16px 10px;gap:6px}
  .main-nav li{flex:none}
  .main-nav a{padding:6px 12px;border:1px solid var(--desk-line);font-size:13.5px}
  .main-nav a[aria-current="page"]{color:var(--ink);background:var(--paper);border-color:var(--paper);box-shadow:none}
  :root[data-lamp="day"] .main-nav a[aria-current="page"]{background:var(--paper)}
}
@media (max-width:640px){
  .desk{padding:10px 14px 0}
  .date-rail{margin:0 -14px 12px}
  .date-rail ol{padding:4px 14px 10px}
  .date-rail a{width:150px;padding:8px 10px}
  .sheet{padding:34px 22px 44px;font-size:15.5px;line-height:1.72;min-height:420px}
  .sheet h1{font-size:27px}
  .sheet h2{font-size:18.5px}
  .sheet blockquote{margin-left:.4em}
  .cover{width:84px;height:122px;font-size:12px;margin-left:1em;padding:8px}
  .portrait{width:120px;height:150px;padding-bottom:28px;margin-left:1em}
  .portrait::after{inset:7px 7px 28px}
  .portrait span{font-size:10.5px;bottom:9px}
  .letter input,.letter textarea{font-size:16px}
  .brand-text b{font-size:22px}
  .brand-mark{width:34px;height:34px;font-size:20px}
  .spool{display:none}
}

@media (prefers-reduced-motion:reduce){
  .c.on,.pop,.machine,.sheet .letterhead::after,.sheet blockquote::before{animation:none!important;transition:none!important}
}
@media print{
  .machine,.controls,.date-rail,.demo-ribbon,.desk-head,.follow-pill{display:none!important}
  body{background:#fff;padding:0}
  .sheet{box-shadow:none;transform:none!important}
  .c{opacity:1!important}
}

/* Journal desk. The manuscript scrolls independently of the page, so
   navigation and machine controls stay where the reader expects them. */
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(../skizze/fonts/dm-sans-400-700-latin.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400 700;font-display:swap;src:url(../skizze/fonts/fraunces-400-700-latin.woff2) format("woff2")}
:root{
  --ui:"DM Sans",sans-serif;--serif:"Fraunces",Georgia,serif;
  --pw:560px;--desk:#252c29;--desk-2:#1e2522;--desk-ink:#eee9db;--desk-dim:#b5beb3;
  --desk-line:#ffffff24;--card:#303934;--rail-red:#edac92;--red:#9b4331;
  --enamel-hi:#739083;--enamel:#526e60;--enamel-lo:#3d584a;--enamel-dk:#293f34;
  --chrome-hi:#f4eedd;--chrome:#b3b3a4;--chrome-lo:#686f63;
}
:root[data-lamp="day"]{
  --desk:#eae6dc;--desk-2:#e0ddd1;--desk-ink:#343d32;--desk-dim:#666a5e;
  --desk-line:#39423029;--card:#f0ede4;--card-hi:#f7f4eb;--rail-red:#91452f;
  --paper:#fbf7ec;--paper-edge:#ded4ba;--lamp:#ffffff55;
}
body{padding-bottom:0;background:radial-gradient(ellipse at 51% 35%,var(--lamp),transparent 65%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.035' filter='url(%23n)'/%3E%3C/svg%3E"),var(--desk);font-family:var(--ui);transition:background-color .4s,color .4s}
[hidden]{display:none!important}
.demo-ribbon{padding:6px 18px;background:var(--desk-2);color:var(--desk-dim);font:10px/1.5 var(--ui);letter-spacing:.07em}
.demo-ribbon a,:root[data-lamp="day"] .demo-ribbon a{color:var(--desk-ink)}
:root[data-lamp="day"] .demo-ribbon{background:#dedbcf;color:#5c6155}
.head-inner{max-width:1440px;padding:18px 48px;gap:24px}
.brand{gap:12px}.brand-mark{width:32px;height:32px;font-size:20px;background:var(--desk-ink);color:var(--desk);box-shadow:none;border:1px solid var(--desk);outline:1px solid var(--desk-ink);outline-offset:3px}
.brand-text b{font:400 29px/.95 var(--serif);letter-spacing:-1px}.brand-text small{margin-top:7px;font:10px/1.3 var(--ui);letter-spacing:.065em}
.main-nav ul{gap:22px}.main-nav a{padding:9px 0;border-radius:0;font:12px/1.4 var(--ui);position:relative}
.main-nav a:hover{background:none;color:var(--desk-ink)}
.main-nav a[aria-current="page"],:root[data-lamp="day"] .main-nav a[aria-current="page"]{box-shadow:none;background:none;color:var(--desk-ink)}
.main-nav a[aria-current="page"]::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--rail-red)}
.desk-intro{text-align:center;padding:18px 20px 22px}
.desk-intro>p{margin:0 0 8px;font-size:9px;letter-spacing:.23em;color:var(--desk-dim)}
.desk-intro h1{margin:0;font:400 clamp(25px,3vw,37px)/1.25 var(--serif);letter-spacing:-1.2px}
.desk-intro h1 em{font-weight:400;color:var(--rail-red)}
.desk-intro>span{display:block;font-size:11px;margin-top:9px;color:var(--desk-dim)}
.desk{max-width:1360px;grid-template-columns:210px minmax(0,1fr) 194px;gap:36px;padding:0 38px 34px;align-items:start}
.date-rail{position:static;grid-column:auto;max-width:none;padding-top:4px;z-index:1}
.rail-heading{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--desk-line);padding-bottom:14px}
.rail-label{margin:0;color:var(--desk-ink);font:600 10px/1.2 var(--ui);letter-spacing:.15em}
.rail-heading>span{color:var(--desk-dim);font:11px var(--type)}
.rail-intro{font:12px/1.65 var(--ui);color:var(--desk-dim);margin:15px 0 17px}
.date-rail ol{gap:0}.date-rail a{padding:13px 10px 14px 14px;border:0;border-left:2px solid transparent;border-bottom:1px solid var(--desk-line);border-radius:0;background:transparent}
.date-rail a:hover{background:var(--card);transform:translateX(3px);border-color:var(--desk-line)}
.rd{font:10px/1.3 var(--type);color:var(--desk-dim);letter-spacing:.06em}.rt{font:400 13px/1.5 var(--serif);margin-top:5px}
.date-rail a[aria-current="page"]{background:var(--card);border-left-color:var(--rail-red);transform:none;box-shadow:none;border-bottom-color:var(--desk-line)}
.date-rail a[aria-current="page"] .rt{color:var(--desk-ink)}.date-rail a[aria-current="page"] .rd{color:var(--rail-red)}
.date-rail a[aria-current="page"]::before{display:none}
.date-rail .archive-link{font:11px var(--ui);padding:17px 0;border:0;display:flex;justify-content:space-between}
.desk-note{margin:29px 5px 0;padding:22px 17px;background:#e2debe;color:#50543b;transform:rotate(-4deg);box-shadow:2px 6px 7px #0000000c;position:relative}
.desk-note::before{content:"";position:absolute;width:48px;height:17px;top:-8px;left:40%;background:#f8f4df85;transform:rotate(5deg)}
.desk-note>span{font:9px var(--ui);letter-spacing:.05em}.desk-note p{font:italic 20px/1.3 var(--serif);margin:12px 0}.desk-note i{display:block;text-align:right;font:italic 15px var(--serif)}
.writing-station{min-width:0;width:100%;max-width:650px;justify-self:center;position:relative;--pw:min(540px,calc(100% - 64px))}
.station-meta,.station-foot{display:flex;justify-content:space-between;gap:12px;font:9px/1.5 var(--ui);letter-spacing:.08em;color:var(--desk-dim)}
.station-meta{padding:0 30px 15px;text-transform:uppercase}.station-meta>span:first-child{display:flex;align-items:center;gap:7px}
.station-meta i{width:5px;height:5px;background:#798b6f;border-radius:50%;display:inline-block}.is-typing .station-meta i{animation:status-pulse 1.6s ease-in-out infinite}
@keyframes status-pulse{50%{box-shadow:0 0 0 4px #798b6f22}}
.paper-frame{position:relative;margin:0 auto;width:var(--pw);filter:drop-shadow(0 6px 12px #17231618)}
.paper-frame::before,.paper-frame::after{content:"";position:absolute;background:var(--paper-edge);inset:4px -3px 0;transform:rotate(.7deg);z-index:-1;border:1px solid #95897033}
.paper-frame::after{inset:6px 0 0;transform:rotate(-1deg)}
.sheet-slot{width:100%;height:clamp(285px,calc(100svh - 610px),490px);position:relative;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b8ad94 var(--paper);scroll-padding:24px;outline-offset:4px;box-shadow:0 0 1px #5e503944,0 14px 35px #13241712}
.sheet{width:100%;min-height:100%;padding:35px 42px 48px;margin:0;font-size:15px;line-height:1.75;transform-origin:50% 85%;box-shadow:none!important;will-change:auto}
.sheet h1{font-size:34px;line-height:1.2;letter-spacing:-.8px;margin-bottom:.7em}
.sheet h2{font-size:19px}.sheet .letterhead{font-size:9px;letter-spacing:.07em;gap:8px;margin-bottom:26px;padding-bottom:14px}
.sheet .letterhead::after{border-bottom:1px solid #7a6a5240}
.sheet .colophon{font-size:10px}.sheet .index-list{font-size:13px}.sheet .index-list li{margin-bottom:9px}
.sheet .sheet-nav{font-size:12px}.sheet .sign{font-style:italic}.sheet blockquote{margin-left:0;font-size:16px}
.c{top:0}.c.on{animation:ink-strike .13s ease-out}.c.tx{box-shadow:none;background:none}
@keyframes ink-strike{from{text-shadow:0 0 1.5px currentColor;opacity:.45}to{text-shadow:none;opacity:1}}
.type-caret{position:absolute;left:0;top:0;z-index:4;width:8px;height:2px;background:var(--red);pointer-events:none;opacity:0;transition:transform 45ms linear}
.is-typing .type-caret{opacity:.8}.is-paused .type-caret{animation:status-pulse 1.2s infinite}
.follow-pill,:root:not([data-lamp="day"]) .follow-pill{position:absolute;bottom:16px;left:50%;z-index:6;background:#344c3e;color:#fff9e8;font:11px var(--ui);white-space:nowrap;padding:10px 14px;box-shadow:0 3px 12px #0002}
.machine{position:relative;left:auto;right:auto;bottom:auto;transform:none!important;margin:-9px auto 0;width:100%;z-index:5;filter:drop-shadow(0 15px 11px #15281e2b);transition:opacity .3s}
.carriage{width:calc(100% - 4px);height:calc(var(--k) * 58px);z-index:3}
.platen{left:calc(var(--k) * 51px);right:calc(var(--k) * 51px)}
.paper-scale{position:absolute;top:-5px;left:3%;right:3%;height:9px;border-top:1px solid #d1c7ac;background:repeating-linear-gradient(90deg,#aba18b 0 1px,transparent 1px 8px),#d7ceb7;box-shadow:0 -1px 2px #0005}
.knob{width:calc(var(--k) * 43px);height:calc(var(--k) * 43px);top:calc(var(--k) * 8px)}
.lever{left:calc(var(--k) * 0px);top:calc(var(--k) * -2px)}
.body{width:calc(100% - 22px);padding:calc(var(--k) * 18px) calc(var(--k) * 18px) calc(var(--k) * 23px);border:1px solid #334a3c;border-radius:22px 22px 32px 32px / 30px 30px 20px 20px;box-shadow:inset 0 2px 1px #c5dac17a,inset 2px 0 3px #bed0bb40,inset -2px 0 3px #0003,inset 0 -9px 1px #162c215c,0 5px 0 #253b2d,0 8px 1px #1a2b21;transform:perspective(850px) rotateX(9deg);transform-origin:top}
.body::before{content:"";position:absolute;left:8%;right:8%;top:calc(var(--k) * 104px);bottom:calc(var(--k) * 21px);border-radius:18px 18px 27px 27px;background:linear-gradient(#1b2a20,#2c4436);box-shadow:inset 0 2px 6px #0009,0 1px 0 #b2bba25c}
.basket{height:calc(var(--k) * 53px);width:calc(var(--k) * 185px)}
.spool{display:block;top:calc(var(--k) * 10px);width:calc(var(--k) * 60px);height:calc(var(--k) * 60px);background:radial-gradient(circle,#c4c2ab 0 8%,#303c2e 9% 17%,transparent 18% 46%,#22281e 47% 59%,#5c6854 60% 65%,#20271f 66%),repeating-conic-gradient(#2b3327 0 30deg,#727964 30deg 48deg,#242d22 48deg 60deg)}
.spool-l{left:11%}.spool-r{right:11%}
.plate{position:relative;font:calc(var(--k) * 13px)/1 var(--serif);letter-spacing:.2em;margin:calc(var(--k) * 10px) auto calc(var(--k) * 18px);color:#e3dec4;opacity:1}
.plate em{font:italic calc(var(--k) * 10px) var(--serif);letter-spacing:0;color:#c6d0b7;margin-left:9px}
.keys{position:relative;gap:calc(var(--k) * 9px);padding-top:calc(var(--k) * 2px)}
.key{background:radial-gradient(ellipse at 50% 36%,#eee9d7 0%,#d4cfb9 75%,#a09d85);box-shadow:0 0 0 calc(var(--k) * 2px) #9a9e86,0 0 0 calc(var(--k) * 3px) #27392c,0 calc(var(--k) * 5px) 1px calc(var(--k) * 2px) #101d15;color:#263123}
.key.down{background:#c4c6a7;box-shadow:0 0 0 calc(var(--k) * 2px) #c0c3a3,0 calc(var(--k) * 1px) 0 calc(var(--k) * 2px) #15241a}
.space{height:calc(var(--k) * 17px);background:linear-gradient(#d6d3bb,#aaa98e);margin-top:calc(var(--k) * 5px)}
.machine-screw{position:absolute;width:5px;height:5px;bottom:17px;border-radius:50%;background:linear-gradient(45deg,#919b7e 42%,#2d4432 44% 56%,#919b7e 58%);box-shadow:0 1px 1px #0008}.screw-l{left:20px}.screw-r{right:20px}
.station-foot{margin:18px 29px 7px;font-size:9px;letter-spacing:0}.progress-track{height:1px;background:var(--desk-line);margin:0 29px}.progress-track>span{display:block;height:100%;width:0;background:var(--rail-red);transition:width .25s linear}
.controls{position:static;grid-column:auto;max-width:none;display:flex;gap:7px;padding:4px 0 0;width:100%;z-index:6}
.writer-card{border-bottom:1px solid var(--desk-line);padding-bottom:22px;margin-bottom:16px}
.eyebrow{font:9px/1.4 var(--ui);letter-spacing:.15em;text-transform:uppercase;color:var(--desk-dim)}
.writer-card p{font:24px/1.2 var(--serif);margin:13px 0 9px}.writer-card p span{display:block;font:11px var(--ui);margin-top:8px;color:var(--desk-dim)}
.writer-location{font:10px var(--type);color:var(--desk-dim)}
.ctl{font:11px/1.4 var(--ui);padding:10px 12px;min-height:40px;border-radius:4px;gap:10px;background:transparent;box-shadow:none;backdrop-filter:none;transition:background .2s,transform .2s}
.ctl:hover{background:var(--card);border-color:var(--desk-line)}.ctl:active{transform:translateY(1px)}
.ctl-ico{font:17px/1 var(--type);width:18px;height:18px;box-shadow:none;background:none;color:inherit;border-radius:0}
.ctl .ctl-txt{position:static;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal}
.ctl-main,.ctl-main[data-state="idle"]{background:var(--desk-ink);color:var(--desk);border-color:var(--desk-ink);font-weight:600}
.ctl-main:hover{background:var(--desk-ink);opacity:.9}.ctl-main .ctl-ico,.ctl-main[data-state="idle"] .ctl-ico{color:inherit;background:none;box-shadow:none}
.ctl[aria-pressed="true"] .ctl-ico{background:transparent;color:var(--rail-red)}.ctl:disabled{opacity:.4;cursor:default}
.ctl-extra{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--desk-line);margin-top:9px;padding-top:9px}.ctl-extra .ctl{border-color:transparent;padding:7px 9px;min-height:35px}
.ctl-more{display:none}.ctl-hint{font:10px/1.8 var(--ui);margin:9px 0 0}
:root[data-lamp="day"] .ctl{background:transparent}
:root[data-lamp="day"] .ctl-main,:root[data-lamp="day"] .ctl-main[data-state="idle"]{background:var(--desk-ink);color:var(--desk)}
:root[data-lamp="day"] .ctl-main .ctl-ico{color:inherit}
.next-reading{border-top:1px solid var(--desk-line);margin-top:21px;padding-top:21px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.next-reading strong{font:23px var(--serif);font-weight:400}.next-reading>span:not(.eyebrow){font:11px/1.8 var(--ui);color:var(--desk-dim)}.next-reading a{font-size:11px;text-underline-offset:4px;text-decoration-color:var(--rail-red)}
.desk-footer{display:flex;justify-content:space-between;gap:20px;max-width:1284px;margin:0 auto;padding:19px 0 24px;border-top:1px solid var(--desk-line);font:10px/1.6 var(--ui);color:var(--desk-dim)}.desk-footer a{text-decoration:none}
.reading-mode .machine{display:none}.reading-mode .sheet-slot{height:min(72svh,800px)}.reading-mode .type-caret{display:none}.reading-mode .station-foot{margin-top:15px}
.is-paused .station-meta i{animation-play-state:paused}
.sheet a,.sheet input,.sheet textarea,.sheet button{visibility:hidden}.sheet a.b-on,.sheet input.b-on,.sheet textarea.b-on,.sheet button.b-on,.sheet.done a,.sheet.done input,.sheet.done textarea,.sheet.done button,.sheet.instant a,.sheet.instant input,.sheet.instant textarea,.sheet.instant button{visibility:visible}
html:not(.js) .desk-intro,html:not(.js) .desk-footer{display:none}
@media(min-width:1600px){.desk{gap:46px}.sheet-slot{height:490px}}
@media(max-width:1180px){
  .head-inner{padding:21px 30px}.desk{grid-template-columns:172px minmax(0,1fr) 166px;gap:22px;padding:0 25px 30px;justify-items:stretch}.date-rail{margin:0;justify-self:stretch}.date-rail ol{flex-direction:column;overflow:visible;padding:0}.date-rail li{flex:auto}.date-rail a{width:auto;height:auto}.rail-label{display:block}.date-rail a[aria-current="page"]{transform:none}.sheet-slot{grid-column:auto}.sheet{padding:30px 27px 40px}.sheet h1{font-size:30px}.controls,.m-up .controls{position:static;flex-direction:column;align-items:stretch;gap:7px;max-width:none}.ctl,.ctl-main,.m-up .ctl-main{width:100%;padding:9px 10px;border-radius:4px;background:transparent;box-shadow:none}.ctl-main,.ctl-main[data-state="idle"],:root[data-lamp="day"] .ctl-main[data-state="idle"]{background:var(--desk-ink);color:var(--desk)}.ctl .ctl-txt,.m-up .ctl-main .ctl-txt{position:static;width:auto;height:auto;clip:auto}.ctl-ico{width:18px;height:18px;background:none!important;color:inherit}.ctl-extra,.controls.open .ctl-extra{position:static;display:flex;align-items:stretch;flex-direction:column}.ctl-more{display:none}.ctl-hint{display:block}.station-meta{padding-left:15px;padding-right:15px}.desk-footer{margin:0 25px}.writing-station{--pw:calc(100% - 40px)}
}
@media(max-width:950px){
  .desk{grid-template-columns:155px minmax(0,1fr);gap:25px;max-width:850px}.controls{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);margin-top:-5px}.writer-card,.next-reading{display:none}.ctl-extra{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(4,1fr);gap:3px;margin:0}.ctl-extra .ctl{font-size:10px;padding:7px 3px}.ctl-hint{grid-column:1/-1;text-align:center}.desk-intro{padding:22px 15px}.main-nav ul{gap:16px}.head-inner{flex-wrap:nowrap}.main-nav{flex:initial;margin:0;overflow:visible}.main-nav ul{padding:0}.main-nav a{border:0;font-size:11px}.sheet-slot{height:380px}.desk-footer>span:nth-child(2){display:none}.desk-note{margin-top:28px}.machine{max-width:580px}
}
@media(max-width:640px){
  .demo-ribbon{font-size:9px;gap:9px}.head-inner{padding:18px 20px 0;flex-wrap:wrap;gap:18px}.brand-text b{font-size:27px}.brand-text small{font-size:9px}.brand-mark{width:29px;height:29px}.main-nav{flex:1 0 100%;margin:0 -20px;overflow-x:auto}.main-nav ul{padding:0 20px 12px;gap:22px}.main-nav a{font-size:11px;padding:4px 0 7px;white-space:nowrap}.desk-intro{padding:22px 15px 21px}.desk-intro h1{font-size:27px}.desk-intro>p{font-size:8px}.desk-intro>span{font-size:10px}.desk{display:flex;flex-direction:column;gap:18px;padding:0 14px 25px}.date-rail{width:calc(100% + 28px);margin:0 -14px;padding:0}.rail-heading,.rail-intro,.desk-note,.date-rail .archive-link{display:none}.date-rail ol{flex-direction:row;overflow-x:auto;padding:0 14px 8px;gap:8px;scrollbar-width:none}.date-rail li{flex:0 0 155px}.date-rail a{border:1px solid var(--desk-line);border-radius:3px;padding:9px 11px;height:100%;background:var(--card)}.rd{font-size:9px}.rt{font-size:12px;line-height:1.3}.date-rail a[aria-current="page"]{border-color:var(--rail-red)}.writing-station{width:100%;--pw:calc(100% - 30px)}.station-meta{font-size:8px;padding:0 16px 11px}.sheet-slot{height:330px}.sheet{padding:28px 23px 38px;font-size:14px;line-height:1.72}.sheet h1{font-size:29px}.sheet .letterhead{font-size:8px;letter-spacing:0;margin-bottom:21px}.sheet h2{font-size:18px}.sheet .index-list{font-size:12px}.sheet .index-list a{gap:8px}.sheet blockquote{font-size:14px}.controls,.m-up .controls{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:0}.ctl,.ctl-main,.m-up .ctl-main{justify-content:center;padding:10px 6px;font-size:10px;gap:6px;min-height:42px}.ctl .ctl-txt,.m-up .ctl-main .ctl-txt{font-size:10px}.ctl-extra{grid-template-columns:repeat(2,1fr);padding-top:8px}.ctl-extra .ctl{font-size:11px;justify-content:flex-start;padding:8px 12px;min-height:40px}.ctl-extra .ctl .ctl-txt{font-size:11px}.ctl-hint{font-size:9px;margin:3px 0 0}.station-foot{margin:15px 16px 6px;font-size:8px}.progress-track{margin:0 16px}.desk-footer{margin:0 18px;font-size:9px;padding:16px 0;gap:12px}.machine .body{border-radius:16px 16px 24px 24px}.spool-l{left:9%}.spool-r{right:9%}.plate em{margin-left:4px}.reading-mode .sheet-slot{height:65svh}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.type-caret{display:none}}
@media(max-width:640px){
  body{padding-bottom:83px}.desk-intro{padding:17px 15px 18px}.desk-intro>p{margin-bottom:6px}.desk-intro>span{margin-top:6px}.sheet-slot{height:clamp(215px,calc(100svh - 575px),300px)}
  .controls,.m-up .controls{position:fixed;left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));top:auto;width:auto;grid-template-columns:1.2fr 1.2fr 1fr 40px;gap:5px;padding:7px;border:1px solid var(--desk-line);border-radius:8px;background:var(--desk);box-shadow:0 4px 24px #0002;z-index:40}
  .ctl-more{display:flex}.ctl-more .ctl-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .ctl-hint{display:none}.controls .ctl-extra{display:none!important;position:absolute;left:0;right:0;bottom:calc(100% + 8px);padding:10px;margin:0;border:1px solid var(--desk-line);border-radius:7px;background:var(--desk);box-shadow:0 5px 20px #0002;grid-template-columns:1fr 1fr}
  .controls.open .ctl-extra{display:grid!important}.ctl-extra .ctl{width:100%}.desk-footer{margin-top:8px}
}
@media print{.desk-head,.desk-intro,.desk-footer,.controls,.date-rail,.station-meta,.station-foot,.progress-track,.machine{display:none!important}.desk{display:block;padding:0}.writing-station,.paper-frame,.sheet-slot,.sheet{width:100%;height:auto;overflow:visible}.sheet{padding:20px}.sheet a{visibility:visible}.paper-frame::before,.paper-frame::after{display:none}}
