*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
min-height:100vh;
overflow-x:hidden;
overflow-y:auto;
font-family:sans-serif;
/* Page ground: burgundy + soft radial wash (no line grids). */
--crt-vignette-edge:rgba(0,0,0,0.58);
background-color:rgb(10,4,9);
background-image:radial-gradient(
ellipse 120% 100% at 50% 38%,
rgba(255,105,180,0.055) 0%,
transparent 48%,
rgba(0,0,0,0.14) 78%,
rgba(0,0,0,0.44) 100%
);
background-attachment:fixed;
}

/* Full-screen CRT veil: vignette + soft diagonal tint (no column/dash grid). */
body::before{
content:"";
position:fixed;
inset:0;
z-index:19990;
pointer-events:none;
background:
radial-gradient(
ellipse 96% 92% at 50% 42%,
transparent 0%,
transparent 36%,
rgba(0,0,0,0.14) 62%,
rgba(0,0,0,0.36) 82%,
var(--crt-vignette-edge) 100%
),
linear-gradient(
165deg,
rgba(255,210,228,0.05) 0%,
transparent 36%,
transparent 64%,
rgba(4,1,4,0.11) 100%
);
}
@media (prefers-reduced-transparency: reduce){
body::before{ opacity:0.55; }
}

/* Full width of the viewport (100%, not 100vw — avoids horizontal scrollbar mismatch). Deck + border frames span edge to edge. */
.scene{
position:relative;
z-index:1;
width:100%;
min-width:0;
min-height:100vh;
height:200vh;
perspective:1400px;
}

/* Radial edge darkening over the card viewport only (inside `.deck-stage-viewport`) */
.vignette--deck-viewport{
position:absolute;
inset:0;
pointer-events:none;
z-index:4;
border-radius:4px;
background:radial-gradient(ellipse 72% 72% at 50% 48%, transparent 0%, transparent 58%, rgba(0,0,0,0.38) 80%, rgba(0,0,0,0.78) 94%, rgba(0,0,0,0.9) 100%);
}

/* Full-width ticker under deck — DIRECTIVE palette + shimmer sweep */
.deck-shimmer-strip{
position:absolute;
left:0;
width:100%;
overflow:hidden;
z-index:12;
pointer-events:none;
background:linear-gradient(180deg, rgba(22,10,18,0.97) 0%, rgba(28,12,22,0.94) 50%, rgba(18,8,14,0.96) 100%);
border-top:1px solid rgba(255,182,193,0.35);
border-bottom:1px solid rgba(255,182,193,0.22);
box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);
}
.deck-shimmer-strip-marquee{
display:flex;
width:max-content;
animation:deck-shimmer-marquee 55s linear infinite;
will-change:transform;
}
.deck-shimmer-strip-seg{
flex-shrink:0;
font-family:"Consolas","Monaco","Courier New",monospace;
font-size:10px;
font-weight:600;
letter-spacing:0.22em;
text-transform:uppercase;
color:rgba(255,182,193,0.78);
white-space:nowrap;
line-height:40px;
padding-right:2.5em;
}
@keyframes deck-shimmer-marquee{
from{ transform:translateX(0); }
to{ transform:translateX(-50%); }
}
.deck-shimmer-strip-shine{
position:absolute;
inset:0;
pointer-events:none;
background:linear-gradient(105deg, transparent 0%, transparent 42%, rgba(255,235,245,0.11) 50%, transparent 58%, transparent 100%);
width:55%;
left:-20%;
animation:deck-shimmer-sweep 4.2s ease-in-out infinite;
}
@keyframes deck-shimmer-sweep{
0%{ transform:translateX(-5%); opacity:0.65; }
45%{ opacity:1; }
100%{ transform:translateX(320%); opacity:0.7; }
}
@media (prefers-reduced-motion: reduce){
.deck-shimmer-strip-marquee{ animation-duration:120s; }
.deck-shimmer-strip-shine{ animation:none; opacity:0.35; }
}

/* Prism: two faces edge-to-edge. Outer edges fixed in screen plane; at center the two faces have equal and opposite angles (pivot on left edge of left face, right edge of right face). */

/* BTC-chart-style frame: thin chrome; cards fill `#deck-stage-viewport`. Position + size from JS (viewport margins). */
.deck-stage{
position:absolute;
left:14px;
right:14px;
transform:none;
width:auto;
/* Fallback until JS: uniform viewport margins */
top:14px;
height:calc(100vh - 28px);
z-index:8;
max-height:none;
min-height:0;
display:flex;
flex-direction:column;
box-sizing:border-box;
background:
  linear-gradient(165deg, rgba(42,12,32,0.98) 0%, rgba(22,8,18,0.99) 45%, rgba(32,10,26,0.98) 100%);
border:1px solid rgba(255,105,180,0.45);
border-radius:6px;
padding:0.28rem 0.35rem 0.3rem;
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.12),
  0 4px 28px rgba(255,20,147,0.12),
  0 4px 24px rgba(0,0,0,0.5);
}
.deck-stage-head{
flex-shrink:0;
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:0.35rem 0.65rem;
padding:0.05rem 0 0.2rem;
text-align:center;
}
.deck-stage-title{
margin:0;
font-family:sans-serif;
font-weight:700;
font-size:0.68rem;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.95);
text-shadow:0 0 10px rgba(255,182,193,0.25);
}
.deck-stage-range{
display:flex;
flex-wrap:wrap;
gap:0.3rem;
justify-content:center;
align-items:center;
margin:0;
}
.deck-stage-range-pill{
font-family:sans-serif;
font-size:0.58rem;
font-weight:700;
text-transform:uppercase;
letter-spacing:0.05em;
padding:0.18rem 0.42rem;
border-radius:4px;
border:1px solid rgba(255,182,193,0.45);
background:rgba(0,0,0,0.35);
color:rgba(255,255,255,0.8);
pointer-events:none;
}
.deck-stage-viewport{
position:relative;
flex:1 1 auto;
min-height:0;
min-width:0;
width:100%;
overflow:hidden;
border-radius:4px;
background-color:rgba(8,4,10,0.5);
isolation:isolate;
}

.deck{
position:absolute;
top:0;
left:0;
z-index:1;
width:auto;
height:auto;
overflow:visible;
transition: transform 0.15s ease-out;
transform-style:preserve-3d;
}

/* Shimmer inside deck-stage: flows at bottom of pink box (not full-viewport absolute). */
.deck-shimmer-strip--in-stage{
position:relative;
left:auto;
top:auto;
width:100%;
flex-shrink:0;
margin-top:0.22rem;
border-radius:4px;
overflow:hidden;
}
.deck-shimmer-strip--in-stage .deck-shimmer-strip-seg{
line-height:28px;
}

/* Second terminal: matches `.deck-stage` chrome; top/left/right from JS, height from content */
.below-deck-stage{
position:absolute;
transform:none;
width:auto;
z-index:7;
display:flex;
flex-direction:column;
box-sizing:border-box;
background:
  linear-gradient(165deg, rgba(42,12,32,0.98) 0%, rgba(22,8,18,0.99) 45%, rgba(32,10,26,0.98) 100%);
border:1px solid rgba(255,105,180,0.45);
border-radius:6px;
padding:0.28rem 0.35rem 0.35rem;
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.12),
  0 4px 28px rgba(255,20,147,0.12),
  0 4px 24px rgba(0,0,0,0.5);
}
.below-deck-stage-head{
flex-shrink:0;
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:0.35rem 0.65rem;
padding:0.05rem 0 0.2rem;
text-align:center;
}
.below-deck-stage-title{
margin:0;
font-family:sans-serif;
font-weight:700;
font-size:0.68rem;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.95);
text-shadow:0 0 10px rgba(255,182,193,0.25);
}
.below-deck-stage-range{
display:flex;
flex-wrap:wrap;
gap:0.3rem;
justify-content:center;
align-items:center;
margin:0;
}
.below-deck-stage-range-pill{
font-family:sans-serif;
font-size:0.58rem;
font-weight:700;
text-transform:uppercase;
letter-spacing:0.05em;
padding:0.18rem 0.42rem;
border-radius:4px;
border:1px solid rgba(255,182,193,0.45);
background:rgba(0,0,0,0.35);
color:rgba(255,255,255,0.8);
pointer-events:none;
}
.below-deck-stage-viewport{
position:relative;
flex:0 1 auto;
min-width:0;
min-height:0;
width:100%;
overflow:visible;
border-radius:4px;
background-color:rgba(8,4,10,0.5);
isolation:isolate;
}

.card{
position:absolute;
top:0;
background-color:#000;
isolation:isolate;
transition: transform 0.2s ease-out;
transform-style:preserve-3d;
box-sizing:border-box;
overflow:visible;
/* width, height, left set by JS: 650x1200 standard */
/* Left-edge halo only: fade in over 24px so overlap zone is linear blend of this card and the one to the left (no black) */
-webkit-mask-image:linear-gradient(to right,transparent 0,black 24px,black 100%);
mask-image:linear-gradient(to right,transparent 0,black 24px,black 100%);
-webkit-mask-size:100% 100%;
mask-size:100% 100%;
-webkit-mask-repeat:no-repeat;
mask-repeat:no-repeat;
}
.card-first{
-webkit-mask-image:none;
mask-image:none;
}

/* Base layer outside reveal: 50% grayscale so it keeps some color but is muted vs the full-color band */
.card-bg-grayscale{
position:absolute;
inset:0;
z-index:0;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
filter:grayscale(50%);
-webkit-filter:grayscale(50%);
}

/* Color only in reveal band: same image, mask set in JS; black = hide, white = show so only band is color */
.card-color-reveal{
position:absolute;
inset:0;
z-index:1;
background-size:cover;
background-position:center;
background-repeat:no-repeat;
pointer-events:none;
mask-mode:luminance;
-webkit-mask-mode:luminance;
/* Initial: fully hidden so deck is grayscale until JS sets band mask */
mask-image:linear-gradient(to right, black 0, black 100%);
-webkit-mask-image:linear-gradient(to right, black 0, black 100%);
}

/* First card: pivot on inside (right) edge */
.card-front{
transform-origin:100% 50%;
}

/* Second card: pivot on inside (left) edge */
.card-back{
transform-origin:0 50%;
}

/*
 * Stack (low→high): color (1) → glitch canvas (4) → reveal text (5) → classic frost (6).
 * On the active glitch card, frost is off: words sit on the glitch. On frosted cards, words stay under blur.
 */
.card-reveal{
position:absolute;
z-index:5;
pointer-events:none;
font-family:sans-serif;
font-weight:700;
color:white;
opacity:0.42;
text-align:center;
font-size:clamp(3rem, 8vw, 8rem);
filter:contrast(1.08) saturate(1.12);
-webkit-filter:contrast(1.08) saturate(1.12);
text-shadow:
  0 0 20px rgba(0,0,0,0.55),
  1px 0 0 rgba(255,120,160,0.22),
  -1px 0 0 rgba(120,200,255,0.18);
/* left, top, transform set in JS so word center is at (x, y) */
}

.card-keypoint-reveal{
position:absolute;
left:50%;
top:50%;
transform:translate(-50%, -50%);
z-index:5;
pointer-events:none;
font-family:sans-serif;
font-weight:600;
font-size:25px;
color:rgba(255,182,193,0.95);
text-align:center;
white-space:nowrap;
opacity:0;
visibility:hidden;
transition:opacity 0.1s ease, visibility 0.1s ease, color 0.2s ease, text-shadow 0.2s ease;
padding:0.2em 0.4em;
border:1px solid transparent;
border-radius:4px;
filter:contrast(1.06) saturate(1.1);
-webkit-filter:contrast(1.06) saturate(1.1);
text-shadow:
  0 0 14px rgba(0,0,0,0.45),
  0 0 12px rgba(255,182,193,0),
  0 0 24px rgba(255,182,193,0),
  1px 0 0 rgba(255,140,180,0.25),
  -1px 0 0 rgba(160,210,255,0.2);
}
.card-keypoint-reveal.card-keypoint-reveal-visible{
opacity:1;
visibility:visible;
}

/* Shared: mask set in JS — glitch canvas on “selected” card, backdrop frost on the rest */
.card-frost{
position:absolute;
inset:0;
z-index:3;
pointer-events:none;
mask-composite: add;
-webkit-mask-composite: plus-lighter;
}

.card-frost-glitch{
display:block;
width:100%;
height:100%;
z-index:4;
}

/* Above reveal/keypoint (5) so copy stays under the frost layer */
.card-frost-classic{
z-index:6;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
}

.noise{
position:absolute;
inset:0;

/* Relative to CSS file so it works when served from any path or file:// */
background-image:url("../assets/noise.png");
opacity:0.15;
mix-blend-mode:overlay;
pointer-events:none;
}

/* Layer for per-card BIG LETTERS – inside deck so they move with cards (no wobble); above cards within deck */
.card-big-letters-layer{
position:absolute;
top:0;
left:0;
pointer-events:none;
z-index:1000;
}

.card-big-letters-layer .card-big-letters-frost-box{
pointer-events:auto;
}

.card-big-letters-wrap{
position:absolute;
top:0;
}

/* Frost box around BIG LETTERS – always visible, backdrop blur + tint; positioning context for glitch */
.card-big-letters-frost-box{
position:absolute;
display:inline-block;
padding:0.2em 0.45em;
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
background:rgba(255,255,255,0.08);
border-radius:6px;
/* left, top, transform set in JS */
}

/* Glitch shadow behind each BIG LETTERS – 10% pink, random offset set in JS; above frost bg, below text */
.card-big-letters-glitch{
position:absolute;
left:50%;
top:50%;
font-family:sans-serif;
font-weight:700;
letter-spacing:0.02em;
text-transform:uppercase;
text-align:center;
font-size:clamp(2.7rem, 7.5vw, 6.6rem);
color:rgba(255,182,193,0.1);
pointer-events:none;
z-index:0;
white-space:nowrap;
/* transform set in JS */
}

/* Per-card BIG LETTERS – near bottom of card; hover: light glowing pink; above glitch */
.card-big-letters{
position:relative;
z-index:1;
font-family:sans-serif;
font-weight:700;
color:#fff;
letter-spacing:0.02em;
text-transform:uppercase;
text-align:center;
font-size:clamp(2.7rem, 7.5vw, 6.6rem);
transition:color 0.2s ease, text-shadow 0.2s ease;
}

.card-big-letters-frost-box:hover .card-big-letters{
color:#ffb3c6;
text-shadow:0 0 12px rgba(255,182,193,0.9), 0 0 24px rgba(255,182,193,0.5);
}

.card-big-letters-link{
text-decoration:none;
color:inherit;
cursor:pointer;
}
.card-big-letters-link:focus-visible{
outline:2px solid rgba(255,182,193,0.8);
outline-offset:4px;
}

/* QUEEN EVELYNN login – top of `#deck-stage-viewport`, centered horizontally */

.deck-login-bounds.text-white-bounds{
position:absolute;
left:50%;
top:0.5rem;
transform:translateX(-50%);
width:max-content;
max-width:min(96%, 780px);
overflow:visible;
pointer-events:none;
display:block;
text-align:center;
z-index:12;
}

/* Glitch shadow behind QUEEN EVELYNN – 10% pink */
.text-white-glitch{
position:absolute;
left:0;
top:0;
font-family:sans-serif;
font-weight:700;
letter-spacing:0.02em;
text-transform:uppercase;
text-align:center;
color:rgba(255,182,193,0.1);
pointer-events:none;
z-index:0;
white-space:nowrap;
/* font-size set in JS to match .text-white; transform set in JS for random offset */
}

.deck-login-bounds .text-white-glitch{
left:50%;
top:0;
text-align:center;
}


