
/* FN BOOK2 HAM EVOLUTION V1: CASSETTE DECK ON METH */
body.book2-page #fn-ham-bar{
  border-top:2px solid rgba(255,179,71,.72);
  background:
    repeating-linear-gradient(90deg, rgba(255,179,71,.08) 0 2px, transparent 2px 18px),
    linear-gradient(135deg, rgba(255,59,0,.22), rgba(0,245,212,.10) 48%, rgba(5,5,12,.96));
  box-shadow:0 -18px 42px rgba(255,179,71,.18), inset 0 0 28px rgba(255,59,0,.16);
}

body.book2-page #ham-tab{
  background:linear-gradient(90deg, rgba(255,179,71,.24), rgba(255,47,125,.14)), #080812;
  border:1px solid rgba(255,179,71,.7);
  color:#ffb347;
  text-shadow:0 0 10px rgba(255,179,71,.7);
}

body.book2-page #ham-tab span:nth-child(2)::after{
  content:" // TAPE WARBLE";
  color:#00f5d4;
}

body.book2-page #ham-inner{
  background:
    radial-gradient(circle at 18% 45%, rgba(255,179,71,.18), transparent 24%),
    radial-gradient(circle at 82% 45%, rgba(255,47,125,.16), transparent 24%),
    linear-gradient(180deg, rgba(12,8,18,.98), rgba(4,4,10,.98));
}

body.book2-page .ham-brand,
body.book2-page .ham-freq-block,
body.book2-page .ham-vu-block,
body.book2-page .ham-dial-block,
body.book2-page .ham-np-block,
body.book2-page .ham-transport,
body.book2-page .ham-leds{
  border-color:rgba(255,179,71,.34);
  background:rgba(10,8,16,.66);
  box-shadow:inset 0 0 14px rgba(255,179,71,.08);
}

body.book2-page .ham-brand-name,
body.book2-page .ham-freq-num{
  color:#ffb347;
  text-shadow:0 0 12px rgba(255,179,71,.75);
}

body.book2-page .ham-brand-model::after{
  content:" // DUAL DECK BOOTLEG";
}

body.book2-page .ham-vu-seg.vu-on{
  background:#ff3b2f;
  box-shadow:0 0 9px rgba(255,59,47,.85);
}

body.book2-page #hamDialCanvas{
  border-radius:8px;
  background:
    radial-gradient(circle at 35% 50%, rgba(255,179,71,.34), transparent 28%),
    radial-gradient(circle at 65% 50%, rgba(0,245,212,.22), transparent 28%),
    #05050d;
  box-shadow:0 0 18px rgba(255,179,71,.3);
}

body.book2-page .ham-btn{
  border-color:rgba(255,179,71,.44);
  background:linear-gradient(135deg, rgba(255,179,71,.15), rgba(255,47,125,.08));
  color:#ffe6ba;
}

/* FN BOOK2 HAM EVOLUTION V2: WOODGRAIN TAPE-DECK + STEAMPUNK RECEIVER */
body.book2-page #fn-ham-bar{
  background:
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.28)),
    linear-gradient(90deg, #4c3523 0 4%, #a27a52 4% 96%, #4c3523 96% 100%);
  border-top: 3px solid #c79a5e;
  box-shadow:
    0 -18px 40px rgba(0,0,0,.35),
    inset 0 0 0 2px rgba(74,46,22,.75),
    inset 0 0 24px rgba(255,179,71,.12);
}

body.book2-page #ham-tab{
  background: linear-gradient(180deg, #d5b07a, #8b6338);
  color: #20150d;
  border: 1px solid #e7c38d;
  text-shadow: none;
  box-shadow: inset 0 1px 0 rgba(255,240,210,.45);
}

body.book2-page #ham-inner{
  position: relative;
  padding-top: 14px;
  background:
    linear-gradient(180deg, rgba(255,252,246,.96), rgba(206,190,166,.94));
  border-top: 2px solid rgba(255,235,205,.5);
}

body.book2-page #ham-inner::before{
  content:"";
  position:absolute;
  inset:8px 12px auto 12px;
  height:84px;
  pointer-events:none;
  border-radius:10px;
  background:
    radial-gradient(circle at 22% 50%, rgba(70,120,255,.18) 0 16%, transparent 17%),
    radial-gradient(circle at 36% 50%, rgba(70,120,255,.18) 0 16%, transparent 17%),
    linear-gradient(90deg, transparent 0 9%, rgba(0,0,0,.06) 9% 10%, transparent 10% 48%, rgba(0,0,0,.08) 48% 52%, transparent 52% 90%, rgba(0,0,0,.06) 90% 91%, transparent 91% 100%);
  opacity:.6;
}

