/* NERV Terminal UI Kit v3.0 for the blog. Loaded on the front end and inside the block editor.
   Rules that reset block-layout margins start with `body` so they outrank core's `:root :where(.is-layout-*) > *`. */

:root {
  --surface-0:#05070D; --surface-1:#0E1420; --surface-2:#090D16; --surface-3:#141C2B;
  --ink-strong:#E6ECF5; --ink:#A7B3C6; --ink-muted:#7C8799;
  --line:rgba(166,182,204,.28); --line-half:rgba(166,182,204,.14); --line-groove:rgba(166,182,204,.18);
  --line-bright:rgba(227,179,65,.55); --line-accent:#E3B341;
  --accent:#E3B341; --accent-bright:#FFD873; --accent-soft:rgba(227,179,65,.16);
  --accent-active-text:#FFD873; --accent-ink:#1A1200;
  --terminal:#5FD3C8; --terminal-soft:rgba(95,211,200,.12);
  --success:#4FD1A1; --warning:#E3B341; --danger:#FF4A2D; --danger-soft:rgba(255,74,45,.16);
  --panel:linear-gradient(180deg,#101827,#0C1220);
  --input-recess:linear-gradient(rgba(0,0,0,.45),transparent);
  --ground:radial-gradient(ellipse at 50% 40%,#0A1020 0%,#05070D 70%);
  --scanlines:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.18) 2px 3px);
  --chamfer-lg:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  --hex:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
  --font-display:"EVA-Matisse","Yu Mincho","Hiragino Mincho ProN",serif;
  --font-body:Inter,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono","Cascadia Mono",Consolas,monospace;
  --font-pixel:"04b03",monospace;
  --ease-standard:cubic-bezier(.2,.8,.2,1);
  --duration-fast:100ms; --duration-standard:160ms;
  --blip-cycle:2s; --scan-roll:8s; --flicker-cycle:5s;
  --edge:32px;
  color-scheme:dark;
}
@media (max-width:1024px) { :root { --edge:24px; } }
@media (max-width:600px) { :root { --edge:16px; } }

body { -webkit-font-smoothing:antialiased; overflow-wrap:break-word; }
::selection { background:var(--accent-soft); color:var(--accent-active-text); }

a { text-decoration-thickness:1px; text-underline-offset:.2em; text-decoration-color:var(--line); transition:color var(--duration-fast) var(--ease-standard); }
a:hover { text-decoration-color:currentColor; }
:focus-visible { outline:1px solid var(--accent); outline-offset:2px; box-shadow:0 0 0 3px rgba(227,179,65,.18); }
strong, b { font-weight:600; color:var(--ink-strong); }
mark { background:var(--accent-soft); color:var(--accent-active-text); }
img, video { border-radius:0; }

/* Data: every number, time, id and path is mono */
code, kbd, samp, pre, time { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
:not(pre) > code, kbd { font-size:.875em; color:var(--ink-strong); background:var(--surface-2); border:1px solid var(--line-groove); padding:1px 5px; }
pre { overflow-x:auto; }
.wp-block-preformatted, .wp-block-verse { font-family:var(--font-mono); font-size:14px; line-height:1.45; color:var(--ink-strong); }

/* Controls */
input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="password"], input[type="number"], textarea, select {
  box-sizing:border-box; min-height:40px; padding:8px 12px; border:1px solid var(--line-groove); border-radius:0;
  background:var(--input-recess) top / 100% 6px no-repeat var(--surface-2);
  color:var(--ink-strong); caret-color:var(--accent); font:400 16px/1.5 var(--font-body);
}
textarea { display:block; width:100%; min-height:160px; resize:vertical; }
::placeholder { color:var(--ink-muted); opacity:1; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px rgba(227,179,65,.18); }
.wp-element-button, .wp-block-button__link { cursor:pointer; text-decoration:none; transition:color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard); }
.wp-element-button:disabled { color:var(--ink-muted); border-color:var(--line-groove); cursor:default; }
@media (pointer:coarse) { .wp-element-button, .wp-block-button__link { line-height:42px; } }