/* Mostly white with small amounts of red; sequence shuffled so it feels random */
@keyframes queen-flash{
0%{color:#fff;text-shadow:0 0 20px rgba(255,255,255,0.8),0 0 40px rgba(255,255,255,0.4);}
9%{color:#fff0f0;text-shadow:0 0 20px rgba(255,240,240,0.85),0 0 40px rgba(255,240,240,0.45);}
18%{color:#fff8f8;text-shadow:0 0 20px rgba(255,248,248,0.82),0 0 40px rgba(255,248,248,0.42);}
28%{color:#fff;text-shadow:0 0 20px rgba(255,255,255,0.8),0 0 40px rgba(255,255,255,0.4);}
39%{color:#ffe8e8;text-shadow:0 0 20px rgba(255,232,232,0.88),0 0 40px rgba(255,232,232,0.48);}
49%{color:#fff5f5;text-shadow:0 0 20px rgba(255,245,245,0.84),0 0 40px rgba(255,245,245,0.44);}
59%{color:#fff;text-shadow:0 0 20px rgba(255,255,255,0.8),0 0 40px rgba(255,255,255,0.4);}
70%{color:#ffebeb;text-shadow:0 0 20px rgba(255,235,235,0.86),0 0 40px rgba(255,235,235,0.46);}
80%{color:#fff0f0;text-shadow:0 0 20px rgba(255,240,240,0.85),0 0 40px rgba(255,240,240,0.45);}
90%{color:#ffe4e4;text-shadow:0 0 20px rgba(255,228,228,0.88),0 0 40px rgba(255,228,228,0.48);}
100%{color:#fff;text-shadow:0 0 20px rgba(255,255,255,0.8),0 0 40px rgba(255,255,255,0.4);}
}

.deck-login-bounds .text-white{
position:relative;
z-index:1;
margin:0;
text-align:center;
animation:queen-flash 1.4s ease-in-out infinite;
pointer-events:auto;
cursor:pointer;
}
.deck-login-bounds .text-white:focus-visible{
outline:2px solid rgba(255,182,193,0.9);
outline-offset:4px;
}

/* QUEEN EVELYNN: no glass panel / frosty bloom — plain text + light shadow; click + keyboard unchanged (main.js) */
#queen-evelynn-title{
overflow:visible;
backdrop-filter:none;
-webkit-backdrop-filter:none;
background:transparent;
animation:none;
color:#fff;
text-shadow:0 0 8px rgba(255,255,255,0.35);
}

.text-white{
min-width:0;
min-height:0;
max-width:100%;
max-height:100%;
overflow:visible;
font-family:sans-serif;
font-weight:700;
color:#fff;
letter-spacing:0.02em;
text-transform:uppercase;
text-align:center;
/* font-size set by JS from image dimensions */
}

/* Inside `.below-deck-stage-viewport`: profile, send, markets — no absolute top (stage positioned in JS) */
.below-deck{
position:relative;
left:auto;
right:auto;
top:auto;
width:100%;
min-height:100vh;
display:flex;
flex-direction:column;
align-items:center;
justify-content:flex-start;
gap:2rem;
padding:1.75rem max(0.5rem, 1rem) 2.5rem;
z-index:1;
overflow:visible;
box-sizing:border-box;
}

/* Bio panel (ASCII + console blurb) | Send (QR) — one row on wide viewports; stack on narrow */
.below-deck-pair{
display:grid;
grid-template-columns:minmax(0, 1fr) minmax(0, min(420px, 34vw));
align-items:stretch;
gap:clamp(0.35rem, 0.9vw, 0.55rem);
width:100%;
max-width:min(1440px, 100%);
margin-inline:auto;
box-sizing:border-box;
overflow:visible;
}

/* Single chrome: ASCII + blurb share one pink terminal frame */
.below-deck-bio-panel{
display:grid;
grid-template-columns:minmax(220px, min(36vw, 400px)) minmax(0, 1fr);
align-items:stretch;
gap:0;
min-width:0;
min-height:0;
box-sizing:border-box;
border:1px solid rgba(255,105,180,0.48);
border-radius:6px;
overflow:hidden;
background:linear-gradient(165deg, rgba(38,14,28,0.97) 0%, rgba(18,6,16,0.98) 48%, rgba(28,10,22,0.96) 100%);
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.14),
  0 4px 24px rgba(255,20,147,0.1),
  0 6px 28px rgba(0,0,0,0.45);
}

.below-deck-bio-panel .below-deck-image-wrap{
position:relative;
border:none;
border-radius:0;
box-shadow:none;
max-width:none;
width:100%;
height:100%;
min-height:0;
min-width:0;
overflow:hidden;
justify-self:stretch;
align-self:stretch;
display:flex;
align-items:center;
justify-content:center;
container-type:size;
container-name:bio-visual;
padding:clamp(0.25rem, 1.2vw, 0.5rem);
box-sizing:border-box;
background:linear-gradient(180deg, rgba(22,8,18,0.72) 0%, rgba(14,5,12,0.82) 100%);
border-right:1px solid rgba(255,182,193,0.38);
}
/* Largest square that fits in the column while the column stays as tall as the blurb */
.below-deck-bio-panel .below-deck-image-square{
position:relative;
flex-shrink:0;
width:100cqmin;
height:100cqmin;
max-width:100%;
max-height:100%;
box-sizing:border-box;
overflow:hidden;
}
@supports not (width:1cqmin){
.below-deck-bio-panel .below-deck-image-square{
width:100%;
height:auto;
aspect-ratio:1 / 1;
}
}
.below-deck-bio-panel .below-deck-image-square .below-deck-image{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}
.below-deck-bio-panel .below-deck-image-square .below-deck-bio-video{
vertical-align:top;
}
.below-deck-bio-panel .below-deck-image-square .below-deck-ascii-canvas{
position:absolute;
inset:0;
width:100%;
height:100%;
display:block;
pointer-events:none;
z-index:1;
}

.below-deck-bio-panel .below-deck-text-wrap{
justify-self:stretch;
max-width:none;
width:100%;
min-width:0;
min-height:0;
aspect-ratio:auto;
height:auto;
max-height:none;
border:none;
border-radius:0;
box-shadow:none;
background:linear-gradient(180deg, rgba(22,8,18,0.72) 0%, rgba(14,5,12,0.82) 100%);
}

.below-deck-image-wrap{
position:relative;
max-width:min(480px, 100%);
width:100%;
min-width:0;
min-height:0;
overflow:hidden;
background:linear-gradient(165deg, rgba(12,5,10,0.88) 0%, rgba(6,3,8,0.94) 100%);
border:1px solid rgba(255,182,193,0.22);
border-radius:4px;
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.06),
  0 2px 14px rgba(0,0,0,0.4);
justify-self:center;
}

.below-deck-image{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}
/* Source image stays in layout; ASCII canvas is drawn on top (JS toggles visibility). */
.below-deck-image-wrap--ascii .below-deck-image{
visibility:hidden;
}
.below-deck-ascii-canvas{
position:absolute;
inset:0;
width:100%;
height:100%;
display:block;
pointer-events:none;
z-index:1;
opacity:0;
transition:opacity 0.35s ease;
}
.below-deck-image-wrap--ascii .below-deck-ascii-canvas{
opacity:1;
}

.below-deck-text-wrap{
overflow:auto;
padding:1.25rem;
background:linear-gradient(165deg, rgba(12,5,10,0.78) 0%, rgba(6,3,8,0.88) 100%);
border:1px solid rgba(255,182,193,0.2);
border-radius:4px;
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.05),
  0 2px 14px rgba(0,0,0,0.32);
justify-self:center;
max-width:480px;
width:100%;
aspect-ratio:1 / 1;
/* Firefox */
scrollbar-width:thin;
scrollbar-color:rgba(255,182,193,0.75) rgba(18,8,14,0.45);
}
/* Chromium / Safari / Edge */
.below-deck-text-wrap::-webkit-scrollbar{
width:10px;
height:10px;
}
.below-deck-text-wrap::-webkit-scrollbar-track{
background:rgba(18,8,14,0.5);
border-radius:6px;
}
.below-deck-text-wrap::-webkit-scrollbar-thumb{
background:linear-gradient(180deg, rgba(255,200,210,0.85) 0%, rgba(255,160,180,0.7) 100%);
border-radius:6px;
border:2px solid rgba(18,8,14,0.35);
}
.below-deck-text-wrap::-webkit-scrollbar-thumb:hover{
background:linear-gradient(180deg, rgba(255,215,220,0.95) 0%, rgba(255,182,193,0.9) 100%);
}

.below-deck-text{
font-family:sans-serif;
font-size:0.95rem;
line-height:1.5;
color:rgba(255,255,255,0.9);
}
.below-deck-text p{
margin:0 0 0.85em;
}
.below-deck-text p:last-child{
margin-bottom:0;
}
.below-deck-lede{
font-size:1.02rem;
}
.below-deck-meta{
opacity:0.92;
font-size:0.9rem;
letter-spacing:0.02em;
}
/* Section heads — same idea as "The Dynamic:" / "The Rules:" but typographic, no trailing colon */
.below-deck-section-title{
font-family:sans-serif;
font-size:0.72rem;
font-weight:700;
letter-spacing:0.14em;
text-transform:uppercase;
color:rgba(255,182,193,0.9);
text-shadow:0 0 8px rgba(255,182,193,0.18);
margin:1.35em 0 0.65em;
padding-bottom:0.35em;
border-bottom:1px solid rgba(255,182,193,0.28);
}
.below-deck-section-title:first-of-type{
margin-top:1.1em;
}
/* Parallel "Label: detail" → term + definition (avoids repeated colons in running text) */
.below-deck-dl{
margin:0 0 0.25em;
padding:0;
}
.below-deck-dl dt{
font-weight:700;
font-size:0.88rem;
color:rgba(255,255,255,0.95);
margin:0.65em 0 0.2em;
letter-spacing:0.02em;
}
.below-deck-dl dt:first-child{
margin-top:0;
}
.below-deck-dl dd{
margin:0 0 0 0.85rem;
padding:0 0 0 0.65rem;
border-left:2px solid rgba(255,182,193,0.35);
color:rgba(255,255,255,0.82);
font-size:0.92rem;
line-height:1.45;
}
.below-deck-rules-lede{
margin-bottom:0.5em !important;
}
.below-deck-rules-no{
font-weight:600;
letter-spacing:0.03em;
color:rgba(255,200,210,0.95);
margin-bottom:0 !important;
}

/* Pink console typography (blurb shares outer frame with ASCII in .below-deck-bio-panel) */
.below-deck-text-wrap--console{
scrollbar-color:rgba(255, 182, 193, 0.65) rgba(28, 10, 22, 0.55);
}
.below-deck-text-wrap--console .below-deck-text{
font-family:ui-monospace, "Cascadia Code", "Consolas", "Monaco", "Courier New", monospace;
font-size:0.8125rem;
line-height:1.58;
letter-spacing:0.03em;
color:rgba(255, 228, 238, 0.9);
font-variant-ligatures:none;
}
.below-deck-text-wrap--console .below-deck-text::before{
content:"EVECORP\\BIO> channel_open\A";
display:block;
white-space:pre-wrap;
font-size:0.68rem;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255, 143, 185, 0.78);
margin-bottom:0.7rem;
padding-bottom:0.45rem;
border-bottom:1px dashed rgba(255, 105, 180, 0.38);
}
.below-deck-text-wrap--console .below-deck-text strong{
color:rgba(255, 248, 252, 0.99);
font-weight:700;
}
.below-deck-text-wrap--console .below-deck-lede{
font-size:0.875rem;
font-weight:600;
color:rgba(255, 240, 246, 0.96);
letter-spacing:0.02em;
}
.below-deck-text-wrap--console .below-deck-lede::before{
content:"> ";
color:rgba(255, 105, 180, 0.82);
font-weight:700;
}
.below-deck-text-wrap--console .below-deck-meta{
opacity:1;
font-size:0.75rem;
letter-spacing:0.04em;
color:rgba(230, 185, 210, 0.88);
}
.below-deck-text-wrap--console .below-deck-meta::before{
content:"// ";
color:rgba(255, 105, 180, 0.45);
}
/* Section titles — brighter pink banner vs body */
.below-deck-text-wrap--console .below-deck-section-title{
font-family:inherit;
font-size:0.7rem;
font-weight:800;
letter-spacing:0.2em;
text-transform:uppercase;
color:rgba(255, 182, 193, 0.98);
text-shadow:0 0 14px rgba(255, 105, 180, 0.22);
border-bottom-color:rgba(255, 105, 180, 0.38);
margin-top:1.25em;
padding-bottom:0.4em;
}
.below-deck-text-wrap--console .below-deck-section-title::before{
content:"# ";
letter-spacing:0.08em;
color:rgba(255, 105, 180, 0.55);
font-weight:700;
}
/* dl: labels vs values */
.below-deck-text-wrap--console .below-deck-dl dt{
font-family:inherit;
font-size:0.78rem;
font-weight:700;
letter-spacing:0.05em;
color:rgba(255, 210, 224, 0.94);
margin-top:0.7em;
}
.below-deck-text-wrap--console .below-deck-dl dt::before{
content:"[*]\00a0";
color:rgba(255, 105, 180, 0.55);
font-weight:600;
letter-spacing:0;
}
.below-deck-text-wrap--console .below-deck-dl dd{
font-family:inherit;
font-size:0.78rem;
font-weight:400;
line-height:1.52;
color:rgba(255, 215, 228, 0.86);
border-left-color:rgba(255, 105, 180, 0.42);
padding-left:0.55rem;
margin-left:0.35rem;
}
.below-deck-text-wrap--console .below-deck-rules-lede{
color:rgba(255, 225, 235, 0.9);
}
.below-deck-text-wrap--console .below-deck-rules-no{
font-weight:700;
letter-spacing:0.05em;
color:rgba(255, 160, 195, 0.98);
text-shadow:0 0 12px rgba(255, 105, 180, 0.2);
}

/* Send column: top-aligned with image + blurb via .below-deck-pair grid */
.send-section{
width:100%;
max-width:min(520px, 100%);
min-width:0;
padding-top:0;
padding-bottom:1.5rem;
margin-top:0;
border-top:none;
overflow:visible;
justify-self:stretch;
}

.send-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr));
gap:2rem;
align-items:start;
overflow:visible;
}

.send-option{
display:flex;
flex-direction:column;
gap:0.75rem;
}

/* Wide: bio + send terminals share one row height; send body grows with frost/QR */
@media (min-width:961px){
.below-deck-bio-panel{
align-self:stretch;
height:100%;
min-height:260px;
}
.below-deck-bio-panel .below-deck-text-wrap{
height:100%;
max-height:none;
}
.send-section.send-section--terminal{
height:100%;
min-height:0;
display:flex;
flex-direction:column;
padding-bottom:0;
max-width:100%;
align-self:stretch;
}
.send-section--terminal .send-terminal{
flex:1;
min-height:0;
width:100%;
max-width:100%;
margin:0;
display:flex;
flex-direction:column;
align-self:stretch;
}
/* `.send-terminal-stage` wide rules live after the base rule (see below) so they win in the cascade */
.wallet-tribute-qr-wrap{
min-height:0;
}
}

/* Phones / narrow: stack the three blocks; relax square blurb so copy isn’t trapped in a short box */
@media (max-width: 960px) {
.below-deck{
padding:2.25rem max(14px, 1rem) 3rem;
}
.below-deck-pair{
grid-template-columns:1fr;
gap:1rem;
}
.below-deck-bio-panel{
grid-template-columns:1fr;
min-height:0;
}
.below-deck-bio-panel .below-deck-image-wrap{
border-right:none;
border-bottom:1px solid rgba(255,182,193,0.38);
min-height:0;
height:auto;
max-height:none;
max-width:min(400px, 88vw);
width:100%;
margin-inline:auto;
aspect-ratio:unset;
align-self:center;
display:flex;
align-items:center;
justify-content:center;
padding:0.35rem;
container-type:normal;
}
.below-deck-bio-panel .below-deck-image-square{
width:100%;
max-width:100%;
height:auto;
aspect-ratio:1 / 1;
}
.below-deck-bio-panel .below-deck-text-wrap{
max-height:none;
max-width:min(36rem, 100%);
margin-inline:auto;
width:100%;
}
.below-deck-image-wrap{
max-width:min(400px, 88vw);
}
.below-deck-text-wrap{
aspect-ratio:auto;
max-height:none;
max-width:min(36rem, 100%);
}
.send-section{
justify-self:center;
max-width:min(28rem, 100%);
}
.send-grid{
grid-template-columns:1fr;
gap:1.25rem;
}
.send-section--terminal .send-terminal{
margin-inline:auto;
}
}

.send-option-title{
font-family:sans-serif;
font-weight:700;
font-size:1rem;
color:rgba(255,255,255,0.9);
margin:0;
}
/* ECD chrome: match `.deck-stage-title` + ticker for titles inside below-deck */
.below-deck .send-option-title{
font-size:0.82rem;
letter-spacing:0.07em;
text-transform:uppercase;
color:rgba(255,182,193,0.92);
text-shadow:0 0 8px rgba(255,182,193,0.2);
}

.btn{
display:inline-block;
padding:0.6rem 1.2rem;
font-family:sans-serif;
font-weight:700;
font-size:0.9rem;
text-transform:uppercase;
letter-spacing:0.04em;
text-decoration:none;
border-radius:6px;
border:none;
cursor:pointer;
transition:background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.btn-coinbase{
background:rgba(255,255,255,0.12);
color:#fff;
border:1px solid rgba(255,255,255,0.25);
align-self:flex-start;
}

.btn-coinbase:hover,
.btn-coinbase:focus-visible{
background:rgba(255,255,255,0.18);
color:#fff;
outline:2px solid rgba(255,182,193,0.5);
outline-offset:2px;
}

.btn-coinbase-placeholder{
opacity:0.7;
cursor:not-allowed;
}

/* Full width of #below-deck (viewport-wide strip), not the narrow Send column */
.send-btc-ytd{
align-self:stretch;
width:100%;
max-width:100%;
box-sizing:border-box;
margin-top:0;
padding-top:1.5rem;
padding-bottom:0.5rem;
border-top:1px solid rgba(255,182,193,0.2);
}

.market-suite{
width:100%;
max-width:min(1440px, 100%);
margin-top:0.9rem;
margin-left:auto;
margin-right:auto;
padding:0.9rem 1rem 1rem;
border:1px solid rgba(255,105,180,0.32);
border-radius:10px;
background:linear-gradient(170deg, rgba(22,8,18,0.92) 0%, rgba(10,6,14,0.86) 100%);
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.1),
  0 4px 22px rgba(255,20,147,0.06),
  0 10px 34px rgba(0,0,0,0.35);
}

/* INVEST IN EVECORP: header full width; chart row | terminal share one grid row — same height as .btc-ytd-chart-wrap */
.market-suite-econ-pair{
width:100%;
min-width:0;
margin-bottom:clamp(0.85rem, 2.4vw, 1.35rem);
box-sizing:border-box;
}

.market-suite-econ-inner{
display:flex;
flex-direction:column;
align-items:stretch;
min-width:0;
max-width:100%;
margin-left:0;
margin-right:0;
text-align:left;
}

.market-suite-econ-pair .send-btc-ytd{
min-width:0;
}

.market-suite-econ-inner .send-option-title{
text-align:left;
}

.market-suite-econ-inner .btc-ytd-range{
justify-content:flex-start;
}

.market-suite-econ-body{
display:grid;
grid-template-columns:1fr;
align-items:start;
gap:1rem;
min-width:0;
min-height:0;
margin-top:1rem;
}

.market-suite-econ-body .btc-ytd-chart-wrap{
margin-top:0;
}

.market-suite-econ-chart-cell{
min-width:0;
display:flex;
flex-direction:column;
align-items:stretch;
}

.market-suite-terminal-column{
display:flex;
flex-direction:column;
min-width:0;
min-height:0;
}

.market-suite-econ-body .market-suite-bio-terminal{
flex:none;
height:auto;
min-height:0;
width:100%;
display:flex;
flex-direction:column;
box-sizing:border-box;
border:1px solid rgba(255,105,180,0.48);
border-radius:6px;
overflow:hidden;
background:linear-gradient(165deg, rgba(38,14,28,0.97) 0%, rgba(18,6,16,0.98) 48%, rgba(28,10,22,0.96) 100%);
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.14),
  0 4px 24px rgba(255,20,147,0.1),
  0 6px 28px rgba(0,0,0,0.45);
}

.market-suite-econ-body .market-suite-bio-terminal__body{
flex:none;
background:linear-gradient(180deg, rgba(22,8,18,0.72) 0%, rgba(14,5,12,0.82) 100%);
}

.market-suite-econ-body .market-suite-bio-terminal__image-wrap{
flex:none;
min-height:0;
display:flex;
align-items:center;
justify-content:center;
padding:clamp(0.25rem, 1.2vw, 0.5rem);
box-sizing:border-box;
}

.market-suite-econ-body .market-suite-bio-terminal__square{
position:relative;
flex:none;
width:100%;
max-width:min(400px, 88vw);
margin-inline:auto;
aspect-ratio:1 / 1;
box-sizing:border-box;
overflow:hidden;
}

.market-suite-econ-body .market-suite-bio-terminal__video{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}

@media (min-width:961px){
.market-suite-econ-body{
grid-template-columns:minmax(0, 1fr) minmax(220px, min(36vw, 400px));
align-items:stretch;
gap:clamp(0.5rem, 1.2vw, 1rem);
}
.market-suite-econ-chart-cell,
.market-suite-terminal-column{
min-height:0;
}
.market-suite-terminal-column{
align-self:stretch;
}
.market-suite-econ-body .market-suite-bio-terminal{
flex:1;
min-height:0;
}
.market-suite-econ-body .market-suite-bio-terminal__body{
flex:1 1 0;
min-height:0;
min-width:0;
display:flex;
flex-direction:column;
background:linear-gradient(180deg, rgba(22,8,18,0.72) 0%, rgba(14,5,12,0.82) 100%);
}
.market-suite-econ-body .market-suite-bio-terminal__image-wrap{
flex:1 1 0;
min-height:0;
display:flex;
align-items:stretch;
justify-content:center;
padding:clamp(0.25rem, 1.2vw, 0.5rem);
box-sizing:border-box;
}
.market-suite-econ-body .market-suite-bio-terminal__square{
flex:1 1 0;
min-width:0;
min-height:0;
width:100%;
max-width:none;
margin-inline:0;
aspect-ratio:unset;
}
.market-suite-econ-body .market-suite-bio-terminal__video{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}
}

.market-suite-bio-terminal__head{
flex-shrink:0;
padding:0.4rem 0.55rem 0.42rem;
background:linear-gradient(180deg, rgba(22,8,18,0.88) 0%, rgba(14,5,12,0.92) 100%);
border-bottom:1px dashed rgba(255,182,193,0.38);
}

.market-suite-bio-terminal__banner{
display:block;
font-family:ui-monospace,"Consolas","Monaco","Courier New",monospace;
font-size:0.625rem;
font-weight:700;
letter-spacing:0.1em;
text-transform:uppercase;
color:rgba(255,143,185,0.88);
text-shadow:0 0 10px rgba(255,105,180,0.25);
line-height:1.45;
word-break:break-word;
}

.market-suite .send-btc-ytd{
margin-top:0;
padding-top:0;
padding-bottom:0.6rem;
border-top:none;
}

.market-suite .btc-ytd-inner{
max-width:100%;
}

.market-suite .btc-ytd-chart-wrap{
max-width:100%;
margin-bottom:0;
border-bottom-left-radius:4px;
border-bottom-right-radius:4px;
}

.market-suite .market-tape-wrap{
margin-top:0.75rem;
padding-top:0.75rem;
max-width:100%;
border-top:1px solid rgba(255,105,180,0.35);
}

.btc-ytd-inner{
max-width:920px;
width:100%;
margin-left:auto;
margin-right:auto;
text-align:center;
}

.btc-ytd-inner .send-option-title{
text-align:center;
}

.btc-ytd-range{
display:flex;
flex-wrap:wrap;
gap:0.5rem;
margin-top:0.75rem;
margin-bottom:0.25rem;
}

.btc-ytd-range-btn{
font-family:sans-serif;
font-size:0.75rem;
font-weight:700;
text-transform:uppercase;
letter-spacing:0.06em;
padding:0.35rem 0.65rem;
border-radius:4px;
border:1px solid rgba(255,182,193,0.45);
background:rgba(0,0,0,0.35);
color:rgba(255,255,255,0.85);
cursor:pointer;
transition:background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.btc-ytd-range-btn:hover,
.btc-ytd-range-btn:focus-visible{
background:rgba(255,182,193,0.12);
color:#fff;
outline:2px solid rgba(255,182,193,0.45);
outline-offset:2px;
}

.btc-ytd-range-btn.is-active{
background:rgba(255,105,180,0.2);
border-color:rgba(255,20,147,0.65);
color:#fff;
box-shadow:0 0 12px rgba(255,105,180,0.25);
}

.btc-ytd-chart-wrap{
position:relative;
margin-top:0.75rem;
margin-left:auto;
margin-right:auto;
width:100%;
max-width:min(920px, 100%);
background:
  linear-gradient(165deg, rgba(42,12,32,0.98) 0%, rgba(22,8,18,0.99) 45%, rgba(32,10,26,0.98) 100%);
border:1px solid rgba(255,105,180,0.45);
border-radius:6px;
padding:0.75rem 0.75rem 0.5rem;
box-shadow:
  inset 0 1px 0 rgba(255,182,193,0.12),
  0 4px 28px rgba(255,20,147,0.12),
  0 4px 24px rgba(0,0,0,0.5);
}
/* JS-driven pan: translate on this group every rAF — promote layer for smooth motion (main + admin economics) */
.btc-ytd-chart .btc-ytd-pan-slide{
will-change:transform;
}
@media (prefers-reduced-motion: reduce){
.btc-ytd-chart .btc-ytd-pan-slide{
will-change:auto;
}
}

.btc-ytd-status{
margin:0 0 0.5rem;
padding:0.35rem 0.5rem;
font-size:11px;
font-weight:600;
line-height:1.35;
letter-spacing:0.02em;
color:rgba(255,200,215,0.95);
background:rgba(120,30,55,0.45);
border:1px solid rgba(255,105,140,0.5);
border-radius:4px;
box-sizing:border-box;
}
.btc-ytd-status[hidden]{
display:none !important;
}

/* Sendie rain: HTML inside SVG foreignObject (over grid, under paths in each clip) */
.btc-ytd-sendie-rain-fo-root{
overflow:visible;
}
.btc-ytd-sendie-rain-fo{
display:flex;
justify-content:space-between;
align-items:stretch;
gap:0.15rem;
width:100%;
height:100%;
box-sizing:border-box;
overflow:hidden;
pointer-events:none;
}
.btc-ytd-sendie-rain__col{
flex:1 1 0;
min-width:0;
height:100%;
overflow:hidden;
-webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
mask-image:linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
}
.btc-ytd-sendie-rain__strip{
display:flex;
flex-direction:column;
will-change:transform;
animation:btc-ytd-sendie-rain-scroll linear infinite;
}
.btc-ytd-sendie-rain__block{
flex-shrink:0;
}
.btc-ytd-sendie-rain__line{
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:9px;
font-weight:600;
line-height:1.5;
letter-spacing:0.04em;
color:rgba(255,182,193,0.072);
text-shadow:0 0 6px rgba(255,105,180,0.06);
white-space:nowrap;
overflow:visible;
max-width:none;
transition:color 0.35s ease, text-shadow 0.35s ease, font-weight 0.2s ease;
}
.btc-ytd-sendie-rain__line--flash{
color:rgba(255,228,240,0.55);
text-shadow:0 0 12px rgba(255,130,170,0.45);
font-weight:700;
}
@media (prefers-reduced-motion: reduce){
.btc-ytd-sendie-rain__strip{
animation:none !important;
}
}

@keyframes btc-ytd-sendie-rain-scroll{
0%{transform:translateY(0);}
100%{transform:translateY(-50%);}
}

/* 2×2: TL hover inset | TR BTC/USD spot · BL balance BTC | BR balance USD */
.btc-ytd-chart-grid{
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1fr);
grid-template-rows:auto auto;
gap:0.5rem;
width:100%;
align-items:stretch;
}
.btc-ytd-chart-grid--single{
display:block;
}
.btc-ytd-chart-grid--single .btc-ytd-chart--inset,
.btc-ytd-chart-grid--single .btc-ytd-chart--rate,
.btc-ytd-chart-grid--single .btc-ytd-chart--usd{
display:none;
}
.btc-ytd-chart-grid--single .btc-ytd-chart--btc{
width:100%;
max-width:100%;
}
.btc-ytd-chart{
display:block;
min-width:0;
width:100%;
height:auto;
aspect-ratio:454 / 259;
min-height:120px;
max-height:320px;
}
/* Top row: compact panels */
.btc-ytd-chart--inset,
.btc-ytd-chart--rate{
aspect-ratio:454 / 120;
max-height:200px;
min-height:100px;
}
.btc-ytd-chart-grid--single .btc-ytd-chart--btc{
aspect-ratio:920 / 280;
max-height:300px;
}

/* Terminal field — hot pink / light pink palette */
.btc-ytd-chart .btc-ytd-term-bg{
fill:#120810;
}
.btc-ytd-chart .btc-ytd-term-vdiv,
.btc-ytd-chart .btc-ytd-term-hdiv{
stroke:rgba(255,105,180,0.35);
stroke-width:1;
}
.btc-ytd-chart .btc-ytd-term-brand{
fill:#ff69b4;
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:9px;
font-weight:700;
letter-spacing:0.1em;
filter:drop-shadow(0 0 4px rgba(255,105,180,0.45));
}
.btc-ytd-chart .btc-ytd-term-lbl{
fill:rgba(255,182,193,0.55);
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:7.5px;
letter-spacing:0.06em;
}
.btc-ytd-chart .btc-ytd-term-lbl--vol{
font-size:9px;
font-weight:700;
fill:rgba(255,182,193,0.78);
letter-spacing:0.14em;
}
.btc-ytd-chart .btc-ytd-term-val{
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:8.5px;
font-weight:600;
}
.btc-ytd-chart .btc-ytd-term-up{
fill:#ffb6c1;
filter:drop-shadow(0 0 4px rgba(255,182,193,0.55));
}
.btc-ytd-chart .btc-ytd-term-dn{
fill:#ff1493;
filter:drop-shadow(0 0 4px rgba(255,20,147,0.4));
}
.btc-ytd-chart .btc-ytd-term-neu{
fill:rgba(255,228,240,0.92);
}
.btc-ytd-chart .btc-ytd-term-vol{
fill:#ffc0e8;
font-size:10.5px;
font-weight:700;
filter:drop-shadow(0 0 4px rgba(255,105,180,0.45));
}

.btc-ytd-chart .btc-ytd-volbar{
fill:rgba(255,105,180,0.42);
stroke:none;
}
.btc-ytd-chart .btc-ytd-candle--up{
fill:#ff8dc7;
stroke:rgba(255,182,193,0.65);
stroke-width:0.35;
}
.btc-ytd-chart .btc-ytd-candle--dn{
fill:#db2777;
stroke:rgba(219,39,119,0.55);
stroke-width:0.35;
}

.btc-ytd-chart .btc-ytd-grid{
stroke:rgba(255,182,193,0.14);
stroke-width:1;
}

.btc-ytd-chart .btc-ytd-line--btc{
fill:none;
stroke:#ff69b4;
stroke-width:1.85;
stroke-linejoin:miter;
stroke-linecap:butt;
filter:drop-shadow(0 0 5px rgba(255,105,180,0.55));
}

.btc-ytd-chart .btc-ytd-line--usd{
fill:none;
stroke:#ffb6c1;
stroke-width:1.85;
stroke-linejoin:miter;
stroke-linecap:butt;
filter:drop-shadow(0 0 5px rgba(255,105,180,0.45));
}

.btc-ytd-chart .btc-ytd-line--rate{
fill:none;
stroke:#ff69b4;
stroke-width:1.85;
stroke-linejoin:miter;
stroke-linecap:butt;
filter:drop-shadow(0 0 5px rgba(255,105,180,0.55));
}

.btc-ytd-chart .btc-ytd-fill,
.btc-ytd-chart .btc-ytd-fill--usd{
fill:rgba(255,105,180,0.1);
stroke:none;
}

.btc-ytd-chart .btc-ytd-fill--rate{
fill:rgba(255,105,180,0.14);
stroke:none;
}

.btc-ytd-chart .btc-ytd-tx-marker{
cursor:default;
}

.btc-ytd-chart .btc-ytd-tx-hit{
cursor:pointer;
}

.btc-ytd-chart .btc-ytd-tx-dot{
pointer-events:none;
}

.btc-ytd-chart .btc-ytd-tx-dot--btc{
fill:#ffe4ef;
stroke:#ff69b4;
stroke-width:1.35;
}
.btc-ytd-chart .btc-ytd-tx-dot--usd{
stroke:rgba(255,182,193,0.95);
stroke-width:1.2;
}

.btc-ytd-chart .btc-ytd-playhead-line{
stroke:rgba(255,182,193,0.92);
stroke-width:1.25;
stroke-dasharray:4 3;
filter:drop-shadow(0 0 5px rgba(255,182,193,0.65));
}

.btc-ytd-chart .btc-ytd-tx-dot--pulse{
stroke:#ff69b4;
stroke-width:1.65;
filter:drop-shadow(0 0 7px rgba(255,105,180,0.95));
}

.btc-ytd-chart .btc-ytd-tx-inset-bg{
fill:rgba(24,8,20,0.9);
stroke:rgba(255,105,180,0.4);
stroke-width:1;
}

.btc-ytd-chart .btc-ytd-tx-inset-sendie{
fill:rgba(255,230,236,0.98);
font-family:sans-serif;
font-size:9px;
font-weight:700;
letter-spacing:0.04em;
}

.btc-ytd-chart .btc-ytd-tx-inset-split{
stroke:rgba(255,105,180,0.35);
stroke-width:1;
}

/* EVECORP-tape style column: last 3 Sendies vs lifetime |ΔBTC| (all Sendies, all time) */
.btc-ytd-chart .btc-ytd-tx-inset-tape-hdr{
fill:#ff69b4;
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:10.5px;
font-weight:700;
letter-spacing:0.06em;
filter:drop-shadow(0 0 3px rgba(255,105,180,0.45));
}

.btc-ytd-chart .btc-ytd-tx-inset-tape-val{
fill:rgba(255,228,240,0.95);
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:12px;
font-weight:700;
letter-spacing:0.03em;
}

.btc-ytd-chart .btc-ytd-tx-inset-key{
fill:rgba(255,255,255,0.45);
font-family:sans-serif;
font-size:8.5px;
}

.btc-ytd-chart .btc-ytd-tx-inset-val{
fill:rgba(255,230,236,0.95);
font-family:sans-serif;
font-size:9px;
font-weight:600;
}

.btc-ytd-chart .btc-ytd-axis{
font-family:ui-monospace,"Consolas","Monaco",monospace;
font-size:8px;
}

.btc-ytd-chart .btc-ytd-axis--btc{
fill:rgba(255,182,193,0.95);
}

.btc-ytd-chart .btc-ytd-axis--usd{
fill:#ff69b4;
}

.btc-ytd-chart .btc-ytd-axis--x{
fill:rgba(255,182,193,0.65);
font-size:9px;
}

.btn-copy{
background:rgba(255,255,255,0.08);
color:rgba(255,255,255,0.9);
border:1px solid rgba(255,255,255,0.2);
}

.btn-copy:hover,
.btn-copy:focus-visible{
background:rgba(255,255,255,0.14);
outline:2px solid rgba(255,182,193,0.5);
outline-offset:2px;
}

.wallet-address-wrap{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.75rem;
}

.wallet-address{
display:block;
font-family:ui-monospace, monospace;
font-size:0.8rem;
line-height:1.5;
word-break:break-all;
color:rgba(255,255,255,0.85);
background:rgba(0,0,0,0.3);
padding:0.6rem 0.75rem;
border-radius:6px;
border:1px solid rgba(255,255,255,0.15);
}

.wallet-address--in-tribute{
flex:1;
min-width:0;
font-size:0.7rem;
padding:0.45rem 0.55rem;
background:rgba(0,0,0,0.45);
border:1px solid rgba(255,182,193,0.25);
}

.btn-copy--in-tribute{
flex-shrink:0;
align-self:stretch;
}

/* Send terminal: light pink border (same as former tribute frame / QR tone), frosted bg art full bleed */
.send-terminal{
--send-terminal-pink:rgba(255,182,193,0.85);
position:relative;
display:flex;
flex-direction:column;
width:min(400px, 100%);
max-width:100%;
min-width:260px;
margin:0 0 0.75rem;
flex-shrink:0;
box-sizing:border-box;
border:3px solid var(--send-terminal-pink);
border-radius:8px;
overflow:hidden;
box-shadow:
  inset 0 1px 0 rgba(255,255,255,0.06),
  0 4px 24px rgba(0,0,0,0.45);
isolation:isolate;
background:rgba(8,3,8,0.94);
}
.send-terminal-head{
flex-shrink:0;
padding:0.4rem 0.6rem 0.45rem;
background:linear-gradient(180deg, rgba(16,6,14,0.95) 0%, rgba(10,4,10,0.92) 100%);
border-bottom:1px dashed rgba(255,182,193,0.42);
}
.send-terminal-banner{
display:block;
font-family:ui-monospace,"Consolas","Monaco","Courier New",monospace;
font-size:0.625rem;
font-weight:700;
letter-spacing:0.12em;
text-transform:uppercase;
color:rgba(255,165,195,0.95);
text-shadow:0 0 10px rgba(255,105,180,0.28);
line-height:1.45;
word-break:break-word;
}
.send-terminal-stage{
position:relative;
width:100%;
flex:none;
aspect-ratio:1 / 1;
min-height:0;
}
/* Wide row: stage must grow with the stretched terminal — base rule above would otherwise override the earlier @media block */
@media (min-width:961px){
.send-section--terminal .send-terminal-stage{
flex:1 1 auto;
min-height:0;
aspect-ratio:unset;
}
}
.send-terminal-viewport{
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
box-sizing:border-box;
overflow:hidden;
border-radius:0 0 4px 4px;
}

/* Background art: JS sets #wallet-tribute-bg-output (cover, full viewport under frost) */
.send-terminal-bg-img,
.wallet-tribute-bg-img{
position:absolute;
inset:0;
width:100%;
height:100%;
z-index:0;
pointer-events:none;
display:block;
object-fit:cover;
object-position:center;
transform:scale(1.06);
transform-origin:center center;
}

.send-terminal-frost,
.wallet-tribute-frost{
position:absolute;
inset:0;
z-index:1;
display:flex;
flex-direction:column;
align-items:stretch;
min-height:0;
background:linear-gradient(180deg, rgba(28,12,22,0.42) 0%, rgba(18,8,14,0.58) 100%);
backdrop-filter:blur(12px) saturate(1.05);
-webkit-backdrop-filter:blur(12px) saturate(1.05);
}

.send-terminal-frost-noise,
.wallet-tribute-frost-noise{
position:absolute;
inset:0;
z-index:0;
pointer-events:none;
opacity:0.12;
mix-blend-mode:overlay;
background-image:url("../assets/noise.png");
background-repeat:repeat;
}

.wallet-tribute-title{
position:relative;
z-index:2;
flex-shrink:0;
margin:0;
padding:0.5rem 0.6rem 0.35rem;
font-family:sans-serif;
font-weight:700;
font-size:0.82rem;
letter-spacing:0.06em;
text-transform:uppercase;
text-align:center;
color:rgba(255,182,193,0.95);
text-shadow:0 0 12px rgba(255,182,193,0.35), 0 0 24px rgba(255,182,193,0.2);
border-bottom:1px solid rgba(255,182,193,0.35);
background:rgba(0,0,0,0.12);
}

.wallet-tribute-address-wrap{
position:relative;
z-index:2;
flex-shrink:0;
display:flex;
flex-wrap:wrap;
align-items:stretch;
gap:0.4rem;
padding:0.35rem 0.5rem 0.3rem;
border-bottom:1px solid rgba(255,182,193,0.2);
background:rgba(0,0,0,0.12);
}

.wallet-tribute-qr-wrap{
position:relative;
z-index:2;
flex:1;
display:flex;
align-items:center;
justify-content:center;
padding:0.25rem 0.4rem 0.4rem;
min-height:140px;
}

.wallet-qr{
width:248px;
height:248px;
min-width:160px;
min-height:160px;
max-width:min(248px, 72%);
max-height:min(248px, 72%);
flex-shrink:0;
background:rgba(255,255,255,0.06);
border:1px solid rgba(255,182,193,0.5);
border-radius:8px;
box-shadow:0 0 0 1px rgba(255,182,193,0.12) inset;
display:flex;
align-items:center;
justify-content:center;
}

.wallet-qr img{
width:100%;
height:100%;
object-fit:contain;
border-radius:6px;
}

@media (max-width: 480px){
.send-terminal{
width:min(400px, 100%);
}
.wallet-qr{
width:min(248px, 100%);
height:auto;
aspect-ratio:1 / 1;
min-width:140px;
min-height:140px;
}
}

/* Pink measurement lines (design-tool aesthetic), only visible when mouse over deck; throttle via rAF in JS */
.measurement-overlay{
position:fixed;
inset:0;
pointer-events:none;
z-index:600;
opacity:0;
visibility:hidden;
transition:opacity 0.15s ease, visibility 0.15s ease;
}
.measurement-overlay.measurement-visible{
opacity:1;
visibility:visible;
}
.measurement-overlay.guidelines-hidden .measurement-line-seg1,
.measurement-overlay.guidelines-hidden .measurement-line-seg2,
.measurement-overlay.guidelines-hidden .measurement-label-seg1,
.measurement-overlay.guidelines-hidden .measurement-label-seg2{
opacity:0;
visibility:hidden;
}
.measurement-line{
position:absolute;
left:0;
top:0;
background:rgba(255,182,193,0.9);
}
.measurement-line-seg1,
.measurement-line-seg2{
/* left, top, width, height set in JS (mouse → nearest BIG LETTERS box) */
min-width:1px;
min-height:1px;
}
.measurement-label{
position:absolute;
font-family:ui-monospace,monospace;
font-size:11px;
font-weight:600;
color:rgba(255,182,193,0.95);
white-space:nowrap;
}
.measurement-label-seg1,
.measurement-label-seg2{
/* left, top set in JS */
}
/* Wrapper so login and content share the same position; allow pointer events so inputs work */
.measurement-console-wrap{
position:absolute;
left:1.5rem;
top:1.5rem;
pointer-events:auto;
}
/* Reinstate hit-target + text selection under full-screen overlay (parent has pointer-events:none) */
.measurement-console-wrap .measurement-console,
.measurement-console-wrap .measurement-console-login-form-wrap,
.measurement-console-wrap .measurement-console-setup,
.measurement-console-wrap .measurement-console-login-form,
.measurement-console-wrap .measurement-console-login-input,
.measurement-console-wrap .measurement-console-login-btn{
pointer-events:auto;
}
/* Single console-style box (DIRECTIVE + DECRYPT KEY + STATUS) + title bar */
.measurement-console{
font-family:"Consolas","Monaco","Courier New",monospace;
font-size:10px;
line-height:1.4;
background:rgba(28,12,22,0.92);
color:rgba(255,235,245,0.95);
border:1px solid rgba(255,182,193,0.5);
border-radius:4px;
box-shadow:0 2px 12px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.06);
max-width:min(300px, 48vw);
overflow:hidden;
}
.measurement-console-title-bar{
display:flex;
align-items:center;
gap:8px;
padding:3px 8px 2px;
background:rgba(18,8,14,0.98);
border-bottom:1px solid rgba(255,182,193,0.4);
font-size:9px;
color:rgba(255,182,193,0.9);
white-space:nowrap;
overflow:hidden;
}
.measurement-console-title-bar-path{
font-weight:600;
flex:1;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
}
.measurement-console-logout-btn{
flex-shrink:0;
padding:2px 6px;
font-family:inherit;
font-size:8px;
font-weight:600;
color:rgba(28,12,22,0.95);
background:rgba(255,182,193,0.85);
border:none;
border-radius:2px;
cursor:pointer;
}
.measurement-console-logout-btn:hover{
background:rgba(255,182,193,1);
}
.measurement-console-logout-btn[hidden]{
display:none;
}
.measurement-console--performance{
max-width:min(520px, 85vw);
}
.measurement-console-logged-in-actions{
padding:4px 10px 8px;
border-top:1px solid rgba(255,182,193,0.2);
}
.measurement-console-logged-in-actions[hidden]{
display:none !important;
}
.measurement-console-performance-panel{
padding:6px 10px 10px;
}
.measurement-console-performance-panel[hidden]{
display:none !important;
}
.measurement-console-performance-title{
margin-bottom:6px;
}
.measurement-console-performance-list{
max-height:40vh;
overflow-y:auto;
margin-bottom:8px;
}
.measurement-console-performance-line{
display:flex;
align-items:center;
gap:8px;
flex-wrap:nowrap;
margin-bottom:2px;
}
.measurement-console-performance-line .measurement-console-value{
flex:1;
min-width:0;
}
.measurement-console-performance-count{
flex-shrink:0;
font-weight:600;
color:rgba(255,182,193,0.95);
}
.measurement-console-performance-registered-label{
font-weight:700;
}
.measurement-console-performance-back{
margin-top:4px;
}
.measurement-console-body{
padding:6px 10px 4px;
}
.measurement-console-line{
display:block;
margin-bottom:2px;
cursor:pointer;
}
.measurement-console-line:last-child{
margin-bottom:0;
}
.measurement-console-body .measurement-console-line:hover .measurement-console-prompt,
.measurement-console-body .measurement-console-line:hover .measurement-console-label{
color:rgba(255,182,193,1);
}
.measurement-console-login-form-wrap{
display:flex;
flex-direction:column;
cursor:default;
padding:4px 10px 8px;
border-top:1px solid rgba(255,182,193,0.2);
gap:0;
}
.measurement-console-login-form-wrap[hidden]{
display:none !important;
}
.measurement-console-login-form-wrap:not([hidden]) .measurement-console-setup:not([hidden]){
display:block;
}
.measurement-console-login-form-wrap:not([hidden]) .measurement-console-login-form:not([hidden]){
display:flex;
flex-direction:column;
align-items:stretch;
gap:4px 0;
}
.measurement-console-login-form-wrap .measurement-console-setup[hidden],
.measurement-console-login-form-wrap .measurement-console-login-form[hidden]{
display:none !important;
}
.measurement-console-phrase-error{
font-size:10px;
color:rgba(255,120,140,0.95);
min-height:0;
max-height:0;
overflow:hidden;
opacity:0;
transition:opacity 0.2s ease, max-height 0.2s ease;
margin-bottom:0;
}
.measurement-console-phrase-error.measurement-console-phrase-error-visible{
max-height:2em;
opacity:1;
margin-bottom:4px;
}
.measurement-console-setup{
margin-bottom:6px;
display:flex;
flex-direction:column;
align-items:stretch;
gap:4px 0;
}
.measurement-console-setup .measurement-console-login-input{
display:block;
width:100%;
margin-bottom:2px;
box-sizing:border-box;
}
.measurement-console-login-form .measurement-console-login-input{
width:100%;
box-sizing:border-box;
min-width:0;
}
.measurement-console-prompt{
color:rgba(255,182,193,0.95);
font-weight:600;
margin-right:2px;
}
.measurement-console-label{
color:rgba(255,182,193,0.85);
}
.measurement-console-value{
color:rgba(255,235,245,0.92);
}
.measurement-console .measurement-directive{
color:#ffb6c1;
}
.measurement-console .measurement-status{
text-transform:lowercase;
color:rgba(255,200,220,0.95);
}
.measurement-console .measurement-decrypt-key{
display:block;
white-space:pre-wrap;
word-break:break-all;
margin-top:1px;
color:rgba(255,220,235,0.9);
}
/* Directive console login (returning users) */
.measurement-console-login-form{
display:flex;
flex-direction:column;
flex-wrap:nowrap;
align-items:stretch;
gap:4px 0;
margin-top:4px;
}
.measurement-console-login-input{
flex:1;
min-width:120px;
padding:4px 8px;
font-family:inherit;
/* ≥16px avoids iOS Safari zoom/paste quirks with tiny fields */
font-size:16px;
-webkit-user-select:text;
user-select:text;
background:rgba(18,8,14,0.95);
border:1px solid rgba(255,182,193,0.4);
border-radius:3px;
color:rgba(255,235,245,0.95);
outline:none;
pointer-events:auto;
}
.measurement-console-login-input::placeholder{
color:rgba(255,182,193,0.4);
}
.measurement-console-login-input:focus{
border-color:rgba(255,182,193,0.7);
box-shadow:0 0 0 2px rgba(255,182,193,0.15);
}
.measurement-console-login-btn{
padding:4px 10px;
font-family:inherit;
font-size:10px;
font-weight:600;
color:rgba(28,12,22,0.95);
background:rgba(255,182,193,0.9);
border:none;
border-radius:3px;
cursor:pointer;
}
.measurement-console-login-btn:hover{
background:rgba(255,182,193,1);
}

/* ——— STUDY spending page (directive-adjacent console) ——— */
.study-page{
min-height:100vh;
margin:0;
background:
  radial-gradient(ellipse 120% 80% at 50% 0%, rgba(60,20,40,0.5) 0%, transparent 55%),
  #12080c;
font-family:"Consolas","Monaco","Courier New",monospace;
}
.study-deck-link{
display:inline-block;
margin:1rem 1.25rem 0;
font-size:11px;
color:rgba(255,182,193,0.9);
text-decoration:none;
border-bottom:1px solid rgba(255,182,193,0.35);
padding-bottom:2px;
}
.study-deck-link:hover{
color:#ffb6c1;
border-bottom-color:rgba(255,182,193,0.8);
}

/* ——— SPIN page (linked from SPIN deck card) ——— */
.spin-page-main{
max-width:min(720px, 92vw);
margin:0 auto;
padding:0.5rem 1.25rem 3rem;
box-sizing:border-box;
}
.spin-page-header{
margin-bottom:2rem;
padding-bottom:1rem;
border-bottom:1px solid rgba(255,182,193,0.22);
}
.spin-page-title{
margin:0;
font-size:clamp(1.25rem, 4vw, 1.75rem);
font-weight:700;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(255,182,193,0.95);
}
.spin-page-lede{
margin:0.5rem 0 0;
font-size:12px;
color:rgba(255,255,255,0.55);
}
.spin-page-section{
scroll-margin-top:1.25rem;
padding:1.25rem 0;
border-bottom:1px solid rgba(255,182,193,0.12);
}
.spin-page-section:last-child{
border-bottom:none;
}
.spin-page-section-title{
margin:0 0 0.5rem;
font-size:13px;
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.88);
}
.spin-page-section-body{
margin:0;
font-size:12px;
line-height:1.55;
color:rgba(255,255,255,0.72);
}
.spin-token-bar{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.5rem 0.85rem;
margin-top:0.85rem;
font-size:11px;
color:rgba(255,255,255,0.75);
}
.spin-token-pill{
display:inline-flex;
align-items:baseline;
gap:0.35rem;
padding:0.25rem 0.5rem;
border-radius:6px;
background:rgba(0,0,0,0.25);
border:1px solid rgba(255,182,193,0.2);
}
.spin-token-kind{
text-transform:uppercase;
letter-spacing:0.05em;
font-size:10px;
color:rgba(255,182,193,0.75);
}
.spin-token-bar span[id^="spin-token-"]{
font-weight:700;
font-variant-numeric:tabular-nums;
min-width:1.5ch;
color:#fafafa;
}
.spin-token-max{
font-weight:500;
font-size:10px;
color:rgba(255,255,255,0.45);
}
.spin-sending-hint{
margin:0.45rem 0 0;
font-size:10px;
line-height:1.4;
color:rgba(251,191,36,0.82);
max-width:40em;
}
.spin-pic-owed{
margin:0.35rem 0 0;
font-size:10px;
line-height:1.4;
color:rgba(196,181,253,0.9);
max-width:40em;
}
.spin-auth-hint{
margin:0.5rem 0 0;
font-size:11px;
color:rgba(251,191,36,0.85);
max-width:36em;
}
.spin-page-section--wheel{
padding-top:0.5rem;
}
.spin-wheel-tabs{
display:flex;
flex-wrap:wrap;
gap:0.4rem;
margin:0.75rem 0 0.35rem;
}
.spin-wheel-tab{
appearance:none;
border:1px solid rgba(255,182,193,0.35);
background:rgba(0,0,0,0.35);
color:rgba(255,255,255,0.82);
font-size:11px;
font-weight:600;
letter-spacing:0.05em;
text-transform:uppercase;
padding:0.35rem 0.65rem;
border-radius:4px;
cursor:pointer;
}
.spin-wheel-tab:hover{
border-color:rgba(255,182,193,0.65);
color:#fff;
}
.spin-wheel-tab--active{
border-color:rgba(255,182,193,0.9);
background:rgba(255,182,193,0.12);
color:#ffb6c1;
}
.spin-wheel-subtitle{
margin:0.25rem 0 0.75rem;
font-size:11px;
letter-spacing:0.12em;
text-transform:uppercase;
color:rgba(255,255,255,0.45);
}
.spin-wheel-stage{
position:relative;
display:flex;
justify-content:center;
align-items:center;
padding:0.5rem 0 1rem;
}
.spin-wheel-pointer{
position:absolute;
top:0.35rem;
left:50%;
transform:translateX(-50%) rotate(180deg);
width:0;
height:0;
border-left:12px solid transparent;
border-right:12px solid transparent;
border-bottom:20px solid rgba(255,250,240,0.95);
filter:drop-shadow(0 2px 4px rgba(0,0,0,0.5));
z-index:2;
pointer-events:none;
}
.spin-wheel-rotor-wrap{
filter:drop-shadow(0 8px 24px rgba(0,0,0,0.45));
}
.spin-wheel-rotor{
transform-origin:50% 50%;
will-change:transform;
}
.spin-wheel-canvas{
display:block;
border-radius:50%;
box-shadow:inset 0 0 0 3px rgba(255,255,255,0.08);
}
.spin-actions{
display:flex;
justify-content:center;
margin-top:0.25rem;
}
.spin-do-btn{
min-width:11rem;
font-size:12px;
letter-spacing:0.06em;
text-transform:uppercase;
background:rgba(255,182,193,0.18);
border:1px solid rgba(255,182,193,0.55);
color:#ffe4ec;
padding:0.55rem 1rem;
border-radius:6px;
cursor:pointer;
}
.spin-do-btn:hover:not(:disabled){
background:rgba(255,182,193,0.28);
}
.spin-do-btn:disabled{
opacity:0.45;
cursor:not-allowed;
}
.spin-payout-toast{
max-width:min(26rem, 94vw);
margin:0.85rem auto 0;
padding:0.65rem 0.85rem 0.75rem;
border-radius:8px;
border:1px solid rgba(255,182,193,0.45);
background:linear-gradient(165deg, rgba(30,41,59,0.97), rgba(15,23,42,0.98));
box-shadow:0 10px 28px rgba(0,0,0,0.45);
text-align:left;
animation:spin-payout-in 0.35s ease-out;
}
@keyframes spin-payout-in{
from{opacity:0;transform:translateY(6px);}
to{opacity:1;transform:translateY(0);}
}
.spin-payout-toast[hidden]{
display:none !important;
}
.spin-payout-toast__head{
display:flex;
align-items:center;
justify-content:space-between;
gap:0.5rem;
margin-bottom:0.35rem;
}
.spin-payout-toast__title{
font-size:11px;
font-weight:700;
letter-spacing:0.14em;
text-transform:uppercase;
color:rgba(255,182,193,0.95);
}
.spin-payout-toast__dismiss{
appearance:none;
border:none;
background:rgba(255,255,255,0.08);
color:rgba(255,255,255,0.75);
width:1.75rem;
height:1.75rem;
border-radius:4px;
font-size:1.1rem;
line-height:1;
cursor:pointer;
padding:0;
}
.spin-payout-toast__dismiss:hover{
background:rgba(255,255,255,0.14);
color:#fff;
}
.spin-payout-toast__slice{
margin:0 0 0.4rem;
font-size:14px;
font-weight:600;
color:rgba(248,250,252,0.96);
line-height:1.35;
}
.spin-payout-toast__list{
margin:0;
padding:0 0 0 1.1rem;
font-size:12px;
line-height:1.5;
color:rgba(226,232,240,0.92);
}
.spin-payout-toast__list li{
margin:0.2rem 0;
}
.spin-payout-toast__list .spin-payout-where{
display:block;
margin-top:0.15rem;
font-size:11px;
color:rgba(148,163,184,0.9);
font-weight:400;
}
.spin-payout-toast__hint{
margin:0.5rem 0 0;
font-size:11px;
line-height:1.45;
color:rgba(251,191,36,0.88);
}
.spin-result{
min-height:1.25rem;
margin:0.85rem 0 0;
font-size:13px;
line-height:1.45;
color:rgba(200,240,200,0.95);
text-align:center;
}
.spin-result--error{
color:rgba(252,165,165,0.95);
}
.spin-page-hint{
margin-top:1rem;
opacity:0.85;
}