body.book2-page .ham-brand,
body.book2-page .ham-freq-block,
body.book2-page .ham-vu-block,
body.book2-page .ham-dial-block,
body.book2-page .ham-np-block,
body.book2-page .ham-transport,
body.book2-page .ham-leds{
  background: linear-gradient(180deg, rgba(250,245,235,.94), rgba(201,185,160,.96));
  border: 1px solid rgba(116,82,47,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -1px 0 rgba(90,64,37,.2);
}

body.book2-page .ham-brand{
  position:relative;
  min-width:120px;
  padding-left:78px;
}

body.book2-page .ham-brand::before,
body.book2-page .ham-brand::after{
  content:"";
  position:absolute;
  top:16px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:
    radial-gradient(circle, #c9d8ff 0 10%, #30415c 11% 15%, #d9e4ff 16% 36%, #5c4834 37% 44%, #1e1a18 45% 100%);
  box-shadow: 0 0 0 2px #7a5b3b, 0 0 12px rgba(90,130,255,.28);
}

body.book2-page .ham-brand::before{ left:16px; }
body.book2-page .ham-brand::after{ left:48px; }

body.book2-page .ham-brand-name,
body.book2-page .ham-freq-num,
body.book2-page .ham-np-title{
  color:#3f2816;
  text-shadow:none;
}

body.book2-page .ham-brand-model,
body.book2-page .ham-freq-label,
body.book2-page .ham-dial-label,
body.book2-page .ham-np-label,
body.book2-page .ham-led-lbl,
body.book2-page .ham-np-sub{
  color:#6f5438;
}

body.book2-page .ham-vu-seg{
  background:#6c5d4b;
  border-color:#8e7554;
}

body.book2-page .ham-vu-seg.vu-on{
  background:#ff9f2f;
  box-shadow:0 0 8px rgba(255,159,47,.85);
}

body.book2-page #hamDialCanvas{
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,185,90,.45) 0 12%, rgba(100,67,33,.95) 13% 18%, rgba(205,178,132,.95) 19% 42%, rgba(78,52,28,.95) 43% 100%);
  box-shadow:
    inset 0 0 0 2px rgba(247,221,180,.55),
    0 0 10px rgba(255,179,71,.25);
}

body.book2-page .ham-btn{
  background: linear-gradient(180deg, #8a633c, #5d4024);
  border: 1px solid #d4aa73;
  color: #f7ead7;
  box-shadow: inset 0 1px 0 rgba(255,243,220,.25);
}

body.book2-page .ham-btn:hover,
body.book2-page .ham-btn.hb-active{
  background: linear-gradient(180deg, #b07d49, #6b4828);
  color:#fff4e4;
}

body.book2-page .ham-led.led-green{
  background:#7ad36b;
  box-shadow:0 0 6px #7ad36b;
}

body.book2-page .ham-led.led-amber{
  background:#ffb347;
  box-shadow:0 0 7px #ffb347;
}

body.book2-page #ham-station-popup{
  background: linear-gradient(180deg, rgba(245,236,222,.98), rgba(202,186,160,.98));
  border:1px solid rgba(116,82,47,.6);
  color:#2c1d12;
}

/* FN BOOK2 HAM EVOLUTION V3: RETROFUTURISTIC SILVER RECEIVER */
body.book2-page #fn-ham-bar{
  background:
    linear-gradient(90deg, #5a3d27 0 4.5%, #b8b0a4 4.5% 95.5%, #5a3d27 95.5% 100%);
  border-top: 2px solid #d7c7ab;
  box-shadow:
    0 -16px 36px rgba(0,0,0,.34),
    inset 0 0 0 1px rgba(255,255,255,.15),
    inset 0 0 22px rgba(255,179,71,.08);
}

body.book2-page #ham-inner{
  position: relative;
  background:
    linear-gradient(180deg, #d4d0c8, #a8a39a);
  border-top: 1px solid rgba(255,255,255,.38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42);
}

/* kill tape wheels */
body.book2-page .ham-brand::before,
body.book2-page .ham-brand::after{
  content: none !important;
}

body.book2-page .ham-brand,
body.book2-page .ham-freq-block,
body.book2-page .ham-vu-block,
body.book2-page .ham-dial-block,
body.book2-page .ham-np-block,
body.book2-page .ham-transport,
body.book2-page .ham-leds{
  background:
    linear-gradient(180deg, rgba(240,238,232,.98), rgba(184,178,168,.98));
  border: 1px solid rgba(86,79,68,.45);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -1px 0 rgba(90,80,66,.12);
}

/* left block becomes vent / faceplate, not cassette */
body.book2-page .ham-brand{
  min-width: 120px;
  padding-left: .7rem;
  background:
    repeating-linear-gradient(90deg, rgba(60,56,50,.26) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, rgba(238,236,230,.98), rgba(182,176,166,.98));
}

body.book2-page .ham-brand-name,
body.book2-page .ham-freq-num,
body.book2-page .ham-np-title{
  color:#2f241b;
  text-shadow:none;
}

body.book2-page .ham-brand-model,
body.book2-page .ham-freq-label,
body.book2-page .ham-dial-label,
body.book2-page .ham-np-label,
body.book2-page .ham-led-lbl,
body.book2-page .ham-np-sub{
  color:#6c5741;
}

/* central tuner window feel */
body.book2-page .ham-freq-block{
  background:
    linear-gradient(180deg, rgba(54,42,28,.98), rgba(26,20,14,.98));
  border-color:#4d3c2a;
}

body.book2-page .ham-freq-num{
  color:#ffd7a1;
  text-shadow:0 0 10px rgba(255,181,84,.55);
  letter-spacing:.08em;
}

body.book2-page .ham-freq-label{
  color:#d0b188;
}

/* square button matrix feel */
body.book2-page .ham-btn{
  background: linear-gradient(180deg, #4f4a43, #2f2b26);
  border: 1px solid #bbb2a4;
  color:#f4ead9;
  border-radius: 3px;
  clip-path: none;
}

body.book2-page .ham-btn:hover,
body.book2-page .ham-btn.hb-active{
  background: linear-gradient(180deg, #6a6359, #3f3a34);
  color:#ffd6a0;
}

/* tuning knob */
body.book2-page #hamDialCanvas{
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.42), transparent 0 22%),
    radial-gradient(circle at 50% 50%, rgba(92,88,82,.96) 0 18%, rgba(200,193,182,.98) 19% 48%, rgba(80,72,63,.98) 49% 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    0 0 0 1px rgba(76,68,58,.45);
}

body.book2-page .ham-vu-seg{
  background:#5f574d;
  border-color:#817568;
}

body.book2-page .ham-vu-seg.vu-on{
  background:#ffb347;
  box-shadow:0 0 8px rgba(255,179,71,.78);
}

body.book2-page #ham-station-popup{
  background: linear-gradient(180deg, rgba(236,232,224,.98), rgba(186,179,167,.98));
  border:1px solid rgba(86,79,68,.55);
  color:#241912;
}

