:root{
  --bg:#0a0c0a; --fg:#c8d0c8; --dim:#5a665a; --acc:#7fb069; --rule:#1c221c;
  --barh:116px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{
  font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;
}
a{color:var(--dim);text-decoration:none}
a:hover,a:focus-visible{color:var(--acc)}
a:focus-visible{outline:1px solid var(--acc);outline-offset:2px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* top bar */
#bar{
  position:fixed;top:0;left:0;right:0;height:var(--barh);z-index:10;
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  padding:env(safe-area-inset-top,0) 14px 0;
  background:rgba(10,12,10,.92);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}
#bar > div{width:100%;max-width:760px;margin:0 auto;display:flex;justify-content:safe center;gap:16px}
#bar a.on{color:var(--acc)}
#bar a:active{color:var(--acc)}
#bar .r1 a{color:var(--fg)}
#bar .r1 .brand{color:var(--acc)}
#bar .rv{font-size:13px;gap:8px}
#bar .rv a{padding:0 6px}
#bar .rv a.on{color:var(--acc)}
#bar .rv a.on::after{content:" ◂";font-size:10px}
#bar .r2{white-space:nowrap;overflow-x:auto;scrollbar-width:none;font-size:13px}
#bar .r2::-webkit-scrollbar{display:none}
#bar .r2 a.on{color:var(--acc)}
#bar .r3{gap:14px;white-space:nowrap;overflow-x:auto;scrollbar-width:none;
  font-size:12px;color:var(--dim);padding-bottom:2px}
#bar .r3::-webkit-scrollbar{display:none}
#bar .r3 .yr{cursor:pointer;user-select:none;padding:0 1px}
#bar .r3 .yr.empty{opacity:.35}
#bar .r3 .yr.now{color:var(--acc);font-weight:bold}
#bar .r3 .yr:hover{color:var(--fg)}
body:not([data-view="feed"]) #bar .r3{display:none}

/* feed */
#feed{max-width:760px;margin:0 auto;padding:calc(var(--barh) + 18px) 12px 12px}
.post{padding:6px 0 20px;margin-bottom:20px}
.sep{border-bottom:1px solid var(--rule);margin-top:18px}
.row{display:grid;gap:8px;margin-bottom:8px}
.row.c1{grid-template-columns:1fr}
.row.c2{grid-template-columns:1fr 1fr}
.cell{min-width:0}
.media{width:100%;display:block;background:#101410;border:1px solid var(--rule)}
img.media,video.media{object-fit:cover;cursor:zoom-in}
.cell.txt{padding:2px;white-space:pre-line}
.row.c2 .cell.txt{font-size:13px;color:var(--dim)}
.meta{margin-top:10px;color:var(--dim);font-size:13px;word-break:break-all}
.meta .t{display:inline;font-size:inherit;font-weight:normal}
.meta .t a{color:var(--fg)}
.meta .pin{color:var(--acc)}
.meta .mdesc{color:var(--dim)}
.cell .err{display:flex;align-items:center;justify-content:center;width:100%;
  border:1px dashed var(--dim);color:var(--dim);font-size:12px;background:#0e100e}

/* video wrap */
.vwrap{position:relative}
.row.c1 .cell.portrait-solo video{width:calc(50% - 4px);margin:0 auto;display:block}
.vwrap::after{content:attr(data-state);position:absolute;top:4px;right:6px;font-size:10px;
  color:var(--acc);background:rgba(10,12,10,.7);padding:1px 5px;pointer-events:none;
  opacity:0} /* debug: set opacity 1 to see states */
.vwrap .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:transparent;border:0;color:var(--acc);font:inherit;font-size:26px;cursor:pointer}
.vwrap .play span{background:rgba(10,12,10,.75);border:1px solid var(--rule);padding:6px 16px}

/* html embed */
.hwrap{position:relative}
.hwrap iframe{border:1px solid var(--acc)}
.hwrap .shield{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;
  background:transparent;cursor:pointer;border:0;padding:8px;color:var(--acc);font:inherit;font-size:11px}
.hwrap .shield span{background:rgba(10,12,10,.8);padding:2px 7px;border:1px solid var(--rule)}

/* pager (crawler path; hidden once JS boots) */
.pager{color:var(--dim);padding:10px 0 30px;text-align:center}
body.js .pager{display:none}

#sentinel{height:1px}
#tail{color:var(--dim);padding:20px 0 50px;text-align:center;letter-spacing:2px}

/* lightbox */
#lb{position:fixed;inset:0;z-index:30;display:none;background:rgba(6,8,6,.97);
  align-items:center;justify-content:center;flex-direction:column;gap:10px;
  -webkit-tap-highlight-color:transparent}
#lb .stage img,#lb .stage video{user-select:none;-webkit-user-select:none}
#lb.open{display:flex}
#lb .stage{display:flex;align-items:center;justify-content:center;max-width:96vw;max-height:84vh}
#lb .stage img,#lb .stage video{max-width:96vw;max-height:84vh;border:1px solid var(--rule)}
#lb .stage img.fit{width:min(96vw,900px);height:auto}
#lb .stage iframe{width:96vw;height:80vh;border:1px solid var(--acc);background:#101410}
#lb .cap{color:var(--dim);font-size:12px}
#lb .x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);right:14px;
  background:rgba(10,12,10,.85);border:1px solid var(--rule);color:var(--acc);
  font:inherit;padding:4px 10px;cursor:pointer}

/* toast (copy link) */
#toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%,20px);z-index:40;
  background:rgba(10,12,10,.92);border:1px solid var(--acc);color:var(--acc);
  padding:6px 14px;font-size:12px;opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s}
#toast.show{opacity:1;transform:translate(-50%,0)}

.e404{padding:40px 0;white-space:pre-wrap;color:var(--dim)}

/* debug hud (toggle: press d, or ?debug in url) */
#hud{position:fixed;bottom:10px;left:10px;z-index:20;display:none;
  font-size:11px;line-height:1.5;color:var(--acc);
  background:rgba(10,12,10,.88);border:1px solid var(--rule);
  padding:6px 9px;pointer-events:none;white-space:pre}
body.debug #hud{display:block}
body.debug .vwrap::after{opacity:1}

@media (prefers-reduced-motion:reduce){
  #toast{transition:none}
  html{scroll-behavior:auto}
}

/* ---- wall view (masonry via columns) ---- */
.wall{columns:200px;column-gap:10px}
body[data-view="wall"] #feed{max-width:1600px;padding-left:16px;padding-right:16px}
.tile{break-inside:avoid;margin:0 0 8px;position:relative;cursor:zoom-in;
  user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.tile img{width:100%;display:block;background:#101410;border:1px solid var(--rule)}
.tile .mark{position:absolute;right:8px;bottom:8px;color:var(--acc);font-size:14px;
  background:rgba(10,12,10,.75);border:1px solid var(--rule);padding:1px 7px;pointer-events:none}
.tile:hover img,.tile:focus-visible img{border-color:var(--acc)}
.tile:focus-visible{outline:1px solid var(--acc);outline-offset:2px}

/* ---- list view (cv rows) ---- */
.list{padding-top:4px}
.lrow{display:grid;grid-template-columns:60px minmax(120px,max-content) 1fr;gap:26px;
  padding:9px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.lrow time{color:var(--dim);font-size:12px}
.lrow a{color:var(--fg)}
.lrow a:hover{color:var(--acc)}
.lrow .ldesc{color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:520px){
  .lrow{grid-template-columns:52px 1fr}
  .lrow .ldesc{grid-column:2}
}
