/* Fish at Crypto frontend CSS — Bento documentation landing system. */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* Dark mode: overrides the same CSS custom properties theme.json already
   generates on :root, so every block/component that reads
   var(--wp--preset--color--*) picks up the dark palette automatically —
   no per-component dark-mode rules needed. Not a simple inversion: this
   uses a warm dark ink tone (matching the "ledger editorial" concept)
   rather than pure black, and off-white rather than pure white text.
   Every value below was checked against WCAG AA (4.5:1 text / 3:1
   non-text) before use — see 05-design-system.md §7. Responds to the
   system-level prefers-color-scheme; [data-theme="dark"] is also
   supported for a future manual toggle, should one ever be added. Light
   values are NOT redeclared here — theme.json is the single source of
   truth for those; this file only ever overrides. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--wp--preset--color--background: #0B0F0D;
		--wp--preset--color--surface: #151B17;
		--wp--preset--color--text: #E8E6D9;
		--wp--preset--color--muted: #7F8B81;
		--wp--preset--color--border: #37423B;
		--wp--preset--color--accent: #D6FF3F;
	}
}
:root[data-theme="dark"] {
	--wp--preset--color--background: #0B0F0D;
	--wp--preset--color--surface: #151B17;
	--wp--preset--color--text: #E8E6D9;
	--wp--preset--color--muted: #7F8B81;
	--wp--preset--color--border: #37423B;
	--wp--preset--color--accent: #D6FF3F;
}

/* Visible focus ring everywhere (reference 02 §19 accessibility). */
:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* Skip link */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--background);
	padding: 12px 16px;
	z-index: 100;
}
.skip-link:focus {
	left: 16px;
	top: 16px;
}

/* Breadcrumbs */
.mayosol-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-bottom: var(--wp--preset--spacing--20);
}
.mayosol-breadcrumbs a {
	color: var(--wp--preset--color--muted);
	text-decoration: underline;
}
.mayosol-breadcrumbs [aria-current="page"] {
	color: var(--wp--preset--color--text);
}

/* Last-updated freshness line (real post_modified date, not decorative). */
.mayosol-last-updated {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-top: -8px;
	margin-bottom: var(--wp--preset--spacing--30);
}

/* Article images: figure/figcaption rhythm inside post content. */
.entry-content figure.wp-block-image {
	margin: var(--wp--preset--spacing--40) 0;
}
.entry-content figure.wp-block-image img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--border);
}
.entry-content figcaption {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-top: 8px;
}

/* Featured image (LCP) is not lazy-loaded; see functions.php filter is not
   needed because core only lazy-loads images inserted after the first ~3
   content elements — the post-featured-image block is excluded by core. */
.wp-block-post-featured-image img {
	border-radius: 8px;
}

/* Disclaimer / callout block, used on Editorial Guidelines + article notes. */
.mayosol-callout {
	background: var(--wp--preset--color--surface);
	border-left: 3px solid var(--wp--preset--color--accent);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: 8px;
}

/* Mobile navigation is the core Navigation block's own overlay menu
   (overlayMenu:"mobile" in parts/header.html) — no custom toggle CSS/JS
   needed. Only re-skin its colors to match the palette. */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--background);
}

.fish-header { background: var(--wp--preset--color--surface); }
.fish-header .wp-block-navigation { margin-bottom: 16px; }
.fish-header .wp-block-site-title a { text-decoration: none; letter-spacing: -0.02em; }
.fish-header .wp-block-navigation-item__content {
	padding: 10px 14px; border-radius: 999px;
	transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}
.fish-header .wp-block-navigation-item__content:hover,
.fish-header .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--muted);
	color: var(--wp--preset--color--surface);
	transform: translateY(-1px);
}
.wp-block-post-content > p:first-of-type {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px; padding: 24px 28px;
	box-shadow: 0 12px 30px rgba(30, 41, 59, 0.07);
	font-size: 1.12rem;
}
.wp-block-post-content h2 {
	margin-top: 52px; padding-top: 18px;
	border-top: 2px solid var(--wp--preset--color--accent);
}
.wp-block-post-content h2 + p a,
.wp-block-post-content h2 + p a[href^="/"] {
	display: inline-block; margin-top: 8px; padding: 11px 16px;
	border: 1px solid var(--wp--preset--color--border); border-radius: 12px;
	background: var(--wp--preset--color--surface); font-weight: 600; text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.wp-block-post-content h2 + p a:hover,
.wp-block-post-content h2 + p a:focus-visible {
	transform: translateY(-2px); border-color: var(--wp--preset--color--accent);
	box-shadow: 0 8px 18px rgba(37, 99, 235, 0.13);
}
.wp-block-post-content table {
	width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden;
	border: 1px solid var(--wp--preset--color--border); border-radius: 14px;
	background: var(--wp--preset--color--surface);
}
.wp-block-post-content th, .wp-block-post-content td {
	padding: 14px 16px; border-bottom: 1px solid var(--wp--preset--color--border); text-align: left;
}
.wp-block-post-content tr:last-child td { border-bottom: 0; }
.wp-block-post-content th { background: var(--wp--preset--color--muted); color: var(--wp--preset--color--surface); }

/* Respect reduced motion. */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
}

