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

@property --star-a { syntax: "<color>"; inherits: false; initial-value: #632477; }
@property --star-b { syntax: "<color>"; inherits: false; initial-value: #1f4f82; }
@property --star-c { syntax: "<color>"; inherits: false; initial-value: #397046; }
@property --star-d { syntax: "<color>"; inherits: false; initial-value: #632477; }

:root {
  color-scheme: only light;
  --ink: #11110f;
  --paper: #f2f0e8;
  --paper-deep: #ddd9cc;
  --acid: #8dffa4;
  --signal: #63e6dd;
  --white: #fffdf7;
}

* { box-sizing: border-box; }
html { min-width: 100%; overflow-x: clip; scroll-behavior: smooth; width: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Manrope, sans-serif; min-width: 100%; overflow-x: clip; width: 100%; }
.site-shell { max-width: 100%; min-width: 100%; overflow-x: clip; width: 100%; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button { font: inherit; }
::selection { background: var(--acid); color: var(--white); }
.skip-link { background: var(--signal); color: var(--ink); font: 600 11px "IBM Plex Mono",monospace; left: 10px; padding: 12px; position: fixed; top: -60px; z-index: 999; }
.skip-link:focus { top: 10px; }
:focus-visible { outline: 3px solid var(--acid); outline-offset: 3px; }

.site-header { align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--ink); display: grid; grid-template-columns: 260px 1fr; min-height: 82px; position: sticky; top: 0; z-index: 50; }
.brand { align-items: center; border-right: 1px solid var(--ink); display: grid; grid-template-columns: 54px 1fr; padding: 6px 18px; position: relative; text-decoration: none; }
.brand img { height: 64px; object-fit: contain; width: 54px; }
.brand-name { font-family: "Archivo Black", sans-serif; font-size: 22px; letter-spacing: -.04em; }
.brand-code { bottom: 7px; font: 500 9px "IBM Plex Mono", monospace; position: absolute; right: 10px; }
.site-nav { display: grid; grid-template-columns: repeat(5, 1fr); }
.site-nav a { align-items: center; border-right: 1px solid var(--ink); display: flex; font: 600 12.65px "IBM Plex Mono", monospace; justify-content: center; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; transition: .15s; }
.site-nav a:hover, .site-nav a.is-active { background: var(--ink); color: var(--signal); }
.menu-toggle { display: none; }

.hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, .65fr); min-height: calc(100vh - 82px); overflow: hidden; position: relative; }
.hero-index { color: rgba(17,17,15,.05); font: 400 clamp(240px,34vw,560px)/.7 "Archivo Black", sans-serif; left: -35px; pointer-events: none; position: absolute; top: 70px; }
.hero-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: 8vw 5vw; position: relative; z-index: 1; }
.overline { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.live-dot { background: var(--acid); border-radius: 50%; display: inline-block; height: 8px; margin-right: 8px; width: 8px; }
.hero h1, .section-header h2, .footer-callout h2 { font-family: "Archivo Black", sans-serif; font-weight: 400; letter-spacing: -.075em; margin: 28px 0; text-transform: uppercase; }
.hero h1 { font-size: clamp(72px,10.7vw,178px); line-height: .77; }
.hero h1 span { -webkit-text-stroke:clamp(1px,.16vw,3px) var(--ink); color:var(--acid); paint-order:stroke fill; }
.hero-deck { font-size: clamp(18px,1.7vw,27px); line-height: 1.45; margin: 0; max-width: 750px; }
.hero-deck strong { display: block; font-weight: 600; margin-bottom: 5px; }
.hero-actions { display: flex; gap: 1px; margin-top: 42px; }
.action { align-items: center; border: 1px solid var(--ink); display: flex; font: 600 12px "IBM Plex Mono", monospace; gap: 44px; justify-content: space-between; padding: 18px 20px; text-decoration: none; text-transform: uppercase; }
.action-primary { background: var(--ink); color: var(--white); }
.action:hover { background: var(--signal); color: var(--ink); }

.hero-object { animation:starSpark 7.3s ease-in-out infinite; background-color: var(--ink); background-image: radial-gradient(circle at 18% 14%,var(--star-a) 0 1px,transparent 3.5px),radial-gradient(circle at 72% 34%,var(--star-b) 0 1px,transparent 3.5px),radial-gradient(circle at 43% 78%,var(--star-c) 0 1px,transparent 3.5px),radial-gradient(circle at 78% 72%,var(--star-d) 0 1px,transparent 3.5px); background-size: 113px 109px,157px 149px,193px 181px,227px 211px; color: var(--white); display: flex; flex-direction: column; justify-content: space-between; min-height: 610px; overflow: hidden; padding: 28px; position: relative; }
.hero-object::before { border: 1px solid rgba(255,255,255,.18); content: ""; inset: 20px; pointer-events: none; position: absolute; }
.hero-object::after { border: 1px solid rgba(99,230,221,.22); border-radius: 50%; content: ""; height: 44%; left: 12%; pointer-events: none; position: absolute; top: 28%; transform: rotate(-18deg); width: 76%; }
.hero-object img { align-self: center; filter: drop-shadow(22px 18px 0 var(--acid)); image-rendering: pixelated; margin: 44px 0 24px; position: relative; width: min(78%,320px); z-index: 1; }
.object-stamp { font: 500 10px/1.5 "IBM Plex Mono", monospace; position: relative; z-index: 1; }
.hero-object dl { margin: 0; position: relative; z-index: 1; }
.hero-object dl div { border-top: 1px solid rgba(255,255,255,.25); display: grid; gap: 20px; grid-template-columns: 56px 1fr; padding: 10px 0; }
.hero-object dt, .hero-object dd { font: 500 10px "IBM Plex Mono", monospace; margin: 0; }
.hero-object dt { color: var(--signal); }

.signal-tape { align-items: center; background: var(--acid); border-block: 1px solid var(--ink); display: flex; font: 600 11px "IBM Plex Mono", monospace; gap: 32px; justify-content: space-around; min-height: 42px; overflow: hidden; white-space: nowrap; }
.signal-tape i { background: var(--ink); height: 8px; transform: rotate(45deg); width: 8px; }
.section-block { border-bottom: 1px solid var(--ink); padding: 110px 5vw; }
.section-header { display: grid; gap: 30px; grid-template-columns: 150px minmax(0,1fr); margin-bottom: 72px; }
.section-header > span { font: 600 11px "IBM Plex Mono", monospace; padding-top: 12px; }
.section-header h2 { font-size: clamp(55px,8vw,130px); line-height: .86; margin: 0; }
.section-header > p { font-size: 18px; grid-column: 2; margin: 0; max-width: 520px; }

.section-dark { animation:starSpark 9.1s ease-in-out -1.7s infinite; background-color: var(--ink); background-image: radial-gradient(circle at 11% 19%,var(--star-a) 0 1px,transparent 3.4px),radial-gradient(circle at 69% 37%,var(--star-b) 0 1px,transparent 3.4px),radial-gradient(circle at 37% 83%,var(--star-c) 0 1px,transparent 3.4px); background-size: 179px 173px,251px 239px,307px 293px; color: var(--white); }
.deck { animation-duration:8.3s; animation-delay:-4.2s; }
.web3 { isolation:isolate; overflow:hidden; position:relative; }
.web3::before,.web3::after { border:1px solid rgba(99,230,221,.12); border-radius:50%; content:""; pointer-events:none; position:absolute; right:-16vw; top:3vw; z-index:0; }
.web3::before { height:42vw; width:42vw; }
.web3::after { height:24vw; right:-3vw; top:13vw; transform:rotate(34deg); width:48vw; }
.web3 > * { position:relative; z-index:1; }
.definition-grid { display: grid; grid-template-columns: 1.25fr .75fr 1fr; }
.definition, .doginal-card { border: 1px solid rgba(255,255,255,.3); margin: -1px 0 0 -1px; min-height: 310px; padding: 28px; }
.definition-wide { grid-column: span 2; }
.definition-code { color: var(--signal); font: 500 10px "IBM Plex Mono", monospace; }
.definition h3 { font-family: "Archivo Black", sans-serif; font-size: clamp(38px,4vw,68px); letter-spacing: -.06em; margin: 72px 0 10px; text-transform: uppercase; }
.definition p { font-size: 17px; line-height: 1.5; max-width: 440px; }
.doginal-card { background: var(--white); color: var(--ink); grid-row: span 2; }
.doginal-card img { height: 410px; image-rendering: pixelated; object-fit: contain; width: 100%; }
.doginal-card figcaption { border-top: 1px solid var(--ink); display: flex; font: 500 10px "IBM Plex Mono", monospace; justify-content: space-between; padding-top: 12px; }
.definition-accent { background: var(--signal); color: var(--ink); }
.definition-accent .definition-code { color: var(--ink); }
.xirion-grid { grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr); }
.xirion-portrait { grid-row:auto; min-height:620px; }
.xirion-portrait img { height:530px; }
.xirion-card { background:#8dffa4; display:flex; flex-direction:column; justify-content:flex-end; min-height:620px; overflow:hidden; position:relative; }
.xirion-card::before,.xirion-card::after { border:1px solid rgba(17,17,15,.32); border-radius:50%; content:""; position:absolute; }
.xirion-card::before { height:390px; right:-140px; top:-120px; width:390px; }
.xirion-card::after { height:190px; right:5px; top:-12px; transform:rotate(35deg); width:430px; }
.xirion-card h3 { font-size:clamp(62px,8vw,132px); margin:0 0 24px; position:relative; }
.xirion-card p { font-size:clamp(20px,2vw,30px); line-height:1.35; margin:0; position:relative; }

.note-reader { border: 1px solid rgba(255,255,255,.3); display: grid; grid-template-columns: 160px minmax(0,1fr); margin-top: 72px; min-height: 390px; }
.note-reader-auto { background: rgba(255,255,255,.018); }
.note-reader-rail { border-right: 1px solid rgba(255,255,255,.3); display: flex; flex-direction: column; font: 500 10px "IBM Plex Mono",monospace; justify-content: space-between; padding: 24px; }
.note-reader-rail strong { color: var(--acid); font-size: 18px; writing-mode: vertical-rl; }
.note-reader-copy { display: flex; flex-direction: column; justify-content: center; padding: 48px; }
.note-kicker { color: var(--signal); font: 500 10px "IBM Plex Mono",monospace; letter-spacing: .08em; }
.note-reader-copy h3 { font-family: "Archivo Black",sans-serif; font-size: clamp(36px,5vw,74px); letter-spacing: -.06em; line-height: .98; margin: 30px 0 18px; min-height: 1.96em; text-transform: uppercase; }
.note-reader-copy h3::after { animation: cursorBlink 1s steps(1) infinite; color: var(--acid); content: "_"; }
.note-reader-copy > p:not(.note-kicker) { color: rgba(255,255,255,.75); font-size: 18px; line-height: 1.6; margin: 0; max-width: 740px; opacity: 0; transform: translateY(5px); transition: .35s; }
.note-reader-copy > p.is-visible { opacity: 1; transform: translateY(0); }
.note-progress { background: rgba(255,255,255,.16); height: 2px; margin-top: 40px; }
.note-progress i { background: var(--signal); display: block; height: 100%; transition: width .4s; }
.note-reader-controls { border-left: 1px solid rgba(255,255,255,.3); display: grid; grid-template-rows: repeat(3,1fr); }
.note-reader-controls button { background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.3); color: var(--white); cursor: pointer; font: 600 10px "IBM Plex Mono",monospace; }
.note-reader-controls button:last-child { border: 0; }
.note-reader-controls button:hover { background: var(--signal); color: var(--ink); }
@keyframes cursorBlink { 50% { opacity: 0; } }
@keyframes starSpark {
  0%,100% { --star-a:#632477; --star-b:#1f4f82; --star-c:#397046; --star-d:#632477; }
  18% { --star-a:#e45cff; --star-b:#1f4f82; --star-c:#397046; --star-d:#632477; }
  42% { --star-a:#632477; --star-b:#42a5ff; --star-c:#397046; --star-d:#632477; }
  67% { --star-a:#632477; --star-b:#1f4f82; --star-c:#8dffa4; --star-d:#632477; }
  84% { --star-a:#632477; --star-b:#1f4f82; --star-c:#397046; --star-d:#e45cff; }
}

.release-board { border: 1px solid var(--ink); display: grid; grid-template-columns: 110px 1.2fr .8fr 280px; min-height: 420px; }
.release-board > * { border-right: 1px solid var(--ink); padding: 26px; }
.release-board > *:last-child { border: 0; }
.release-status { display: flex; flex-direction: column; font: 600 10px "IBM Plex Mono", monospace; justify-content: space-between; }
.release-status strong { color: var(--acid); font-size: 50px; }
.release-main { display: flex; flex-direction: column; justify-content: center; }
.release-main h3 { font-family: "Archivo Black", sans-serif; font-size: clamp(42px,5vw,78px); letter-spacing: -.06em; line-height: .9; margin: 28px 0; text-transform: uppercase; }
.release-main > p:last-child { font-size: 17px; line-height: 1.6; max-width: 560px; }
.release-orbit { align-items: center; display: flex; justify-content: center; overflow: hidden; position: relative; }
.release-orbit i { border: 1px solid var(--ink); border-radius: 50%; height: 70%; position: absolute; width: 70%; }
.release-orbit i:nth-child(2) { transform: rotate(60deg); }
.release-orbit i:nth-child(3) { transform: rotate(120deg); }
.release-orbit b { background: var(--acid); border-radius: 50%; display: grid; font: 600 14px "IBM Plex Mono", monospace; height: 70px; place-items: center; width: 70px; z-index: 1; }
.release-meta { display: flex; flex-direction: column; font-family: "IBM Plex Mono", monospace; justify-content: flex-end; }
.release-meta span { border-top: 1px solid var(--ink); font-size: 9px; padding-top: 12px; }
.release-meta strong { font-size: 12px; padding: 8px 0 30px; }

.blackbox { background: var(--signal); }
.lab-tabs { border: 1px solid var(--ink); display: grid; grid-template-columns: repeat(3,1fr); }
.lab-tabs button { background: transparent; border: 0; border-right: 1px solid var(--ink); cursor: pointer; font: 600 11px "IBM Plex Mono",monospace; min-height: 58px; }
.lab-tabs button:last-child { border: 0; }
.lab-tabs button.is-active,.lab-tabs button:hover { background: var(--ink); color: var(--signal); }
.lab-panel { border: 1px solid var(--ink); border-top: 0; display: none; grid-template-columns: .72fr 1.28fr; min-height: 540px; }
.lab-panel.is-active { display: grid; }
.lab-copy { border-right: 1px solid var(--ink); padding: 40px; }
.lab-copy > span { font: 600 10px "IBM Plex Mono",monospace; }
.lab-copy h3 { font-family: "Archivo Black",sans-serif; font-size: clamp(38px,4vw,65px); letter-spacing: -.055em; line-height: .98; margin: 70px 0 22px; text-transform: uppercase; }
.lab-copy p { font-size: 17px; line-height: 1.6; max-width: 480px; }
.wallet-model { display: grid; grid-template-columns: 190px 1fr; }
.wallet-choices { border-right: 1px solid var(--ink); display: grid; grid-template-rows: repeat(4,1fr); }
.wallet-choices button { background: var(--paper); border: 0; border-bottom: 1px solid var(--ink); cursor: pointer; font: 600 10px "IBM Plex Mono",monospace; }
.wallet-choices button.is-active,.wallet-choices button:hover { background: var(--acid); }
.wallet-answer { align-self:center; padding: 50px; }
.wallet-answer span { font: 600 10px "IBM Plex Mono",monospace; }
.wallet-answer h4 { font-family:"Archivo Black",sans-serif; font-size:clamp(34px,4vw,58px); letter-spacing:-.05em; line-height:1; margin:35px 0 20px; text-transform:uppercase; }
.wallet-answer p { font-size:19px; line-height:1.6; }
.gas-model,.approval-model { background:var(--paper); display:grid; gap:26px; padding:50px; }
.gas-model label,.approval-model label { display:grid; font:600 10px "IBM Plex Mono",monospace; gap:12px; }
.gas-model output { color:var(--acid); font-size:20px; justify-self:end; }
.gas-model input { accent-color:var(--acid); width:100%; }
.gas-result,.approval-result { align-self:end; background:var(--ink); color:var(--white); display:grid; gap:15px; padding:30px; }
.gas-result span,.approval-result span { color:var(--signal); font:600 9px "IBM Plex Mono",monospace; }
.gas-result strong,.approval-result strong { font-family:"Archivo Black",sans-serif; font-size:clamp(28px,4vw,52px); }
.gas-result small { color:rgba(255,255,255,.6); }
.approval-model select { background:var(--white); border:1px solid var(--ink); border-radius:0; font-size:17px; padding:16px; }
.approval-result[data-level="medium"] { background:#5e4511; }
.approval-result[data-level="high"] { background:#8a2416; }
.approval-result p { line-height:1.5; margin:0; }
.lab-disclaimer { font:500 9px "IBM Plex Mono",monospace; margin:16px 0 0; text-transform:uppercase; }

.deck { background-color:#0c0d0d; }
.market-shell { border: 1px solid rgba(255,255,255,.3); }
.market-toolbar { align-items: center; border-bottom: 1px solid rgba(255,255,255,.3); display: grid; font: 500 10px "IBM Plex Mono",monospace; grid-template-columns: 100px 1fr auto; min-height: 52px; padding: 0 20px; }
.market-toolbar > span { display: flex; gap: 7px; }
.market-toolbar i { background: var(--paper-deep); border-radius: 50%; height: 8px; opacity: .65; width: 8px; }
.market-toolbar em { color: var(--signal); font-style: normal; }
.market-ticker { border-bottom: 1px solid rgba(255,255,255,.3); min-height: 82px; padding: 10px 16px; }
.market-loading { align-items: center; color: rgba(255,255,255,.55); display: flex; font: 500 10px "IBM Plex Mono",monospace; height: 100%; justify-content: center; min-height: 62px; text-transform: uppercase; }
.market-grid { display: grid; grid-template-columns: .9fr 1.35fr .62fr; min-height: 520px; }
.market-grid > * { border-right: 1px solid rgba(255,255,255,.3); padding: 28px; }
.market-grid > *:last-child { border: 0; }
.market-label { display: flex; font: 500 9px "IBM Plex Mono",monospace; justify-content: space-between; }
.market-label span { color: var(--signal); }
.mood-module { display: flex; flex-direction: column; }
.mood-module h3 { font-family: "Archivo Black",sans-serif; font-size: clamp(30px,3vw,48px); letter-spacing: -.05em; line-height: 1; margin: 55px 0 18px; text-transform: uppercase; }
.mood-module > p { color: rgba(255,255,255,.72); font-size: 15px; line-height: 1.7; }
.mood-readout { align-items: flex-end; border-top: 1px solid rgba(255,255,255,.3); display: flex; justify-content: space-between; margin-top: auto; padding-top: 26px; }
.mood-readout div { display: grid; gap: 8px; }
.mood-readout span { font-size: 26px; }
.mood-readout small { color: rgba(255,255,255,.55); font: 500 9px "IBM Plex Mono",monospace; }
.mood-readout strong { color: var(--acid); font: 500 64px "IBM Plex Mono",monospace; }
.mood-meter { background: linear-gradient(90deg,#67b7ff,#f2e6a0,#8dffa4); height: 9px; margin: 18px 0 8px; position: relative; }
.mood-meter i { background: var(--white); box-shadow: 2px 0 0 var(--ink); display: block; height: 100%; max-width: 100%; transition: width .6s; width: 0; }
.mood-scale { display: flex; font: 500 8px "IBM Plex Mono",monospace; justify-content: space-between; }
.mood-module > a { color: var(--signal); font: 500 8px "IBM Plex Mono",monospace; margin-top: 25px; }
.chart-module { display: flex; flex-direction: column; min-width: 0; }
.tradingview-chart { flex: 1; margin-top: 24px; min-height: 430px; overflow: hidden; }
.tradingview-chart > div { height: 100%; }
.deck-guide { display: flex; flex-direction: column; }
.deck-guide > span { color: var(--signal); font: 500 9px "IBM Plex Mono",monospace; }
.deck-guide ol { list-style: none; margin: 50px 0 0; padding: 0; }
.deck-guide li { border-top: 1px solid rgba(255,255,255,.3); padding: 20px 0; }
.deck-guide b { font-size: 14px; }
.deck-guide p { color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.5; margin: 8px 0 0; }
.deck-guide .market-disclaimer { border-top: 1px solid rgba(255,255,255,.3); font: 500 9px/1.6 "IBM Plex Mono",monospace; margin-top: auto; padding-top: 20px; text-transform: uppercase; }

.journal { background: var(--paper-deep); }
.home-notes-grid { border-left:1px solid var(--ink); border-top:1px solid var(--ink); display:grid; grid-template-columns:repeat(4,1fr); }
.home-note { border-bottom:1px solid var(--ink); border-right:1px solid var(--ink); display:flex; flex-direction:column; min-height:360px; padding:24px; text-decoration:none; transition:.15s; }
.home-note:hover { background:var(--acid); }
.home-note > span,.home-note footer { font:600 9px "IBM Plex Mono",monospace; }
.home-note h3 { font-family:"Archivo Black",sans-serif; font-size:clamp(24px,2vw,34px); letter-spacing:-.05em; line-height:1; margin:55px 0 18px; text-transform:uppercase; }
.home-note p { font-size:13px; line-height:1.6; }
.home-note footer { display:flex; justify-content:space-between; margin-top:auto; }
.notes-all-link { border:1px solid var(--ink); display:inline-block; font:600 10px "IBM Plex Mono",monospace; margin-top:30px; padding:18px; text-decoration:none; }
.notes-all-link:hover { background:var(--ink); color:var(--signal); }
.signal-brief { border: 1px solid var(--ink); display: grid; grid-template-columns: 150px minmax(0,1fr) minmax(280px,.55fr); }
.signal-brief > * { padding: 30px; }
.brief-rail { border-right: 1px solid var(--ink); display: flex; flex-direction: column; font: 500 10px "IBM Plex Mono", monospace; gap: 24px; }
.brief-rail time { color: var(--acid); font-size: 18px; margin-top: auto; writing-mode: vertical-rl; }
.brief-body { padding: 50px !important; }
.brief-body h3 { font-family: "Archivo Black", sans-serif; font-size: clamp(38px,5vw,74px); letter-spacing: -.06em; line-height: .96; margin: 35px 0; text-transform: uppercase; }
.brief-summary { font-size: 20px; line-height: 1.55; }
.brief-body ol { counter-reset: brief; list-style: none; margin: 45px 0 0; padding: 0; }
.brief-body li { border-top: 1px solid var(--ink); counter-increment: brief; font-size: 14px; padding: 15px 0 15px 38px; position: relative; }
.brief-body li::before { color: var(--acid); content: "0" counter(brief); font: 600 10px "IBM Plex Mono", monospace; left: 0; position: absolute; }
.prompt-card { background: var(--signal); border-left: 1px solid var(--ink); display: flex; flex-direction: column; }
.prompt-card > span { font: 600 10px "IBM Plex Mono", monospace; }
.prompt-card p { font-size: 21px; line-height: 1.5; margin: auto 0; }
.prompt-card button { background: var(--ink); border: 0; color: var(--white); cursor: pointer; font: 600 11px "IBM Plex Mono", monospace; padding: 18px; }
.prompt-card button:hover { background: var(--acid); }

.site-footer { animation:starSpark 10.7s ease-in-out -6.4s infinite; background-color:var(--ink); background-image:radial-gradient(circle at 8% 22%,var(--star-a) 0 1px,transparent 3.5px),radial-gradient(circle at 73% 31%,var(--star-b) 0 1px,transparent 3.5px),radial-gradient(circle at 42% 78%,var(--star-c) 0 1px,transparent 3.5px); background-size:173px 167px,239px 227px,293px 281px; color: var(--white); overflow:hidden; padding: 95px 5vw 24px; position:relative; }
.site-footer::before { border:1px solid rgba(99,230,221,.13); border-radius:50%; content:""; height:680px; pointer-events:none; position:absolute; right:-260px; top:-330px; width:680px; }
.site-footer > * { position:relative; }
.footer-callout > span { color: var(--signal); font: 600 11px "IBM Plex Mono", monospace; }
.footer-callout h2 { font-size: clamp(65px,11vw,180px); line-height: .78; }
.footer-callout h2 em { color: var(--acid); font-style: normal; }
.footer-callout p { font-size: 18px; }
.footer-links { border-top: 1px solid rgba(255,255,255,.35); margin-top: 70px; }
.footer-links a { align-items: center; border-bottom: 1px solid rgba(255,255,255,.35); display: flex; font: 500 12px "IBM Plex Mono", monospace; justify-content: space-between; padding: 18px 0; text-decoration: none; }
.footer-links a:hover { color: var(--signal); padding-left: 10px; }
.footer-links b { font-size: 23px; }
.footer-bottom { display: flex; font: 500 9px "IBM Plex Mono", monospace; justify-content: space-between; padding-top: 70px; }
.toast { background: var(--acid); bottom: 24px; color: var(--ink); font: 600 11px "IBM Plex Mono", monospace; opacity: 0; padding: 14px 18px; pointer-events: none; position: fixed; right: 24px; transform: translateY(14px); transition: .2s; z-index: 90; }
.toast.is-visible { opacity: 1; transform: translateY(0); }

.notes-page,.article-page { min-height:100vh; }
.notes-topbar { align-items:center; border-bottom:1px solid var(--ink); display:flex; font:600 10px "IBM Plex Mono",monospace; justify-content:space-between; min-height:70px; padding:0 5vw; }
.notes-topbar a { text-decoration:none; }
.notes-index-hero { padding:90px 5vw; }
.notes-index-hero > span { font:600 10px "IBM Plex Mono",monospace; }
.notes-index-hero h1,.article-hero h1,.error-page h1 { font-family:"Archivo Black",sans-serif; font-size:clamp(70px,12vw,190px); letter-spacing:-.075em; line-height:.78; margin:35px 0; text-transform:uppercase; }
.notes-index-hero p { font-size:22px; }
.notes-grid { border-left:1px solid var(--ink); border-top:1px solid var(--ink); display:grid; grid-template-columns:repeat(3,1fr); margin:0 5vw 80px; }
.note-card { border-bottom:1px solid var(--ink); border-right:1px solid var(--ink); display:flex; flex-direction:column; min-height:420px; padding:30px; text-decoration:none; }
.note-card:hover { background:var(--signal); }
.note-card > span,.note-card footer { font:600 9px "IBM Plex Mono",monospace; }
.note-card h2 { font-family:"Archivo Black",sans-serif; font-size:clamp(28px,3vw,45px); letter-spacing:-.05em; line-height:1; margin:70px 0 20px; text-transform:uppercase; }
.note-card p { font-size:15px; line-height:1.6; }
.note-card footer { display:flex; justify-content:space-between; margin-top:auto; }
.reading-progress { background:transparent; height:4px; left:0; position:fixed; right:0; top:0; z-index:100; }
.reading-progress i { background:var(--acid); display:block; height:100%; width:0; }
.article-hero { border-bottom:1px solid var(--ink); padding:90px 5vw; }
.article-hero > div { display:flex; font:600 10px "IBM Plex Mono",monospace; justify-content:space-between; }
.article-hero h1 { font-size:clamp(60px,10vw,150px); max-width:1500px; }
.article-hero > p { font-size:clamp(20px,2.2vw,32px); line-height:1.45; max-width:900px; }
.article-layout { display:grid; grid-template-columns:220px minmax(0,800px); justify-content:center; }
.article-layout > aside { border-left:1px solid var(--ink); border-right:1px solid var(--ink); display:flex; flex-direction:column; font:600 9px "IBM Plex Mono",monospace; justify-content:space-between; padding:32px; }
.article-layout aside button { background:transparent; border:1px solid var(--ink); cursor:pointer; font:600 9px "IBM Plex Mono",monospace; padding:12px; }
.article-copy { border-right:1px solid var(--ink); font-size:18px; line-height:1.8; padding:70px; }
.article-copy h2 { font-family:"Archivo Black",sans-serif; font-size:42px; letter-spacing:-.04em; line-height:1; margin:70px 0 24px; text-transform:uppercase; }
.article-copy h2:first-child { margin-top:0; }
.article-copy li { margin-bottom:12px; }
.article-copy a { color:#17643a; font-weight:600; }
.article-copy strong { font-weight:700; }
.article-end { align-items:center; background:var(--ink); color:var(--white); display:flex; font:600 10px "IBM Plex Mono",monospace; justify-content:space-between; padding:50px 5vw; }
.article-end a { color:var(--signal); }
.error-page { background:var(--ink); color:var(--white); min-height:100vh; padding:10vh 6vw; }
.error-page > span { color:var(--signal); font:600 10px "IBM Plex Mono",monospace; }
.error-page h1 em { color:var(--acid); font-style:normal; }
.error-page p { font-size:22px; }
.error-page a { border:1px solid var(--white); display:inline-block; font:600 10px "IBM Plex Mono",monospace; margin-top:30px; padding:18px; text-decoration:none; }

@media (max-width: 980px) {
  .site-header { grid-template-columns: 220px 1fr; }
  .site-nav a { font-size: 10.35px; }
  .hero { grid-template-columns: 1fr; }
  .definition-grid { grid-template-columns: 1fr 1fr; }
  .xirion-grid { grid-template-columns:1fr 1fr; }
  .doginal-card { grid-row: auto; }
  .release-board { grid-template-columns: 90px 1fr 1fr; }
  .release-meta { display: none; }
  .signal-brief { grid-template-columns: 105px 1fr; }
  .prompt-card { border-left: 0; border-top: 1px solid var(--ink); grid-column: 1/-1; min-height: 300px; }
  .note-reader { grid-template-columns: 110px 1fr; }
  .note-reader-controls { border-left: 0; border-top: 1px solid rgba(255,255,255,.3); grid-column: 1/-1; grid-template-columns: repeat(3,1fr); grid-template-rows: 60px; }
  .note-reader-controls button { border-bottom: 0; border-right: 1px solid rgba(255,255,255,.3); }
  .market-grid { grid-template-columns: 1fr 1.35fr; }
  .deck-guide { border-right: 0; border-top: 1px solid rgba(255,255,255,.3); grid-column: 1/-1; }
  .home-notes-grid { grid-template-columns:repeat(2,1fr); }
  .lab-panel { grid-template-columns:1fr; }
  .lab-copy { border-bottom:1px solid var(--ink); border-right:0; }
  .notes-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 720px) {
  .site-header { grid-template-columns: 1fr 112px; min-height: 70px; }
  .brand { grid-template-columns: 44px 1fr; }
  .brand img { height: 54px; width: 42px; }
  .brand-name { font-size: 18px; }
  .menu-toggle { align-items: center; background: transparent; border: 0; display: flex; font: 600 10px "IBM Plex Mono", monospace; justify-content: space-around; }
  .site-nav { background: var(--paper); border-bottom: 1px solid var(--ink); display: none; grid-column: 1/-1; grid-template-columns: 1fr; position: absolute; top: 70px; width: 100%; }
  .site-nav.is-open { display: grid; }
  .site-nav a { border-bottom: 1px solid var(--ink); min-height: 54px; }
  .hero { min-height: auto; }
  .hero-copy { min-height: 650px; padding: 80px 22px; }
  .hero h1 { font-size: clamp(64px,20vw,100px); }
  .hero-index { font-size: 270px; left: -25px; }
  .hero-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .section-block { padding: 76px 22px; }
  .section-header { gap: 24px; grid-template-columns: 1fr; margin-bottom: 50px; }
  .section-header > p { grid-column: 1; }
  .section-header h2 { font-size: 54px; }
  .definition-grid { grid-template-columns: 1fr; }
  .xirion-grid { grid-template-columns:1fr; }
  .definition-wide { grid-column: auto; }
  .doginal-card img { height: 300px; }
  .xirion-portrait,.xirion-card { min-height:430px; }
  .xirion-portrait img { height:340px; }
  .note-reader { grid-template-columns: 1fr; }
  .note-reader-rail { border-bottom: 1px solid rgba(255,255,255,.3); border-right: 0; flex-direction: row; }
  .note-reader-rail strong { writing-mode: initial; }
  .note-reader-copy { min-height: 430px; padding: 30px; }
  .note-reader-copy h3 { font-size: 38px; }
  .note-reader-controls { grid-column: 1; }
  .release-board { grid-template-columns: 62px 1fr; }
  .release-orbit { border-right: 0; border-top: 1px solid var(--ink); grid-column: 1/-1; min-height: 300px; }
  .signal-brief { grid-template-columns: 1fr; }
  .brief-rail { border-bottom: 1px solid var(--ink); border-right: 0; }
  .brief-rail time { margin: 0; writing-mode: initial; }
  .brief-body { padding: 30px !important; }
  .prompt-card { grid-column: 1; }
  .market-toolbar { grid-template-columns: 1fr auto; }
  .market-toolbar > span { display: none; }
  .market-grid { grid-template-columns: 1fr; }
  .market-grid > * { border-bottom: 1px solid rgba(255,255,255,.3); border-right: 0; }
  .mood-module { min-height: 520px; }
  .chart-module { min-height: 540px; }
  .deck-guide { grid-column: 1; }
  .footer-callout h2 { font-size: 64px; }
  .footer-bottom { flex-direction: column; gap: 10px; }
  .home-notes-grid,.notes-grid { grid-template-columns:1fr; }
  .lab-tabs { grid-template-columns:1fr; }
  .lab-tabs button { border-bottom:1px solid var(--ink); border-right:0; }
  .wallet-model { grid-template-columns:1fr; }
  .wallet-choices { border-bottom:1px solid var(--ink); border-right:0; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(2,60px); }
  .wallet-choices button { border-right:1px solid var(--ink); }
  .gas-model,.approval-model,.wallet-answer { padding:28px; }
  .article-layout { grid-template-columns:1fr; }
  .article-layout > aside { border-bottom:1px solid var(--ink); border-left:0; border-right:0; flex-direction:row; }
  .article-copy { border-right:0; padding:40px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
  .hero-object,.section-dark,.site-footer { animation:none; }
}

@media print {
  .notes-topbar,.reading-progress,.article-layout aside,.article-end { display:none; }
  .article-hero,.article-copy { border:0; padding:20px 0; }
  .article-layout { display:block; }
  body { background:#fff; color:#000; }
}