/* ——— STRUGGLE page (deck + panel) ——— */
.struggle-page .struggle-back{
display:inline-block;
margin:0.5rem 0 0 1rem;
}
.struggle-header{
max-width:min(720px, 92vw);
margin:0 auto;
padding:0.35rem 1rem 0.75rem;
box-sizing:border-box;
border-bottom:1px solid rgba(255,182,193,0.2);
}
.struggle-header-title{
margin:0.35rem 0 0;
}
.struggle-header-lede{
margin:0.45rem 0 0.65rem;
}
.struggle-token-bar{
margin-top:0.5rem;
}
.struggle-admin-toolbar{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.5rem 0.75rem;
margin-top:0.75rem;
}
.struggle-admin-hint-inline{
font-size:11px;
color:rgba(255,255,255,0.5);
max-width:28em;
line-height:1.4;
}
.struggle-scene{
margin-top:0.5rem;
}
.struggle-race-badges{
flex-wrap:wrap;
gap:0.25rem 0.35rem;
margin:0.35rem 0 0.5rem;
}
.struggle-panel-body{
max-height:min(78vh, 640px);
overflow-y:auto;
}
.struggle-panel-price{
font-size:12px;
color:rgba(255,182,193,0.88);
margin:0 0 0.5rem;
}
.struggle-entry-payment-wrap{
border:1px solid rgba(255,182,193,0.28);
border-radius:8px;
padding:0.65rem 0.75rem 0.75rem;
margin:0 0 0.65rem;
background:rgba(0,0,0,0.18);
display:flex;
flex-direction:column;
gap:0.4rem;
}
.struggle-entry-payment-wrap .journal-field-label{
margin:0;
}
.struggle-entry-payment-wrap .journal-term-input{
width:100%;
max-width:100%;
box-sizing:border-box;
}
.typerace-lb-empty-inline{
list-style:none;
margin:0;
padding:0;
font-size:11px;
color:rgba(255,255,255,0.45);
}