/* FN BOOK2 HAM EVOLUTION V4: MK II + PLAYING CASSETTE DECK */
body.book2-page .ham-brand-model{
  font-size:0;
}
body.book2-page .ham-brand-model::before{
  content:"WM-M1 FIELD MOD";
  font-size:7px;
}
body.book2-page .ham-brand-model::after{
  content:"MK II";
  display:block;
  margin-top:2px;
  font-size:8px;
  letter-spacing:.18em;
  color:#3e2d1f;
}

/* turn the VU block into a cassette deck between LCD and tuner */
body.book2-page .ham-vu-block{
  position:relative;
  min-width:138px;
  height:82px;
  padding:0;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(235,232,226,.98), rgba(180,174,164,.98));
  border:1px solid rgba(86,79,68,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.48),
    inset 0 -1px 0 rgba(90,80,66,.15);
}

body.book2-page .ham-vu-block::before{
  content:"";
  position:absolute;
  inset:8px 10px 16px 10px;
  border-radius:6px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.32), rgba(255,255,255,0) 22%),
    linear-gradient(180deg, #44413c, #22201d);
  border:1px solid rgba(255,248,235,.16);
  box-shadow:
    inset 0 0 0 2px rgba(188,180,166,.18),
    inset 0 0 18px rgba(0,0,0,.34);
}

/* cassette label strip */
body.book2-page .ham-vu-block::after{
  content:"RESISTANCE MIX";
  position:absolute;
  left:28px;
  right:28px;
  top:12px;
  height:12px;
  line-height:12px;
  text-align:center;
  font-size:8px;
  letter-spacing:.16em;
  color:#dfd3be;
  background:linear-gradient(180deg, #7b6f60, #5a5044);
  border-radius:2px;
  border:1px solid rgba(255,255,255,.08);
}

/* two reel windows */
body.book2-page .ham-vu-row{
  position:absolute;
  inset:0;
  display:block;
}

body.book2-page .ham-vu-row::before,
body.book2-page .ham-vu-row::after{
  content:"";
  position:absolute;
  top:24px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(220,230,255,.95) 0 3px, transparent 3px 5px),
    repeating-conic-gradient(from 0deg, #d3d7e4 0 12deg, #5a6474 12deg 24deg),
    radial-gradient(circle, transparent 0 10px, rgba(225,230,240,.95) 10px 12px, transparent 12px),
    radial-gradient(circle, #2c3138 0 100%);
  box-shadow:
    0 0 0 2px rgba(205,198,184,.32),
    inset 0 0 8px rgba(255,255,255,.12);
}

body.book2-page .ham-vu-row::before{ left:26px; }
body.book2-page .ham-vu-row::after{ right:26px; }

/* cassette tape window bridge */
body.book2-page .ham-vu-seg{
  position:relative;
  top:58px;
  height:5px;
  border-radius:1px;
  background:#625949;
  border-color:#7c715f;
}
body.book2-page .ham-vu-seg.vu-on{
  background:#ffb347;
  box-shadow:0 0 6px rgba(255,179,71,.78);
}

/* only spin when a HAM youtube player is active */
body.book2-page #fn-ham-bar:has(#fn-ham-player iframe) .ham-vu-row::before,
body.book2-page #fn-ham-bar:has(#fn-ham-player iframe) .ham-vu-row::after{
  animation: fnBook2TapeSpin 1.2s linear infinite;
}
body.book2-page #fn-ham-bar:has(#fn-ham-player iframe) .ham-vu-row::after{
  animation-direction: reverse;
}

@keyframes fnBook2TapeSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}


