:root{--bg:#0c0b0e;--surface:#131216;--fg:#f0eff4;--muted:#7a7891;--border:#2a2830;--accent:oklch(55% 0.18 290);--font-display:'Times New Roman',Georgia,serif;--font-body:ui-monospace,'IBM Plex Mono',Menlo,monospace;--radius:2px;--t:600ms cubic-bezier(0.25,0.46,0.45,0.94);--tf:280ms cubic-bezier(0.16,1,0.3,1)}
[data-theme="light"]{--bg:oklch(97% 0.006 290);--surface:oklch(100% 0 0);--fg:oklch(20% 0.015 290);--muted:oklch(52% 0.012 290);--border:oklch(84% 0.008 290);--accent:oklch(48% 0.18 290)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--fg);font:15px/1.7 var(--font-body);padding-bottom:88px}
.scroll-bar{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:200;width:0;transition:width 100ms linear}
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,56px);height:64px;background:color-mix(in oklch,var(--bg) 85%,transparent);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.nav-brand{font-family:var(--font-display);font-size:20px;font-style:italic;color:var(--fg);text-decoration:none}
.nav-right{display:flex;align-items:center;gap:16px}
.back-link{font-size:12px;color:var(--muted);text-decoration:none;transition:color var(--tf)}
.back-link:hover{color:var(--accent)}
.reading-time{font-size:11px;color:var(--muted)}
.theme-btn{width:36px;height:36px;border:1.5px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--tf)}
.theme-btn:hover{border-color:var(--accent)}
.theme-btn svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:1.5;transition:stroke var(--tf)}
.theme-btn:hover svg{stroke:var(--fg)}
[data-theme="dark"] .icon-sun,[data-theme="light"] .icon-moon{display:none}
article{max-width:680px;margin:0 auto;padding:100px clamp(20px,4vw,56px) 60px}
.post-header{margin-bottom:36px}
.post-date{font-size:12px;color:var(--muted);text-transform:lowercase;margin-bottom:10px}
.post-title{font-family:var(--font-display);font-size:clamp(28px,5vw,48px);font-style:italic;font-weight:400;line-height:1.15;margin-bottom:14px}
.post-tag{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent);border:1px solid var(--accent);padding:3px 8px;border-radius:var(--radius);margin-right:8px}
.post-content{line-height:1.8}
.post-content h1,.post-content h2,.post-content h3{font-family:var(--font-display);font-weight:400;margin:28px 0 14px}
.post-content h2{font-size:22px;font-style:italic}
.post-content h3{font-size:18px}
.post-content p{margin-bottom:18px}
.post-content strong{color:var(--fg);font-weight:600}
.post-content em{font-style:italic}
.post-content a{color:var(--accent)}
.post-content pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;overflow-x:auto;margin:20px 0}
.post-content code{background:var(--surface);padding:2px 6px;border-radius:2px;font-size:0.9em}
.post-content pre code{background:none;padding:0}
.post-content img{max-width:100%;border-radius:var(--radius);margin:20px 0}
.post-content video{max-width:100%;border-radius:var(--radius);margin:20px 0;background:#000}
.post-content audio{width:100%;margin:20px 0}
.post-content iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--radius);margin:20px 0;background:#000}
.post-nav{margin-top:48px;padding-top:24px;border-top:1px solid var(--border);display:flex;justify-content:space-between}
.post-nav a{font-size:13px;color:var(--muted);text-decoration:none;transition:color var(--tf)}
.post-nav a:hover{color:var(--accent)}