/* ——— STRUGGLE typerace (in-panel) ——— */
.spin-page-section--typerace .typerace-subhead{
margin:1rem 0 0.5rem;
font-size:12px;
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.82);
}
.typerace-admin{
margin-top:0.75rem;
padding:0.85rem 0.9rem 1rem;
border-radius:8px;
border:1px solid rgba(255,182,193,0.28);
background:rgba(0,0,0,0.22);
}
.typerace-admin-hint,
.typerace-input-hint{
margin:0.35rem 0 0.65rem;
font-size:11px;
line-height:1.45;
color:rgba(255,255,255,0.5);
max-width:44em;
}
.typerace-field-label{
display:block;
margin:0.65rem 0 0.25rem;
font-size:10px;
letter-spacing:0.12em;
text-transform:uppercase;
color:rgba(255,182,193,0.65);
}
.typerace-target-input{
width:100%;
max-width:14rem;
box-sizing:border-box;
padding:0.35rem 0.5rem;
font-size:13px;
border-radius:4px;
border:1px solid rgba(255,182,193,0.35);
background:rgba(15,23,42,0.9);
color:#f8fafc;
}
.typerace-format-bar{
margin-top:0.65rem;
}
.typerace-editor{
min-height:6rem;
max-height:14rem;
overflow-y:auto;
margin-top:0.35rem;
padding:0.5rem 0.65rem;
font-size:13px;
line-height:1.45;
border-radius:6px;
border:1px solid rgba(255,182,193,0.25);
background:rgba(15,23,42,0.85);
color:#f8fafc;
white-space:pre-wrap;
word-wrap:break-word;
}
.typerace-admin-actions{
display:flex;
flex-wrap:wrap;
gap:0.5rem;
margin-top:0.75rem;
}
.typerace-admin-btn--secondary{
opacity:0.92;
background:rgba(0,0,0,0.35) !important;
border-color:rgba(255,182,193,0.35) !important;
}
.typerace-admin-status{
min-height:1.1rem;
margin:0.5rem 0 0;
font-size:11px;
color:rgba(196,252,208,0.9);
}
.typerace-admin-status--err{
color:rgba(252,165,165,0.95);
}
.typerace-play{
margin-top:1rem;
}
.typerace-ghost-banner{
margin:0 0 0.65rem;
padding:0.45rem 0.55rem;
font-size:11px;
line-height:1.4;
border-radius:6px;
background:rgba(251,191,36,0.12);
border:1px solid rgba(251,191,36,0.35);
color:rgba(254,240,200,0.95);
}
.typerace-hud{
display:flex;
flex-wrap:wrap;
gap:0.5rem 1rem;
margin-bottom:0.65rem;
font-size:11px;
color:rgba(255,255,255,0.65);
}
.typerace-hud-item strong{
color:rgba(255,182,193,0.95);
font-variant-numeric:tabular-nums;
}
.typerace-ch{
border-bottom:1px solid transparent;
transition:color 0.08s ease, background 0.08s ease, border-color 0.08s ease;
}
.typerace-ch--typed{
color:rgba(167,243,208,0.95);
}
.typerace-ch--ghost{
background:rgba(158,207,255,0.12);
color:rgba(226,232,240,0.75);
}
.typerace-ch--caret{
border-bottom-color:rgba(255,182,193,0.85);
color:#fff;
}
.typerace-nl--typed{
box-shadow:0 2px 0 rgba(167,243,208,0.5);
}
.typerace-nl--ghost{
box-shadow:0 2px 0 rgba(158,207,255,0.35);
}
.typerace-nl--caret{
box-shadow:0 2px 0 rgba(255,182,193,0.85);
}
.typerace-ch--typed.typerace-ch--ghost{
color:rgba(186,250,218,0.96);
background:rgba(158,207,255,0.14);
}
.typerace-input-stack{
position:relative;
width:100%;
margin-top:0.25rem;
border-radius:8px;
border:1px solid rgba(255,182,193,0.35);
background:rgba(15,23,42,0.92);
overflow:hidden;
}
.typerace-input-mirror{
position:absolute;
left:0;
top:0;
right:0;
z-index:0;
margin:0;
padding:0.55rem 0.7rem;
font-size:14px;
line-height:1.55;
letter-spacing:0.02em;
font-family:inherit;
white-space:pre-wrap;
word-break:break-word;
border:none;
box-sizing:border-box;
width:100%;
min-height:100%;
pointer-events:none;
background:transparent;
overflow:visible;
transform:translateY(0);
will-change:transform;
}
.typerace-input-mirror .typerace-ch:not(.typerace-ch--typed){
color:rgba(248,250,252,0.34);
}
.typerace-input-mirror .typerace-nl:not(.typerace-nl--typed){
opacity:0.42;
}
.typerace-input{
width:100%;
box-sizing:border-box;
margin-top:0;
padding:0.5rem 0.65rem;
font-size:14px;
line-height:1.45;
font-family:inherit;
border-radius:6px;
border:1px solid rgba(255,182,193,0.35);
background:rgba(15,23,42,0.92);
color:#f8fafc;
resize:vertical;
min-height:6rem;
}
.typerace-input-stack .typerace-input--overlay{
position:relative;
z-index:1;
margin-top:0;
min-height:20rem;
border:none;
border-radius:0;
background:transparent !important;
color:transparent !important;
caret-color:rgba(255,182,193,0.95);
-webkit-text-fill-color:transparent;
white-space:pre-wrap;
word-wrap:break-word;
line-height:1.55;
padding:0.55rem 0.7rem;
font-size:14px;
letter-spacing:0.02em;
}
.typerace-input-stack .typerace-input--overlay::placeholder{
color:transparent;
-webkit-text-fill-color:transparent;
}
.typerace-result{
min-height:1.2rem;
margin:0.65rem 0 0;
font-size:12px;
line-height:1.45;
color:rgba(196,252,208,0.92);
}
.typerace-result--error{
color:rgba(252,165,165,0.95);
}
.struggle-ghost-select-wrap{
margin:0.5rem 0 0;
}
.struggle-ghost-select-wrap .journal-field-label{
margin-bottom:0.25rem;
}
.typerace-lb-ghost-tag{
font-size:0.85em;
font-weight:500;
color:rgba(196,252,208,0.65);
margin-left:0.25rem;
}
.typerace-no-challenge{
margin-top:0.75rem;
}
.typerace-lb{
margin-top:1.25rem;
padding-top:1rem;
border-top:1px solid rgba(255,182,193,0.15);
}
.typerace-lb-list{
margin:0.35rem 0 0;
padding:0 0 0 1.2rem;
font-size:12px;
line-height:1.55;
color:rgba(226,232,240,0.88);
}
.typerace-lb-list li{
margin:0.2rem 0;
}
.typerace-lb-rank{
color:rgba(255,182,193,0.75);
font-weight:600;
margin-right:0.35rem;
}
.typerace-lb-drone{
color:rgba(248,250,252,0.92);
}
.typerace-lb-time{
float:right;
font-variant-numeric:tabular-nums;
color:rgba(167,243,208,0.9);
}
.typerace-lb-empty{
margin:0.35rem 0 0;
font-size:11px;
color:rgba(255,255,255,0.45);
}