/* FN BOOK2 HAM EVOLUTION V5: reliable cassette spin state */
body.book2-page.ham-tape-playing .ham-vu-row::before,
body.book2-page.ham-tape-playing .ham-vu-row::after,
body.book2-page #fn-ham-bar:has(#hamPowerBtn.hb-active) .ham-vu-row::before,
body.book2-page #fn-ham-bar:has(#hamPowerBtn.hb-active) .ham-vu-row::after{
  animation: fnBook2TapeSpin .75s linear infinite !important;
  transform-origin:50% 50%;
}

body.book2-page.ham-tape-playing .ham-vu-row::after,
body.book2-page #fn-ham-bar:has(#hamPowerBtn.hb-active) .ham-vu-row::after{
  animation-direction:reverse !important;
}


/* FN BOOK2 HAM EVOLUTION V6: tape stops unless actual broadcast player exists */
body.book2-page:not(.ham-tape-playing) .ham-vu-row::before,
body.book2-page:not(.ham-tape-playing) .ham-vu-row::after{
  animation:none !important;
}


/* FN BOOK3 HAM EVOLUTION V1: CD PLAYER WELDED TO NAPSTER TORRENT NODE */
body.book3-page #fn-ham-bar{
  border-top:2px solid rgba(0,245,212,.8);
  background:
    repeating-linear-gradient(90deg, rgba(0,245,212,.055) 0 1px, transparent 1px 10px),
    linear-gradient(135deg, rgba(30,40,70,.98), rgba(5,8,18,.98) 52%, rgba(0,245,212,.14));
  box-shadow:0 -18px 44px rgba(0,245,212,.2), inset 0 0 28px rgba(80,130,255,.12);
}

body.book3-page #ham-tab{
  background:linear-gradient(90deg, rgba(0,245,212,.2), rgba(70,120,255,.18)), #050814;
  border:1px solid rgba(0,245,212,.7);
  color:#bffcff;
  text-shadow:0 0 10px rgba(0,245,212,.8);
}

body.book3-page #ham-tab span:nth-child(2)::after{
  content:" // P2P RELAY";
  color:#ffb347;
}

body.book3-page #ham-inner{
  background:
    radial-gradient(circle at 37% 45%, rgba(170,210,255,.2), transparent 24%),
    linear-gradient(180deg, rgba(14,20,34,.98), rgba(2,5,13,.98));
}

/* CD transport replaces VU block */
body.book3-page .ham-vu-block{
  position:relative;
  min-width:126px;
  height:78px;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(0,245,212,.36);
  background:linear-gradient(180deg, rgba(20,28,42,.98), rgba(5,8,16,.98));
  box-shadow:inset 0 0 18px rgba(0,245,212,.12);
}

body.book3-page .ham-vu-row{
  position:absolute;
  inset:0;
  display:block;
}

body.book3-page .ham-vu-row::before{
  content:"";
  position:absolute;
  left:16px;
  top:14px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(5,8,18,1) 0 8%, rgba(215,245,255,.95) 9% 15%, transparent 16%),
    conic-gradient(from 20deg, #e9f8ff, #8aa8ff, #f5d6ff, #bffcff, #e9f8ff);
  box-shadow:0 0 16px rgba(160,210,255,.5);
}

body.book3-page.ham-disc-playing .ham-vu-row::before{
  animation: fnBook3DiscSpin .55s linear infinite;
}

body.book3-page .ham-vu-row::after{
  content:"NAPSTER NODE";
  position:absolute;
  right:9px;
  top:15px;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(0,245,212,.32);
  color:#00f5d4;
  font-size:7px;
  line-height:1.05;
  text-align:center;
  letter-spacing:.09em;
  background:
    linear-gradient(135deg, rgba(0,245,212,.1), rgba(70,120,255,.14)),
    rgba(2,7,16,.92);
}

body.book3-page .ham-vu-seg{
  position:relative;
  top:62px;
  height:4px;
  background:#15334a;
  border-color:#255c7d;
}

body.book3-page .ham-vu-seg.vu-on{
  background:#00f5d4;
  box-shadow:0 0 8px rgba(0,245,212,.85);
}

body.book3-page .ham-brand,
body.book3-page .ham-freq-block,
body.book3-page .ham-dial-block,
body.book3-page .ham-np-block,
body.book3-page .ham-transport,
body.book3-page .ham-leds{
  background:linear-gradient(180deg, rgba(18,25,40,.96), rgba(5,8,16,.96));
  border-color:rgba(0,245,212,.28);
  box-shadow:inset 0 0 14px rgba(0,245,212,.08);
}

body.book3-page .ham-brand-name,
body.book3-page .ham-freq-num,
body.book3-page .ham-np-title{
  color:#00f5d4;
  text-shadow:0 0 10px rgba(0,245,212,.78);
}

body.book3-page .ham-brand-model::after{
  content:" // CD-R P2P MOD";
  color:#ffb347;
}

body.book3-page .ham-btn{
  border-color:rgba(0,245,212,.42);
  background:linear-gradient(135deg, rgba(0,245,212,.12), rgba(70,120,255,.12));
  color:#dffcff;
}

body.book3-page .ham-btn:hover,
body.book3-page .ham-btn.hb-active{
  color:#ffb347;
  border-color:#ffb347;
}

@keyframes fnBook3DiscSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