/* Long-form blocks */
.wp-block-quote { margin-left:0; margin-right:0; padding:0 0 0 24px; border-left:1px solid var(--line); }
.wp-block-quote cite, .wp-block-pullquote cite { display:block; margin-top:8px; font:500 11px/1.25 var(--font-mono); font-style:normal; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted); }
.wp-block-pullquote { padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; font-size:20px; font-weight:600; line-height:1.2; color:var(--ink-strong); }
.wp-block-pullquote blockquote, .wp-block-pullquote p { margin:0; }
.wp-block-table table { width:100%; border-collapse:collapse; font-size:14px; font-variant-numeric:tabular-nums; }
.wp-block-table th, .wp-block-table td { padding:8px 12px 8px 0; border:0; border-bottom:1px solid var(--line-half); text-align:left; vertical-align:top; }
.wp-block-table thead { border:0; }
.wp-block-table th { border-bottom-color:var(--line); font:500 11px/1.25 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted); }
.wp-block-table tbody tr:hover { background:var(--surface-3); }
.wp-block-table tfoot { border:0; }
.wp-block-separator { border:0; border-bottom:1px solid var(--line); opacity:1; }
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width:auto; }
.wp-block-image figcaption, .wp-block-gallery figcaption, .wp-block-embed figcaption { margin-top:8px; text-align:left; }
.wp-block-details summary { cursor:pointer; font-weight:600; color:var(--ink-strong); }
li::marker { color:var(--ink-muted); }

/* Page frame */
body .irz-main { box-sizing:border-box; max-width:1440px; margin:0 auto; padding:48px var(--edge) 64px; }
body .irz-main > * { margin-block:0; }
body .irz-title { margin-bottom:32px; }
body .irz-title > * { margin-block:0; }
body .irz-title h1 { margin-top:8px; max-width:24em; }
.irz-title h1::after { content:"_"; color:var(--accent); }
body .irz-title p:not(.irz-label) { margin-top:16px; max-width:720px; }
p:empty { display:none; }
.irz-label, .irz-head { font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted); }
.irz-label a, .irz-head a { color:inherit; text-decoration:none; }
.irz-label a:hover, .irz-head a:hover { color:var(--accent-bright); }

body .irz-cols { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:24px; align-items:start; }
body .irz-cols > *, body .irz-stack > * { margin-block:0; }
body .irz-stack { display:grid; gap:24px; grid-template-columns:minmax(0,1fr); }
body .irz-narrow { max-width:880px; }
@media (max-width:960px) { body .irz-cols { grid-template-columns:minmax(0,1fr); } }

/* Panel: tone, hairline frame, gold left edge, lit top edge, chamfer. clip-path also cuts the border,
   so ::before redraws the hairline along the two cut corners. */
.irz-panel {
  --pad:24px; position:relative; box-sizing:border-box; padding:var(--pad); background:var(--panel);
  border:1px solid var(--line); border-top-color:var(--line-bright); border-left:2px solid var(--accent);
  clip-path:var(--chamfer-lg);
}
.irz-panel::before {
  content:""; position:absolute; inset:-1px -1px -1px -2px; pointer-events:none;
  background:
    linear-gradient(135deg,transparent 50%,var(--line) 50% calc(50% + 1.2px),transparent calc(50% + 1.2px)) top left / 8px 8px no-repeat,
    linear-gradient(135deg,transparent calc(50% - 1.2px),var(--line) calc(50% - 1.2px) 50%,transparent 50%) bottom right / 8px 8px no-repeat;
}
.irz-panel--primary::after {
  content:""; position:absolute; inset:6px; pointer-events:none; --b:linear-gradient(var(--line),var(--line));
  background:
    var(--b) top left / 12px 1px, var(--b) top left / 1px 12px,
    var(--b) top right / 12px 1px, var(--b) top right / 1px 12px,
    var(--b) bottom left / 12px 1px, var(--b) bottom left / 1px 12px,
    var(--b) bottom right / 12px 1px, var(--b) bottom right / 1px 12px;
  background-repeat:no-repeat;
}
body .irz-panel > * { margin-block:0; }
body .irz-panel > * + * { margin-top:24px; }
body .irz-head { display:flex; justify-content:space-between; gap:16px; margin:0 0 24px; padding:0 0 12px; border-bottom:1px solid var(--line); }
body .irz-head > * { margin:0; }
body .irz-sec > * { margin-block:0; }
body .irz-sec > .irz-head { margin-bottom:16px; }
body .irz-sec + .irz-sec, body .irz-sec + .wp-block-template-part, body .irz-side .irz-sec + .irz-sec { margin-top:32px; }