.study-console-outer{
display:flex;
justify-content:center;
align-items:flex-start;
padding:1.25rem 0.75rem 2rem;
box-sizing:border-box;
}
.measurement-console--study{
max-width:min(820px, 96vw);
width:100%;
}
.study-panel[hidden]{
display:none !important;
}
.study-login-form-wrap{
display:flex !important;
flex-direction:column;
border-top:1px solid rgba(255,182,193,0.2);
padding-bottom:6px;
}
.study-login-form{
display:flex !important;
flex-direction:column;
width:100%;
padding:4px 10px 10px;
box-sizing:border-box;
gap:4px 0;
}
.study-login-form-wrap .measurement-console-phrase-error{
margin:4px 10px 0;
}
.study-table-toolbar{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:8px;
padding:8px 10px;
border-bottom:1px solid rgba(255,182,193,0.25);
background:rgba(18,8,14,0.6);
}
.study-toolbar-prompt{
color:rgba(255,182,193,0.95);
font-weight:600;
font-size:10px;
}
.study-toolbar-btn{
flex-shrink:0;
}
.study-save-status{
font-size:9px;
color:rgba(200,235,210,0.9);
margin-left:4px;
}
.study-save-hint{
font-size:9px;
color:rgba(200,185,198,0.75);
margin-left:2px;
white-space:nowrap;
}
.study-save-status--error{
color:rgba(255,140,160,0.95);
}
.study-coffee-sends{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:6px 10px;
margin-left:auto;
padding-left:12px;
border-left:1px solid rgba(255,182,193,0.22);
}
.study-coffee-sends-label{
font-size:10px;
font-weight:600;
color:rgba(255,182,193,0.9);
}
.study-coffee-sends-count{
font-size:13px;
font-weight:700;
color:rgba(255,210,220,1);
min-width:1.25rem;
text-align:center;
}
.study-coffee-send-btn{
min-width:2.25rem;
}
.study-table-scroll{
overflow-x:auto;
max-height:min(60vh, 520px);
overflow-y:auto;
padding:0;
}
.study-spending-table{
width:100%;
border-collapse:collapse;
font-size:10px;
color:rgba(255,235,245,0.92);
}
.study-spending-table thead th{
text-align:left;
padding:6px 8px;
background:rgba(18,8,14,0.95);
border-bottom:1px solid rgba(255,182,193,0.45);
color:rgba(255,182,193,0.95);
font-weight:600;
white-space:nowrap;
}
.study-spending-table tbody td{
padding:4px 6px;
border-bottom:1px solid rgba(255,182,193,0.12);
vertical-align:middle;
}
.study-spending-table tbody tr:hover td{
background:rgba(255,182,193,0.04);
}
.study-spending-table tbody tr.study-spending-row--week td{
background:rgba(255,210,220,0.2);
border-bottom-color:rgba(255,182,193,0.22);
}
.study-spending-table tbody tr.study-spending-row--week:hover td{
background:rgba(255,210,220,0.32);
}
.study-spending-table tbody tr.study-spending-row--week .study-cell-input{
background:rgba(36,20,28,0.88);
border-color:rgba(255,182,193,0.42);
}
.study-spending-table tbody tr.study-spending-row--pending-admin td{
box-shadow:inset 3px 0 0 0 rgba(255,200,120,0.85);
}
.study-cell-input{
width:100%;
min-width:0;
box-sizing:border-box;
padding:4px 6px;
font-family:inherit;
font-size:10px;
background:rgba(18,8,14,0.92);
border:1px solid rgba(255,182,193,0.35);
border-radius:3px;
color:rgba(255,235,245,0.95);
outline:none;
}
.study-cell-input:focus{
border-color:rgba(255,182,193,0.75);
box-shadow:0 0 0 2px rgba(255,182,193,0.12);
}
.study-cell-amount{
max-width:7rem;
}
.study-col-actions{
width:2.25rem;
text-align:center;
padding:4px !important;
}
.study-row-delete{
width:1.5rem;
height:1.5rem;
padding:0;
font-size:14px;
line-height:1;
font-family:inherit;
color:rgba(255,182,193,0.95);
background:rgba(40,16,28,0.9);
border:1px solid rgba(255,182,193,0.4);
border-radius:3px;
cursor:pointer;
}
.study-row-delete:hover{
background:rgba(80,30,50,0.95);
color:#fff;
}
.study-total-row td{
padding:8px 10px;
border-top:1px solid rgba(255,182,193,0.35);
background:rgba(18,8,14,0.85);
color:rgba(255,235,245,0.95);
}
#study-total-amount{
font-weight:700;
color:rgba(255,182,193,1);
}
.study-subtotal-hint{
font-weight:400;
opacity:0.82;
font-size:0.88em;
}
#study-week-subtotal-amount{
font-weight:700;
color:rgba(255,200,210,0.95);
}

/* ----- Administrator page (/admin.html) ----- */
/* Scroll the document on html so tall content + workspace padding below the cards stay reachable (fixed windows stay in the viewport). */
html.admin-page-html,
html:has(body.admin-page-body){
height:auto;
min-height:100%;
overflow-y:auto;
overflow-x:hidden;
-webkit-overflow-scrolling:touch;
}
.admin-page-body{
position:relative;
margin:0;
min-height:100vh;
height:auto;
overflow-x:hidden;
overflow-y:visible;
background:#0d0609;
color:rgba(255,235,245,0.92);
font-family:system-ui,sans-serif;
}
.admin-page{
max-width:56rem;
margin:0 auto;
/* Extra bottom space so you can scroll the page and clear room under/overlapping fixed admin windows */
padding:2rem 1.25rem max(8rem, min(85vh, 52rem));
}
.admin-header{
position:relative;
margin-bottom:1.5rem;
}
.admin-title{
margin:0 0 0.25rem;
font-size:1.75rem;
letter-spacing:0.04em;
text-transform:uppercase;
color:#fff;
}
.admin-sub{
margin:0;
color:rgba(255,182,193,0.75);
font-size:0.95rem;
}
.admin-back{
position:absolute;
right:0;
top:0;
color:rgba(255,182,193,0.95);
text-decoration:none;
font-size:0.9rem;
}
.admin-back:hover{
text-decoration:underline;
}
.admin-status{
min-height:1.25rem;
margin:0 0 1rem;
font-size:0.9rem;
color:rgba(180,220,200,0.95);
}
.admin-status--error{
color:#ff8a9d;
}
.admin-card{
background:rgba(24,10,18,0.92);
border:1px solid rgba(255,182,193,0.28);
border-radius:8px;
padding:1.25rem 1.5rem;
margin-bottom:1.25rem;
}
.admin-card h2{
margin:0 0 0.75rem;
font-size:1.15rem;
color:rgba(255,182,193,0.98);
}
.admin-card h3{
margin:1.25rem 0 0.5rem;
font-size:1rem;
color:rgba(255,182,193,0.9);
}
.admin-hint{
margin:0 0 1rem;
font-size:0.88rem;
line-height:1.45;
color:rgba(220,200,210,0.85);
}
.admin-hint code{
font-size:0.82rem;
background:rgba(0,0,0,0.35);
padding:0.1em 0.35em;
border-radius:3px;
}
.admin-form{
display:flex;
flex-direction:column;
gap:0.85rem;
max-width:22rem;
}
.admin-label{
display:flex;
flex-direction:column;
gap:0.35rem;
font-size:0.82rem;
color:rgba(255,220,235,0.88);
}
.admin-input{
padding:0.5rem 0.65rem;
border-radius:4px;
border:1px solid rgba(255,182,193,0.35);
background:rgba(8,4,6,0.9);
color:#fff;
font-size:16px;
-webkit-user-select:text;
user-select:text;
pointer-events:auto;
}
.admin-input:focus{
outline:none;
border-color:rgba(255,182,193,0.75);
box-shadow:0 0 0 2px rgba(255,105,180,0.15);
}