/* FN BOOK5 HAM HOLO PROJECTOR STATE V1 - placeholder scaffold */
body.book5-page #fn-ham-bar{
  filter: saturate(1.18) contrast(1.08);
}

body.book5-page #ham-tab span:nth-child(2)::after{
  content:" · HOLO PROJECTOR";
  color:#9ffcff;
  text-shadow:0 0 10px rgba(159,252,255,.85);
}

/* FN BOOK5 HAM HOLO PROJECTOR STATE V2: BORG-LIKE RETROFUTURISTIC RIG */
body.book5-page #fn-ham-bar{
  position:relative;
  background:
    radial-gradient(circle at 50% 0%, rgba(132,255,214,.18), transparent 32%),
    linear-gradient(180deg, rgba(8,18,14,.96), rgba(4,9,8,.98));
  border:1px solid rgba(120,255,210,.34);
  box-shadow:
    0 0 0 1px rgba(90,255,190,.12) inset,
    0 0 30px rgba(40,255,180,.18),
    0 0 70px rgba(40,255,180,.08);
  overflow:visible;
}

body.book5-page #ham-tab{
  border-radius:999px;
  min-width:210px;
  padding:8px 18px;
  background:linear-gradient(180deg, rgba(20,40,32,.96), rgba(8,18,14,.98));
  border:1px solid rgba(140,255,220,.35);
  box-shadow:0 0 18px rgba(70,255,200,.18);
}

body.book5-page #ham-tab span:nth-child(2)::after{
  content:" · HOLO-MECH RELAY";
  color:#aaffea;
  text-shadow:0 0 10px rgba(140,255,220,.8);
}

body.book5-page #ham-inner{
  position:relative;
  overflow:visible;
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(18,44,34,.92), rgba(6,14,12,.98)),
    repeating-linear-gradient(90deg, rgba(120,255,220,.06) 0 2px, transparent 2px 14px);
  border:1px solid rgba(120,255,210,.2);
  box-shadow:
    inset 0 0 0 1px rgba(120,255,210,.1),
    inset 0 0 34px rgba(80,255,190,.08);
}

body.book5-page #ham-inner::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:22px;
  pointer-events:none;
  background:
    linear-gradient(120deg, transparent 0 16%, rgba(140,255,220,.06) 16% 18%, transparent 18% 42%, rgba(140,255,220,.05) 42% 44%, transparent 44% 100%);
  opacity:.75;
}

body.book5-page .ham-brand,
body.book5-page .ham-freq-block,
body.book5-page .ham-vu-block,
body.book5-page .ham-dial-block,
body.book5-page .ham-np-block,
body.book5-page .ham-transport,
body.book5-page .ham-leds{
  background:linear-gradient(180deg, rgba(10,28,22,.94), rgba(5,12,10,.98));
  border:1px solid rgba(126,255,214,.14);
  box-shadow:
    inset 0 0 18px rgba(115,255,210,.06),
    0 0 14px rgba(60,255,190,.05);
  border-radius:18px;
}

body.book5-page .ham-brand-name,
body.book5-page .ham-freq-num,
body.book5-page .ham-np-title{
  color:#c9fff3;
  text-shadow:0 0 12px rgba(110,255,220,.55);
}

body.book5-page .ham-brand-model::after{
  content:"MK V";
  color:#96ffd8;
  margin-left:8px;
}

body.book5-page .ham-vu-block{
  position:relative;
  overflow:hidden;
}
body.book5-page .ham-vu-block::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:999px;
  background:
    radial-gradient(circle at center, rgba(130,255,222,.30), rgba(80,255,200,.16) 38%, rgba(0,0,0,.08) 58%, transparent 62%),
    linear-gradient(180deg, rgba(180,255,235,.16), rgba(30,255,190,.08));
  border:1px solid rgba(150,255,230,.25);
  box-shadow:
    0 0 26px rgba(90,255,210,.18),
    inset 0 0 24px rgba(130,255,220,.18);
}

/* holographic player projection */
body.book5-page #fn-ham-player{
  position:absolute;
  left:50%;
  top:-158px;
  transform:translateX(-50%);
  width:240px;
  height:136px;
  padding:10px;
  border-radius:28px;
  background:
    linear-gradient(180deg, rgba(170,255,240,.18), rgba(70,255,210,.08) 48%, rgba(0,0,0,0) 100%);
  border:1px solid rgba(150,255,230,.30);
  box-shadow:
    0 0 32px rgba(100,255,225,.16),
    inset 0 0 22px rgba(160,255,235,.12);
  backdrop-filter:blur(3px);
  z-index:8;
}

body.book5-page #fn-ham-player::before{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  width:112px;
  height:44px;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(110,255,220,.40), rgba(110,255,220,.12) 45%, transparent 70%);
  filter:blur(4px);
  pointer-events:none;
}

body.book5-page #fn-ham-player::after{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:20px;
  pointer-events:none;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.11) 0 2px, rgba(255,255,255,0) 2px 6px),
    linear-gradient(180deg, rgba(80,255,210,.16), rgba(0,0,0,0) 58%),
    linear-gradient(90deg, rgba(255,255,255,.08), transparent 18%, transparent 82%, rgba(255,255,255,.06));
  mix-blend-mode:screen;
  animation:fnBook5Static 1.2s steps(8) infinite;
}