/* Readouts */
.irz-meta { gap:4px 16px; font:400 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted); }
body .irz-meta > * { margin:0; }
.irz-meta a, .irz-row a, .irz-list a { color:var(--ink); text-decoration:none; }
.irz-meta a:hover, .irz-row a:hover, .irz-list a:hover { color:var(--accent-bright); }
.irz-meta time, .irz-row time { color:var(--terminal); }
.irz-meta .wp-block-post-terms__separator, .irz-row .wp-block-post-terms__separator { color:var(--ink-muted); }

body .irz-row { display:flex; align-items:baseline; gap:8px; margin:0; padding:2px 0; font:400 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-strong); }
body .irz-row > * { margin:0; }
body .irz-row > :first-child { flex:1 0 auto; display:flex; align-items:baseline; gap:8px; color:var(--ink-muted); }
body .irz-row > :first-child::after { content:""; flex:1; min-width:16px; border-bottom:1px dotted var(--line); }
body .irz-row > :last-child { text-align:right; }
.irz-row:not(:has(> :nth-child(2))) { display:none; }

.irz-list, .irz-list ul { list-style:none; margin:0; padding:0; }
.irz-list, .irz-list .cat-item-none { font:400 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted); }
.irz-sec:not(:has(> :nth-child(2))) { display:none; }
.irz-list li { display:flex; align-items:baseline; gap:8px; padding:2px 0; font:400 12px/1.35 var(--font-mono); font-variant-numeric:tabular-nums; letter-spacing:.08em; text-transform:uppercase; color:var(--terminal); }
.irz-list li a { flex:1; display:flex; align-items:baseline; gap:8px; }
.irz-list li a::after { content:""; flex:1; min-width:16px; border-bottom:1px dotted var(--line); }
.irz-tags { font:400 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.irz-tags a { display:inline-block; margin:0 12px 8px 0; font-size:12px !important; color:var(--ink); text-decoration:none; }
.irz-tags a::before { content:"#"; color:var(--ink-muted); }
.irz-tags a:hover { color:var(--accent-bright); }

.irz-pixel { font-family:var(--font-pixel); font-size:16px; line-height:1.5; letter-spacing:0; text-transform:uppercase; color:var(--terminal); -webkit-font-smoothing:none; font-smooth:never; }

/* Search */
.wp-block-search__inside-wrapper { gap:8px; }
.wp-block-search__input { flex:1; min-width:0; }
.wp-block-search__button { margin:0; }

/* Entry list */
.irz-entries { list-style:none; margin:0; padding:0; }
body .irz-entries > li { margin:0; padding:24px 0; border-top:1px solid var(--line-half); }
body .irz-entries > li:first-child { padding-top:0; border-top:0; }
body .irz-entries > li:last-child { padding-bottom:0; }
body .irz-entries > li > * { margin-block:0; }
body .irz-entries .wp-block-post-title { margin:8px 0; font-size:20px; line-height:1.2; }
.irz-entries .wp-block-post-title a { text-decoration:none; }
.irz-entries .wp-block-post-excerpt { max-width:720px; }
.irz-entries .wp-block-post-excerpt p { margin:0; }

.wp-block-query-pagination, .wp-block-comments-pagination { align-items:center; gap:8px; padding-top:24px; border-top:1px solid var(--line); font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
body .wp-block-query-pagination > *, body .wp-block-comments-pagination > * { margin:0; }
.wp-block-query-pagination a, .wp-block-comments-pagination a, .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:32px; height:32px; padding:0 8px; box-sizing:border-box; border:1px solid transparent; color:var(--ink); text-decoration:none; }
.wp-block-query-pagination-previous, .wp-block-query-pagination-next, .wp-block-comments-pagination-previous, .wp-block-comments-pagination-next { border-color:var(--line) !important; color:var(--ink-strong) !important; }
.wp-block-query-pagination a:hover, .wp-block-comments-pagination a:hover { border-color:var(--accent) !important; color:var(--accent-bright) !important; }
.page-numbers.current { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-active-text); }