.admin-market-prompt-textarea{
  min-height: 10rem;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
  line-height: 1.35;
}
.admin-btn{
align-self:flex-start;
margin-top:0.25rem;
}
.admin-btn--small{
font-size:0.85rem;
padding:0.35rem 0.75rem;
}
#admin-refresh-users,
#admin-economics-btn,
#admin-llm-prompt-btn,
#admin-logout-btn{
background:#ffb6c1;
border:1px solid rgba(160,70,95,0.45);
color:#3a1520;
}
#admin-refresh-users:hover,
#admin-economics-btn:hover,
#admin-llm-prompt-btn:hover,
#admin-logout-btn:hover{
background:#ffc9d4;
border-color:rgba(160,70,95,0.65);
color:#2a1018;
}
#admin-refresh-users:focus-visible,
#admin-economics-btn:focus-visible,
#admin-llm-prompt-btn:focus-visible,
#admin-logout-btn:focus-visible{
outline:2px solid rgba(160,70,95,0.5);
outline-offset:2px;
}
.admin-dash-head{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.75rem 1rem;
margin-bottom:1rem;
}
.admin-dash-head h2{
margin:0;
}
.admin-count{
font-size:0.9rem;
color:rgba(255,182,193,0.8);
}
.admin-table-wrap{
overflow-x:auto;
margin-bottom:0.5rem;
}
.admin-users-table{
width:100%;
border-collapse:collapse;
font-size:0.82rem;
}
.admin-users-table th,
.admin-users-table td{
text-align:left;
padding:0.45rem 0.6rem;
border-bottom:1px solid rgba(255,182,193,0.15);
}
.admin-users-table th{
color:rgba(255,182,193,0.85);
font-weight:600;
}
.admin-users-table code{
font-size:0.78rem;
color:rgba(230,200,215,0.95);
}
.admin-users-table .admin-contracts-link{
cursor:pointer;
color:rgba(255,182,193,0.95);
text-decoration:underline;
text-underline-offset:2px;
}
.admin-users-table .admin-contracts-link:hover{
color:#ffb6c1;
}
.admin-spin-tok-wrap{
display:flex;
flex-direction:column;
align-items:stretch;
gap:0.4rem;
max-width:16rem;
}
.admin-spin-tok-summary{
font-size:0.72rem;
line-height:1.35;
color:rgba(255,255,255,0.88);
}
.admin-spin-tok-summary-label{
color:rgba(255,182,193,0.88);
font-weight:600;
margin-right:0.1rem;
}
.admin-spin-tok-controls{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem;
}
.admin-spin-tok-kind-select{
min-width:7.5rem;
padding:0.2rem 0.35rem;
font-size:0.72rem;
background:rgba(0,0,0,0.35);
color:rgba(255,255,255,0.92);
border:1px solid rgba(255,182,193,0.35);
border-radius:4px;
}
.admin-spin-tok-val{
font-variant-numeric:tabular-nums;
font-weight:600;
min-width:1.5ch;
}
.admin-spin-tok-delta{
width:3.25rem;
padding:0.2rem 0.35rem;
font-size:0.78rem;
}
.admin-spin-wheels-editor{
max-height:min(70vh, 640px);
overflow:auto;
padding-right:0.25rem;
}
.admin-spin-wheel-fieldset{
margin:0.75rem 0;
padding:0.5rem 0.75rem;
border:1px solid rgba(255,182,193,0.25);
border-radius:6px;
}
.admin-spin-wheel-fieldset legend{
padding:0 0.35rem;
font-size:0.78rem;
font-weight:700;
color:rgba(255,182,193,0.9);
}
.admin-spin-seg-table{
width:100%;
border-collapse:collapse;
font-size:0.78rem;
margin-bottom:0.5rem;
}
.admin-spin-seg-table th,
.admin-spin-seg-table td{
padding:0.25rem 0.35rem;
border-bottom:1px solid rgba(255,255,255,0.08);
vertical-align:middle;
}
.admin-spin-seg-table .admin-input{
width:100%;
box-sizing:border-box;
font-size:0.78rem;
padding:0.25rem 0.35rem;
}
.admin-spin-seg-table .spin-seg-color-swatch{
display:inline-block;
width:2rem;
height:1.35rem;
border-radius:4px;
border:1px solid rgba(255,255,255,0.28);
box-sizing:border-box;
vertical-align:middle;
}
.admin-spin-seg-table input.spin-seg-prob[readonly]{
opacity:0.85;
cursor:default;
background:rgba(0,0,0,0.2);
}
.admin-spin-wheels-actions{
margin-top:0.75rem;
}
.admin-contracts-cell{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.35rem;
}
.admin-dashboard-window--contract-terms{
max-width:min(520px, 96vw);
}
.admin-dashboard-window.admin-dashboard-window--contract-terms.measurement-console{
overflow:hidden;
max-width:min(520px, 96vw);
}
.admin-dashboard-window--contract-terms .admin-dashboard-window-body,
.admin-dashboard-window--contract-terms .admin-dashboard-window-body.measurement-console-performance-panel{
flex:1 1 auto;
min-height:0;
overflow:auto;
-webkit-overflow-scrolling:touch;
overscroll-behavior-y:contain;
padding:8px 10px 12px;
}
.admin-dashboard-window--contract-terms .admin-dashboard-window-content{
min-width:0;
max-width:100%;
}
.admin-dashboard-window--contract-terms .admin-dashboard-window-content.admin-contract-terms-slot,
.admin-dashboard-window--contract-terms .admin-dashboard-window-content.measurement-console-performance-list{
max-height:none;
overflow:visible;
margin-bottom:0;
}
.admin-contract-terms-header{
font-size:0.88rem;
margin-bottom:0.75rem;
color:rgba(255,220,235,0.92);
}
.admin-contract-terms-overview{
margin:0 0 1rem;
padding:0.55rem 0.65rem;
background:rgba(18,8,12,0.65);
border:1px solid rgba(255,182,193,0.28);
border-radius:6px;
}
.admin-contract-terms-overview-lead{
margin:0 0 0.45rem;
font-size:0.82rem;
color:rgba(255,215,230,0.95);
}
.admin-contract-terms-overview-list{
margin:0;
padding-left:1.2rem;
font-size:0.8rem;
color:rgba(240,220,230,0.95);
line-height:1.45;
}
.admin-contract-terms-overview-list li{
margin:0.2rem 0;
}
.admin-contract-terms-overview-id{
font-size:0.72rem;
padding:0.05rem 0.25rem;
border-radius:3px;
background:rgba(0,0,0,0.35);
color:rgba(255,200,215,0.9);
vertical-align:baseline;
}
.admin-contract-terms-overview-title{
font-weight:600;
color:rgba(255,190,205,0.98);
}
.admin-contract-terms-overview-status{
font-size:0.72rem;
font-weight:600;
white-space:nowrap;
}
.admin-contract-terms-overview-status--locked{
color:rgba(160,230,175,0.95);
}
.admin-contract-terms-overview-status--draft{
color:rgba(255,200,160,0.9);
}
.admin-contract-terms-empty,
.admin-contract-terms-loading,
.admin-contract-terms-error{
font-size:0.85rem;
color:rgba(220,200,210,0.88);
}
.admin-contract-terms-error{
color:#ff8a9d;
}
.admin-contract-terms-card{
margin:0 0 1rem;
padding:0.65rem 0.75rem;
background:rgba(12,5,8,0.55);
border:1px solid rgba(255,182,193,0.22);
border-radius:6px;
}
.admin-contract-terms-title{
margin:0 0 0.4rem;
font-size:0.95rem;
color:rgba(255,182,193,0.98);
}
.admin-contract-terms-open-journal{
margin:0 0 0.5rem;
padding:0.4rem 0.5rem;
font-size:0.76rem;
line-height:1.35;
color:rgba(200,230,255,0.95);
background:rgba(30,45,70,0.45);
border:1px dashed rgba(160,210,255,0.4);
border-radius:5px;
cursor:pointer;
user-select:none;
}
.admin-contract-terms-open-journal:hover{
border-color:rgba(180,220,255,0.55);
background:rgba(35,52,82,0.55);
}
.admin-contract-terms-lock{
margin:0 0 0.5rem;
font-size:0.76rem;
color:rgba(180,230,190,0.9);
}
.admin-contract-terms-draft{
margin:0 0 0.5rem;
font-size:0.76rem;
color:rgba(255,210,200,0.82);
}
.admin-contract-terms-dl{
display:grid;
grid-template-columns:minmax(7rem,10rem) 1fr;
gap:0.2rem 0.75rem;
margin:0;
font-size:0.78rem;
}
.admin-contract-terms-dl dt{
margin:0;
color:rgba(255,182,193,0.7);
}
.admin-contract-terms-dl dd{
margin:0;
color:rgba(255,235,245,0.95);
word-break:break-word;
}
.admin-contract-terms-violations{
margin-top:0.55rem;
padding-top:0.45rem;
border-top:1px solid rgba(255,182,193,0.15);
}
.admin-contract-terms-vlabel{
display:block;
font-size:0.75rem;
font-weight:600;
color:rgba(255,182,193,0.85);
margin-bottom:0.25rem;
}
.admin-contract-terms-violations ul{
margin:0;
padding-left:1.1rem;
font-size:0.76rem;
color:rgba(235,215,225,0.92);
}
.admin-contract-terms-rewards{
margin-top:0.55rem;
padding-top:0.45rem;
border-top:1px solid rgba(255,182,193,0.15);
}
.admin-contract-terms-rewards ul{
margin:0;
padding-left:1.1rem;
font-size:0.76rem;
color:rgba(235,215,225,0.92);
}
.admin-contract-terms-vdate{
color:rgba(255,182,193,0.75);
}
.admin-contract-terms-actions{
margin-top:0.55rem;
padding-top:0.45rem;
border-top:1px solid rgba(255,182,193,0.12);
}
.admin-contract-terms-actions .admin-contract-increment-debt-btn{
margin-top:0.15rem;
}
.admin-users-phrases-cell{
cursor:pointer;
}
.admin-users-phrases-cell:hover{
color:rgba(255,210,225,0.98);
}
/* Admin dashboard windows: absolute to body so they scroll with the page and can sit below the viewport */
.admin-dashboard-window{
position:absolute;
left:0;
top:0;
display:flex;
flex-direction:column;
box-sizing:border-box;
max-width:min(440px, 94vw);
max-height:min(90vh, 720px);
min-height:0;
overflow:hidden;
pointer-events:auto;
box-shadow:0 8px 28px rgba(0,0,0,0.45);
}
.admin-dashboard-window.admin-dashboard-window--user-sized{
max-width:none;
max-height:none;
}
.admin-dashboard-window[hidden]{
display:none !important;
}
.admin-dashboard-window-head{
flex-shrink:0;
display:flex;
align-items:stretch;
gap:2px;
padding:0;
min-height:0;
}
.admin-dashboard-window-drag{
flex:1;
min-width:0;
display:flex;
align-items:center;
gap:8px;
padding:3px 6px 2px 8px;
cursor:grab;
user-select:none;
-webkit-user-select:none;
}
.admin-dashboard-window-drag:active{
cursor:grabbing;
}
.admin-dashboard-window-close{
flex-shrink:0;
align-self:center;
margin:2px 6px 2px 0;
padding:2px 10px;
font-family:inherit;
font-size:11px;
font-weight:700;
line-height:1;
color:rgba(28,12,22,0.95);
background:rgba(255,182,193,0.85);
border:none;
border-radius:2px;
cursor:pointer;
}
.admin-dashboard-window-close:hover{
background:rgba(255,182,193,1);
}
.admin-dashboard-window-body.measurement-console-performance-panel{
flex:1 1 auto;
min-height:0;
min-width:0;
overflow:auto;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
overscroll-behavior-y:contain;
padding:6px 10px 10px;
margin:0;
}
/* Main-site console uses a short scroll slice; in admin floaters the window body scrolls instead */
.admin-dashboard-window .admin-dashboard-window-content.measurement-console-performance-list{
max-height:none;
overflow:visible;
}
.admin-dashboard-window-resize{
position:absolute;
right:0;
bottom:0;
width:18px;
height:18px;
z-index:4;
cursor:nwse-resize;
touch-action:none;
box-sizing:border-box;
background:linear-gradient(135deg, transparent 50%, rgba(255,182,193,0.35) 50%, rgba(255,182,193,0.35) 55%, transparent 55%),
linear-gradient(135deg, transparent 62%, rgba(255,182,193,0.45) 62%, rgba(255,182,193,0.45) 68%, transparent 68%),
linear-gradient(135deg, transparent 74%, rgba(255,182,193,0.55) 74%, rgba(255,182,193,0.55) 82%, transparent 82%);
}
.admin-dashboard-window-resize:hover{
background:linear-gradient(135deg, transparent 50%, rgba(255,182,193,0.55) 50%, rgba(255,182,193,0.55) 55%, transparent 55%),
linear-gradient(135deg, transparent 62%, rgba(255,182,193,0.65) 62%, rgba(255,182,193,0.65) 68%, transparent 68%),
linear-gradient(135deg, transparent 74%, rgba(255,182,193,0.75) 74%, rgba(255,182,193,0.75) 82%, transparent 82%);
}
.admin-dashboard-window-drag-hint{
flex-shrink:0;
font-size:8px;
font-weight:600;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(255,182,193,0.65);
}
.admin-dashboard-window-title{
font-weight:600;
}
.admin-users-spending-cell{
cursor:pointer;
}
.admin-users-spending-cell:hover{
color:rgba(255,210,225,0.98);
}
.admin-dashboard-window--economics{
max-width:min(960px, 98vw);
width:min(920px, 96vw);
}
.admin-dashboard-window--spin-wheels{
max-width:min(720px, 98vw);
width:min(680px, 96vw);
}
.admin-dashboard-window--market-prompt{
max-width:min(560px, 98vw);
width:min(520px, 96vw);
}
.admin-dashboard-window.admin-dashboard-window--market-prompt.measurement-console{
overflow:hidden;
max-width:min(560px, 98vw);
}
.admin-dashboard-window--market-prompt .admin-dashboard-window-body,
.admin-dashboard-window--market-prompt .admin-dashboard-window-body.measurement-console-performance-panel{
flex:1 1 auto;
min-height:0;
overflow:auto;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
overscroll-behavior-y:contain;
padding:8px 10px 12px;
}
.admin-dashboard-window--market-prompt .admin-dashboard-window-content{
min-width:0;
max-width:100%;
}
.admin-dashboard-window--market-prompt .admin-dashboard-window-content.admin-market-prompt-slot,
.admin-dashboard-window--market-prompt .admin-dashboard-window-content.measurement-console-performance-list{
max-height:none;
overflow:visible;
margin-bottom:0;
}
.admin-dashboard-window.admin-dashboard-window--spin-wheels.measurement-console{
overflow:hidden;
max-width:min(720px, 98vw);
}
.admin-dashboard-window--spin-wheels .admin-dashboard-window-body,
.admin-dashboard-window--spin-wheels .admin-dashboard-window-body.measurement-console-performance-panel{
flex:1 1 auto;
min-height:0;
overflow:auto;
padding:8px 10px 12px;
}
/* Root also has .measurement-console (overflow:hidden + narrow max-width in base rule) */
.admin-dashboard-window.admin-dashboard-window--economics.measurement-console{
overflow:hidden;
max-width:min(1080px, 98vw);
}
.admin-dashboard-window--economics .admin-dashboard-window-body,
.admin-dashboard-window--economics .admin-dashboard-window-body.measurement-console-performance-panel{
flex:1 1 auto;
min-height:0;
overflow:auto;
overflow-x:auto;
-webkit-overflow-scrolling:touch;
overscroll-behavior-y:contain;
padding:8px 10px 12px;
}
.admin-dashboard-window--economics .admin-dashboard-window-content{
min-width:0;
max-width:100%;
}
/* Economics chart slot; body is the scroll container */
.admin-dashboard-window--economics .admin-dashboard-window-content.admin-econ-chart-slot,
.admin-dashboard-window--economics .admin-dashboard-window-content.measurement-console-performance-list{
max-height:none;
overflow:visible;
margin-bottom:0;
}
.admin-econ-charts-mount{
width:100%;
max-width:100%;
min-width:0;
box-sizing:border-box;
}
.admin-dashboard-window--economics .admin-econ-btc-ytd-inner.btc-ytd-inner{
max-width:100%;
width:100%;
margin-left:0;
margin-right:0;
}
.admin-dashboard-window--economics .btc-ytd-chart-wrap{
max-width:100%;
width:100%;
box-sizing:border-box;
}
/* Same structural hook as index `#send-btc-ytd` so chart / motion styles apply; strip full-bleed send strip chrome in the floating window */
.admin-econ-send-btc-ytd.send-btc-ytd{
border-top:none;
margin-top:0;
padding-top:0;
padding-bottom:0;
}
.admin-econ-btc-ytd-inner .send-option-title{
margin:0 0 0.35rem;
font-size:0.95rem;
}
.admin-econ-drone-wrap{
margin-top:1.25rem;
padding-top:0.5rem;
border-top:1px solid rgba(255,200,220,0.12);
}
.admin-econ-drone-heading{
margin:0 0 0.35rem;
font-size:0.95rem;
}
.admin-econ-drone-hint{
margin:0 0 0.65rem;
font-size:0.78rem;
line-height:1.45;
max-width:52rem;
}
.admin-econ-drone-layout{
display:flex;
flex-direction:row;
align-items:stretch;
gap:0.75rem;
width:100%;
min-width:0;
box-sizing:border-box;
}
.admin-econ-drone-chart-cell{
flex:1 1 auto;
min-width:0;
display:flex;
flex-direction:column;
gap:0.35rem;
}
.admin-econ-drone-status{
font-size:0.75rem;
color:rgba(255,200,210,0.85);
min-height:1.1em;
}
.admin-econ-drone-svg{
display:block;
width:100%;
height:auto;
min-height:220px;
max-height:min(42vh, 380px);
}
.admin-econ-drone-legend{
flex:0 0 min(11rem, 32%);
max-width:12rem;
min-width:7.5rem;
font-size:0.72rem;
line-height:1.35;
color:rgba(230,210,220,0.9);
border-left:1px solid rgba(255,200,220,0.12);
padding-left:0.65rem;
margin:0;
box-sizing:border-box;
}
.admin-econ-drone-legend-hint{
margin:0 0 0.4rem;
font-size:0.68rem;
color:rgba(200,185,195,0.88);
text-transform:uppercase;
letter-spacing:0.04em;
}
.admin-econ-drone-legend-list{
list-style:none;
margin:0;
padding:0;
max-height:min(38vh, 340px);
overflow:auto;
overscroll-behavior:contain;
}
.admin-econ-drone-legend-item{
display:flex;
align-items:center;
gap:0.4rem;
padding:0.28rem 0.35rem;
margin:0 0 0.12rem;
border-radius:4px;
cursor:default;
outline:none;
}
.admin-econ-drone-legend-item:hover,
.admin-econ-drone-legend-item:focus-visible{
background:rgba(255,200,220,0.1);
}
.admin-econ-drone-legend-swatch{
flex-shrink:0;
width:0.65rem;
height:0.65rem;
border-radius:2px;
box-shadow:0 0 0 1px rgba(0,0,0,0.35);
}
.admin-econ-drone-legend-id{
font-variant-numeric:tabular-nums;
word-break:break-all;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series{
opacity:0.14;
transition:opacity 0.12s ease;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series--hl{
opacity:1;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series--hl .admin-econ-drone-sends{
stroke-width:3.1;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series--hl .admin-econ-drone-debt{
stroke-width:2.6;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series--hl .admin-econ-drone-debt-proj{
stroke-width:2.35;
}
.admin-econ-drone-wrap--focus .admin-econ-drone-series--hl .admin-econ-drone-debt-proj-min{
stroke-width:2.35;
}
@media (max-width:640px){
.admin-econ-drone-layout{
flex-direction:column;
}
.admin-econ-drone-legend{
flex:none;
max-width:none;
min-width:0;
border-left:none;
border-top:1px solid rgba(255,200,220,0.12);
padding-left:0;
padding-top:0.5rem;
}
.admin-econ-drone-legend-list{
max-height:11rem;
}
}
.admin-dashboard-window--spending,
.admin-dashboard-window--weekly-sends{
max-width:min(500px, 94vw);
font-size:8.5px;
}
.admin-dashboard-window--spending .admin-dashboard-window-content,
.admin-dashboard-window--weekly-sends .admin-dashboard-window-content{
font-size:8.5px;
line-height:1.35;
}
.admin-weekly-sends-meta{
margin-bottom:4px;
font-size:7.5px;
color:rgba(220,200,210,0.88);
line-height:1.4;
}
.admin-weekly-sends-meta strong{
color:rgba(255,195,210,0.95);
font-weight:600;
}
.admin-users-weekly-sends-cell{
cursor:pointer;
}
.admin-users-weekly-sends-cell:hover{
color:rgba(255,210,225,0.98);
}
.admin-weekly-sends-cell-wrap{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.2rem;
}
.admin-weekly-sends-cell-amt{
font-variant-numeric:tabular-nums;
}
.admin-spending-pending-badge{
display:inline-block;
font-size:0.68rem;
font-weight:700;
line-height:1.2;
padding:0.12rem 0.4rem;
border-radius:4px;
background:rgba(255,200,120,0.22);
border:1px solid rgba(255,200,120,0.45);
color:rgba(255,235,210,0.98);
white-space:nowrap;
}
.admin-weekly-sends-bulk{
margin:3px 0 4px;
display:flex;
flex-wrap:wrap;
gap:4px;
align-items:center;
}
.admin-weekly-sends-pending-line{
margin-top:4px;
font-size:7.5px;
color:rgba(255,210,180,0.92);
}
.admin-weekly-send-row--pending td{
background:rgba(60,40,20,0.25);
}
.admin-spending-preview-row--pending td{
background:rgba(60,40,20,0.2);
}
.admin-send-status{
font-size:7px;
font-weight:600;
text-transform:uppercase;
letter-spacing:0.04em;
white-space:nowrap;
}
.admin-send-status--ok{
color:rgba(160,230,175,0.95);
}
.admin-send-status--pending{
color:rgba(255,210,160,0.95);
}
.admin-weekly-send-confirm-btn--secondary{
opacity:0.92;
}
.admin-spending-preview-scroll{
max-height:32vh;
overflow:auto;
margin:4px 0 2px;
border:1px solid rgba(255,182,193,0.18);
border-radius:3px;
}
.admin-spending-preview-table{
width:100%;
border-collapse:collapse;
}
.admin-spending-preview-table th,
.admin-spending-preview-table td{
text-align:left;
padding:2px 5px 2px 0;
border-bottom:1px solid rgba(255,182,193,0.12);
vertical-align:top;
word-break:break-word;
}
.admin-spending-preview-table th{
color:rgba(255,182,193,0.8);
font-weight:600;
font-size:7.5px;
text-transform:uppercase;
letter-spacing:0.04em;
}
.admin-spending-preview-amt{
text-align:right;
white-space:nowrap;
font-weight:600;
color:rgba(255,210,225,0.95);
}
.admin-spending-preview-total{
margin-top:4px;
}
.admin-spending-preview-loading,
.admin-spending-preview-error{
color:rgba(255,200,210,0.9);
}
.admin-spending-preview-error{
color:#ff8a9d;
}
.admin-invite-block{
margin-top:1.5rem;
padding-top:1rem;
border-top:1px solid rgba(255,182,193,0.2);
}
.admin-invite-output{
margin-top:0.75rem;
padding:0.75rem 1rem;
background:rgba(0,0,0,0.45);
border:1px solid rgba(255,182,193,0.35);
border-radius:6px;
color:#ffb3c6;
font-size:0.8rem;
word-break:break-all;
white-space:pre-wrap;
max-height:12rem;
overflow:auto;
}

/* ——— Journal / contracts (linked from SERVE on main deck) ——— */
.journal-body{
margin:0;
min-height:100vh;
background:
  radial-gradient(ellipse 100% 60% at 50% 0%, rgba(80,28,48,0.45) 0%, transparent 50%),
  #0c0609;
color:rgba(255,235,245,0.95);
font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}
.journal-body.journal-panel-open{
overflow:hidden;
}
.journal-back--top{
position:relative;
z-index:5;
display:inline-block;
margin:1rem 1.25rem 0;
}
.journal-auth-gate{
min-height:calc(100vh - 3rem);
display:flex;
align-items:center;
justify-content:center;
padding:2rem 1.25rem 3rem;
box-sizing:border-box;
}
.journal-auth-gate[hidden]{
display:none !important;
}
.journal-admin-view-gate{
min-height:calc(100vh - 3rem);
display:flex;
align-items:center;
justify-content:center;
padding:2rem 1.25rem 3rem;
box-sizing:border-box;
}
.journal-admin-view-gate[hidden]{
display:none !important;
}
.journal-inline-link{
color:rgba(255,182,193,0.95);
}
.journal-admin-view-banner{
margin:0 0 0.65rem;
padding:0.5rem 0.65rem;
font-size:0.82rem;
line-height:1.4;
color:rgba(255,220,235,0.92);
background:rgba(255,105,180,0.12);
border:1px solid rgba(255,182,193,0.35);
border-radius:6px;
}
.journal-admin-view-banner[hidden]{
display:none !important;
}
.journal-delegate-row{
margin:0.35rem 0 0.5rem;
}
.journal-contract-delegate-select{
display:block;
width:100%;
max-width:28rem;
margin-top:0.25rem;
padding:0.35rem 0.5rem;
font-size:0.9rem;
border-radius:4px;
border:1px solid rgba(255,182,193,0.4);
background:rgba(18,8,14,0.95);
color:rgba(255,235,245,0.95);
}
.journal-terms-section{
margin:0.75rem 0 0.5rem;
padding:0.65rem 0 0;
border-top:1px solid rgba(255,182,193,0.22);
flex-shrink:0;
}
.journal-terms-heading{
margin:0 0 0.35rem;
font-size:0.78rem;
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.85);
}
.journal-terms-lock-note{
margin:0 0 0.5rem;
font-size:0.78rem;
line-height:1.4;
color:rgba(200,230,210,0.88);
}
.journal-terms-status-row{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem;
margin:0 0 0.45rem;
}
.journal-terms-columns{
display:grid;
grid-template-columns:1fr 1fr;
gap:0.5rem 0.55rem;
margin-bottom:0.65rem;
align-items:start;
}
.journal-terms-col{
display:flex;
flex-direction:column;
gap:0.45rem;
min-width:0;
}
.journal-term-field{
display:flex;
flex-direction:column;
gap:0.2rem;
margin:0;
font-size:0.72rem;
color:rgba(210,185,198,0.9);
}
.journal-term-field--check{
flex-direction:row;
align-items:center;
gap:0.5rem;
}
.journal-term-label{
font-weight:600;
letter-spacing:0.03em;
}
.journal-term-hint{
display:block;
font-size:0.72rem;
font-weight:400;
opacity:0.78;
margin-top:0.12rem;
letter-spacing:0.02em;
}
.journal-term-input,
.journal-violation-comments{
width:100%;
box-sizing:border-box;
padding:0.35rem 0.45rem;
font-size:0.82rem;
font-family:inherit;
color:rgba(248,230,238,0.96);
background:rgba(8,4,8,0.92);
border:1px solid rgba(255,182,193,0.28);
border-radius:4px;
}
.journal-currency-control{
display:flex;
align-items:stretch;
width:100%;
min-width:0;
box-sizing:border-box;
border:1px solid rgba(255,182,193,0.28);
border-radius:4px;
background:rgba(8,4,8,0.92);
overflow:hidden;
}
.journal-currency-control:focus-within{
outline:2px solid rgba(255,182,193,0.42);
outline-offset:1px;
}
.journal-currency-prefix{
flex:0 0 auto;
display:flex;
align-items:center;
padding:0 0.28rem 0 0.42rem;
font-size:0.82rem;
font-weight:600;
letter-spacing:0.02em;
color:rgba(182,215,170,0.88);
font-variant-numeric:tabular-nums;
user-select:none;
}
.journal-term-input--currency{
flex:1 1 auto;
min-width:0;
width:auto;
border:none;
border-radius:0;
background:transparent;
text-align:right;
padding:0.35rem 0.45rem 0.35rem 0.2rem;
font-variant-numeric:tabular-nums;
font-feature-settings:"tnum" 1;
}
.journal-term-input--currency:focus{
outline:none;
}
.journal-currency-control:has(.journal-term-input:read-only),
.journal-currency-control:has(.journal-term-input:disabled){
opacity:0.85;
cursor:default;
}
.journal-term-input:read-only,
.journal-term-input:disabled,
.journal-violation-comments:disabled{
opacity:0.85;
cursor:default;
}
.journal-currency-control .journal-term-input--currency:read-only,
.journal-currency-control .journal-term-input--currency:disabled{
opacity:1;
}
.journal-term-check{
width:1.1rem;
height:1.1rem;
accent-color:#ffb6c1;
}
.journal-term-radio-stack{
display:flex;
flex-direction:column;
gap:0.32rem;
margin-top:0.08rem;
}
.journal-term-radio-label{
display:flex;
align-items:center;
gap:0.45rem;
font-weight:400;
cursor:pointer;
}
.journal-term-radio{
width:1rem;
height:1rem;
accent-color:#ffb6c1;
flex-shrink:0;
}
.journal-violations-block{
margin-top:0.35rem;
}
.journal-violations-toolbar{
display:flex;
align-items:center;
justify-content:space-between;
gap:0.5rem;
margin-bottom:0.35rem;
}
.journal-rewards-block{
margin-top:0.55rem;
padding-top:0.45rem;
border-top:1px solid rgba(255,182,193,0.18);
}
.journal-rewards-toolbar{
display:flex;
align-items:center;
justify-content:space-between;
gap:0.5rem;
margin-bottom:0.28rem;
}
.journal-rewards-hint{
margin:0 0 0.4rem;
font-size:0.68rem;
line-height:1.45;
color:rgba(210,185,198,0.82);
}
.journal-reward-row{
display:flex;
flex-direction:column;
gap:0.35rem;
margin-bottom:0.5rem;
}
.journal-reward-row-main{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));
gap:0.35rem;
align-items:start;
}
.journal-reward-row-main .journal-reward-comments{
grid-column:1/-1;
min-height:2.5rem;
resize:vertical;
}
.journal-reward-row-foot{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem;
}
.journal-reward-badge{
flex:1;
min-width:4rem;
font-size:0.66rem;
line-height:1.35;
color:rgba(200,235,210,0.92);
background:rgba(12,28,18,0.82);
border:1px solid rgba(160,220,180,0.28);
border-radius:4px;
padding:0.28rem 0.45rem;
}
.journal-reward-date,
.journal-reward-next-release{
max-width:9.5rem;
}
.journal-reward-remove{
flex-shrink:0;
width:1.75rem;
height:1.75rem;
padding:0;
font-size:1.1rem;
line-height:1;
color:rgba(255,235,245,0.95);
background:rgba(40,18,28,0.9);
border:1px solid rgba(255,182,193,0.4);
border-radius:4px;
cursor:pointer;
}
.journal-reward-remove:hover{
background:rgba(70,28,45,0.95);
}
.journal-violation-row{
display:flex;
flex-direction:column;
gap:0.35rem;
margin-bottom:0.5rem;
}
.journal-violation-row-main{
display:grid;
grid-template-columns:auto 1fr auto;
gap:0.35rem;
align-items:start;
}
.journal-violation-row-foot{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem;
}
.journal-violation-badge{
flex:1;
min-width:4rem;
font-size:0.66rem;
line-height:1.35;
color:rgba(255,220,232,0.9);
background:rgba(28,12,20,0.82);
border:1px solid rgba(255,182,193,0.22);
border-radius:4px;
padding:0.28rem 0.45rem;
}
.journal-violation-fx-open{
flex-shrink:0;
}
.journal-violation-date{
max-width:9.5rem;
}
.journal-violation-remove{
flex-shrink:0;
width:1.75rem;
height:1.75rem;
padding:0;
font-size:1.1rem;
line-height:1;
color:rgba(255,235,245,0.95);
background:rgba(40,18,28,0.9);
border:1px solid rgba(255,182,193,0.4);
border-radius:4px;
cursor:pointer;
}
.journal-violation-remove:hover{
background:rgba(70,28,45,0.95);
}
.journal-btn-small{
padding:0.25rem 0.5rem;
font-size:0.72rem;
}
.journal-violation-rules-block{
margin-top:0.75rem;
padding-top:0.55rem;
border-top:1px solid rgba(255,182,193,0.22);
}
.journal-violation-rules-heading{
margin:0 0 0.35rem;
font-size:0.82rem;
font-weight:700;
letter-spacing:0.04em;
color:rgba(255,235,245,0.95);
}
.journal-violation-rules-lede{
margin:0 0 0.5rem;
font-size:0.72rem;
line-height:1.45;
color:rgba(255,220,232,0.82);
}
.journal-violation-rules-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));
gap:0.4rem 0.55rem;
align-items:end;
}
.journal-term-field--wide{
grid-column:1/-1;
}
.journal-ve-aux-fieldset{
margin:0.55rem 0 0;
padding:0.45rem 0.55rem 0.55rem;
border:1px solid rgba(255,182,193,0.28);
border-radius:6px;
}
.journal-ve-aux-legend{
padding:0 0.35rem;
font-size:0.75rem;
font-weight:700;
color:rgba(255,235,245,0.92);
}
.journal-ve-preview-row{
margin-top:0.5rem;
}
.journal-ve-preview-out{
margin:0.45rem 0 0;
padding:0.45rem 0.55rem;
max-height:14rem;
overflow:auto;
font-size:0.68rem;
line-height:1.45;
white-space:pre-wrap;
word-break:break-word;
color:rgba(255,235,245,0.92);
background:rgba(22,10,16,0.65);
border:1px solid rgba(255,182,193,0.22);
border-radius:6px;
}
#journal-terms-confirm{
margin-top:0.65rem;
width:100%;
max-width:none;
}
.journal-vfx-scrim{
position:fixed;
inset:0;
z-index:1950;
background:rgba(6,2,5,0.5);
cursor:pointer;
-webkit-tap-highlight-color:transparent;
}
.journal-vfx-scrim[hidden],
.journal-vfx-panel[hidden]{
display:none !important;
pointer-events:none !important;
}
.journal-vfx-panel{
position:fixed;
top:0;
right:0;
width:min(22.5rem,100vw);
height:100%;
max-height:100dvh;
z-index:1960;
box-sizing:border-box;
display:flex;
flex-direction:column;
background:linear-gradient(170deg,rgba(44,20,32,0.99),rgba(22,8,14,0.99));
border-left:1px solid rgba(255,182,193,0.28);
box-shadow:-10px 0 28px rgba(0,0,0,0.4);
overflow:hidden;
}
.journal-vfx-panel-head{
display:flex;
align-items:center;
justify-content:space-between;
gap:0.5rem;
padding:0.5rem 0.65rem;
border-bottom:1px solid rgba(255,182,193,0.2);
flex-shrink:0;
position:relative;
z-index:2;
}
.journal-vfx-heading{
margin:0;
font-size:0.88rem;
font-weight:700;
letter-spacing:0.04em;
color:rgba(255,235,245,0.95);
}
.journal-vfx-close{
position:relative;
z-index:3;
width:2rem;
height:2rem;
padding:0;
font-size:1.25rem;
line-height:1;
color:rgba(255,235,245,0.95);
background:rgba(40,18,28,0.85);
border:1px solid rgba(255,182,193,0.35);
border-radius:4px;
cursor:pointer;
}
.journal-vfx-close:hover{
background:rgba(70,28,45,0.9);
}
.journal-vfx-lede{
margin:0;
padding:0.45rem 0.65rem;
font-size:0.69rem;
line-height:1.45;
color:rgba(255,220,232,0.82);
border-bottom:1px solid rgba(255,182,193,0.12);
flex-shrink:0;
}
.journal-vfx-bundle-block{
padding:0 0 0.5rem;
margin-bottom:0.35rem;
border-bottom:1px solid rgba(255,182,193,0.12);
}
.journal-vfx-bundle-help{
margin:0.35rem 0 0;
font-size:0.66rem;
line-height:1.45;
color:rgba(210,185,198,0.88);
}
.journal-vfx-dynamic-fields{
margin-top:0.25rem;
}
.journal-vfx-bundle-summary,
.journal-vfx-aux-lede{
margin:0 0 0.5rem;
font-size:0.68rem;
line-height:1.45;
color:rgba(255,220,232,0.82);
}
.journal-vfx-scroll{
flex:1;
min-height:0;
overflow:auto;
padding:0.5rem 0.65rem 0.85rem;
-webkit-overflow-scrolling:touch;
}
.journal-vfx-footer{
flex-shrink:0;
padding:0.5rem 0.65rem 0.65rem;
border-top:1px solid rgba(255,182,193,0.18);
background:linear-gradient(180deg,transparent,rgba(8,4,8,0.5));
}
.journal-vfx-done{
width:100%;
max-width:none;
box-sizing:border-box;
}
.contract-window-violations-strip{
display:flex;
flex-direction:column;
gap:0.22rem;
margin-top:0.35rem;
max-height:5rem;
overflow:auto;
}
.contract-window-violation-chip{
font-size:0.58rem;
line-height:1.3;
padding:0.18rem 0.38rem;
border-radius:4px;
background:rgba(255,182,193,0.1);
color:rgba(255,235,245,0.92);
border:1px solid rgba(255,182,193,0.22);
word-break:break-word;
}
.contract-window-terms-lock{
margin:0.35rem 0 0;
font-size:0.68rem;
font-weight:700;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(180,235,200,0.9);
}
.contract-window-terms-lock--inline{
margin:0;
padding:0.12rem 0.38rem;
border-radius:4px;
background:rgba(180,235,200,0.1);
border:1px solid rgba(180,235,200,0.28);
font-size:0.58rem;
}
.journal-auth-card{
width:100%;
max-width:26rem;
padding:1.5rem 1.35rem;
box-sizing:border-box;
background:rgba(14,6,10,0.88);
border:1px solid rgba(255,182,193,0.3);
border-radius:12px;
box-shadow:0 20px 50px rgba(0,0,0,0.45);
}
.journal-auth-card .journal-title{
margin-top:0;
}
.journal-login-form{
display:flex;
flex-direction:column;
gap:0.35rem;
margin-top:1rem;
}
.journal-login-form .journal-field-label{
margin-top:0.5rem;
}
.journal-login-form .journal-field-label:first-of-type{
margin-top:0;
}
.journal-login-submit{
margin-top:1rem;
align-self:flex-start;
}
.journal-app[hidden]{
display:none !important;
}
.journal-save-status{
font-size:0.75rem;
color:rgba(180,220,200,0.9);
margin-left:0.25rem;
}
.journal-save-status--error{
color:#ff8a9d;
}
.journal-header{
max-width:52rem;
margin:0 auto;
padding:1.25rem 1.25rem 0.5rem;
box-sizing:border-box;
}
.journal-back{
display:inline-block;
font-size:0.8rem;
color:rgba(255,182,193,0.9);
text-decoration:none;
border-bottom:1px solid rgba(255,182,193,0.35);
padding-bottom:2px;
margin-bottom:0.75rem;
}
.journal-back:hover{
color:#ffb6c1;
border-bottom-color:rgba(255,182,193,0.85);
}
.journal-title{
margin:0.5rem 0 0.35rem;
font-size:1.65rem;
font-weight:700;
letter-spacing:0.02em;
}
.journal-lede{
margin:0 0 1rem;
font-size:0.95rem;
line-height:1.5;
color:rgba(235,210,220,0.9);
}
.journal-toolbar{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.65rem;
margin-bottom:0.5rem;
}
.journal-ledger-summary{
max-width:52rem;
margin:0 auto 0.75rem;
padding:0 1.25rem;
box-sizing:border-box;
font-size:0.82rem;
line-height:1.45;
color:rgba(220,200,210,0.95);
}
.journal-ledger-summary[hidden]{
display:none !important;
}
.journal-ledger-summary-summary{
cursor:pointer;
list-style:none;
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.5rem;
padding:0.35rem 0;
font-weight:600;
color:rgba(255,200,215,0.95);
}
.journal-ledger-summary-summary::-webkit-details-marker{
display:none;
}
.journal-ledger-summary-pill{
font-weight:500;
font-size:0.78rem;
color:rgba(180,220,200,0.9);
}
.journal-ledger-summary-body{
margin-top:0.5rem;
padding:0.65rem 0.75rem;
border-radius:8px;
background:rgba(20,8,14,0.35);
border:1px solid rgba(255,182,193,0.2);
}
.journal-ledger-summary-meta{
margin:0 0 0.5rem;
font-size:0.78rem;
color:rgba(200,180,190,0.85);
}
.journal-ledger-summary-note{
margin:0 0 0.65rem;
font-size:0.8rem;
color:rgba(210,195,205,0.92);
}
.journal-ledger-summary-subh{
margin:0.65rem 0 0.35rem;
font-size:0.82rem;
font-weight:600;
color:rgba(255,210,220,0.95);
}
.journal-ledger-summary-alloc{
margin:0.25rem 0 0.5rem 1.1rem;
padding:0;
}
.journal-ledger-summary-contract{
margin-top:0.65rem;
padding-top:0.5rem;
border-top:1px solid rgba(255,182,193,0.12);
}
.journal-ledger-summary-contract:first-of-type{
border-top:none;
padding-top:0;
}
.journal-ledger-summary-contract-title{
margin:0 0 0.25rem;
font-size:0.85rem;
font-weight:600;
}
.journal-ledger-summary-contract-line{
margin:0 0 0.35rem;
font-size:0.78rem;
color:rgba(200,185,195,0.9);
}
.journal-ledger-summary-steps{
margin:0.25rem 0 0 1rem;
padding:0;
}
.journal-ledger-summary-steps li{
margin-bottom:0.2rem;
}
.journal-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:0.45rem 0.9rem;
font-size:0.85rem;
font-family:inherit;
font-weight:600;
color:#1a0a10;
background:rgba(255,182,193,0.88);
border:1px solid rgba(255,182,193,0.95);
border-radius:6px;
cursor:pointer;
}
.journal-btn:hover{
background:rgba(255,182,193,1);
}
.journal-btn-primary{
background:rgba(255,182,193,0.95);
}
.journal-btn-danger{
color:rgba(255,230,235,0.98);
background:rgba(120,28,48,0.55);
border-color:rgba(255,120,150,0.55);
}
.journal-btn-danger:hover{
background:rgba(150,36,58,0.72);
border-color:rgba(255,160,180,0.7);
}
.journal-import-label{
position:relative;
cursor:pointer;
}
.journal-import-input{
position:absolute;
width:0.1px;
height:0.1px;
opacity:0;
overflow:hidden;
clip:rect(0,0,0,0);
}
.journal-scene{
position:relative;
z-index:1;
width:100%;
min-width:0;
min-height:min(72vh, 640px);
height:auto;
perspective:1400px;
overflow:visible;
padding:0.5rem 0 3rem;
box-sizing:border-box;
}
.journal-deck-hint{
text-align:center;
font-size:0.75rem;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(255,182,193,0.45);
margin:0 0 0.35rem;
}
.journal-deck-stack{
display:flex;
flex-direction:column;
gap:1.35rem;
position:relative;
width:100%;
min-width:0;
}
.journal-deck-rail{
position:relative;
width:100%;
min-width:0;
}
.journal-deck-rail-heading{
margin:0 0 0.2rem;
font-size:0.78rem;
font-weight:700;
letter-spacing:0.1em;
text-transform:uppercase;
color:rgba(255,182,193,0.88);
}
.journal-deck-rail-lede{
margin:0 0 0.45rem;
font-size:0.74rem;
line-height:1.45;
color:rgba(220,195,208,0.82);
max-width:42rem;
}
.journal-deck-rail[hidden],
.journal-deck-rail-heading[hidden]{
display:none !important;
}
.contract-window-continuous-tag{
margin:0.35rem 0 0;
font-size:0.68rem;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(255,209,102,0.9);
}
.contract-window-continuous-tag--inline{
margin:0;
padding:0.12rem 0.38rem;
border-radius:4px;
background:rgba(255,209,102,0.12);
border:1px solid rgba(255,209,102,0.28);
font-size:0.58rem;
}
.journal-deck{
position:absolute;
top:2rem;
left:0;
overflow:visible;
transform-style:preserve-3d;
transition:transform 0.15s ease-out;
}
.journal-deck-empty{
position:absolute;
left:50%;
top:50%;
transform:translate(-50%, -50%);
width:min(420px, 90vw);
padding:1.5rem;
text-align:center;
font-size:0.95rem;
line-height:1.55;
color:rgba(230,200,210,0.88);
background:rgba(18,8,14,0.75);
border:1px solid rgba(255,182,193,0.25);
border-radius:10px;
box-sizing:border-box;
}
.contract-window{
margin:0;
padding:0;
font-family:inherit;
text-align:left;
border:none;
border-radius:10px;
box-sizing:border-box;
background:rgba(12,6,10,0.92);
box-shadow:
  0 0 0 1px rgba(255,182,193,0.2),
  0 18px 40px rgba(0,0,0,0.55);
cursor:pointer;
transition:box-shadow 0.2s ease, transform 0.2s ease;
}
.contract-window:focus-visible{
outline:2px solid rgba(255,182,193,0.85);
outline-offset:4px;
}
.contract-window:hover{
box-shadow:
  0 0 0 1px rgba(255,182,193,0.45),
  0 22px 48px rgba(0,0,0,0.6);
transform:translateY(-2px);
}
.contract-window--deck{
position:absolute;
top:0;
display:flex;
flex-direction:column;
overflow:hidden;
}
.contract-window-titlebar{
flex-shrink:0;
display:flex;
align-items:center;
gap:0.5rem;
padding:0.45rem 0.65rem;
background:linear-gradient(180deg, rgba(50,22,34,0.98) 0%, rgba(28,10,18,0.98) 100%);
border-bottom:1px solid rgba(255,182,193,0.28);
}
.contract-window-dots{
display:inline-block;
width:10px;
height:10px;
border-radius:50%;
background:#ff5f56;
box-shadow:16px 0 #febc2e, 32px 0 #28c840;
flex-shrink:0;
}
.contract-window-title{
font-size:0.65rem;
font-weight:700;
letter-spacing:0.14em;
text-transform:uppercase;
color:rgba(255,182,193,0.85);
margin-left:2.25rem;
}
.contract-window-body{
flex:1;
min-height:0;
padding:0;
overflow:hidden;
}
.contract-window-body--preview{
display:flex;
flex-direction:column;
background:linear-gradient(165deg, rgba(22,10,16,0.98) 0%, rgba(8,4,8,0.99) 100%);
}
.contract-window-body-scroll{
flex:1;
min-height:0;
overflow-y:auto;
overflow-x:hidden;
padding:0.75rem 0.85rem 0.55rem;
-webkit-overflow-scrolling:touch;
}
.contract-window-deck-terms{
margin-top:0.55rem;
padding-top:0.5rem;
border-top:1px solid rgba(255,182,193,0.18);
container-type:inline-size;
container-name:deck-terms;
}
@container deck-terms (max-width:340px){
.contract-window-deck-columns--detail{
grid-template-columns:repeat(2,minmax(0,1fr));
}
}
.contract-window-deck-footer{
flex-shrink:0;
max-height:46%;
min-height:0;
overflow-y:auto;
overflow-x:hidden;
padding:0.45rem 0.65rem 0.55rem;
border-top:1px solid rgba(255,182,193,0.22);
background:rgba(6,3,6,0.92);
-webkit-overflow-scrolling:touch;
}
.contract-window-deck-section{
margin-top:0.35rem;
}
.contract-window-deck-section:first-child{
margin-top:0;
}
.contract-window-deck-section-title{
font-size:0.58rem;
font-weight:700;
letter-spacing:0.1em;
text-transform:uppercase;
color:rgba(255,182,193,0.75);
margin:0 0 0.32rem;
}
.contract-window-deck-hero{
display:flex;
flex-direction:column;
align-items:stretch;
gap:0.42rem;
margin:0 0 0.1rem;
}
.contract-window-deck-hero-badges{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.38rem;
}
.contract-window-terms-lock--deck-hero{
padding:0.2rem 0.5rem;
font-size:0.66rem;
font-weight:800;
letter-spacing:0.08em;
border-width:1px;
box-shadow:0 0 0 1px rgba(180,235,200,0.12);
}
.contract-window-continuous-tag--deck-hero{
padding:0.2rem 0.5rem;
font-size:0.66rem;
font-weight:800;
letter-spacing:0.08em;
border-width:1px;
box-shadow:0 0 0 1px rgba(255,209,102,0.12);
}
.contract-window-deck-simp-hero{
margin:0;
padding:0.2rem 0.5rem;
border-radius:4px;
font-size:0.62rem;
font-weight:700;
letter-spacing:0.03em;
line-height:1.25;
border:1px solid rgba(255,182,193,0.32);
flex-shrink:0;
}
.contract-window-deck-simp-hero--standard{
color:rgba(220,200,215,0.95);
background:rgba(255,182,193,0.08);
border-color:rgba(255,182,193,0.22);
}
.contract-window-deck-simp-hero--max{
color:rgba(255,245,250,0.98);
background:rgba(255,182,193,0.2);
border-color:rgba(255,182,193,0.5);
box-shadow:
0 0 10px rgba(255,182,193,0.5),
0 0 22px rgba(255,160,180,0.35),
0 0 36px rgba(255,140,170,0.18);
}
.contract-window-deck-hero-money{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem 0.45rem;
}
.contract-window-deck-terms-divider{
height:0;
margin:0.38rem 0 0.36rem;
border:0;
border-top:1px solid rgba(255,182,193,0.28);
}
.contract-window-deck-columns{
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:0.28rem 0.32rem;
align-items:start;
margin:0;
padding:0;
}
.contract-window-deck-columns--detail{
grid-template-columns:repeat(3,minmax(0,1fr));
}
.contract-window-deck-col{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.22rem;
min-width:0;
}
.contract-window-deck-tag{
margin:0;
padding:0.12rem 0.38rem;
border-radius:4px;
background:rgba(255,182,193,0.1);
border:1px solid rgba(255,182,193,0.22);
font-size:0.58rem;
line-height:1.3;
font-weight:600;
letter-spacing:0.02em;
color:rgba(255,235,245,0.92);
word-break:break-word;
}
.contract-window-deck-tag--hero{
padding:0.22rem 0.48rem;
font-size:0.74rem;
font-weight:700;
letter-spacing:0.03em;
line-height:1.25;
background:rgba(255,182,193,0.16);
border-color:rgba(255,182,193,0.38);
color:rgba(255,248,252,0.98);
font-variant-numeric:tabular-nums;
font-feature-settings:"tnum" 1;
}
.contract-window-deck-viol-badges{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.28rem;
}
.contract-window-deck-footer .journal-violation-badge{
flex:0 1 auto;
min-width:0;
max-width:100%;
}
.contract-window-deck-viol-badge{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.22rem;
text-align:left;
}
.contract-window-deck-viol-badge-line{
display:block;
font-size:0.66rem;
line-height:1.35;
}
.contract-window-deck-viol-badge-msg{
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:4;
overflow:hidden;
font-size:0.58rem;
line-height:1.4;
font-weight:500;
color:rgba(220,200,210,0.88);
word-break:break-word;
}
.contract-window-deck-footer--rewards{
border-top-color:rgba(160,220,180,0.18);
}
.contract-window-deck-reward-badges{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.28rem;
}
.contract-window-deck-footer .journal-reward-badge{
flex:0 1 auto;
min-width:0;
max-width:100%;
}
.contract-window-deck-reward-badge{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:0.18rem;
text-align:left;
}
.contract-window-deck-reward-badge-line{
display:block;
font-size:0.66rem;
line-height:1.35;
}
.contract-window-deck-reward-game-tag{
font-size:0.52rem;
font-weight:700;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(180,235,200,0.95);
padding:0.1rem 0.32rem;
border-radius:3px;
border:1px solid rgba(160,220,180,0.35);
background:rgba(20,40,28,0.75);
}
.contract-window-deck-reward-badge-msg{
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden;
font-size:0.58rem;
line-height:1.4;
font-weight:500;
color:rgba(200,215,205,0.88);
word-break:break-word;
}
.contract-window-doc-title{
font-size:1.05rem;
font-weight:700;
color:#fff;
margin:0 0 0.65rem;
line-height:1.25;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
}
.contract-window-preview-text{
margin:0;
font-size:0.82rem;
line-height:1.45;
color:rgba(210,185,198,0.88);
display:-webkit-box;
-webkit-line-clamp:6;
-webkit-box-orient:vertical;
overflow:hidden;
}
.journal-panel-scrim{
position:fixed;
inset:0;
z-index:1890;
background:rgba(0,0,0,0.5);
backdrop-filter:blur(2px);
-webkit-backdrop-filter:blur(2px);
}
.journal-panel{
position:fixed;
top:0;
right:0;
z-index:1900;
width:min(920px, 98vw);
max-width:100%;
height:100vh;
height:100dvh;
box-sizing:border-box;
background:linear-gradient(200deg, rgba(24,10,18,0.98) 0%, rgba(10,4,8,0.99) 100%);
border-left:1px solid rgba(255,182,193,0.35);
box-shadow:-12px 0 40px rgba(0,0,0,0.55);
overflow:hidden;
}
.journal-panel[hidden]{
display:none !important;
}
.journal-panel-scrim[hidden]{
display:none !important;
}
.journal-panel-inner{
display:flex;
flex-direction:column;
height:100%;
min-height:0;
padding:1rem 1rem 1.1rem;
box-sizing:border-box;
gap:0.5rem;
overflow:hidden;
}
.journal-panel-body{
display:flex;
flex:1;
min-height:0;
gap:0.85rem 1rem;
align-items:stretch;
flex-direction:row;
}
.journal-panel-doc{
flex:1;
min-width:0;
display:flex;
flex-direction:column;
min-height:0;
gap:0.45rem;
overflow-y:auto;
-webkit-overflow-scrolling:touch;
padding-right:0.15rem;
}
.journal-panel-fields{
container-type:inline-size;
container-name:journal-panel-fields;
flex:0 0 clamp(280px, 40vw, 520px);
min-width:0;
display:flex;
flex-direction:column;
min-height:0;
gap:0.35rem;
overflow-y:auto;
-webkit-overflow-scrolling:touch;
padding-left:0.85rem;
border-left:1px solid rgba(255,182,193,0.22);
box-sizing:border-box;
}
@container journal-panel-fields (min-width:420px){
.journal-terms-columns{
grid-template-columns:repeat(4,minmax(0,1fr));
}
}
.journal-panel-fields .journal-contract-delegate-select{
max-width:100%;
}
.journal-panel-fields .journal-terms-section{
margin-top:0;
padding-top:0.15rem;
border-top:none;
}
.journal-panel-fields .journal-delegate-row{
margin-top:0.35rem;
padding-top:0.55rem;
border-top:1px solid rgba(255,182,193,0.18);
}
@media (max-width:700px){
.journal-panel{
width:100%;
}
.journal-panel-body{
flex-direction:column;
}
.journal-panel-fields{
flex:none;
max-height:min(48vh, 420px);
padding-left:0;
border-left:none;
border-top:1px solid rgba(255,182,193,0.22);
padding-top:0.65rem;
}
.journal-panel-fields .journal-terms-section{
border-top:none;
padding-top:0;
}
}
.journal-panel-head{
display:flex;
align-items:center;
justify-content:space-between;
gap:0.75rem;
}
.journal-panel-head-actions{
display:flex;
align-items:center;
gap:0.5rem;
flex-shrink:0;
}
.journal-panel-heading{
margin:0;
font-size:1rem;
font-weight:700;
letter-spacing:0.06em;
text-transform:uppercase;
color:rgba(255,182,193,0.92);
}
.journal-panel-close{
width:2.25rem;
height:2.25rem;
padding:0;
font-size:1.35rem;
line-height:1;
color:rgba(255,235,245,0.95);
background:rgba(40,18,28,0.9);
border:1px solid rgba(255,182,193,0.4);
border-radius:6px;
cursor:pointer;
}
.journal-panel-close:hover{
background:rgba(70,28,45,0.95);
}
.journal-field-label{
font-size:0.72rem;
font-weight:600;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.65);
}
.journal-contract-title-input{
width:100%;
box-sizing:border-box;
padding:0.5rem 0.65rem;
font-size:1rem;
font-family:inherit;
color:#fff;
background:rgba(8,4,8,0.9);
border:1px solid rgba(255,182,193,0.35);
border-radius:6px;
outline:none;
}
.journal-contract-title-input:focus{
border-color:rgba(255,182,193,0.75);
}
.journal-format-bar{
display:flex;
flex-wrap:wrap;
align-items:center;
gap:0.35rem 0.45rem;
padding:0.35rem 0;
}
.journal-format-inline-label{
font-size:0.65rem;
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
color:rgba(255,182,193,0.65);
margin-right:0.15rem;
}
.journal-format-colors{
display:inline-flex;
flex-wrap:wrap;
align-items:center;
gap:0.3rem;
padding:0.15rem 0 0.15rem 0.35rem;
margin-left:0.15rem;
border-left:1px solid rgba(255,182,193,0.25);
}
.journal-color-swatch{
width:1.35rem;
height:1.35rem;
padding:0;
border:2px solid rgba(255,255,255,0.35);
border-radius:4px;
cursor:pointer;
box-sizing:border-box;
background:var(--swatch, #888);
flex-shrink:0;
}
.journal-color-swatch:hover{
border-color:rgba(255,182,193,0.85);
transform:scale(1.06);
}
.journal-format-btn--compact{
padding:0.28rem 0.45rem;
font-size:0.65rem;
}
.journal-format-btn{
padding:0.35rem 0.55rem;
font-size:0.72rem;
font-weight:600;
font-family:inherit;
letter-spacing:0.04em;
text-transform:uppercase;
color:rgba(255,235,245,0.95);
background:rgba(36,16,26,0.95);
border:1px solid rgba(255,182,193,0.35);
border-radius:4px;
cursor:pointer;
}
.journal-format-btn:hover{
border-color:rgba(255,182,193,0.65);
background:rgba(50,22,38,0.98);
}
.journal-editor.contract-document-body{
flex:1;
min-height:min(200px, 28vh);
overflow-y:auto;
padding:0.65rem 0.75rem;
font-size:0.92rem;
line-height:1.5;
color:rgba(248,230,238,0.96);
background:rgba(6,3,6,0.95);
border:1px solid rgba(255,182,193,0.22);
border-radius:8px;
outline:none;
}
.contract-document-body h2{
font-size:1.25rem;
font-weight:700;
margin:0.85rem 0 0.4rem;
color:#fff;
}
.contract-document-body h2:first-child{
margin-top:0;
}
.contract-document-body h3{
font-size:1.05rem;
font-weight:650;
margin:0.65rem 0 0.35rem;
color:rgba(255,220,232,0.98);
}
.journal-editor.contract-document-body h2,
.journal-editor.contract-document-body h3{
color:inherit;
}
.contract-document-body ul{
margin:0.4rem 0 0.6rem 1.1rem;
padding:0;
}
.contract-document-body li{
margin:0.25rem 0;
}
.contract-document-body p{
margin:0.4rem 0;
}
.journal-panel-meta{
margin:0;
font-size:0.72rem;
color:rgba(180,200,190,0.85);
}

/* --------------------------------------------- */
/* Market tape — matches EVECORP chart terminal + sendie inset (.btc-ytd-term-*, .btc-ytd-tx-inset-*) */
/* --------------------------------------------- */
.market-tape-wrap{
  width:100%;
  max-width:100%;
  margin-top:0;
  margin-left:auto;
  margin-right:auto;
}

.market-tape{
  width:100%;
  background:#120810;
  border:1px solid rgba(255,105,180,0.45);
  border-radius:6px;
  box-shadow:
    inset 0 1px 0 rgba(255,182,193,0.12),
    0 4px 24px rgba(0,0,0,0.45);
  overflow:hidden;
}

.market-tape-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  min-width:0;
  padding:0.65rem 0.75rem 0.5rem;
  border-bottom:1px solid rgba(255,105,180,0.35);
  background:#120810;
}