@media (max-width: 680px) {
	.wp-block-post-content > p:first-of-type { padding: 20px; }
	.wp-block-post-content table { display: block; overflow-x: auto; }
	.fish-header .wp-block-navigation-item__content { padding: 12px; }
}

/* Final precedence pass: keeps Direction 02 active after the legacy layer. */
body { background-color:#0B0F0D; background-image:linear-gradient(rgba(214,255,63,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(214,255,63,.055) 1px,transparent 1px),radial-gradient(circle at 70% 8%,rgba(214,255,63,.12),transparent 28%); background-size:40px 40px,40px 40px,auto; color:#E8E6D9; font-family:"IBM Plex Mono",ui-monospace,monospace; overflow-x:hidden; }
.fish-header { background:rgba(11,15,13,.9); border-bottom:1px solid #37423B !important; box-shadow:none; }
.fish-header .wp-block-site-title a { color:#D6FF3F; font-family:"IBM Plex Mono",monospace; font-size:.92rem; letter-spacing:.08em; text-transform:uppercase; }
.fish-header .wp-block-site-title a::before { width:8px; height:8px; background:#D6FF3F; border-radius:0; transform:rotate(45deg); }
.fish-header .wp-block-navigation-item__content { border-radius:0; color:#AAB5AA; font:500 .72rem/1 "IBM Plex Mono",monospace; letter-spacing:.04em; text-transform:uppercase; }
.fish-header .wp-block-navigation-item__content:hover,.fish-header .wp-block-navigation-item__content:focus-visible { background:#D6FF3F; color:#0B0F0D; }
.fish-hero { padding:clamp(72px,13vw,170px) 0 70px; }
.fish-hero::before { content:"LIVE SYSTEM / FIELD NOTES / 001"; top:34px; right:auto; left:0; color:#D6FF3F; font-family:"IBM Plex Mono",monospace; }
.fish-hero::after { content:"ASIC / POWER / FIRMWARE"; position:absolute; right:0; bottom:78px; writing-mode:vertical-rl; color:#6E7B70; font:500 .68rem/1 "IBM Plex Mono",monospace; letter-spacing:.18em; }
.fish-hero .wp-block-post-featured-image { position:relative; aspect-ratio:16/9; overflow:hidden; margin:0 0 42px; box-shadow:none; border:1px solid #37423B; background:#151B17; }
.fish-hero .wp-block-post-featured-image img { width:100%; height:100%; object-fit:cover; display:block; border-radius:0; filter:grayscale(1) sepia(.2) hue-rotate(35deg) saturate(1.7) contrast(1.1); opacity:.82; }
.fish-hero .wp-block-post-title { max-width:850px; color:#F3F1E6; font-family:"Barlow Condensed",Impact,sans-serif; font-size:clamp(4.8rem,13vw,12.5rem); font-weight:700; line-height:.79; letter-spacing:-.065em; text-transform:uppercase; }
.fish-hero .wp-block-post-title::first-line { color:#D6FF3F; }
.wp-block-post-content { color:#D7D9CF; }
.wp-block-post-content > p:first-of-type { margin-top:20px; padding:34px 0 34px 28px; border:0; border-left:4px solid #D6FF3F; border-radius:0; background:transparent; color:#F3F1E6; box-shadow:none; font-size:1.12rem; line-height:1.75; }
.wp-block-post-content > p:first-of-type a { color:#D6FF3F; }
.wp-block-post-content h2 { color:#F3F1E6; margin-top:104px; font-size:clamp(2.8rem,6vw,5.2rem); line-height:.9; letter-spacing:-.04em; text-transform:uppercase; }
.wp-block-post-content h2::before { content:"//"; display:block; margin-bottom:12px; color:#D6FF3F; font:500 .72rem/1 "IBM Plex Mono",monospace; }
.wp-block-post-content h2::after { width:100%; height:1px; margin-top:22px; background:#37423B; }
.wp-block-post-content figure.wp-block-image { margin:76px 0; }
.wp-block-post-content figure.wp-block-image img { border:1px solid #37423B; border-radius:0; box-shadow:14px 14px 0 #183B2A; filter:invert(.88) hue-rotate(155deg) saturate(1.25) contrast(1.04); transition:filter .35s ease,transform .5s cubic-bezier(.2,.75,.25,1); }
.wp-block-post-content figure.wp-block-image:hover img { filter:invert(.82) hue-rotate(155deg) saturate(1.55) contrast(1.08); transform:translateY(-3px); }
.wp-block-post-content table { border:1px solid #37423B; border-radius:0; background:#151B17; box-shadow:none; }
.wp-block-post-content th { background:#D6FF3F; color:#0B0F0D; }
.wp-block-post-content td { background:#151B17; color:#D7D9CF; }
.wp-block-post-content blockquote { border-left-color:#D6FF3F; border-radius:0; background:#151B17; color:#F3F1E6; }
.fish-footer { background:#070A08; border-top:1px solid #37423B; color:#7F8B81; }
.fish-footer a { color:#D6FF3F; }
@media (max-width:680px) { .fish-hero::after{display:none;} .fish-hero .wp-block-post-title{max-width:100%;font-size:clamp(4rem,21vw,7rem);overflow-wrap:anywhere;} .wp-block-post-content > p:first-of-type{padding:24px 0 24px 20px;} .wp-block-post-content h2{margin-top:76px;} .wp-block-post-content figure.wp-block-image{margin-left:0;margin-right:0;} .wp-block-post-content figure.wp-block-image img{box-shadow:7px 7px 0 #183B2A;} }

.fish-inner-page { position:relative; padding-top:clamp(70px,10vw,140px) !important; }
.fish-inner-page::before { content:"OPERATIONS / KNOWLEDGE BASE"; display:block; margin-bottom:20px; color:#D6FF3F; font:500 .68rem/1 "IBM Plex Mono",monospace; letter-spacing:.12em; }
.fish-inner-page > .wp-block-post-title,.fish-inner-page > .wp-block-query-title,.fish-404-page h1 { max-width:850px; color:#F3F1E6; font:700 clamp(4rem,10vw,9rem)/.82 "Barlow Condensed",sans-serif; letter-spacing:-.055em; text-transform:uppercase; }
.fish-inner-page > .wp-block-post-featured-image { margin:0 0 44px; border:1px solid #37423B; }
.fish-inner-page > .wp-block-post-featured-image img { border-radius:0; filter:grayscale(1) sepia(.2) hue-rotate(35deg) saturate(1.7); }
.fish-archive-page .wp-block-post-template { display:grid; gap:1px; margin-top:60px; background:#37423B; border:1px solid #37423B; }
.fish-archive-page .wp-block-post { padding:24px; background:#151B17; transition:background-color .2s ease, transform .2s ease; }
.fish-archive-page .wp-block-post:hover { background:#183B2A; transform:translateX(8px); }
.fish-archive-page .wp-block-post-title a { color:#F3F1E6; font:600 2rem/.95 "Barlow Condensed",sans-serif; letter-spacing:-.02em; text-transform:uppercase; }
.fish-404-page { min-height:55vh; }
.fish-404-page h1 { color:#D6FF3F; }

.fish-footer-terminal { display:grid; grid-template-columns:1fr 220px; align-items:center; min-height:240px; padding:32px 0 48px; border-bottom:1px solid #37423B; }
.fish-footer-terminal strong { display:block; margin-top:20px; color:#F3F1E6; font:700 clamp(3rem,8vw,7rem)/.78 "Barlow Condensed",sans-serif; letter-spacing:-.055em; text-transform:uppercase; }
.fish-footer-terminal em { color:#D6FF3F; font-style:normal; }
.fish-footer-orbit { position:relative; width:170px; height:170px; justify-self:end; border:1px solid #37423B; border-radius:50%; animation:fish-orbit-spin 18s linear infinite; }
.fish-footer-orbit::before,.fish-footer-orbit::after { content:""; position:absolute; inset:20px; border:1px solid #37423B; border-radius:50%; }
.fish-footer-orbit::after { inset:52px; border-color:#D6FF3F; }
.fish-footer-orbit span { position:absolute; top:50%; left:50%; width:7px; height:7px; margin:-3px; background:#D6FF3F; border-radius:50%; box-shadow:0 0 18px #D6FF3F; }
.fish-footer-orbit span:nth-child(1) { transform:translate(-50%,-50%) rotate(0deg) translateX(85px); }
.fish-footer-orbit span:nth-child(2) { transform:translate(-50%,-50%) rotate(120deg) translateX(85px); }
.fish-footer-orbit span:nth-child(3) { transform:translate(-50%,-50%) rotate(240deg) translateX(85px); }
@keyframes fish-orbit-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fish-footer-orbit { animation:none; } }
@media (max-width:680px) { .fish-footer-terminal { grid-template-columns:1fr; min-height:210px; padding-bottom:34px; } .fish-footer-orbit { width:110px; height:110px; margin:30px auto 0 0; } .fish-footer-orbit span:nth-child(1),.fish-footer-orbit span:nth-child(2),.fish-footer-orbit span:nth-child(3) { transform:translate(-50%,-50%) rotate(0deg) translateX(55px); } }

/* Homepage command deck: navigational UI, not decorative cards. */
.fish-command-deck { display:grid; grid-template-columns:1.05fr repeat(3,1fr); margin:0 0 76px; border-top:1px solid #37423B; border-bottom:1px solid #37423B; }
.fish-deck-intro,.fish-deck-item { min-height:156px; padding:18px 18px 20px; display:flex; flex-direction:column; justify-content:space-between; position:relative; }
.fish-deck-intro { background:#151B17; color:#D7D9CF; border-right:1px solid #37423B; }
.fish-deck-intro strong { color:#D6FF3F; font:700 clamp(3rem,5vw,5.5rem)/.8 "Barlow Condensed",sans-serif; letter-spacing:-.05em; }
.fish-deck-intro span:last-child { color:#7F8B81; font-size:.66rem; }
.fish-deck-item { color:#D7D9CF; border-right:1px solid #37423B; text-decoration:none; transition:background-color .25s ease, color .25s ease, transform .25s cubic-bezier(.2,.75,.25,1); }
.fish-deck-item:last-child { border-right:0; }
.fish-deck-item b { max-width:10ch; color:#F3F1E6; font:600 1.55rem/.92 "Barlow Condensed",sans-serif; letter-spacing:-.02em; text-transform:uppercase; }
.fish-deck-item:hover,.fish-deck-item:focus-visible { z-index:1; background:#D6FF3F; color:#0B0F0D; transform:translateY(-6px); }
.fish-deck-item:hover b,.fish-deck-item:focus-visible b { color:#0B0F0D; }
.fish-deck-item:hover .fish-mono-label,.fish-deck-item:focus-visible .fish-mono-label { color:#183B2A; }
.fish-deck-arrow { position:absolute; right:18px; bottom:16px; color:#D6FF3F; font-size:1.35rem; transition:transform .25s ease; }
.fish-deck-item:hover .fish-deck-arrow,.fish-deck-item:focus-visible .fish-deck-arrow { color:#0B0F0D; transform:translate(4px,-4px); }
.fish-mono-label { color:#7F8B81; font:500 .61rem/1 "IBM Plex Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }
.fish-motion-ready .fish-command-deck > * { animation:fish-deck-enter .6s cubic-bezier(.2,.75,.25,1) both; }
.fish-motion-ready .fish-command-deck > *:nth-child(2) { animation-delay:.08s; }
.fish-motion-ready .fish-command-deck > *:nth-child(3) { animation-delay:.16s; }
.fish-motion-ready .fish-command-deck > *:nth-child(4) { animation-delay:.24s; }
@keyframes fish-deck-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce) { .fish-motion-ready .fish-command-deck > * { animation:none; } }
@media (max-width:680px) { .fish-command-deck { grid-template-columns:1fr 1fr; } .fish-deck-intro { grid-column:1 / -1; min-height:112px; border-right:0; border-bottom:1px solid #37423B; } .fish-deck-item { min-height:132px; padding:14px; } .fish-deck-item:nth-child(3) { border-right:0; } .fish-deck-item b { font-size:1.35rem; } }

/* Motion layer: one coherent reveal rhythm plus a tactile hero spotlight. */
.fish-signal-line { overflow:hidden; display:flex; gap:30px; padding:9px 0 0; color:#647166; border-top:1px solid #263229; font:500 .62rem/1 "IBM Plex Mono",monospace; letter-spacing:.08em; white-space:nowrap; }
.fish-signal-line span { display:inline-block; }
.fish-signal-live { color:#D6FF3F; margin-left:auto; }
.fish-signal-line span:not(.fish-signal-live) { animation:fish-data-flicker 4.5s steps(1,end) infinite; }
.fish-signal-live::first-letter { animation:fish-pulse 1.8s ease-in-out infinite; }
.fish-motion-ready .fish-hero .wp-block-post-featured-image { animation:fish-enter-image .9s cubic-bezier(.2,.75,.25,1) both; }
.fish-motion-ready .fish-hero .wp-block-post-title { animation:fish-enter-title .85s .12s cubic-bezier(.2,.75,.25,1) both; }
.fish-motion-ready .fish-hero .mayosol-last-updated { animation:fish-enter-line .65s .28s ease-out both; }
.fish-reveal { opacity:0; transform:translateY(26px); }
.fish-reveal.fish-in-view { opacity:1; transform:translateY(0); transition:opacity .55s ease-out, transform .55s cubic-bezier(.2,.75,.25,1); }
.fish-hero .wp-block-post-featured-image::after { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at var(--fish-x, 50%) var(--fish-y, 50%), rgba(214,255,63,.22), transparent 24%); mix-blend-mode:screen; opacity:.75; transition:opacity .3s ease; }
.fish-hero .wp-block-post-featured-image:hover::after { opacity:1; }
.fish-header .wp-block-navigation-item__content { transition:color .18s ease, background-color .18s ease, transform .18s ease; }
.fish-scroll-progress { position:fixed; left:0; bottom:0; z-index:100; width:var(--fish-progress, 0%); height:3px; background:#D6FF3F; box-shadow:0 0 14px rgba(214,255,63,.75); pointer-events:none; transition:width .08s linear; }
.fish-hero .wp-block-post-featured-image::before { content:"SCAN // 01"; position:absolute; z-index:2; top:14px; left:14px; padding:7px 9px; color:#D6FF3F; border:1px solid rgba(214,255,63,.55); background:rgba(11,15,13,.78); font:500 .62rem/1 "IBM Plex Mono",monospace; letter-spacing:.08em; }
.fish-hero .wp-block-post-featured-image::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, transparent 0%, rgba(214,255,63,.16) 49%, transparent 52%); background-size:100% 220%; mix-blend-mode:screen; opacity:.6; animation:fish-scan 5s linear infinite; }
.fish-hero .wp-block-post-featured-image img { transition:transform .6s cubic-bezier(.2,.75,.25,1), filter .4s ease; }
.fish-hero .wp-block-post-featured-image:hover img { transform:scale(1.035); filter:grayscale(.55) sepia(.25) hue-rotate(35deg) saturate(2) contrast(1.15); }
@keyframes fish-enter-image { from { opacity:0; transform:scale(1.04); filter:grayscale(1) brightness(.5); } to { opacity:1; transform:scale(1); } }
@keyframes fish-enter-title { from { opacity:0; transform:translateX(-22px); letter-spacing:.02em; } to { opacity:1; transform:translateX(0); } }
@keyframes fish-enter-line { from { opacity:0; transform:translateX(-12px); } to { opacity:1; transform:translateX(0); } }
@keyframes fish-pulse { 0%,100% { opacity:.45; } 50% { opacity:1; } }
@keyframes fish-scan { 0% { background-position:0 -100%; } 100% { background-position:0 100%; } }
@keyframes fish-data-flicker { 0%, 91%, 100% { opacity:1; } 92% { opacity:.35; } 94% { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .fish-signal-live::first-letter { animation:none; } .fish-reveal { opacity:1; transform:none; } .fish-motion-ready .fish-hero .wp-block-post-featured-image,.fish-motion-ready .fish-hero .wp-block-post-title,.fish-motion-ready .fish-hero .mayosol-last-updated { animation:none; } .fish-hero .wp-block-post-featured-image::after { animation:none; } .fish-scroll-progress { transition:none; } }
@media (max-width:680px) { .fish-signal-line { gap:16px; overflow-x:auto; padding-bottom:4px; } .fish-signal-live { margin-left:0; } }
.fish-back-top { position:fixed; right:22px; bottom:22px; z-index:90; display:flex; flex-direction:column; align-items:center; justify-content:center; width:48px; height:48px; padding:0; border:1px solid #D6FF3F; border-radius:50%; background:#0B0F0D; color:#D6FF3F; opacity:0; transform:translateY(14px); pointer-events:none; cursor:pointer; transition:opacity .25s ease,transform .25s ease,background-color .2s ease; }
.fish-back-top-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.fish-back-top:hover,.fish-back-top:focus-visible { background:#D6FF3F; color:#0B0F0D; }
.fish-back-top span { font:500 1.1rem/1 "IBM Plex Mono",monospace; }
.fish-back-top small { font:500 .43rem/1 "IBM Plex Mono",monospace; letter-spacing:.1em; }
.fish-header-scrolled { padding-top:10px !important; padding-bottom:10px !important; }
.fish-header-scrolled .fish-signal-line { max-height:0; padding-top:0; opacity:0; overflow:hidden; border-top:0; transition:max-height .25s ease,opacity .2s ease,padding .25s ease; }
.fish-signal-line { max-height:28px; opacity:1; transition:max-height .25s ease,opacity .2s ease,padding .25s ease; }
.fish-command-deck { position:relative; overflow:visible; }
.fish-command-deck::before { content:""; position:absolute; z-index:2; left:var(--deck-x,50%); top:var(--deck-y,50%); width:180px; height:180px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(214,255,63,.12),transparent 68%); pointer-events:none; mix-blend-mode:screen; transition:left .18s ease-out,top .18s ease-out; }
.fish-deck-item { will-change:transform; }
@media (pointer:coarse) { .fish-cursor { display:none; } }
@media (prefers-reduced-motion: reduce) { .fish-back-top { transition:none; transform:none; } .fish-back-top-visible { opacity:1; } }
@media (max-width:680px) { .fish-back-top { right:14px; bottom:14px; width:44px; height:44px; } }

/* Direction 02 — dark mining control room. This intentionally discards the
   previous light editorial/card language and uses a hard, technical grid. */
:root {
	--wp--preset--font-family--heading: "Barlow Condensed", Impact, sans-serif;
	--wp--preset--font-family--body: "IBM Plex Mono", ui-monospace, monospace;
}
body {
	background-color: #0B0F0D;
	background-image: linear-gradient(rgba(214,255,63,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(214,255,63,.055) 1px, transparent 1px), radial-gradient(circle at 70% 8%, rgba(214,255,63,.12), transparent 28%);
	background-size: 40px 40px, 40px 40px, auto;
	color: #E8E6D9;
}
.fish-header {
	background: rgba(11,15,13,.9); border-bottom: 1px solid #37423B !important;
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: none;
}
.fish-header-inner { min-height: 68px; }
.fish-header .wp-block-site-title a {
	color: #D6FF3F; font-family: "IBM Plex Mono", monospace; font-size: .92rem;
	font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.fish-header .wp-block-site-title a::before { width: 8px; height: 8px; background: #D6FF3F; border-radius: 0; }
.fish-header .wp-block-navigation-item__content {
	border-radius: 0; color: #AAB5AA; font: 500 .72rem/1 "IBM Plex Mono", monospace;
	letter-spacing: .04em; text-transform: uppercase; padding: 12px 10px;
}
.fish-header .wp-block-navigation-item__content:hover,
.fish-header .wp-block-navigation-item__content:focus-visible {
	background: #D6FF3F; color: #0B0F0D;
}
.fish-hero { padding: clamp(72px, 13vw, 170px) 0 70px; }
.fish-hero::before { content: "LIVE SYSTEM / FIELD NOTES / 001"; top: 34px; right: auto; left: 0; color: #D6FF3F; font-family: "IBM Plex Mono", monospace; }
.fish-hero::after { content: "ASIC / POWER / FIRMWARE"; position: absolute; right: 0; bottom: 78px; writing-mode: vertical-rl; color: #6E7B70; font: 500 .68rem/1 "IBM Plex Mono", monospace; letter-spacing: .18em; }
.fish-hero .wp-block-post-featured-image { margin: 0 0 42px; box-shadow: none; border: 1px solid #37423B; background: #151B17; }
.fish-hero .wp-block-post-featured-image img { border-radius: 0; filter: grayscale(1) sepia(.2) hue-rotate(35deg) saturate(1.7) contrast(1.1); opacity: .82; }
.fish-hero .wp-block-post-title { max-width: 850px; color: #F3F1E6; font-size: clamp(4.8rem, 13vw, 12.5rem); font-weight: 700; line-height: .79; letter-spacing: -.065em; text-transform: uppercase; }
.fish-hero .wp-block-post-title::first-line { color: #D6FF3F; }
.fish-hero .mayosol-last-updated { border-left: 1px solid #D6FF3F; color: #7F8B81; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.wp-block-post-content { color: #D7D9CF; }
.wp-block-post-content > p:first-of-type {
	margin-top: 20px; padding: 34px 0 34px 28px; border: 0; border-left: 4px solid #D6FF3F; border-radius: 0;
	background: transparent; color: #F3F1E6; box-shadow: none; font-size: 1.12rem; line-height: 1.75;
}
.wp-block-post-content > p:first-of-type a { color: #D6FF3F; }
.wp-block-post-content h2 { color: #F3F1E6; margin-top: 104px; font-size: clamp(2.8rem, 6vw, 5.2rem); line-height: .9; letter-spacing: -.04em; text-transform: uppercase; }
.wp-block-post-content h2::before { content: "//"; display: block; margin-bottom: 12px; color: #D6FF3F; font: 500 .72rem/1 "IBM Plex Mono", monospace; letter-spacing: .1em; }
.wp-block-post-content h2::after { width: 100%; height: 1px; margin-top: 22px; background: #37423B; }
.wp-block-post-content h3 { color: #D6FF3F; font-family: "IBM Plex Mono", monospace; font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.wp-block-post-content p, .wp-block-post-content li { max-width: 66ch; }
.wp-block-post-content figure.wp-block-image { margin: 76px 0; }
.wp-block-post-content figure.wp-block-image img { border: 1px solid #37423B; border-radius: 0; box-shadow: 14px 14px 0 #183B2A; filter: grayscale(.25) saturate(1.15); }
.wp-block-post-content figcaption { color: #7F8B81; font-family: "IBM Plex Mono", monospace; font-size: .7rem; }
.wp-block-post-content table { border: 1px solid #37423B; border-radius: 0; background: #151B17; box-shadow: none; }
.wp-block-post-content th { background: #D6FF3F; color: #0B0F0D; border-radius: 0; font: 600 .7rem/1.3 "IBM Plex Mono", monospace; }
.wp-block-post-content td { background: #151B17; color: #D7D9CF; font-size: .86rem; }
.wp-block-post-content blockquote { border-left-color: #D6FF3F; border-radius: 0; background: #151B17; color: #F3F1E6; font-family: "Barlow Condensed", sans-serif; font-size: 1.65rem; line-height: 1.1; }
.wp-block-post-content a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fish-footer { background: #070A08; border-top: 1px solid #37423B; color: #7F8B81; }
.fish-footer a { color: #D6FF3F; }
@media (max-width: 680px) {
	.fish-header-inner { min-height: 58px; }
	.fish-hero { padding-top: 76px; }
	.fish-hero::after { display: none; }
	.fish-hero .wp-block-post-title { font-size: clamp(4rem, 21vw, 7rem); }
	.fish-hero .wp-block-post-featured-image { margin-bottom: 34px; }
	.wp-block-post-content > p:first-of-type { padding: 24px 0 24px 20px; }
	.wp-block-post-content h2 { margin-top: 76px; }
	.wp-block-post-content figure.wp-block-image img { box-shadow: 7px 7px 0 #183B2A; }
}

/* Premium editorial-tech layer: stronger composition without a framework. */
html { scroll-behavior: smooth; }
body {
	background-color: var(--wp--preset--color--background);
	background-image: linear-gradient(rgba(16,25,35,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(16,25,35,.045) 1px, transparent 1px);
	background-size: 32px 32px;
}
.fish-header {
	position: sticky; top: 0; z-index: 20;
	background: rgba(255,253,248,.84);
	backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
	box-shadow: 0 1px 0 rgba(16,25,35,.08);
}
.fish-header-inner { min-height: 54px; gap: 24px; }
.fish-header .wp-block-site-title a {
	display: inline-block; color: var(--wp--preset--color--text);
	font-size: clamp(1.25rem, 2vw, 1.65rem); letter-spacing: -.055em;
}
.fish-header .wp-block-site-title a::before {
	content: ""; display: inline-block; width: 10px; height: 10px; margin: 0 9px 2px 0;
	background: var(--wp--preset--color--accent); border-radius: 2px; transform: rotate(45deg);
}
.fish-header .wp-block-navigation { margin: 0; }
.fish-header .wp-block-navigation-item__content {
	padding: 8px 12px; border-radius: 8px; color: var(--wp--preset--color--text);
	font-size: .82rem; font-weight: 600; letter-spacing: .01em;
}
.fish-header .wp-block-navigation-item__content:hover,
.fish-header .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--text); color: var(--wp--preset--color--surface); transform: none;
}
.fish-header .wp-block-navigation__submenu-container {
	min-width: 250px; padding: 8px; border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface); box-shadow: 10px 10px 0 var(--wp--preset--color--accent-secondary);
}
.fish-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block; width: 100%; box-sizing: border-box; white-space: nowrap;
}
.fish-header .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--accent); }
.fish-hero { position: relative; padding: clamp(34px, 7vw, 92px) 0 26px; }
.fish-hero::before {
	content: "FIELD GUIDE / 01"; position: absolute; top: 24px; right: 0;
	font: 600 .7rem/1 var(--wp--preset--font-family--body); letter-spacing: .15em; color: var(--wp--preset--color--muted);
}
.fish-hero .wp-block-post-featured-image { margin: 0 0 34px; overflow: hidden; box-shadow: 18px 18px 0 var(--wp--preset--color--accent-secondary); }
.fish-hero .wp-block-post-featured-image img { border: 0; border-radius: 3px; display: block; filter: saturate(.9) contrast(1.03); }
.fish-hero .wp-block-post-title { max-width: 760px; margin: 0; font-size: clamp(3rem, 8vw, 7.2rem); line-height: .95; letter-spacing: -.075em; text-wrap: balance; }
.fish-hero .mayosol-last-updated { margin-top: 26px; padding-left: 14px; border-left: 2px solid var(--wp--preset--color--accent); }
.wp-block-post-content { position: relative; }
.wp-block-post-content > p:first-of-type {
	position: relative; margin-top: 26px; padding: 30px 34px 32px; border: 0; border-radius: 3px;
	background: var(--wp--preset--color--text); color: var(--wp--preset--color--surface);
	box-shadow: 12px 12px 0 var(--wp--preset--color--accent); font-size: 1.18rem; line-height: 1.65;
}
.wp-block-post-content > p:first-of-type a { color: #FFD9C9; }
.wp-block-post-content h2 { border-top: 0; padding-top: 0; margin-top: 78px; font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.055em; text-wrap: balance; }
.wp-block-post-content h2::after { content: ""; display: block; width: 42px; height: 4px; margin-top: 16px; background: var(--wp--preset--color--accent); }
.wp-block-post-content h3 { letter-spacing: -.03em; }
.wp-block-post-content p, .wp-block-post-content li { max-width: 68ch; }
.wp-block-post-content ul, .wp-block-post-content ol { padding-left: 1.35em; }
.wp-block-post-content li::marker { color: var(--wp--preset--color--accent); }
.wp-block-post-content figure.wp-block-image { margin: 58px -8vw; position: relative; }
.wp-block-post-content figure.wp-block-image img { border: 0; border-radius: 3px; box-shadow: 10px 10px 0 var(--wp--preset--color--accent-secondary); }
.wp-block-post-content figcaption { padding-left: 8px; font-size: .78rem; letter-spacing: .02em; }
.wp-block-post-content table { border: 0; border-radius: 3px; box-shadow: 0 14px 30px rgba(16,25,35,.08); }
.wp-block-post-content th { background: var(--wp--preset--color--accent-secondary); color: var(--wp--preset--color--surface); letter-spacing: .04em; font-size: .78rem; text-transform: uppercase; }
.wp-block-post-content td { background: var(--wp--preset--color--surface); }
.wp-block-post-content blockquote { margin: 42px 0; padding: 22px 28px; border-left: 4px solid var(--wp--preset--color--accent); background: rgba(255,253,248,.72); font-size: 1.2rem; }
.fish-faq, .fish-howto { margin-top: 96px; padding-top: 28px; border-top: 1px solid var(--wp--preset--color--border); }
.fish-faq details { border-bottom: 1px solid var(--wp--preset--color--border); }
.fish-faq summary { display:flex; justify-content:space-between; gap:24px; padding:22px 0; color:var(--wp--preset--color--text); font:600 1.1rem/1.25 "Barlow Condensed",sans-serif; letter-spacing:.01em; cursor:pointer; list-style:none; }
.fish-faq summary::-webkit-details-marker { display:none; }
.fish-faq summary::after { content:"+"; flex:0 0 auto; color:var(--wp--preset--color--accent); font:400 1.4rem/1 "IBM Plex Mono",monospace; }
.fish-faq details[open] summary::after { content:"−"; }
.fish-faq-answer { max-width:68ch; padding:0 0 22px 18px; border-left:2px solid var(--wp--preset--color--accent); color:var(--wp--preset--color--muted); }
.fish-faq-answer p, .fish-howto li p { margin:0; }
.fish-howto ol { padding-left:1.4rem; }
.fish-howto li { padding:18px 0 18px 10px; border-bottom:1px solid var(--wp--preset--color--border); }
.fish-howto li::marker { color:var(--wp--preset--color--accent); font-family:"IBM Plex Mono",monospace; }
.fish-howto li strong { display:block; margin-bottom:7px; color:var(--wp--preset--color--text); font-family:"Barlow Condensed",sans-serif; font-size:1.35rem; text-transform:uppercase; }
.fish-footer { border-top: 1px solid var(--wp--preset--color--border); }
.fish-footer a { color: var(--wp--preset--color--text); }
@media (max-width: 680px) {
	.fish-header-inner { align-items: flex-start; flex-direction: column; gap: 10px; }
	.fish-header .wp-block-navigation { width: 100%; }
	.fish-header .wp-block-navigation__responsive-container-open { margin-left: auto; }
	.fish-hero { padding-top: 48px; }
	.fish-hero::before { top: 18px; }
	.fish-hero .wp-block-post-featured-image { margin-right: 10px; box-shadow: 8px 8px 0 var(--wp--preset--color--accent-secondary); }
	.fish-hero .wp-block-post-title { font-size: clamp(2.8rem, 15vw, 5rem); }
	.wp-block-post-content > p:first-of-type { margin-right: 6px; padding: 24px 22px; box-shadow: 6px 6px 0 var(--wp--preset--color--accent); }
	.wp-block-post-content figure.wp-block-image { margin-left: 0; margin-right: 0; }
	.wp-block-post-content figure.wp-block-image img { box-shadow: 6px 6px 0 var(--wp--preset--color--accent-secondary); }
}

/* Ensure the control-room direction wins over all earlier theme layers. */
body { background-color:#0B0F0D; background-image:linear-gradient(rgba(214,255,63,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(214,255,63,.055) 1px,transparent 1px),radial-gradient(circle at 70% 8%,rgba(214,255,63,.12),transparent 28%); background-size:40px 40px,40px 40px,auto; color:#E8E6D9; }
.fish-header { background:rgba(11,15,13,.9); border-bottom:1px solid #37423B !important; box-shadow:none; }
.fish-header .wp-block-site-title a { color:#D6FF3F; font-family:"IBM Plex Mono",monospace; font-size:.92rem; letter-spacing:.08em; text-transform:uppercase; }
.fish-header .wp-block-navigation-item__content { border-radius:0; color:#AAB5AA; font:500 .72rem/1 "IBM Plex Mono",monospace; letter-spacing:.04em; text-transform:uppercase; }
.fish-header .wp-block-navigation-item__content:hover,.fish-header .wp-block-navigation-item__content:focus-visible { background:#D6FF3F; color:#0B0F0D; }
.fish-hero { padding:clamp(72px,13vw,170px) 0 70px; }
.fish-hero::before { content:"LIVE SYSTEM / FIELD NOTES / 001"; top:34px; right:auto; left:0; color:#D6FF3F; font-family:"IBM Plex Mono",monospace; }
.fish-hero::after { content:"ASIC / POWER / FIRMWARE"; position:absolute; right:0; bottom:78px; writing-mode:vertical-rl; color:#6E7B70; font:500 .68rem/1 "IBM Plex Mono",monospace; letter-spacing:.18em; }
.fish-hero .wp-block-post-featured-image { position:relative; margin:0 0 42px; box-shadow:none; border:1px solid #37423B; background:#151B17; }
.fish-hero .wp-block-post-featured-image img { border-radius:0; filter:grayscale(1) sepia(.2) hue-rotate(35deg) saturate(1.7) contrast(1.1); opacity:.82; }
.fish-hero .wp-block-post-title { max-width:850px; color:#F3F1E6; font-size:clamp(4.8rem,13vw,12.5rem); font-weight:700; line-height:.79; letter-spacing:-.065em; text-transform:uppercase; }
.fish-hero .wp-block-post-title::first-line { color:#D6FF3F; }
.wp-block-post-content { color:#D7D9CF; }
.wp-block-post-content > p:first-of-type { margin-top:20px; padding:34px 0 34px 28px; border:0; border-left:4px solid #D6FF3F; border-radius:0; background:transparent; color:#F3F1E6; box-shadow:none; font-size:1.12rem; line-height:1.75; }
.wp-block-post-content > p:first-of-type a { color:#D6FF3F; }
.wp-block-post-content h2 { color:#F3F1E6; margin-top:104px; font-size:clamp(2.8rem,6vw,5.2rem); line-height:.9; letter-spacing:-.04em; text-transform:uppercase; }
.wp-block-post-content h2::before { content:"//"; display:block; margin-bottom:12px; color:#D6FF3F; font:500 .72rem/1 "IBM Plex Mono",monospace; }
.wp-block-post-content h2::after { width:100%; height:1px; margin-top:22px; background:#37423B; }
.wp-block-post-content figure.wp-block-image { margin:76px 0; }
.wp-block-post-content figure.wp-block-image img { border:1px solid #37423B; border-radius:0; box-shadow:14px 14px 0 #183B2A; filter:invert(.88) hue-rotate(155deg) saturate(1.25) contrast(1.04); transition:filter .35s ease,transform .5s cubic-bezier(.2,.75,.25,1); }
.wp-block-post-content figure.wp-block-image:hover img { filter:invert(.82) hue-rotate(155deg) saturate(1.55) contrast(1.08); transform:translateY(-3px); }
.wp-block-post-content table { border:1px solid #37423B; border-radius:0; background:#151B17; box-shadow:none; }
.wp-block-post-content th { background:#D6FF3F; color:#0B0F0D; }
.wp-block-post-content td { background:#151B17; color:#D7D9CF; }
.wp-block-post-content blockquote { border-left-color:#D6FF3F; border-radius:0; background:#151B17; color:#F3F1E6; }
.fish-footer { background:#070A08; border-top:1px solid #37423B; color:#7F8B81; }
.fish-footer a { color:#D6FF3F; }
@media (max-width:680px) { .fish-hero::after{display:none;} .fish-hero .wp-block-post-title{font-size:clamp(4rem,21vw,7rem);} .wp-block-post-content > p:first-of-type{padding:24px 0 24px 20px;} .wp-block-post-content h2{margin-top:76px;} .wp-block-post-content figure.wp-block-image{margin-left:0;margin-right:0;} .wp-block-post-content figure.wp-block-image img{box-shadow:7px 7px 0 #183B2A;} }