/* Standby (empty state) */
body .irz-standby > * { margin-block:0; }
body .irz-standby > * + * { margin-top:16px; }
.irz-standby h2 { font-family:var(--font-display); font-weight:800; font-size:26px; line-height:1.1; letter-spacing:.03em; }
.irz-standby .wp-block-search { max-width:480px; }

/* Single entry */
.irz-prose > :first-child { margin-top:0; }
.irz-prose a { color:var(--ink-strong); }
body .irz-pager { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; }
body .irz-pager > * { margin:0; max-width:100%; font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.irz-pager a { display:inline-block; padding:10px 14px; border:1px solid var(--line); color:var(--ink-strong); text-decoration:none; }
.irz-pager a:hover { border-color:var(--accent); color:var(--accent-bright); }

/* Author band: a nested band at the foot of the article panel, not a second panel. Hidden when the author has no bio. */
body .irz-panel > .irz-author { margin:var(--pad) calc(-1 * var(--pad)) calc(-1 * var(--pad)); padding:var(--pad); background:var(--surface-3); border-top:1px solid var(--line); }
body .irz-author > * { margin-block:0; max-width:720px; }
body .irz-author > * + * { margin-top:8px; }
body .irz-author .irz-author__name { font-size:20px; font-weight:600; line-height:1.2; }
.irz-author__name a { color:var(--ink-strong); text-decoration:none; }
.irz-author__name a:hover { color:var(--accent-bright); }
body .irz-author .irz-meta { margin-top:16px; }
.irz-author:not(:has(.wp-block-post-author-biography)) { display:none; }

/* Comments */
.irz-comments:not(:has(.comment-respond, .wp-block-comment-template)) { display:none; }
.wp-block-comment-template, .wp-block-comment-template ol { list-style:none; margin:0; padding:0; }
body .wp-block-comment-template li { margin:0; padding:16px 0; border-top:1px solid var(--line-half); }
body .wp-block-comment-template > li:first-child { padding-top:0; border-top:0; }
body .wp-block-comment-template li > * { margin-block:0; }
body .wp-block-comment-template ol { margin-top:16px; padding-left:24px; border-left:1px solid var(--line); }
body .wp-block-comment-template ol > li:last-child { padding-bottom:0; }
.wp-block-comment-content { margin-top:8px !important; max-width:720px; }
.wp-block-comment-content p { margin:0 0 12px; }
.wp-block-comment-reply-link, .wp-block-comment-edit-link { font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.wp-block-comment-reply-link a, .wp-block-comment-edit-link a { color:var(--ink); text-decoration:none; }
.wp-block-comment-reply-link a:hover, .wp-block-comment-edit-link a:hover { color:var(--accent-bright); }
.comment-respond { max-width:720px; }
.comment-reply-title { margin:0 0 16px; font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted); }
.comment-reply-title small { margin-left:12px; font-size:inherit; }
.comment-form > p { margin:0 0 16px; }
.comment-form label { display:block; margin-bottom:8px; font:500 12px/1.35 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted); }
.comment-form .form-submit { margin:0; }
.logged-in-as, .must-log-in, .comment-notes { margin:0 0 16px; font-size:14px; line-height:1.45; }