.market-tape-head-left{
  flex:0 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.2rem;
}

.market-tape-head-right{
  flex:1 1 0;
  min-width:0;
  max-width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:0.25rem;
  text-align:right;
}

/* Sendie-style status lines (inset key / val tone) */
.market-tape-llm{
  font-family:sans-serif;
  font-size:0.6625rem;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:none;
  width:100%;
  max-width:100%;
  line-height:1.35;
  text-align:right;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  color:rgba(255,230,236,0.95);
}

.market-tape-llm.is-live{
  color:rgba(255,228,240,0.98);
  text-shadow:0 0 10px rgba(255,105,180,0.35);
}

.market-tape-llm.is-fallback{
  color:rgba(255,200,210,0.92);
  text-shadow:0 0 8px rgba(255,20,147,0.22);
}

.market-tape-columns{
  display:grid;
  grid-template-columns: 80px minmax(0, 1fr) 110px 95px 120px 120px;
  grid-template-rows:auto auto;
  row-gap:4px;
  column-gap:12px;
  padding:8px 12px 10px;
  border-bottom:1px solid rgba(255,105,180,0.35);
  background:#120810;
}

.market-col{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  font-size:clamp(0.625rem, 1.375vw, 0.7rem);
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(255,182,193,0.55);
}

/* VOL header: matches .btc-ytd-term-lbl--vol */
.market-col--volume{
  grid-column:1 / 2;
  grid-row:2;
  text-align:right;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.14em;
  color:rgba(255,182,193,0.78);
}