body.book5-page #fn-ham-player iframe,
body.book5-page #fn-ham-player .yt-embed,
body.book5-page #fn-ham-player .video-shell{
  width:100%;
  height:100%;
  border:0;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 0 24px rgba(90,255,210,.12);
}

body.book5-page #ham-inner:has(#fn-ham-player iframe)::after{
  content:"";
  position:absolute;
  left:50%;
  top:-18px;
  transform:translateX(-50%);
  width:2px;
  height:150px;
  background:linear-gradient(180deg, rgba(120,255,220,.32), rgba(120,255,220,.10), transparent);
  box-shadow:0 0 18px rgba(120,255,220,.25);
  pointer-events:none;
}

@keyframes fnBook5Static{
  0%{transform:translateY(0);opacity:.50}
  20%{transform:translateY(1px);opacity:.68}
  40%{transform:translateY(-1px);opacity:.38}
  60%{transform:translateY(2px);opacity:.72}
  80%{transform:translateY(-2px);opacity:.42}
  100%{transform:translateY(0);opacity:.55}
}

/* FN BOOK5 HAM VISIBILITY RESCUE V1 */
body.book5-page #fn-ham-bar{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:fixed !important;
  left:16px !important;
  right:16px !important;
  bottom:14px !important;
  top:auto !important;
  z-index:9999 !important;
  transform:none !important;
  pointer-events:auto !important;
  max-height:none !important;
  overflow:visible !important;
}

body.book5-page #ham-inner{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  position:relative !important;
  min-height:96px !important;
  overflow:visible !important;
}

body.book5-page #ham-tab{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  position:absolute !important;
  left:24px !important;
  top:-38px !important;
  z-index:10000 !important;
}

body.book5-page #fn-ham-player{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:absolute !important;
  left:50% !important;
  top:-122px !important;
  transform:translateX(-50%) !important;
  width:220px !important;
  height:124px !important;
  z-index:10001 !important;
  pointer-events:auto !important;
}

/* FN BOOK5 HAM EVOLVE COMPACT V4 */
body.book5-page #fn-ham-bar{
  background:linear-gradient(135deg,#06100e,#101f1a 55%,#020606) !important;
  border:1px solid rgba(145,255,220,.45) !important;
  box-shadow:0 0 36px rgba(90,255,210,.24), inset 0 0 28px rgba(90,255,210,.10) !important;
}

body.book5-page #ham-inner{
  min-height:126px !important;
  padding-top:28px !important;
  border-radius:28px !important;
  background:
    repeating-linear-gradient(90deg,rgba(150,255,220,.07) 0 2px,transparent 2px 18px),
    linear-gradient(180deg,rgba(16,42,34,.96),rgba(2,8,9,.98)) !important;
}

/* top-center oval holo lens */
body.book5-page #ham-inner::before{
  content:"";
  position:absolute;
  left:50%;
  top:-26px;
  transform:translateX(-50%);
  width:150px;
  height:58px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(190,255,240,.65),rgba(80,255,205,.18) 55%,rgba(0,0,0,.5) 75%);
  border:1px solid rgba(180,255,235,.55);
  box-shadow:0 0 24px rgba(110,255,220,.45), inset 0 0 20px rgba(190,255,240,.24);
  z-index:8;
  animation:fnBook5Pulse 2.4s ease-in-out infinite;
}

/* hologram cone */
body.book5-page #ham-inner::after{
  content:"";
  position:absolute;
  left:50%;
  top:-130px;
  transform:translateX(-50%);
  width:210px;
  height:125px;
  clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(150,255,230,.34),rgba(150,255,230,.08),transparent);
  pointer-events:none;
  z-index:7;
  animation:fnBook5Glitch 1.25s steps(5) infinite;
}

body.book5-page .ham-brand,
body.book5-page .ham-freq-block,
body.book5-page .ham-vu-block,
body.book5-page .ham-dial-block,
body.book5-page .ham-np-block,
body.book5-page .ham-transport,
body.book5-page .ham-leds{
  border-radius:18px !important;
  border-color:rgba(145,255,220,.28) !important;
  background:linear-gradient(180deg,rgba(9,32,26,.95),rgba(3,10,11,.98)) !important;
}

@keyframes fnBook5Pulse{
  50%{opacity:.72;transform:translateX(-50%) scale(1.06)}
}

@keyframes fnBook5Glitch{
  25%{opacity:.35;transform:translateX(-51%) skewX(2deg)}
  50%{opacity:.85;transform:translateX(-49%) skewX(-2deg)}
  75%{opacity:.55;transform:translateX(-50%) skewX(1deg)}
}

/* FN BOOK5 ACTUAL VIDEO HOLO V1 */
body.book5-page #ham-inner #fn-ham-player{
  position:absolute !important;
  left:50% !important;
  top:-150px !important;
  transform:translateX(-50%) perspective(500px) rotateX(8deg) !important;
  width:240px !important;
  height:136px !important;
  display:block !important;
  opacity:.86 !important;
  visibility:visible !important;
  z-index:20 !important;
  border-radius:28px !important;
  overflow:hidden !important;
  background:rgba(100,255,220,.10) !important;
  border:1px solid rgba(170,255,235,.55) !important;
  box-shadow:0 0 34px rgba(100,255,220,.42), inset 0 0 18px rgba(170,255,235,.18) !important;
  filter:saturate(1.35) contrast(1.18) hue-rotate(65deg);
}