/* Status strip */
.irz-strip { background:var(--surface-0); border-bottom:1px solid var(--line); }
body .irz-strip__in { box-sizing:border-box; display:flex; flex-wrap:nowrap; align-items:center; gap:0 32px; max-width:1440px; min-height:40px; margin:0 auto; padding:0 var(--edge); }
body .irz-strip__in > * { margin:0; }
.irz-strip .wp-block-site-title { display:flex; align-items:center; gap:8px; white-space:nowrap; font:800 18px/1 var(--font-display); letter-spacing:.03em; text-transform:uppercase; }
.irz-strip .wp-block-site-title::before { content:""; flex:none; width:10px; height:10px; background:var(--accent); clip-path:var(--hex); }
body .irz-strip .wp-block-site-title a { color:var(--ink-strong); text-decoration:none; }
.irz-strip .wp-block-navigation { font:500 12px/1 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.irz-strip .wp-block-navigation__container, .irz-strip .wp-block-page-list { gap:0 24px; flex-wrap:nowrap; }
.irz-strip .wp-block-navigation-item__content { display:flex; align-items:center; height:40px; color:var(--ink-muted); white-space:nowrap; }
.irz-strip .wp-block-navigation-item__content:hover { color:var(--ink-strong); }
.irz-strip .current-menu-item > .wp-block-navigation-item__content, .irz-strip .wp-block-navigation [aria-current="page"] { color:var(--ink-strong); box-shadow:inset 0 -2px 0 var(--accent); }
.irz-live { display:flex; align-items:center; gap:8px; margin:0 0 0 auto !important; font:400 12px/1 var(--font-mono); font-variant-numeric:tabular-nums; letter-spacing:.08em; text-transform:uppercase; color:var(--terminal); white-space:nowrap; }
.irz-blip { width:6px; height:6px; border-radius:50%; background:var(--accent); animation:irz-blip var(--blip-cycle) ease-in-out infinite alternate; }
@keyframes irz-blip { from { opacity:.55; } to { opacity:1; } }

/* Footer strip */
.irz-foot { border-top:1px solid var(--line); }
body .irz-foot__in { box-sizing:border-box; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; max-width:1440px; min-height:48px; margin:0 auto; padding:8px var(--edge); font:500 11px/1.25 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted); }
body .irz-foot__in > *, body .irz-foot__links > * { margin:0; }
body .irz-foot__links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; }
.irz-foot a { color:var(--ink); text-decoration:none; }
.irz-foot a:hover { color:var(--accent-bright); }
.irz-fx { height:28px; padding:0 10px; border:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink-strong); font:inherit; letter-spacing:inherit; text-transform:inherit; cursor:pointer; }
.irz-fx:hover { border-color:var(--accent); color:var(--accent-bright); }
.irz-fx[aria-pressed="true"] { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-active-text); }

@media (max-width:600px) {
  h1 { font-size:28px !important; }
  body .irz-main { padding-top:32px; padding-bottom:48px; }
  .irz-panel { --pad:16px; }
  .wp-block-post-content { font-size:16px !important; }
  body .irz-strip__in { flex-wrap:wrap; min-height:48px; }
  .irz-strip .wp-block-navigation { order:3; flex:0 0 calc(100% + 2 * var(--edge)); margin:0 calc(-1 * var(--edge)) !important; padding:0 var(--edge); box-sizing:border-box; overflow-x:auto; border-top:1px solid var(--line); }
  .irz-strip .wp-block-navigation-item__content { height:48px; }
  .irz-strip .wp-block-site-title { min-height:48px; }
}
@media (prefers-reduced-motion:reduce) { .irz-blip { animation:none; } }