.market-col--price,
.market-col--delta,
.market-col--share,
.market-col--beta{
  text-align:right;
}

.market-col--news{
  grid-column:2 / -1;
  grid-row:2;
  font-size:clamp(0.728rem, 1.56vw, 0.884rem);
}

/* Matches .btc-ytd-term-brand */
.market-tape-title{
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  font-weight:700;
  font-size:clamp(0.725rem, 1.563vw, 0.863rem);
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:#ff69b4;
  filter:drop-shadow(0 0 4px rgba(255,105,180,0.45));
}

/* Secondary tape label — tone of .btc-ytd-tx-inset-tape-hdr at smaller scale */
.market-tape-kicker{
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  font-weight:700;
  font-size:clamp(0.625rem, 1.313vw, 0.7rem);
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(255,182,193,0.78);
}

/* Seeds stamp — inset meta */
.market-tape-sub{
  font-family:sans-serif;
  font-size:0.6625rem;
  font-weight:600;
  color:rgba(255,255,255,0.45);
  width:100%;
  max-width:100%;
  white-space:normal;
  text-align:right;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.35;
}

.market-tape-foot{
  padding:0.45rem 0.75rem 0.55rem;
  font-family:sans-serif;
  font-size:0.6625rem;
  font-weight:600;
  line-height:1.35;
  color:rgba(255,255,255,0.45);
  border-top:1px solid rgba(255,105,180,0.35);
  background:#120810;
}

.market-tape-viewport{
  height:min(62vh, 720px);
  min-height:320px;
  overflow:hidden;
  background:#120810;
}

.market-tape-rows-inner{
  will-change:transform;
}

.market-row{
  display:grid;
  grid-template-columns: 80px minmax(0, 1fr) 110px 95px 120px 120px;
  grid-template-rows:auto auto;
  row-gap:6px;
  column-gap:12px;
  align-items:start;
  padding:8px 12px;
  border-bottom:1px solid rgba(255,182,193,0.14);
  background:#120810;
}

.market-row:last-child{
  border-bottom:none;
}

.market-row .cell{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  font-size:clamp(0.663rem, 1.438vw, 0.703rem);
  font-weight:600;
}

/* Ticker — strong tape val */
.cell-ticker{
  color:rgba(255,228,240,0.95);
  font-weight:700;
  letter-spacing:0.03em;
}

.cell-ticker--with-action{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  white-space:normal;
  overflow:visible;
  min-width:76px;
}

.cell-ticker-text{
  line-height:1.2;
}

.market-ticker-dossier-btn{
  font-family:sans-serif;
  font-size:0.55rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  padding:3px 7px;
  line-height:1.1;
  border:1px solid rgba(255,182,193,0.45);
  background:rgba(255,20,147,0.14);
  color:#ffb6c1;
  cursor:pointer;
  border-radius:3px;
  pointer-events:auto;
  flex-shrink:0;
}

.market-ticker-dossier-btn:hover{
  background:rgba(255,182,193,0.22);
  color:#fff;
}

.market-ticker-dossier-btn:focus-visible{
  outline:2px solid #ffb6c1;
  outline-offset:2px;
}

/* Name stack: sendie inset key + val */
.market-name{
  font-family:sans-serif;
  font-weight:600;
  font-size:0.7rem;
  letter-spacing:0.02em;
  color:rgba(255,230,236,0.95);
}

.market-sector{
  font-family:sans-serif;
  font-weight:400;
  font-size:0.6625rem;
  color:rgba(255,255,255,0.45);
  margin-top:1px;
}

.cell-name{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  align-self:start;
}

.market-corp-profile-host{
  margin-top:6px;
  max-width:100%;
}

.market-corp-profile-host .evecorp-corp-dossier{
  font-family:sans-serif;
  font-size:0.62rem;
  font-weight:400;
  color:rgba(255,230,236,0.78);
  line-height:1.35;
}

.market-corp-profile-host .evecorp-corp-dossier summary{
  cursor:pointer;
  list-style-position:outside;
  color:rgba(255,182,193,0.95);
  font-weight:600;
}

.market-corp-profile-host .evecorp-corp-dossier summary strong{
  font-weight:700;
}

.market-corp-profile-host .evecorp-corp-dossier p{
  margin:0.4em 0 0;
  white-space:normal;
}

.cell-price{
  text-align:right;
  font-size:0.6625rem;
  font-weight:600;
  color:rgba(255,228,240,0.92);
}

.cell-delta{
  text-align:right;
  font-weight:600;
  font-size:0.6625rem;
}

.cell-delta.pos{
  color:#ffb6c1;
  filter:drop-shadow(0 0 4px rgba(255,182,193,0.55));
}

.cell-delta.neg{
  color:#ff1493;
  filter:drop-shadow(0 0 4px rgba(255,20,147,0.4));
}

.cell-share{
  text-align:right;
  color:rgba(255,228,240,0.92);
  font-weight:600;
}

.cell-beta{
  text-align:right;
  color:rgba(255,182,193,0.88);
  font-weight:700;
}

.cell-volume{
  text-align:right;
  font-size:0.825rem;
  font-weight:700;
  color:#ffc0e8;
  filter:drop-shadow(0 0 4px rgba(255,105,180,0.45));
  grid-column:1 / 2;
  grid-row:2;
}

.market-row .cell.cell-news{
  grid-column:2 / -1;
  grid-row:2;
  min-width:0;
  max-width:100%;
  font-family:sans-serif;
  font-size:12px;
  font-weight:600;
  line-height:1.35;
  color:rgba(255,230,236,0.95);
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  overflow:visible;
  text-overflow:clip;
  align-self:start;
}

@media (max-width: 960px){
  .market-tape-viewport{ height:min(68vh, 780px); min-height:360px; }
  .market-tape-columns{
    grid-template-columns: 64px minmax(0, 1fr) 95px 85px 120px;
  }
  .market-row{
    grid-template-columns: 64px minmax(0, 1fr) 95px 85px 120px;
  }
  .market-row .cell-news{
    grid-column:2 / -1;
  }
}

.market-tape-error{
  padding:1rem;
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  color:rgba(255,120,150,0.95);
  font-size:1.063rem;
}

/* EVECORP issuer dossier — modal + standalone issuer.html */
html.evecorp-issuer-modal-open{
  overflow:hidden;
  overscroll-behavior:none;
}
/*
 * Scroll lock: body fixed + inline top (JS). Avoid overflow:hidden on body — it can clip .scene under
 * the translucent backdrop. `background-attachment: fixed` on body splits the radial background into a
 * separate layer; semi-transparent modals then show only that layer, not the deck/tape divs — force
 * scroll attachment while the modal is open so foreground composites with the dimmer.
 */
body.evecorp-issuer-modal-open{
  overflow:visible !important;
  position:fixed;
  left:0;
  right:0;
  width:100%;
  background-attachment:scroll !important;
  /* top: set inline to -scrollY so the viewport stays visually in place */
}

.evecorp-issuer-modal[hidden]{
  display:none !important;
}

.evecorp-issuer-modal:not([hidden]){
  display:block;
  position:fixed;
  inset:0;
  z-index:12000;
  background:transparent;
}

/* No backdrop-filter: blur + dark tint stacks to “solid black” on dark pages; pure alpha dim reads clearly */
.evecorp-issuer-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,4,12,0.45);
}

.evecorp-issuer-modal__panel{
  position:relative;
  box-sizing:border-box;
  margin:4vh auto;
  max-width:min(44rem, 94vw);
  max-height:88vh;
  overflow:auto;
  background:#120810;
  border:1px solid rgba(255,105,180,0.42);
  box-shadow:0 14px 52px rgba(0,0,0,0.6);
  padding:2.25rem 1.2rem 1.35rem;
  border-radius:10px;
}

.evecorp-issuer-modal__close{
  position:absolute;
  top:0.45rem;
  right:0.45rem;
  z-index:2;
  min-width:2.25rem;
  min-height:2.25rem;
  padding:0;
  line-height:1;
  font-size:1.35rem;
  border-radius:6px;
  border:1px solid rgba(255,182,193,0.35);
  background:rgba(255,20,147,0.12);
  color:#ffb6c1;
  cursor:pointer;
}

.evecorp-issuer-modal__close:hover{
  background:rgba(255,182,193,0.2);
  color:#fff;
}

.evecorp-issuer-modal__body{
  position:relative;
}

.evecorp-issuer-loading,
.evecorp-issuer-error{
  font-family:sans-serif;
  font-size:0.95rem;
  color:rgba(255,200,210,0.92);
  margin:0.5rem 0;
}

.evecorp-issuer-error{
  color:#ff6b9d;
}

.evecorp-issuer-head{
  margin-bottom:0.75rem;
}

.evecorp-issuer-kicker{
  font-family:ui-monospace, "Consolas", "Monaco", monospace;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.08em;
  color:#ffb6c1;
  margin:0 0 0.15rem;
}

.evecorp-issuer-title{
  font-size:1.35rem;
  font-weight:700;
  margin:0 0 0.25rem;
  color:rgba(255,240,245,0.98);
}

.evecorp-issuer-sector{
  margin:0;
  font-size:0.88rem;
  color:rgba(255,255,255,0.52);
}

.evecorp-issuer-actions{
  margin:0.65rem 0 0;
}

.evecorp-issuer-link-page{
  font-size:0.82rem;
  font-weight:600;
  color:#ff8ec6;
}

.evecorp-issuer-link-page:hover{
  color:#fff;
}

.evecorp-issuer-hero{
  margin:0.75rem 0 1rem;
  border-radius:8px;
  overflow:hidden;
  border:1px solid rgba(255,182,193,0.22);
}

.evecorp-issuer-hero img{
  display:block;
  width:100%;
  height:auto;
  vertical-align:middle;
}

.evecorp-issuer-doc{
  font-family:Georgia, "Times New Roman", serif;
  font-size:0.92rem;
  line-height:1.45;
  color:rgba(255,236,242,0.92);
}

.evecorp-issuer-doc details{
  margin-top:0.5rem;
  padding:0.35rem 0;
}

.evecorp-issuer-doc summary{
  cursor:pointer;
  color:#ffb6c1;
  font-family:sans-serif;
  font-weight:600;
}

.evecorp-issuer-doc summary strong{
  font-weight:700;
}

.evecorp-issuer-doc p{
  margin:0.5em 0 0;
}

/* Formatted dossier: ** → strong heading, * → emphasis heading; newlines preserved */
.evecorp-issuer-doc--formatted details{
  margin-top:0.5rem;
}

.evecorp-dossier-h-strong{
  display:block;
  font-family:sans-serif;
  font-size:1.08rem;
  font-weight:700;
  color:#ffb6c1;
  margin:0.7rem 0 0.2rem;
  line-height:1.28;
}

.evecorp-dossier-field .evecorp-dossier-h-strong{
  margin:0 0 0.2rem;
}

.evecorp-dossier-field{
  margin:0.4rem 0 0.55rem;
}

.evecorp-dossier-rest{
  margin:0;
  font-family:Georgia, "Times New Roman", serif;
  font-size:0.92rem;
  line-height:1.45;
  color:rgba(255,236,242,0.92);
}

.evecorp-dossier-rest .evecorp-dossier-h-strong,
.evecorp-dossier-p .evecorp-dossier-h-strong{
  margin:0.5rem 0 0.15rem;
}

.evecorp-dossier-h-em{
  display:block;
  font-family:sans-serif;
  font-size:0.98rem;
  font-weight:600;
  color:rgba(255,236,246,0.96);
  margin:0.5rem 0 0.12rem;
  line-height:1.3;
}

.evecorp-dossier-li .evecorp-dossier-h-em{
  display:inline;
  margin:0 0.2rem 0 0;
  font-size:0.98rem;
}

.evecorp-dossier-ul{
  margin:0.2rem 0 0.55rem 1.15rem;
  padding:0;
  list-style:disc;
}

.evecorp-dossier-li{
  margin:0.28rem 0;
  padding-left:0.1rem;
  font-family:Georgia, "Times New Roman", serif;
  font-size:0.92rem;
  line-height:1.45;
  color:rgba(255,236,242,0.92);
}

.evecorp-dossier-p{
  margin:0.35rem 0;
  font-family:Georgia, "Times New Roman", serif;
  font-size:0.92rem;
  line-height:1.45;
}

.evecorp-dossier-nl{
  margin:0;
  min-height:0.55rem;
}

body.evecorp-issuer-standalone-body{
  margin:0;
  min-height:100vh;
  background:#060208;
  color:rgba(255,230,236,0.95);
  font-family:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.evecorp-issuer-standalone-wrap{
  max-width:44rem;
  margin:0 auto;
  padding:1.25rem 1rem 2.5rem;
}

.evecorp-issuer-back-home{
  display:inline-block;
  margin-bottom:1rem;
  font-weight:600;
  font-size:0.9rem;
  color:#ffb6c1;
}

.evecorp-issuer-back-home:hover{
  color:#fff;
}