body{margin:0;background:#06090c}
a{color:#66b2ff}a:hover{color:#ffffff}
.geo *{box-sizing:border-box}
.geo ::selection{background:#007bff;color:#fff}
.geo a:focus-visible{outline:2px solid #d4af37;outline-offset:4px}
.nav a{color:#fff;text-decoration:none;font-family:'Martian Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:14px 4px;border-bottom:1px solid transparent;min-width:44px;text-align:center}
.nav a:hover{color:#fff;border-bottom-color:#d4af37}
.nav a.here{border-bottom-color:#007bff}
.rule{display:block;width:44px;height:2px;margin:0 0 26px;background:#d4af37}
@keyframes turn{to{transform:rotate(360deg)}}
/* how far down the post you are */
.read{position:fixed;left:0;right:0;top:0;height:3px;z-index:40;background:rgba(255,255,255,.07);pointer-events:none}
.read i{display:block;height:100%;background:linear-gradient(90deg,#007bff,#66b2ff 72%,#d4af37);transform:scaleX(var(--read,0));transform-origin:0 50%}
/* the post's own photograph lies behind the title. The words sit over its darker upper part, where a veil keeps them easy to read;
   below the title the veil lifts and the picture is seen clearly. It drifts a little as the page moves and grows very slowly.
   --it is where the photograph begins, as a share of the header's height. */
.ph{position:relative;overflow:hidden;background:#04070b;border-bottom:1px solid rgba(255,255,255,.14)}
.ph-img{position:absolute;left:0;right:0;top:var(--it,19%);bottom:-5%;transform:translateY(calc(var(--o,0) * 1px));will-change:transform}
.ph-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:grow 34s ease-in-out infinite alternate}
@keyframes grow{from{transform:scale(1)}to{transform:scale(1.07)}}
.ph-veil{position:absolute;inset:0;background:linear-gradient(180deg,#04070b 0%,#04070b calc(var(--it,19%) + 2%),rgba(4,7,12,.76) calc(var(--it,19%) + 15%),rgba(4,7,12,.6) 58%,rgba(4,7,12,.16) 77%,rgba(4,7,12,0) 88%,rgba(4,7,12,.28) 100%)}
.ph-txt{padding:clamp(34px,6vw,96px) 0 clamp(220px,25vw,380px)}
.ph h1{text-shadow:0 0 3px rgba(4,7,12,.9),0 2px 14px rgba(4,7,12,.95),0 0 34px rgba(4,7,12,.85) !important}
.back{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-bottom:22px;color:#fff;text-decoration:none;font-family:'Martian Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.back:hover{color:#d4af37}
.back svg{transition:transform .25s}
.back:hover svg{transform:translateX(-5px)}
.meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0 0 24px;font-family:'Martian Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#c3ced6}
.meta .gold{color:#d4af37}
/* the words */
.body{max-width:760px;margin:0 auto;color:#dbe4ea;font-size:clamp(17px,calc(12.5px + 1.2vw),19px)}
.body p{margin:0 0 26px}
.body .lead{color:#fff}
.body h2{margin:60px 0 24px;padding-top:28px;border-top:1px solid rgba(255,255,255,.22);font-family:'Antonio',sans-serif;font-weight:600;font-size:clamp(26px,2.8vw,38px);line-height:1.12;text-transform:uppercase;color:#fff}
.body strong{font-weight:600;color:#fff}
.body sup{line-height:0;font-size:.62em}
.body ul,.body ol{margin:0 0 30px;padding:0;list-style:none;border-bottom:1px solid rgba(255,255,255,.14);counter-reset:n}
.body li{position:relative;padding:18px 0 18px 38px;border-top:1px solid rgba(255,255,255,.14)}
.body ul li::before{content:"";position:absolute;left:6px;top:28px;width:9px;height:9px;border-radius:50%;border:1px solid #d4af37}
.body ol li{counter-increment:n}
.body ol li::before{content:counter(n);position:absolute;left:4px;top:20px;font-family:'Martian Mono',monospace;font-size:12px;color:#d4af37}
.about{position:relative;overflow:hidden;margin-top:60px;padding:clamp(24px,3vw,38px);border:1px solid rgba(102,178,255,.32);background:linear-gradient(155deg,#0f1d29 0%,#080d12 60%,#06090c 100%)}
.about h2{position:relative;margin:0 0 18px;padding:0;border:0;font-size:clamp(22px,2.2vw,30px)}
.about p{position:relative}
.about p:last-child{margin-bottom:0}
.about svg{position:absolute;right:-80px;top:-80px;width:280px;height:280px;opacity:.16;animation:turn 220s linear infinite}
.about svg circle{fill:none;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}
.refs{margin-top:48px;font-size:14.5px;line-height:1.6;color:#a9b7c2;overflow-wrap:anywhere}
.refs p{margin:0 0 12px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.tags span{padding:8px 12px;border:1px solid rgba(255,255,255,.2);font-family:'Martian Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#c3ced6}
/* the other posts */
.post{display:grid;grid-template-columns:150px minmax(0,1fr) 40px;gap:24px;align-items:center;padding:28px 0;border-top:1px solid rgba(255,255,255,.14);text-decoration:none;color:#fff;transition:padding .3s,color .3s}
.post:hover{padding-left:16px;color:#66b2ff}
.post svg{opacity:.45;transition:opacity .3s,transform .3s}
.post:hover svg{opacity:1;transform:translateX(6px)}
.mail{color:#fff;text-decoration:none;border-bottom:2px solid #007bff;display:inline-block;padding:9px 0 3px}
.mail:hover{color:#d4af37;border-bottom-color:#d4af37}
.foot a{color:#a9b7c2;text-decoration:none}
.foot a:hover{color:#fff}
@supports (animation-timeline: view()){
  .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 42%}
  @keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
}
@media (max-width:900px){
  .bl{width:38px !important;height:38px !important;margin-right:-6px}
  .bw{font-size:11px !important;letter-spacing:.06em !important}
  .nav{gap:10px !important}
  .nav a{letter-spacing:.08em;font-size:11px}
  .post{grid-template-columns:minmax(0,1fr) 28px;gap:10px 16px}
  .post time{grid-column:1 / -1}
}
@media (max-width:360px){
  .bw{font-size:10.5px !important;letter-spacing:0 !important}
  .brand{gap:10px !important}
  .bl{width:34px !important;height:34px !important;margin-right:-4px}
  .nav{gap:6px !important}
  .nav a{font-size:10.5px;letter-spacing:.05em}
  .em{font-size:6vw !important}
  .mail{padding:13px 0 7px}
}
@media (max-width:340px){
  /* the very smallest phones: the mark alone stands for the name in the menu row (the name stays there for screen readers) */
  .bw{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .brand{min-width:44px}
  .bl{margin-right:0 !important}
}
@media (prefers-reduced-motion:reduce){.geo *,.geo *::before,.geo *::after{animation:none !important;transition:none !important}}
