@font-face{font-family:GeistPixelSquare;src:url('/fonts/geist-pixel-square.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:GeistMono;src:url('/fonts/geist-mono-variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--reader-tool-gap:20px;--yellow:#f7ff17;--text:#eeeeea;--muted:#a2a9b6;--rule:#3b424f;--bg:#121419;--card:#181b21;--panel:#21252d}html,body{overflow-x:clip;overscroll-behavior-x:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 GeistMono,monospace}button,input,textarea{font:inherit}a{color:var(--yellow);text-underline-offset:4px}button{cursor:pointer;background:none;border:0;padding:8px 0;color:var(--muted);text-decoration:underline;text-underline-offset:4px}button:disabled{opacity:.45;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}[hidden]{display:none!important}.shell{width:min(100% - 64px,850px);margin:0 auto}header{display:flex;justify-content:space-between;align-items:center;padding:22px 0 10px;border-bottom:1px solid var(--rule);margin-bottom:var(--reader-tool-gap)}.wordmark{font:400 40px/1.1 GeistPixelSquare,monospace;letter-spacing:normal;color:var(--text);text-decoration:none;margin-left:0}.header-actions{display:grid;grid-auto-flow:column;grid-auto-columns:44px;gap:8px}h1{font-size:20px;font-weight:400}#status{font-size:13px;line-height:1.6;color:var(--text);margin:0;overflow-wrap:anywhere}.entry{--entry-padding:20px;border:1px dotted var(--rule);background:var(--card);padding:var(--entry-padding);margin-bottom:var(--reader-tool-gap);min-width:0;overflow-wrap:anywhere}.entry h2{font-size:24px;font-weight:400;line-height:1.3;margin:0 0 8px;overflow-wrap:anywhere}.source{color:var(--muted);font-size:12px;margin:0}.actions{display:flex;gap:15px;font-size:12px}.actions button{padding:5px 0}.composer{border:1px solid #73736f;margin-top:12px;padding:18px}.composer h3{font-size:15px;margin:0 0 15px;font-weight:400}.composer label{display:block;font-size:12px;margin-bottom:14px}.muted{color:var(--muted);font-size:11px}input,textarea{display:block;width:100%;background:var(--bg);color:var(--text);border:1px solid #51514e;border-radius:0;padding:10px;margin-top:6px}textarea{resize:vertical;line-height:1.65}.markdown-link{font-size:11px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere;margin:0 0 17px}.composer-actions{display:flex;gap:22px;align-items:center}.composer-actions .primary{margin-left:auto}.primary{background:var(--yellow);color:#000;border:0;padding:9px 18px;text-decoration:none}.composer-status{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.preview{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0;overflow-wrap:anywhere}.preview::before{content:'PREVIEW';display:block;color:var(--muted);font-size:10px}.preview p{margin:10px 0}.preview pre{overflow:auto}.preview blockquote{border-left:2px solid var(--muted);padding-left:15px;margin-left:0}.error{color:#ffb8a6!important}.saved{color:var(--yellow)}#login{max-width:430px;padding:10px 0 80px}#login label{font-size:12px}#login .primary{margin-top:18px}.skip{position:absolute;top:-100px;left:20px;background:var(--yellow);color:#000;padding:8px}.skip:focus{top:10px}
@media(max-width:600px){.shell{width:calc(100% - 36px)}header{padding-top:18px}.wordmark{font-size:36px}.entry h2{font-size:22px}.composer{padding:13px}.composer-actions{gap:15px}.composer label .muted{display:block}}

.views{display:flex;flex-wrap:nowrap;gap:18px;align-items:center;max-width:100%;overflow-x:auto;overscroll-behavior-x:none;scroll-padding-inline:16px;scrollbar-width:none;margin:0 0 var(--reader-tool-gap);padding:6px 16px;background:#000;border:1px solid var(--rule);font-size:14px;color:var(--muted)}.views>*{flex:0 0 auto;white-space:nowrap}.views button{min-height:44px;padding:8px 0}.views button:focus-visible{outline-offset:2px}.views::-webkit-scrollbar{display:none;width:0;height:0}.views button[aria-pressed=true]{color:var(--yellow)}.snippet{margin:12px 0 0;padding-left:14px;border-left:1px solid var(--rule);color:var(--muted);font-size:13px;line-height:1.8;overflow-wrap:anywhere}.entry.read>h2 a{color:var(--muted)}.actions{flex-wrap:wrap;gap:20px}.actions button{min-height:36px}.actions button[aria-pressed=true]{color:var(--yellow)}
@media(hover:hover) and (pointer:fine){a:hover,button:hover,.entry.read>h2 a:hover{color:#fff}.primary:hover{background:#fff;color:#000}}
@media(hover:none){a,button{-webkit-tap-highlight-color:transparent}a:active,button:active{opacity:.7}}

.actions a{color:var(--muted);align-self:center}#mark-page{display:block;font-size:11px;margin:0 0 22px;padding-top:0}

.views button,.header-actions button,.actions button,.actions a,#mark-page,#more,.composer-actions button{text-decoration:none}.composer-actions{flex-wrap:wrap}

/* Prevent iOS focus zoom with readable field text, including landscape touch layouts. */
@media(max-width:600px),(hover:none) and (pointer:coarse){input,textarea{font-size:16px}}

.writing-composer{margin-top:0;border-color:var(--rule);padding:24px}.writing-composer textarea{min-height:300px;line-height:1.8}.writing-composer h3{font-size:20px;color:var(--text)}.writing-entry{border:0;padding:0;background:none}.draft-note{font-size:10px;color:var(--muted);margin:0 0 12px}.link-options{margin:10px 0 20px;font-size:12px}.link-options summary{cursor:pointer;color:var(--muted);margin-bottom:12px}.delete-confirm{border:1px solid #ffb8a6;padding:16px;margin-top:12px;font-size:12px}.delete-confirm>button{margin-right:20px;text-decoration:none}.delete-confirm p{margin-top:0}.danger{color:#ffb8a6}.actions .delete-action{color:var(--muted)}.composer-actions button{min-height:40px}.preview{line-height:1.8}
@media(max-width:600px){.writing-composer{padding:14px}.writing-composer textarea{min-height:260px}.entry:not(.writing-entry){--entry-padding:14px}.views{gap:16px}}

/* Keep nested editors and entry controls within the shared charcoal palette. */
.composer{background:var(--card);border-color:var(--rule)}

::selection{background:var(--yellow);color:#000}

/* Paint entry controls edge to edge, matching the public post footer. */
.entry>.actions{background:var(--panel);border:0;margin:12px calc(0px - var(--entry-padding)) calc(0px - var(--entry-padding));padding:0 var(--entry-padding);align-items:center;justify-content:space-between;gap:0 8px;font-size:13px;line-height:1.7}
.entry>.actions button,.entry>.actions a{min-height:36px;padding:6px 0;color:var(--text);white-space:nowrap}
.entry>.actions button[aria-pressed=true]{color:var(--yellow)}
.entry:has(>.composer,>.delete-confirm,>.actions~.snippet:not([hidden]))>.actions{margin-bottom:0}
/* The expanded description continues the control strip as a full-width drawer. */
.entry>.actions+.snippet{background:var(--panel);border:0;margin:0 calc(0px - var(--entry-padding)) calc(0px - var(--entry-padding));padding:4px var(--entry-padding) 14px}
.entry:has(>.composer,>.delete-confirm)>.actions+.snippet{margin-bottom:0}
@media(hover:hover) and (pointer:fine){.entry>.actions button:hover,.entry>.actions a:hover{color:#fff}}

/* Compose and page actions stay in the document, directly below navigation. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
a,button,summary{touch-action:manipulation}
button,input,textarea{-webkit-appearance:none;appearance:none}
.reader-tools{display:flex;align-items:stretch;gap:var(--reader-tool-gap);margin-bottom:var(--reader-tool-gap)}
.reader-tools #mark-page{flex:0 1 auto;min-width:0;min-height:48px;margin:0;padding:10px 12px;border:1px solid var(--rule);background:var(--panel);color:var(--text);text-align:left;font-size:13px;line-height:1.6}
.page-read-count{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.write-button{flex:1 0 auto;min-height:48px;padding:10px 18px;border:1px solid var(--yellow);background:var(--yellow);color:#000;text-decoration:none;font-size:15px;line-height:1.6;box-shadow:0 3px 16px #0006}
.write-button[aria-pressed=true]{background:var(--panel);color:var(--yellow)}
.page-controls{display:flex;justify-content:space-between;gap:24px;margin:24px 0}
.page-controls button{min-height:44px;text-decoration:none;font-size:13px}
#more{margin-left:auto}
#feed[aria-busy=true]{cursor:progress}
.entry>.actions a,.entry>.actions button{touch-action:manipulation}
@media(hover:hover) and (pointer:fine){.write-button:hover{background:#fff;border-color:#fff;color:#000}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Other coverage belongs to its story, in a text-only drawer. */
.coverage{margin:12px calc(0px - var(--entry-padding)) 0;border-top:1px dotted var(--rule);background:var(--panel)}
.coverage>summary{padding:10px var(--entry-padding);color:var(--muted);font-size:12px;cursor:pointer;min-height:40px}
.coverage>summary::marker{color:var(--yellow)}
.coverage[open]>summary{color:var(--text);border-bottom:1px dotted var(--rule)}
.coverage>.coverage-entry{margin:0;padding:var(--entry-padding);border:0;border-bottom:1px solid var(--rule);background:#101318}
.entry.coverage-entry h2{font-size:18px;line-height:1.3}
.coverage-entry>.source{font-size:11px}
.entry>.coverage+.actions{margin-top:0;border-top:1px solid var(--rule)}
summary:focus-visible{outline:2px solid var(--yellow);outline-offset:-3px}

/* Stories gradually soften during their final ten days; controls stay readable. */
.entry.aging>h2 a{color:color-mix(in srgb,var(--yellow),var(--muted) calc(var(--age-fade)*100%))}
.entry.read>h2 a{color:var(--muted)}

.draft-tools{display:flex;gap:24px;flex-wrap:wrap;margin:0 0 20px;font-size:13px}.draft-tools button,.draft-warning button{min-height:40px;text-decoration:none}.draft-warning{border:1px solid var(--yellow);padding:12px 16px;margin:0 0 20px;background:var(--panel);font-size:13px}.draft-warning p{margin:0 0 4px}.draft-warning button{color:var(--yellow)}

/* One continuous loading tile covers the entire tool row, including its gap. */
.reader-tools{position:relative}
.link-url-field{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.link-url-field label{flex:1 1 220px;min-width:0;margin-bottom:0}
.link-url-field button{min-height:44px;padding:10px 0;color:var(--yellow);white-space:nowrap;text-decoration:none}
.link-status{margin:0 0 14px;overflow-wrap:anywhere}
.link-status:empty{display:none}
.reader-tools.is-loading>button{opacity:0}
.reader-tools.is-loading::after{content:'';position:absolute;inset:0;border:1px solid var(--rule);background:var(--panel);pointer-events:none}
/* Keyboard users can still reveal and use Write to interrupt a slow request. */
.reader-tools.is-loading:focus-within>button{opacity:1}
.reader-tools.is-loading:focus-within::after{display:none}
.skeleton-card{--skeleton-padding:20px;border:1px dotted var(--rule);background:var(--card);padding:var(--skeleton-padding);margin-bottom:var(--reader-tool-gap);overflow:hidden}
.skeleton-line{height:22px;width:88%;margin:8px 0 12px;background:var(--panel)}
.skeleton-title{width:62%}
.skeleton-source{height:12px;width:35%;margin-top:20px}
.skeleton-footer{height:44px;background:var(--panel);margin:20px calc(0px - var(--skeleton-padding)) calc(0px - var(--skeleton-padding))}
@media(prefers-reduced-motion:no-preference){.reader-tools.is-loading::after,.skeleton-line{animation:skeleton-pulse 1.8s ease-in-out infinite}}
@keyframes skeleton-pulse{50%{background-color:#292e38}}
@media(max-width:600px){.skeleton-card{--skeleton-padding:14px}.reader-tools{min-height:calc(2 * 13px * 1.6 + 22px)}}


/* Notifications float above the document; their appearance never moves navigation. */
.notice{overflow-x:clip;position:fixed;z-index:1000;inset:0 0 auto;background:#000;color:var(--text);padding-top:env(safe-area-inset-top,0px);box-shadow:0 8px 24px #0006;animation:notice-enter 200ms ease-out both}
.notice-inner{display:flex;align-items:center;gap:20px;min-height:64px;padding-block:10px}
.notice-inner #status{flex:1;min-width:0}
#undo-status,#dismiss-status{flex:0 0 44px;align-self:flex-start;min-height:44px;padding:4px;color:var(--muted);font-size:24px;line-height:1.5;text-decoration:none}
.notice-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--yellow);transform-origin:left;pointer-events:none}
.notice[data-kind=message] .notice-progress{animation:notice-countdown var(--notice-duration,6000ms) linear both}
.notice[data-kind=loading] .notice-progress{right:auto;width:30%;animation:notice-loading 1.5s ease-in-out infinite}
.skip:focus{z-index:1001}
@keyframes notice-enter{from{transform:translateY(-100%)}to{transform:translateY(0)}}
@keyframes notice-countdown{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes notice-loading{from{transform:translateX(-100%)}to{transform:translateX(334%)}}
@media(prefers-reduced-motion:reduce){.notice,.notice-progress{animation:none!important;transform:none!important}.notice[data-kind=loading] .notice-progress{width:100%}}


/* A quiet link tool and more writing room in every composer. */
.body-field{margin-bottom:14px}.body-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.composer .body-label{margin-bottom:0}.body-heading button{flex-shrink:0;min-height:44px;padding:8px 4px;font-size:12px;text-decoration:none}.body-heading button:hover{color:var(--yellow)}.composer .body-field textarea{min-height:320px;margin-top:6px}.writing-composer .body-field textarea{min-height:420px}.editor-link-status{margin:6px 0 0}
@media(max-width:600px){.writing-composer .body-field textarea{min-height:360px}}

#undo-status{color:var(--yellow)}


/* Display lettering stays crisp; operational controls keep Geist Mono. */
h1,h2,h3,h4,h5,h6{font-family:GeistPixelSquare,ui-monospace,monospace;font-weight:400;letter-spacing:normal;font-synthesis:none}
h1{font-size:26px;line-height:1.25}.composer h3{font-size:22px;line-height:1.3}.writing-composer h3{font-size:26px}
.wordmark{font-synthesis:none;text-shadow:3px 3px 0 #000}
.entry h2 a{text-decoration-thickness:1px;text-underline-offset:3px}
/* Dates remain visible while long source names scroll within their own lane. */
.source-line{display:flex;align-items:baseline;min-width:0;gap:0;font-size:12px;line-height:1.5}
.source-scroll{display:block;flex:0 1 auto;min-width:0;max-width:100%;overflow-x:auto;white-space:nowrap;scrollbar-width:none;overscroll-behavior-x:none;padding-block:5px;touch-action:pan-x pan-y}
.source-scroll::-webkit-scrollbar{display:none}
.source-date{flex:none;white-space:nowrap;padding-block:5px}
.source-scroll[data-fade=end]{--source-mask:linear-gradient(to right,#000 calc(100% - 16px),transparent)}
.source-scroll[data-fade=start]{--source-mask:linear-gradient(to right,transparent,#000 16px)}
.source-scroll[data-fade=both]{--source-mask:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent)}
.source-scroll[data-fade]{-webkit-mask-image:var(--source-mask);mask-image:var(--source-mask)}
.source-scroll:focus-visible{outline:1px solid var(--yellow);outline-offset:2px}
.coverage-entry>.source{font-size:11px}
.entry>.actions{min-height:44px}.entry>.actions button,.entry>.actions a{min-height:44px}
@media(max-width:600px){.composer h3{font-size:22px}.writing-composer h3{font-size:24px}}

header{gap:16px}.wordmark{display:flex;align-items:center;min-width:0}.header-actions{flex-shrink:0}
.source-date{padding-left:.5ch}


/* The summary drawer fills the card beneath its controls. */
.entry:has(>.summary-panel:not([hidden]))>.actions{margin-bottom:0}
.entry>.summary-panel{margin:0 calc(0px - var(--entry-padding)) calc(0px - var(--entry-padding));padding:18px var(--entry-padding);border:0;border-radius:0;background:#000;box-shadow:none;color:var(--text);font-size:13px;line-height:1.8}
.entry:has(>.summary-panel:not([hidden]))>.snippet{margin-bottom:0}
.entry:has(>.composer,>.delete-confirm)>.summary-panel{margin-bottom:0}
.summary-panel h3{margin:0 0 10px;font:400 17px/1.4 GeistPixelSquare,monospace;color:var(--yellow)}
.summary-content p{margin:0}.summary-content ul{margin:12px 0 0;padding-left:20px}.summary-content li+li{margin-top:6px}
.summary-message{margin:0 0 8px;color:var(--muted)}.summary-message:empty{display:none}
.summary-meta{margin:14px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.summary-meta:empty{display:none}
.summary-retry{color:var(--yellow);min-height:40px;text-decoration:none}.entry>.actions .summary-action[aria-expanded=true]{color:var(--yellow)}
@media(max-width:600px){.entry>.summary-panel{padding-block:15px}}

.following-form { display: grid; gap: 14px; }
.following-form label { display: grid; gap: 6px; }
.following-form h2, .following-form p { margin: 0; }


/* Form controls stay on the card surface, separate from story footer strips. */
.following-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.following-form-actions button{min-height:44px;text-decoration:none}
.following-address-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px 16px}
.following-address-row label{flex:1 1 220px;min-width:0}
.following-fetch{min-height:44px;color:var(--yellow);text-decoration:none;white-space:nowrap}

.settings-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;padding:0 16px;border-bottom:1px solid var(--rule)}
.settings-tabs button{min-height:44px;padding:8px 0;color:var(--muted)}
.settings-tabs button[aria-pressed=true]{color:var(--yellow)}
.setting-toggle{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}
.setting-toggle input{appearance:auto;-webkit-appearance:checkbox;padding:0;width:20px;height:20px;margin:0;accent-color:var(--yellow);flex:none}
.misc-settings .setting-status{margin:12px 0 0;font-size:13px;color:var(--muted)}


.spam-dashboard > .source { margin: 1rem 0; }
.spam-entry .snippet { display: block; padding: 0 1rem 1rem; }
.spam-entry + .spam-entry { margin-top: 1.25rem; }

/* A quiet, single-row Unicode toolbar. The visible button face is 30px tall;
   the full 44px control remains tappable without crowding its neighbours. */
.entry>:is(.story-actions,.explore-actions){display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:2px 10px;margin-top:12px;justify-content:normal}
:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a){position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;width:100%;padding:0;border:0;border-radius:0;background:transparent;color:var(--text);font-size:18px;line-height:1;text-decoration:none;white-space:nowrap}
:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a)::before{content:"";position:absolute;z-index:-1;inset:7px 0;background:#282d36;border:1px solid;border-color:#46505e #303641 #171b22 #3d4653;box-shadow:0 1px 0 #11151b}
.entry>:is(.story-actions,.explore-actions) .snippet-action{font-size:12px}
.entry>.explore-actions .explore-symbol{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:22px;font:20px/1 GeistMono,monospace;font-variant-emoji:text;text-align:center}
.entry>.explore-actions [data-add=miniflux] .explore-symbol{font:18px/1 GeistMono,monospace}
.entry>.explore-actions [data-add=blogroll]:not([aria-busy=true]) .explore-symbol{font-size:0}
:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a)[aria-pressed=true],:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a)[aria-expanded=true]{color:var(--yellow)}
:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a):active:not(:disabled)::before{inset:8px 0 6px;border-color:#171b22 #3d4653 #46505e #303641;box-shadow:none}
:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a):disabled{cursor:default}
@media(hover:hover) and (pointer:fine){:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a):hover:not(:disabled){color:var(--yellow)}:is(.entry>:is(.story-actions,.explore-actions),.header-actions,.editor-toolbar) :is(button,a):hover:not(:disabled)::before{background:#303641}}
@media(max-width:360px){.entry>:is(.story-actions,.explore-actions){gap:4px;padding-inline:8px}}

/* Fixed vector bounds keep toolbar symbols centered across font fallbacks.
   Text remains in the DOM; existing labels, state updates and 44px targets stay intact. */
.entry>.story-actions button,.entry>.story-actions .snippet-action{font-size:0}
.entry>.story-actions button::after,.entry>.explore-actions [data-add=blogroll]:not([aria-busy=true]) .explore-symbol{content:"";display:block;flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:var(--story-icon) center/contain no-repeat;mask:var(--story-icon) center/contain no-repeat}
.entry>.story-actions .snippet-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M6%203H3v18h3m12-18h3v18h-3M8%2012h8M12%208v8%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .snippet-action[aria-expanded=true]{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M6%203H3v18h3m12-18h3v18h-3M8%2012h8%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .blog-action::after{content:"⧉";background:none;-webkit-mask:none;mask:none;font:24px/18px GeistMono,monospace;text-align:center}
/* Desktop font fallbacks enlarge the Unicode glyph; match the other fixed 18px icons. */
@media(min-width:601px) and (hover:hover) and (pointer:fine){.entry>.story-actions .blog-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%3E%3Cpath%20d%3D%22M3%203h12v12H3zM9%209h12v12H9z%22%2F%3E%3C%2Fsvg%3E")}.entry>.story-actions .blog-action::after{content:"";background:currentColor;-webkit-mask:var(--story-icon) center/contain no-repeat;mask:var(--story-icon) center/contain no-repeat}}
.entry>.story-actions .summary-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20stroke-width%3D%222.6%22%20d%3D%22M4%205h16M4%2012h16M4%2019h16%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .save-action,.entry>.explore-actions [data-add=blogroll]{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22m12%203%202.8%205.9%206.2.9-4.5%204.6%201.1%206.6-5.6-3.1L6.4%2021l1.1-6.6L3%209.8l6.2-.9Z%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .save-action[aria-pressed=true],.entry>.explore-actions [data-add=blogroll][aria-pressed=true]{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20fill%3D%22black%22%20stroke%3D%22none%22%20d%3D%22m12%203%202.8%205.9%206.2.9-4.5%204.6%201.1%206.6-5.6-3.1L6.4%2021l1.1-6.6L3%209.8l6.2-.9Z%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .read-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20stroke-width%3D%222%22%20d%3D%22m4%2012%205%208L20%204%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .read-above-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20stroke-width%3D%222%22%20d%3D%22M12%2021V3m-6%206%206-6%206%206%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .spam-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22M5%2021V3%22%2F%3E%3Cpath%20fill%3D%22black%22%20stroke%3D%22none%22%20d%3D%22M5%203c5-3%209%205%2014%202v11c-5%203-9-5-14-2Z%22%2F%3E%3C%2Fsvg%3E")}
.entry>.story-actions .discard-action{--story-icon:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%3E%3Cpath%20d%3D%22m4%204%2016%2016M20%204%204%2020%22%2F%3E%3C%2Fsvg%3E")}

/* Background screening stays in the Spam tab, without interrupting reading. */
.views button[data-view=spam][data-screening=scanning]{animation:screening-pulse 1.8s ease-in-out infinite}
.views button[data-view=spam][data-screening=error]{color:#cc858c}
@keyframes screening-pulse{0%,100%{opacity:1}50%{opacity:.4}}
@media(prefers-reduced-motion:reduce){.views button[data-view=spam][data-screening=scanning]{animation:none}}

/* Explore uses the reader's surfaces, type, separators and action controls. */
.explore { min-width: 0; }
.explore-tabs { margin-bottom: 1rem; }
.explore-search { display: flex; align-items: flex-end; gap: .65rem; margin: 0 0 1rem; }
.explore-search label { flex: 1; min-width: 0; margin: 0; }
.explore-search input { width: 100%; }
.explore-search > button { margin-bottom: 0; }
.entry.explore-card { --entry-padding: 16px; padding: var(--entry-padding); background: #000; overflow-wrap: anywhere; }
.explore-profile { display: flex; gap: .7rem; align-items: center; }
.explore-avatar { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; background: #121419; color: #f7ff17; font-family: GeistPixelSquare, monospace; overflow: hidden; }
.explore-avatar img { width: 36px; height: 36px; object-fit: contain; }
.explore-identity { min-width: 0; }
.explore-identity h3 { margin: 0; font-size: 1rem; }
.explore-domain { margin: .2rem 0 0; font-size: .75rem; }
.explore-description { margin: .8rem 0; font-size: .85rem; line-height: 1.5; }
.explore-post { border-top: 1px solid #282d36; padding-top: .65rem; margin-top: .7rem; font-size: .85rem; }
.explore-post time { display: block; font-size: .7rem; margin-top: .25rem; }
.explore-posts { font-size: .8rem; margin-top: .4rem; }
.explore-posts summary { cursor: pointer; color: #abb1ba; }
.explore-posts p { margin: .5rem 0; }
.explore-attribution { font-size: .7rem; margin-top: .8rem; line-height: 1.6; }
.explore-recommenders { display: block; }
.explore-social { display: block; color: #f7ff17; }
.explore-bubbling { padding: .8rem 1rem; background: #000; border: 1px solid #282d36; margin-bottom: 1rem; }
.explore-bubbling h2 { font-family: GeistPixelSquare, monospace; font-size: 1rem; margin: 0 0 .6rem; }
.explore-bubble { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; font-size: .8rem; padding: .3rem 0; }
.explore-refresh { font-size: .75rem; margin-top: .8rem; }
@media (max-width: 440px) { .entry.explore-card { --entry-padding: 12px; } }

.explore-symbol{display:block;font:400 20px/1 GeistMono,monospace;pointer-events:none}
.explore-observed{display:block}

.header-actions button{font-variant-emoji:text;touch-action:manipulation}
.header-actions button>span{display:flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;font-size:26px;line-height:1}

/* Optical offsets for the visible Unicode strokes, rather than their line boxes. */
.header-actions #refresh>span{transform:translateY(-3.25px)}
.header-actions #logout>span{transform:translateY(-1.5px)}


/* Share the post controls’ button faces with the Markdown editor. */
.editor-toolbar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:0;padding:0;min-width:0}
.editor-toolbar button{touch-action:manipulation;user-select:none;-webkit-user-select:none}
.editor-toolbar button>span{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font:20px/1 GeistMono,monospace;font-variant-emoji:text;pointer-events:none}
.editor-toolbar button:focus-visible{outline-offset:0}
@media(max-width:360px){.editor-toolbar{gap:4px}}

.editor-toolbar button>svg{display:block;flex:none;width:18px;height:18px;pointer-events:none}

/* Let iOS position the keyboard and selection against the native document
   viewport while composing. Root overflow clipping can fight caret scrolling. */
html:has(.composer),body:has(.composer){overflow-x:visible}
/* Keep discovery controls in the established beveled story toolbar. */
.entry>.story-actions .explore-subscribe{font:18px/1 GeistMono,monospace}
.entry>.story-actions .explore-subscribe::after{display:none}
