
/* Ink-Black, Vermilion-Red, Violet-Haze Palette */
:root{color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
--bg:hsl(0 0% 3%);--pan:hsl(270 15% 7% / .82);--hi:hsl(270 20% 12%);--line:hsl(355 85% 55% / .18);--tx:hsl(0 0% 90%);--mu:hsl(270 10% 55%);--ac:hsl(10 90% 55%);
--mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Noto Sans Mono CJK JP",monospace;
--sans:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;min-height:100vh;color:var(--tx);font:13px/1.55 var(--mono);overflow-x:hidden;
background:radial-gradient(90% 70% at 88% 100%,hsl(275 35% 15%),transparent 62%),radial-gradient(70% 60% at 8% 0%,hsl(10 40% 12%),transparent 70%),var(--bg)}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
background-image: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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body.nograin::before{display:none}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.bar{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 0;flex-wrap:wrap}
.pill{display:flex;gap:12px;align-items:center;background:var(--pan);border:1px solid var(--line);border-radius:999px;padding:7px 16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);white-space:nowrap}
.dim{color:var(--mu)}
.wrap{position:relative;z-index:1;max-width:1220px;margin:0 auto;padding:18px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:16px;align-items:start}
.col{display:grid;gap:16px;min-width:0}
.panel{background:var(--pan);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 44px hsl(10 80% 2% / .6);position:relative;min-width:0}
.panel>header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 18px 4px;color:var(--mu);font-size:12px;cursor:grab;user-select:none;touch-action:none}
.body{padding:8px 18px 18px}
.p-media{margin-left:-26px}.p-term{margin-left:18px}
canvas#face{display:block;margin:0 auto;cursor:crosshair}
.cap{margin:12px 2px 0;color:var(--mu)}
.clock{text-align:right;padding:0 6px;text-shadow:0 0 40px hsl(10 90% 50% / .15)}
.clock b{display:block;font:300 clamp(64px,9vw,118px)/1 var(--sans);letter-spacing:-.02em;font-weight:300}
.clock span{font:300 clamp(16px,2vw,24px) var(--sans);color:var(--tx)}
pre{margin:0;font:inherit;white-space:pre-wrap;overflow-x:auto}
.media{display:flex;gap:16px;align-items:center}
#art{font-size:8px;line-height:1;letter-spacing:0;background:hsl(0 0% 2%);border-radius:14px;padding:8px 6px;color:hsl(0 0% 88%);flex:none}
.media h3{margin:0;font:400 20px var(--sans)}
.wave{color:var(--ac);letter-spacing:.05em;overflow:hidden;white-space:nowrap}
table{width:100%;border-collapse:collapse}
th{font-weight:400;text-align:left;color:var(--mu);padding:4px 8px;border-bottom:1px solid var(--line)}
td{padding:7px 8px;border-radius:0}
tbody tr{cursor:pointer}
tbody tr:hover td,tbody tr:focus-visible td{background:var(--hi);outline:none}
tbody tr td:first-child{border-radius:10px 0 0 10px}tbody tr td:last-child{border-radius:0 10px 10px 0}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0}
.row>span{font:400 14px var(--sans)}
.seg{display:flex;gap:6px}
.seg button,.panel>header button{font:inherit;color:var(--tx);background:var(--hi);border:0;border-radius:999px;padding:5px 14px;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--ac);color:hsl(0 0% 98%)}
.seg button:focus-visible,.panel>header button:focus-visible,.prompt input:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
#out{max-height:150px;overflow:auto;margin-bottom:8px;color:var(--tx)}
.prompt{display:flex;gap:8px;align-items:center;background:var(--hi);border-radius:999px;padding:6px 14px}
.prompt input{flex:1;min-width:0;background:none;border:0;color:var(--tx);font:inherit}
.prompt input:focus{outline:none}
.glitch{animation:gl .24s steps(2) 1}
@keyframes gl{0%{transform:translate(-4px,0);filter:drop-shadow(5px 0 hsl(10 90% 50% / .65)) drop-shadow(-5px 0 hsl(275 40% 50% / .8))}50%{transform:translate(5px,2px);clip-path:inset(30% 0 40% 0)}100%{transform:none;clip-path:none}}
#boot{position:fixed;inset:0;z-index:50;background:var(--bg);padding:max(24px,env(safe-area-inset-top,0px)) 24px 24px;transition:opacity .5s;cursor:pointer;color:var(--mu)}
#boot.off{opacity:0;pointer-events:none}
@media (max-width:860px){.wrap{grid-template-columns:1fr}.p-media,.p-term{margin:0}.panel>header{cursor:default}.bar .pill:nth-child(2){display:none}}