.bottom-footer{position:fixed;left:0;right:0;bottom:0;z-index:190;height:68px;border-top:1px solid var(--border);padding:0 clamp(20px,4vw,56px);display:grid;grid-template-columns:minmax(160px,240px) minmax(220px,340px) minmax(600px,1fr);align-items:center;gap:20px;background:color-mix(in oklch,var(--bg) 90%,transparent);backdrop-filter:blur(20px)}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.footer-logo{font-family:var(--font-display);font-size:20px;font-style:italic;color:var(--fg);text-decoration:none;white-space:nowrap}
.footer-copy{font-size:10px;color:var(--muted);text-transform:lowercase;letter-spacing:0.04em;white-space:nowrap}
.footer-post-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;min-width:0}
#prevPost{grid-column:1}
#stopPost{grid-column:2}
#nextPost{grid-column:3}
.footer-post-nav a{height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);padding:0 10px;color:var(--muted);font-size:11px;text-decoration:none;text-transform:lowercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--tf)}
.footer-post-nav a:hover{border-color:var(--accent);color:var(--accent)}
.footer-post-nav a.disabled{pointer-events:none;opacity:0.35}
.footer-post-nav a[data-preview]{position:relative;overflow:visible}
.footer-post-nav a[data-preview]::after{content:attr(data-preview);position:absolute;left:50%;bottom:38px;transform:translateX(-50%);width:max-content;max-width:260px;padding:7px 10px;border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:11px;line-height:1.35;white-space:normal;opacity:0;pointer-events:none;transition:opacity var(--tf);box-shadow:0 12px 40px rgba(0,0,0,0.35)}
.footer-post-nav a[data-preview]:hover::after{opacity:1}
#player.footer-player{position:relative;display:grid;grid-template-columns:minmax(128px,190px) minmax(0,1fr);align-items:center;gap:14px;width:100%;justify-self:end;background:transparent;border:0}
#player.footer-player .player-header{display:flex;align-items:center;justify-content:space-between;min-width:0}
#player.footer-player .player-info{min-width:0}
#player.footer-player .player-title{font-family:var(--font-display);font-size:14px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#player.footer-player .player-artist{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#player.footer-player .player-close{width:28px;height:28px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin-left:8px;background:transparent;cursor:pointer}
#player.footer-player .player-close svg{stroke:var(--muted);transition:stroke var(--tf)}
#player.footer-player .player-close:hover svg{stroke:var(--fg)}
#player.footer-player .player-body{display:grid;grid-template-columns:auto minmax(110px,1fr) auto auto;align-items:center;gap:10px;min-width:0}
#player.footer-player .player-controls{display:flex;align-items:center;gap:6px}
#player.footer-player .player-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--tf)}
#player.footer-player .player-btn:hover{border-color:var(--accent)}
#player.footer-player .player-btn svg{stroke:var(--muted);fill:none;stroke-width:1.5;transition:stroke var(--tf)}
#player.footer-player .player-btn:hover svg{stroke:var(--accent)}
#player.footer-player .player-btn.big{width:36px;height:36px;background:var(--accent);border-color:var(--accent)}
#player.footer-player .player-btn.big svg{stroke:var(--bg);fill:var(--bg)}
#player.footer-player .player-btn.mini{width:28px;height:28px;border-radius:var(--radius);position:relative}
.shuffle-toggle.active,.loop-toggle.active{border-color:var(--accent)!important}
.shuffle-toggle.active svg,.loop-toggle.active svg{stroke:var(--accent)!important}
.loop-one{display:none;position:absolute;right:3px;bottom:1px;font-size:8px;line-height:1;color:var(--accent)}
.loop-toggle.track .loop-one{display:block}
#player.footer-player .player-progress{min-width:0;display:flex;flex-direction:column;gap:4px}
.player-bar{width:100%;height:3px;background:var(--border);border-radius:2px;cursor:pointer;position:relative}
.player-fill{height:100%;background:var(--accent);border-radius:2px;width:0;transition:width 100ms linear}
.player-time{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.volume-control{display:flex;align-items:center;gap:7px;min-width:134px}
.volume-control span{font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted)}
.volume-control input[type="range"]{--volume-pct:5%;width:90px;height:28px;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.volume-control input[type="range"]::-webkit-slider-runnable-track{height:6px;border:1px solid var(--border);border-radius:999px;background:linear-gradient(to right,var(--accent) 0 var(--volume-pct),color-mix(in oklch,var(--surface) 82%,#000) var(--volume-pct) 100%)}
.volume-control input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--border);transition:transform var(--tf)}
.volume-control input[type="range"]:hover::-webkit-slider-thumb{transform:scale(1.08)}
.volume-control input[type="range"]::-moz-range-track{height:6px;border:1px solid var(--border);border-radius:999px;background:color-mix(in oklch,var(--surface) 82%,#000)}
.volume-control input[type="range"]::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}
.volume-control input[type="range"]::-moz-range-thumb{width:12px;height:12px;border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--border)}
.volume-percent{min-width:42px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg)!important;font-size:11px!important;letter-spacing:0!important;outline:none;cursor:text;text-align:center}
.volume-percent:focus{border-color:var(--accent);color:var(--accent)!important;background:var(--bg)}
.playlist-toggle{height:30px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--muted);font:11px/1 var(--font-body);text-transform:lowercase;cursor:pointer;transition:all var(--tf);white-space:nowrap}
.playlist-toggle:hover,.playlist-toggle[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}
.playlist-panel{position:fixed;right:clamp(20px,4vw,56px);bottom:78px;width:min(420px,calc(100vw - 40px));max-height:min(360px,calc(100svh - 120px));overflow:auto;padding:10px;background:var(--surface);border:1px solid var(--border);box-shadow:0 20px 80px rgba(0,0,0,0.35)}
.playlist-panel-head{display:grid;grid-template-columns:1fr minmax(130px,180px);align-items:center;gap:12px;padding:0 0 8px;margin-bottom:8px;border-bottom:1px solid var(--border)}
.playlist-panel-head span{font-size:10px;text-transform:uppercase;letter-spacing:0.12em;color:var(--accent)}
.playlist-panel-head select{height:32px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);font:11px/1 var(--font-body);padding:0 8px;outline:none}
.playlist-panel-head select:focus{border-color:var(--accent)}
.player-track{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background var(--tf)}
.player-track:hover,.player-track.active{background:color-mix(in oklch,var(--accent) 10%,transparent)}
.player-track.active .track-name{color:var(--accent)}
.track-name{font-size:12px}
.track-artist{font-size:11px;color:var(--muted)}
.player-empty{padding:10px;color:var(--muted);font-size:12px}