body.book5-page #ham-inner #fn-ham-player iframe{
  width:100% !important;
  height:100% !important;
  border:0 !important;
  border-radius:24px !important;
  opacity:.78 !important;
}

body.book5-page #ham-inner #fn-ham-player::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px);
  mix-blend-mode:screen;
  animation:fnBook5VideoStatic .9s steps(6) infinite;
}

@keyframes fnBook5VideoStatic{
  50%{transform:translateY(3px);opacity:.45}
}

/* FN BOOK5 HAM SKIN V5 - MAROON RADAR HOLO CONSOLE */
body.book5-page #fn-ham-bar{
  background:linear-gradient(180deg,#120a0c,#1c0f12 55%,#0b0608) !important;
  border:1px solid rgba(193,156,92,.45) !important;
  box-shadow:
    0 0 28px rgba(0,0,0,.45),
    0 0 42px rgba(60,255,190,.10),
    inset 0 0 0 1px rgba(193,156,92,.12) !important;
}

body.book5-page #ham-tab{
  background:linear-gradient(180deg,#4b2026,#2a1115) !important;
  border:1px solid rgba(193,156,92,.45) !important;
  color:#d7be87 !important;
  border-radius:14px !important;
}

body.book5-page #ham-tab span:nth-child(2)::after{
  content:" · BROADCAST CONSOLE" !important;
  color:#73f2b9 !important;
}

body.book5-page #ham-inner{
  position:relative !important;
  min-height:132px !important;
  padding:18px 18px 18px 18px !important;
  border-radius:18px !important;
  background:
    linear-gradient(180deg,rgba(104,34,44,.92),rgba(59,20,28,.96) 58%,rgba(34,12,17,.98)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(212,170,102,.10),
    inset 0 12px 22px rgba(255,255,255,.03),
    inset 0 -18px 30px rgba(0,0,0,.20) !important;
  overflow:visible !important;
}

/* actual video projector */
body.book5-page #ham-inner #fn-ham-player{
  position:absolute !important;
  left:50% !important;
  top:-145px !important;
  transform:translateX(-50%) !important;
  width:235px !important;
  height:128px !important;
  border-radius:8px !important;
  overflow:hidden !important;
  opacity:.88 !important;
  background:rgba(100,255,220,.08) !important;
  border:1px solid rgba(130,255,220,.35) !important;
  box-shadow:0 0 24px rgba(100,255,220,.18) !important;
  z-index:25 !important;
  filter:saturate(1.15) contrast(1.08) hue-rotate(45deg) !important;
}

body.book5-page #ham-inner #fn-ham-player iframe{
  width:100% !important;
  height:100% !important;
  border:0 !important;
  opacity:.80 !important;
}

body.book5-page #ham-inner #fn-ham-player::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(180deg,rgba(255,255,255,.14) 0 1px,transparent 1px 5px),
    linear-gradient(180deg,rgba(140,255,225,.10),transparent 55%);
  mix-blend-mode:screen;
  animation:fnBook5StaticLite .85s steps(6) infinite;
}

body.book5-page #ham-inner::before{
  content:"";
  position:absolute;
  left:50%;
  top:-6px;
  transform:translateX(-50%);
  width:96px;
  height:24px;
  border-radius:16px;
  background:linear-gradient(180deg,#1b2520,#0d1310) !important;
  border:1px solid rgba(193,156,92,.35);
  box-shadow:0 0 14px rgba(90,255,200,.20), inset 0 0 12px rgba(90,255,200,.18);
  z-index:21;
}

body.book5-page #ham-inner::after{
  content:"";
  position:absolute;
  left:50%;
  top:-118px;
  transform:translateX(-50%);
  width:210px;
  height:118px;
  clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,rgba(120,255,220,.28),rgba(120,255,220,.08),transparent);
  opacity:.75;
  pointer-events:none;
  z-index:20;
  animation:fnBook5StaticLite 1.2s steps(5) infinite;
}

/* panel look */
body.book5-page .ham-brand,
body.book5-page .ham-freq-block,
body.book5-page .ham-vu-block,
body.book5-page .ham-dial-block,
body.book5-page .ham-np-block,
body.book5-page .ham-transport,
body.book5-page .ham-leds{
  background:linear-gradient(180deg,#2a171b,#161114) !important;
  border:1px solid rgba(193,156,92,.30) !important;
  border-radius:10px !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02) !important;
}