@media(max-width:1180px){
  .bottom-footer{grid-template-columns:minmax(150px,220px) minmax(180px,300px) minmax(0,1fr)}
  #player.footer-player{grid-template-columns:1fr}
  #player.footer-player .player-header{display:none}
}
@media(max-width:768px){
  body{padding-bottom:126px}
  nav{padding:10px 16px;height:auto}
  .nav-right{gap:10px}
  .reading-time{display:none}
  article{padding:84px 20px 48px}
  .bottom-footer{grid-template-columns:1fr;height:auto;min-height:112px;padding:7px 12px 8px;gap:5px;text-align:center}
  .footer-brand{display:flex;align-items:center;justify-self:center;opacity:.52;gap:8px;flex-direction:row}
  .footer-logo{font-size:13px}
  .footer-copy{display:none}
  .footer-post-nav{grid-template-columns:1fr auto 1fr;width:100%}
  #player.footer-player{grid-template-columns:1fr;gap:4px}
  #player.footer-player .player-header{display:flex;justify-content:center;gap:8px;min-height:18px}
  #player.footer-player .player-title{font-size:12px;max-width:58vw}
  #player.footer-player .player-artist{display:none}
  #player.footer-player .player-close{width:22px;height:22px;margin-left:0}
  #player.footer-player .player-close svg{width:14px;height:14px}
  #player.footer-player .player-body{grid-template-columns:auto minmax(0,1fr) auto;gap:8px}
  #player.footer-player .player-controls{justify-content:flex-start;gap:4px}
  #player.footer-player .player-btn{width:28px;height:28px}
  #player.footer-player .player-btn.big{width:32px;height:32px}
  #player.footer-player .player-progress{width:100%;order:0;grid-column:auto}
  .volume-control{display:none}
  .playlist-toggle{order:1}
  .playlist-panel{right:12px;bottom:126px;width:calc(100vw - 24px);max-height:50svh}
}
@media(max-width:480px){
  body{padding-bottom:116px}
  .bottom-footer{min-height:106px;padding:6px 10px}
  #player.footer-player .player-body{grid-template-columns:auto minmax(78px,1fr) auto}
  #player.footer-player .player-btn.mini{width:26px;height:26px}
  .playlist-toggle{height:28px;padding:0 8px}
  .playlist-panel{bottom:116px}
}