/* big radar dish block */
body.book5-page .ham-vu-block{
  position:relative !important;
  min-width:230px !important;
  min-height:110px !important;
  background:linear-gradient(180deg,#171515,#060807) !important;
  border-radius:18px !important;
  overflow:hidden !important;
}

body.book5-page .ham-vu-block::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:168px;
  height:168px;
  border-radius:50%;
  background:
    radial-gradient(circle at center, rgba(110,255,180,.28) 0 2px, transparent 3px 100%),
    repeating-radial-gradient(circle at center, rgba(80,255,160,.18) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(0deg, rgba(80,255,160,.10) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(90deg, rgba(80,255,160,.10) 0 1px, transparent 1px 22px),
    radial-gradient(circle at center, rgba(40,140,90,.45), rgba(12,40,24,.94) 68%, rgba(0,0,0,.98) 78%);
  border:4px solid #2c231b;
  box-shadow:
    0 0 0 2px rgba(193,156,92,.25),
    0 0 18px rgba(40,255,160,.20),
    inset 0 0 28px rgba(40,255,160,.16);
}

body.book5-page .ham-vu-row,
body.book5-page .ham-vu-seg{
  opacity:0 !important;
}

/* right-side digital screens */
body.book5-page .ham-freq-block,
body.book5-page .ham-np-block,
body.book5-page .ham-dial-block{
  color:#73f2b9 !important;
  text-shadow:0 0 10px rgba(100,255,210,.22);
}

body.book5-page .ham-brand-name,
body.book5-page .ham-freq-num,
body.book5-page .ham-np-title{
  color:#73f2b9 !important;
  font-weight:700 !important;
}

body.book5-page .ham-brand-model,
body.book5-page .ham-freq-label,
body.book5-page .ham-dial-label,
body.book5-page .ham-np-label,
body.book5-page .ham-led-lbl,
body.book5-page .ham-np-sub{
  color:#d2b16c !important;
}

body.book5-page .ham-btn{
  background:linear-gradient(180deg,#4b3a2e,#231d18) !important;
  color:#f0d8a4 !important;
  border:1px solid rgba(193,156,92,.35) !important;
  border-radius:4px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08) !important;
}

body.book5-page .ham-btn:hover,
body.book5-page .ham-btn.hb-active{
  background:linear-gradient(180deg,#7c5a3d,#3a2a1d) !important;
  box-shadow:0 0 12px rgba(255,214,120,.20) !important;
}

@keyframes fnBook5StaticLite{
  50%{transform:translateX(-50%) translateY(2px);opacity:.45}
}

/* FN BOOK5 HAM V7 - CENTER RADAR + KILL NOW REC */
body.book5-page #ham-inner{
  display:grid !important;
  grid-template-columns:minmax(180px,1fr) 320px minmax(180px,1fr) !important;
  grid-auto-rows:auto !important;
  align-items:center !important;
  justify-items:stretch !important;
  gap:10px !important;
}

body.book5-page .ham-vu-block{
  grid-column:2 !important;
  grid-row:1 / span 3 !important;
  justify-self:center !important;
  align-self:center !important;
  width:320px !important;
  min-width:320px !important;
  max-width:320px !important;
  min-height:128px !important;
  margin:0 auto !important;
}

body.book5-page .ham-brand{grid-column:1 !important;grid-row:1 !important;}
body.book5-page .ham-transport{grid-column:1 !important;grid-row:2 !important;}
body.book5-page .ham-leds{grid-column:1 !important;grid-row:3 !important;}
body.book5-page .ham-freq-block{grid-column:3 !important;grid-row:1 !important;}
body.book5-page .ham-dial-block{grid-column:3 !important;grid-row:2 !important;}

body.book5-page .ham-np-block,
body.book5-page .ham-np-label,
body.book5-page .ham-np-title,
body.book5-page .ham-np-sub{
  display:none !important;
}

/* BOOK 6 // MEMORY HOLOPROJECTION VIDEO FILL */
body.book6-page #book6-holo-ham,
body.book6-page .book6-holo-ham,
body.book6-page .fn-b6-holo,
body.book6-page .fn-b6-holo-stage {
  overflow: hidden;
}

body.book6-page #fnB6HoloPlayer {
  display: block;
  width: 100%;
  height: min(68vh, 720px);
  min-height: 420px;
  border: 0;
  border-radius: 22px;
  background: #000;
  box-shadow:
    0 0 32px rgba(0,245,212,.26),
    inset 0 0 28px rgba(255,62,165,.12);
}

body.book6-page.fn-b6-memory-active #book6-holo-ham,
body.book6-page.fn-b6-video-active #book6-holo-ham {
  display: block;
}

@media (max-width: 760px) {
  body.book6-page #fnB6HoloPlayer {
    height: 56vh;
    min-height: 280px;
    border-radius: 16px;
  }
}

/* BOOK 6 // FORCE HOLO YOUTUBE IFRAME TO FILL PROJECTION */
body.book6-page #fnB6HoloPlayer {
  position: relative;
  width: 100%;
  height: min(70vh, 760px);
  min-height: 440px;
  display: block;
  overflow: hidden;
  background: #000;
  border-radius: 22px;
}

body.book6-page #fnB6HoloPlayer iframe,
body.book6-page #fnB6HoloPlayer .fn-b6-holo-iframe,
body.book6-page iframe#fnB6HoloPlayer {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 100%;
  display: block;
  border: 0;
  border-radius: inherit;
  background: #000;
}

@media (max-width: 760px) {
  body.book6-page #fnB6HoloPlayer {
    height: 58vh;
    min-height: 300px;
  }
}
