:root {
  --nfcg-ink: #07090d;
  --nfcg-night: #0d1118;
  --nfcg-panel: #121823;
  --nfcg-paper: #e8dfcf;
  --nfcg-muted: #9f9b94;
  --nfcg-gold: #b79a62;
  --nfcg-blue: #72b9e6;
  --nfcg-red: #d9484e;
}

.nfcg-app,
.nfcg-app * { box-sizing: border-box; }

.nfcg-app {
  position: relative;
  width: 100%;
  max-width: 100vw;
  min-height: 760px;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  color: var(--nfcg-paper);
  background:
    radial-gradient(circle at 20% 12%, rgba(48, 68, 89, .25), transparent 28%),
    linear-gradient(145deg, #080a0f 0%, #101722 50%, #050609 100%);
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  line-height: 1.55;
  isolation: isolate;
}

.nfcg-app::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .15;
  background-image:
    repeating-linear-gradient(90deg, transparent 0 7px, rgba(255,255,255,.025) 8px),
    repeating-linear-gradient(0deg, transparent 0 11px, rgba(255,255,255,.018) 12px);
}

.nfcg-app button,
.nfcg-app input,
.nfcg-app select { font: inherit; }

.nfcg-app button { cursor: pointer; }
.nfcg-app button:disabled { cursor: not-allowed; opacity: .42; }

.nfcg-eyebrow {
  margin: 0 0 14px;
  color: var(--nfcg-gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .25em;
  text-transform: uppercase;
}

.nfcg-primary,
.nfcg-secondary,
.nfcg-ghost,
.nfcg-login-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 22px;
  border: 1px solid transparent;
  border-radius: 3px;
  text-decoration: none !important;
  font-weight: 750;
  letter-spacing: .04em;
  transition: transform .2s ease, filter .2s ease, border-color .2s ease, background .2s ease;
}

.nfcg-primary,
.nfcg-login-button {
  color: #111 !important;
  border-color: #d4b978;
  background: linear-gradient(135deg, #d8c18d, #aa8d55);
  box-shadow: 0 12px 34px rgba(0,0,0,.35), inset 0 1px rgba(255,255,255,.4);
}

.nfcg-secondary {
  color: var(--nfcg-paper);
  border-color: rgba(232,223,207,.32);
  background: rgba(255,255,255,.06);
}

.nfcg-ghost {
  color: #aaa;
  border-color: rgba(255,255,255,.12);
  background: transparent;
}

.nfcg-primary:hover,
.nfcg-secondary:hover,
.nfcg-ghost:hover,
.nfcg-login-button:hover { transform: translateY(-2px); filter: brightness(1.08); }

.nfcg-text-button {
  padding: 7px 0;
  color: #aaa;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  font-size: 13px;
}

.nfcg-danger-text { color: #d77b7d; }

.nfcg-login-gate {
  position: relative;
  max-width: 940px;
  min-height: 420px;
  margin: 40px auto;
  padding: 72px clamp(28px, 7vw, 90px);
  overflow: hidden;
  color: #e8dfcf;
  border: 1px solid #2e3846;
  border-radius: 8px;
  background: linear-gradient(135deg, #0c1119, #050608);
  box-shadow: 0 35px 80px rgba(0,0,0,.35);
}

.nfcg-login-gate h2 { max-width: 600px; margin: 0 0 14px; color: #f3ead8; font: 700 clamp(32px, 5vw, 62px)/1.1 Georgia, serif; }
.nfcg-login-gate > p:not(.nfcg-eyebrow) { max-width: 590px; margin-bottom: 28px; color: #aba9a5; }
.nfcg-gate-moon { position: absolute; right: -55px; top: -90px; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle at 34% 35%, #d6d8d0 0 3%, #7e8790 24%, #29323d 63%, transparent 65%); opacity: .34; filter: drop-shadow(0 0 45px #647588); }

/* Lobby */
.nfcg-lobby {
  display: grid;
  grid-template-columns: minmax(380px, .9fr) minmax(500px, 1.1fr);
  min-height: 760px;
}

.nfcg-lobby-art {
  position: relative;
  overflow: hidden;
  border-right: 1px solid rgba(183,154,98,.22);
  background:
    linear-gradient(180deg, transparent 40%, rgba(4,5,8,.92)),
    radial-gradient(ellipse at 52% 68%, rgba(105,31,35,.45), transparent 35%),
    linear-gradient(150deg, #16202c, #090b10 58%, #030405);
}

.nfcg-lobby-art::before,
.nfcg-lobby-art::after {
  content: "";
  position: absolute;
  width: 120%;
  height: 28%;
  left: -10%;
  bottom: 4%;
  border-radius: 50%;
  background: repeating-radial-gradient(ellipse at center, rgba(255,255,255,.06) 0 1px, transparent 2px 22px);
  transform: perspective(350px) rotateX(66deg);
}

.nfcg-lobby-art::after { bottom: -6%; opacity: .25; filter: blur(7px); }
.nfcg-moon { position: absolute; width: 280px; height: 280px; top: 8%; left: 12%; border-radius: 50%; background: radial-gradient(circle at 35% 32%, #e3e0d1 0 5%, #999d9c 32%, #414b54 67%, transparent 68%); opacity: .78; box-shadow: 0 0 70px rgba(151,184,202,.25); }
.nfcg-cat-shadow { position: absolute; z-index: 2; right: 12%; bottom: 10%; display: grid; place-items: center; width: 220px; height: 300px; color: rgba(156,35,42,.35); border: 2px solid rgba(182,54,60,.2); border-radius: 48% 48% 40% 40%; background: radial-gradient(circle at 50% 27%, #26090c, #08090d 62%); box-shadow: 0 0 90px rgba(147,21,31,.25); font: 900 90px/1 Georgia, serif; transform: rotate(3deg); }
.nfcg-cat-shadow::before,
.nfcg-cat-shadow::after { content:""; position:absolute; top:-46px; width:95px; height:105px; background:#08090d; clip-path:polygon(50% 0,100% 100%,0 100%); }
.nfcg-cat-shadow::before { left:13px; transform:rotate(-14deg); }
.nfcg-cat-shadow::after { right:13px; transform:rotate(14deg); }
.nfcg-child-shadow { position:absolute; z-index:3; left:15%; bottom:12%; width:55px; height:145px; border-radius:45% 45% 28% 28%; background:#040507; box-shadow:0 30px 30px rgba(0,0,0,.6); }
.nfcg-child-shadow::before { content:""; position:absolute; width:54px; height:54px; top:-25px; border-radius:50%; background:#040507; }
.nfcg-child-two { left:31%; bottom:9%; transform:scale(.8); opacity:.75; }

.nfcg-lobby-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,7vw,110px); }
.nfcg-lobby-copy h1 { margin:0; color:#f2e9d7; font:800 clamp(58px,8vw,114px)/.86 Georgia,"Noto Serif TC",serif; letter-spacing:-.06em; text-shadow:0 15px 55px rgba(0,0,0,.55); }
.nfcg-lobby-copy h1 span { color:transparent; -webkit-text-stroke:1px rgba(232,223,207,.52); font-size:.56em; letter-spacing:.01em; }
.nfcg-lead { max-width:610px; margin:28px 0; color:#aaa8a3; font-size:17px; }
.nfcg-user-chip { align-self:flex-start; margin-bottom:34px; padding:7px 13px; color:#aaa; border:1px solid rgba(255,255,255,.1); border-radius:99px; background:rgba(255,255,255,.025); font-size:12px; }
.nfcg-user-chip span { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:#73a887; box-shadow:0 0 12px #73a887; }
.nfcg-lobby-actions { width:min(580px,100%); }
.nfcg-lobby-actions > .nfcg-primary { width:100%; }
.nfcg-or { display:flex; align-items:center; gap:16px; margin:18px 0; color:#6f7277; font-size:12px; }
.nfcg-or::before,.nfcg-or::after { content:""; flex:1; height:1px; background:rgba(255,255,255,.08); }
.nfcg-code-field > span:first-child { display:block; margin-bottom:8px; color:#aaa; font-size:12px; }
.nfcg-code-row { display:grid; grid-template-columns:1fr auto; }
.nfcg-code-row input { min-width:0; height:52px; padding:0 18px; color:#f2e9d7; border:1px solid #323a47; border-right:0; border-radius:3px 0 0 3px; outline:none; background:#0a0d12; letter-spacing:.16em; text-transform:uppercase; }
.nfcg-code-row input:focus { border-color:var(--nfcg-gold); box-shadow:0 0 0 3px rgba(183,154,98,.12); }
.nfcg-code-row button { padding:0 22px; color:#e9dfce; border:1px solid #555044; border-radius:0 3px 3px 0; background:#28251f; font-weight:700; }
.nfcg-lobby-copy > .nfcg-text-button { align-self:flex-start; margin-top:25px; }

/* Waiting */
.nfcg-waiting { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:760px; padding:50px 24px; text-align:center; background:radial-gradient(circle at center,rgba(56,77,102,.24),transparent 34%); }
.nfcg-waiting h2 { margin:0 0 12px; color:#eee4d3; font:700 clamp(42px,6vw,76px)/1.05 Georgia,serif; }
.nfcg-waiting > p:not(.nfcg-eyebrow) { max-width:580px; color:#9c9b98; }
.nfcg-waiting-rings { position:relative; width:190px; height:190px; margin-bottom:22px; }
.nfcg-waiting-rings::after { content:""; position:absolute; inset:64px; border-radius:50%; background:#810f18; box-shadow:0 0 32px #91141f; }
.nfcg-waiting-rings i { position:absolute; inset:0; border:1px solid rgba(183,154,98,.4); border-radius:50%; animation:nfcg-ring 3s infinite ease-out; }
.nfcg-waiting-rings i:nth-child(2){animation-delay:-1s}.nfcg-waiting-rings i:nth-child(3){animation-delay:-2s}
@keyframes nfcg-ring { 0%{transform:scale(.15);opacity:1}100%{transform:scale(1);opacity:0} }
.nfcg-code-display { display:flex; flex-direction:column; gap:5px; min-width:min(440px,90vw); margin:26px 0 18px; padding:20px 42px; color:#e8dfcf; border:1px solid rgba(183,154,98,.46); border-radius:6px; background:rgba(3,4,6,.6); box-shadow:0 20px 50px rgba(0,0,0,.35); }
.nfcg-code-display strong { font:800 clamp(28px,5vw,48px)/1.1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.2em; }
.nfcg-code-display span { color:#777; font-size:11px; }
.nfcg-waiting-status { margin-bottom:28px; color:#8f9298; font-size:12px; }
.nfcg-waiting-status span { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:#79a88a; animation:nfcg-blink 1.4s infinite; }
.nfcg-inline-actions { display:flex; gap:10px; }
@keyframes nfcg-blink { 50%{opacity:.25} }

/* Selection */
.nfcg-selection-head { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; padding:34px clamp(22px,4vw,68px) 22px; border-bottom:1px solid rgba(255,255,255,.08); }
.nfcg-selection-head h2 { margin:0; color:#eee4d3; font:700 clamp(28px,4vw,48px)/1.05 Georgia,serif; }
.nfcg-selection-head h2 span { color:var(--nfcg-blue); }
.nfcg-faction-b .nfcg-selection-head h2 span { color:var(--nfcg-red); }
.nfcg-ready-status { display:flex; align-items:center; gap:8px; color:#999; font-size:12px; }
.nfcg-ready-status i { width:8px; height:8px; margin-left:12px; border-radius:50%; background:#555; }
.nfcg-ready-status i.ready { background:#78aa86; box-shadow:0 0 12px #78aa86; }
.nfcg-selection-intro { display:flex; justify-content:space-between; gap:30px; padding:20px clamp(22px,4vw,68px); color:#9b9b98; }
.nfcg-selection-intro p { max-width:800px; margin:0; }
.nfcg-selection-intro strong { color:#ddd1bc; white-space:nowrap; }
.nfcg-card-deal { display:grid; grid-template-columns:repeat(5,minmax(210px,1fr)); gap:14px; padding:18px clamp(18px,3vw,50px) 30px; overflow-x:auto; }
.nfcg-stage-selection.nfcg-selection-full-pool .nfcg-card-deal { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); align-items:start; overflow:visible; }
.nfcg-choice-card { position:relative; min-width:210px; aspect-ratio:105/148; overflow:hidden; color:#e8dfcf; border:1px solid rgba(183,154,98,.3); border-radius:9px; background:#11151c; box-shadow:0 18px 35px rgba(0,0,0,.36); transform:translateY(0); transition:transform .2s,border-color .2s,box-shadow .2s; animation:nfcg-deal .55s both; animation-delay:calc(var(--deal)*.06s); }
.nfcg-choice-card.is-unavailable { opacity:.48; filter:grayscale(.72) brightness(.72); }
.nfcg-choice-card.is-unavailable:hover { transform:none; }
.nfcg-teammate-picked { position:absolute; z-index:8; top:12px; left:50%; padding:6px 11px; color:#f4dfaf; border:1px solid rgba(225,188,105,.72); border-radius:999px; background:rgba(35,16,18,.92); box-shadow:0 7px 18px rgba(0,0,0,.72); font:800 10px/1 "Noto Serif TC",serif; letter-spacing:.08em; transform:translateX(-50%); pointer-events:none; }
@keyframes nfcg-deal { from{opacity:0;transform:translateY(35px) rotate(2deg)}to{opacity:1;transform:none} }
.nfcg-choice-card:hover { transform:translateY(-7px); border-color:rgba(183,154,98,.75); box-shadow:0 25px 50px rgba(0,0,0,.55); }
.nfcg-choice-card.is-selected { border:2px solid var(--nfcg-blue); box-shadow:0 0 0 3px rgba(114,185,230,.16),0 24px 55px rgba(0,0,0,.52); }
.nfcg-faction-b .nfcg-choice-card.is-selected { border-color:var(--nfcg-red); box-shadow:0 0 0 3px rgba(217,72,78,.16),0 24px 55px rgba(0,0,0,.52); }
.nfcg-card-hit { position:absolute; inset:0; z-index:6; width:100%; border:0; background:transparent; }
.nfcg-card-art { height:55%; overflow:hidden; background:#05070a; }
.nfcg-card-art::after { content:""; position:absolute; inset:0 0 39%; pointer-events:none; background:linear-gradient(180deg,transparent 58%,#11151c 100%); }
.nfcg-card-art img { width:100%; height:100%; padding:8px; object-fit:contain; object-position:center; background:radial-gradient(circle at 50% 70%,rgba(112,83,47,.28),rgba(4,6,10,.96) 70%); filter:saturate(.92) contrast(1.04); }
.nfcg-card-index { position:absolute; top:12px; left:12px; padding:3px 7px; border:1px solid rgba(255,255,255,.28); background:rgba(0,0,0,.48); font:700 10px/1 ui-monospace,monospace; }
.nfcg-card-copy { position:relative; z-index:2; height:45%; padding:8px 13px 12px; }
.nfcg-card-copy > p { margin:0 0 4px; color:var(--nfcg-gold); font-size:8px; letter-spacing:.1em; }
.nfcg-card-copy h3 { margin:0 0 8px; color:#f1e8d7; font:700 clamp(16px,1.45vw,22px)/1.1 Georgia,"Noto Serif TC",serif; }
.nfcg-card-copy dl { display:grid; grid-template-columns:30px 1fr; gap:4px 5px; margin:0; font-size:9px; line-height:1.35; }
.nfcg-card-copy dt { color:#8d7960; font-weight:700; }.nfcg-card-copy dd{margin:0;color:#a9a7a1}
.nfcg-selected-order { position:absolute; z-index:7; top:10px; right:10px; display:grid; place-items:center; width:31px; height:31px; color:#071017; border-radius:50%; background:var(--nfcg-blue); font-weight:900; box-shadow:0 4px 15px rgba(0,0,0,.5); }
.nfcg-faction-b .nfcg-selected-order { color:white; background:var(--nfcg-red); }
.nfcg-pioneer-ribbon { position:absolute; z-index:7; left:-34px; top:31px; width:130px; padding:4px; color:#171208; background:#d4b978; box-shadow:0 3px 10px #000; font-size:10px; font-weight:900; text-align:center; transform:rotate(-45deg); }
.nfcg-selection-footer { position:sticky; bottom:0; z-index:15; display:flex; align-items:end; justify-content:center; gap:16px; padding:18px clamp(22px,4vw,68px); border-top:1px solid rgba(255,255,255,.1); backdrop-filter:blur(16px); background:rgba(6,8,12,.9); }
.nfcg-pioneer-select { display:flex; flex-direction:column; gap:5px; min-width:250px; color:#999; font-size:11px; }
.nfcg-pioneer-select select { height:48px; padding:0 12px; color:#eee; border:1px solid #343b47; border-radius:3px; background:#0d1117; }

/* Game header and layout */
.nfcg-stage-game { min-height:100vh; }
.nfcg-game-head { display:grid; grid-template-columns:1fr auto minmax(220px,auto) 1fr auto; align-items:center; gap:20px; min-height:82px; padding:12px 24px; border-bottom:1px solid rgba(255,255,255,.09); background:rgba(5,7,10,.92); }
.nfcg-game-brand span { display:block; color:#e9dfce; font:700 22px/1 Georgia,serif; }.nfcg-game-brand small{color:#777;font-size:10px;letter-spacing:.14em}
.nfcg-round-meter { display:flex; align-items:baseline; gap:5px; padding:4px 16px; border-right:1px solid #2d3138; border-left:1px solid #2d3138; }
.nfcg-round-meter span { color:#777;font-size:10px}.nfcg-round-meter strong{font:800 34px/1 ui-monospace,monospace;color:#eee4d3}.nfcg-round-meter i{color:#666;font-style:normal;font-size:11px}
.nfcg-turn-call { padding:8px 18px; border:1px solid #343943; border-radius:4px; background:#11161e; text-align:center; }.nfcg-turn-call span{display:block;color:#777;font-size:9px;letter-spacing:.15em}.nfcg-turn-call strong{display:block;color:#aaa;font-size:13px}.nfcg-turn-call.is-mine{border-color:rgba(183,154,98,.55);box-shadow:inset 0 0 20px rgba(183,154,98,.08)}.nfcg-turn-call.is-mine strong{color:#ead9b7}
.nfcg-head-stats { display:flex; justify-content:flex-end; gap:20px; color:#777;font-size:10px}.nfcg-head-stats b{color:#ccc;font-weight:700}.nfcg-head-menu{display:grid;place-items:center;width:34px;height:34px;color:#aaa;border:1px solid #363b42;border-radius:50%;background:transparent;font-weight:800}
.nfcg-game-layout { display:grid; grid-template-columns:240px minmax(650px,1fr) 270px; gap:14px; padding:14px; }
.nfcg-roster-panel,.nfcg-log-panel { min-width:0; padding:14px; border:1px solid rgba(255,255,255,.08); border-radius:6px; background:rgba(10,13,18,.88); box-shadow:0 14px 40px rgba(0,0,0,.25); }
.nfcg-roster-panel h3,.nfcg-log-head h3 { margin:2px 0 10px;color:#a8a49b;font-size:10px;letter-spacing:.15em;text-transform:uppercase}.nfcg-roster-panel h3:not(:first-child){margin-top:22px;padding-top:16px;border-top:1px solid #252a32}
.nfcg-mini-roster { display:flex;flex-direction:column;gap:8px }.nfcg-mini-card{display:grid;grid-template-columns:43px 1fr;gap:9px;align-items:center;min-height:54px;padding:6px;border:1px solid #292f38;border-radius:4px;background:#11161d;overflow:hidden}.nfcg-mini-card img{width:43px;height:43px;border-radius:3px;object-fit:cover;object-position:50% 25%;filter:saturate(.7)}.nfcg-mini-card span{display:block;color:#ddd4c4;font-size:11px;font-weight:700}.nfcg-mini-card small{display:block;color:#6f737a;font-size:9px}.nfcg-mini-card em{display:block;margin-top:2px;color:#b9a071;font-size:8px;font-style:normal}.nfcg-mini-card.is-current{border-color:var(--nfcg-blue);box-shadow:0 0 18px rgba(114,185,230,.12)}.nfcg-faction-b .nfcg-roster-mine .nfcg-mini-card.is-current{border-color:var(--nfcg-red);box-shadow:0 0 18px rgba(217,72,78,.12)}.nfcg-mini-card.is-captured{opacity:.42;filter:grayscale(1)}.nfcg-mini-card.is-unknown{grid-template-columns:43px 1fr;color:#777}.nfcg-mini-card.is-unknown>div{display:grid;place-items:center;width:43px;height:43px;border-radius:3px;background:repeating-linear-gradient(135deg,#1d222a 0 4px,#10141a 4px 8px);font:700 24px Georgia}.nfcg-mini-card.has-intel{align-items:start}.nfcg-mini-card.has-intel img{margin-top:2px}.nfcg-intel-copy{margin:5px 0 0;color:#7f8287;font-size:8px;line-height:1.45}.nfcg-intel-copy b{margin-right:3px;color:#a88f62}.nfcg-empty-roster{color:#666;font-size:11px}
.nfcg-board-column { min-width:0; }
.nfcg-board-wrap { position:relative; overflow:auto; border:1px solid #323842; border-radius:7px; box-shadow:0 28px 70px rgba(0,0,0,.5); background:#05070a; }
.nfcg-board { position:relative; width:100%; min-width:650px; aspect-ratio:16/10; overflow:hidden; background-size:cover; background-position:center; }
.nfcg-board::before { content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 100px 30px #030407,inset 0 0 0 1px rgba(255,255,255,.06); }
.nfcg-paths { position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none; }.nfcg-paths line{stroke:rgba(224,214,191,.26);stroke-width:.48;stroke-dasharray:1.2 1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #000)}
.nfcg-node { position:absolute;z-index:4;display:grid;place-items:center;width:22px;height:22px;padding:0;color:#111;border:1px solid rgba(255,255,255,.5);border-radius:50%;box-shadow:0 2px 7px #000,0 0 0 2px rgba(0,0,0,.42);transform:translate(-50%,-50%);transition:transform .15s,box-shadow .15s; }
.nfcg-node>span{font:800 7px/1 ui-monospace,monospace}.nfcg-node:hover{z-index:8;transform:translate(-50%,-50%) scale(1.38)}
.terrain-normal{color:#e6d8b7;background:#342a2c;border-color:#8b744e}
.nfcg-node.is-candidate{box-shadow:0 0 0 4px rgba(255,255,255,.2),0 0 22px #fff;animation:nfcg-candidate .8s infinite alternate}.nfcg-node.is-planned{color:#06121a;background:var(--nfcg-blue);box-shadow:0 0 0 4px rgba(114,185,230,.22),0 0 20px var(--nfcg-blue)}.nfcg-faction-b .nfcg-node.is-planned{color:#fff;background:var(--nfcg-red);box-shadow:0 0 0 4px rgba(217,72,78,.22),0 0 20px var(--nfcg-red)}.nfcg-node.is-targetable{cursor:crosshair;box-shadow:0 0 0 3px rgba(217,72,78,.16)}
.nfcg-node.is-dimension-valid{background:radial-gradient(circle,rgba(255,244,167,.92) 0,rgba(211,155,34,.58) 45%,rgba(62,34,5,.38) 100%);box-shadow:0 0 0 4px rgba(255,220,104,.9),0 0 30px 10px rgba(255,185,43,.72);animation:nfcg-dimension-guide 1s ease-in-out infinite alternate}.nfcg-node.is-dimension-invalid{background:radial-gradient(circle,rgba(173,28,35,.8),rgba(44,2,11,.72));box-shadow:0 0 0 4px rgba(255,63,76,.78),0 0 24px 7px rgba(143,0,25,.6)}@keyframes nfcg-dimension-guide{to{filter:brightness(1.25);box-shadow:0 0 0 5px rgba(255,235,154,.96),0 0 40px 13px rgba(255,179,31,.88)}}
.nfcg-footprint-fallback{position:absolute;left:50%;top:50%;z-index:49;width:76%;height:76%;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%) rotate(-5deg);filter:brightness(1.55) contrast(1.12) saturate(1.25) drop-shadow(0 3px 3px rgba(0,0,0,.9)) drop-shadow(0 0 8px rgba(226,95,74,.88));animation:nfcg-footprint-breathe 1.35s ease-in-out infinite alternate}@keyframes nfcg-footprint-breathe{0%{opacity:.78;transform:translate(-50%,-50%) rotate(-7deg) scale(.92)}100%{opacity:1;transform:translate(-50%,-50%) rotate(-3deg) scale(1.05);filter:brightness(1.8) contrast(1.16) saturate(1.32) drop-shadow(0 3px 3px rgba(0,0,0,.9)) drop-shadow(0 0 13px rgba(235,77,73,.98))}}
.nfcg-stage-game .nfcg-chat-strip{display:none!important}.nfcg-stage-game .nfcg-game-layout{grid-template-columns:clamp(180px,12vw,225px) minmax(0,1fr) clamp(195px,13vw,245px);gap:7px;padding:7px}.nfcg-stage-game .nfcg-board-toolbar{flex-basis:36px}.nfcg-stage-game .nfcg-pixi-board-wrap{padding:5px 6px 7px}
@keyframes nfcg-candidate{to{filter:brightness(1.6)}}
.nfcg-box-icon{position:absolute;left:16px;top:-10px;color:#e4bd63;text-shadow:0 2px 4px #000;font-size:15px}.nfcg-node.box-destroyed .nfcg-box-icon{color:#804146}.nfcg-node.box-opened .nfcg-box-icon{color:#777}
.nfcg-node.has-signal{z-index:19;box-shadow:0 0 0 7px rgba(217,72,78,.24),0 0 30px #d9484e}.nfcg-signal-pulse{position:absolute;inset:-12px;border:2px solid #e94e55;border-radius:50%;animation:nfcg-signal 1s infinite}.nfcg-node.signal-footstep .nfcg-signal-pulse{border-color:#e6c068}
@keyframes nfcg-signal{from{transform:scale(.3);opacity:1}to{transform:scale(1.8);opacity:0}}
.nfcg-token { position:absolute;z-index:20;width:52px;height:52px;transform:translate(calc(-50% + var(--stack)*7px),calc(-86% + var(--stack)*5px));filter:drop-shadow(0 9px 5px rgba(0,0,0,.75));transition:left .8s cubic-bezier(.2,.8,.2,1),top .8s cubic-bezier(.2,.8,.2,1);pointer-events:none}.nfcg-token img{width:100%;height:100%;border:3px solid var(--nfcg-blue);border-radius:50%;object-fit:cover;object-position:50% 22%;background:#111}.nfcg-token.token-b img{border-color:var(--nfcg-red)}.nfcg-token>i{position:absolute;left:50%;bottom:-12px;width:18px;height:12px;border-radius:50%;background:#0b1017;transform:translateX(-50%);box-shadow:0 2px 0 #5890af}.nfcg-token.token-b>i{box-shadow:0 2px 0 #9f3439}.nfcg-token-name{position:absolute;left:50%;bottom:56px;padding:3px 7px;color:var(--nfcg-blue);border:1px solid rgba(114,185,230,.5);border-radius:2px;background:rgba(2,5,8,.9);font-size:8px;font-weight:800;white-space:nowrap;transform:translateX(-50%)}.nfcg-token.token-b .nfcg-token-name{color:var(--nfcg-red);border-color:rgba(217,72,78,.5)}.nfcg-token.is-active{animation:nfcg-token-active .9s infinite alternate}.nfcg-token.is-active img{box-shadow:0 0 24px currentColor}
.nfcg-control-arrow{position:absolute;z-index:4;right:-13px;top:-22px;display:grid;place-items:center;width:24px;height:24px;color:#160e05;border:1px solid #fff0bd;border-radius:50%;background:#e6bd5f;box-shadow:0 0 0 3px rgba(230,189,95,.18),0 0 18px #e5b74d;text-shadow:none;font:900 12px/1 sans-serif;animation:nfcg-control-arrow .7s ease-in-out infinite alternate}
@keyframes nfcg-control-arrow{to{transform:translateY(6px)}}
@keyframes nfcg-token-active{to{transform:translate(calc(-50% + var(--stack)*7px),calc(-92% + var(--stack)*5px)) scale(1.08)}}
.nfcg-token.is-capture-ghost{z-index:25;pointer-events:none;animation:nfcg-captured-token 1.25s cubic-bezier(.55,.02,.55,1) both}.nfcg-token.is-capture-ghost img{border-color:#e5d7c2;box-shadow:0 0 25px #b31220}
@keyframes nfcg-captured-token{0%{opacity:1;transform:translate(-50%,-86%)}8%{transform:translate(calc(-50% - 9px),-86%) rotate(-5deg)}16%{transform:translate(calc(-50% + 10px),-86%) rotate(6deg)}24%{transform:translate(calc(-50% - 7px),-86%) rotate(-4deg)}34%{transform:translate(calc(-50% + 5px),-86%) rotate(3deg)}45%{opacity:1;filter:drop-shadow(0 0 30px #a10f19)}100%{left:50%;top:6%;opacity:0;transform:translate(-50%,-50%) scale(.05) rotate(540deg);filter:blur(3px)}}
.nfcg-vortex{position:absolute;z-index:6;top:2%;left:50%;width:100px;height:76px;transform:translateX(-50%);pointer-events:none}.nfcg-vortex>span{position:absolute;left:22px;top:4px;width:56px;height:56px;border-radius:50%;background:repeating-radial-gradient(circle at center,#000 0 6px,#301038 8px,#06070a 13px);box-shadow:0 0 25px #502259;animation:nfcg-vortex 4s linear infinite}.nfcg-vortex>div{position:absolute;display:flex;left:50%;top:10px;transform:translateX(-50%)}.nfcg-vortex img{width:28px;height:38px;margin-left:-8px;border:1px solid #6d4674;border-radius:2px;object-fit:cover;animation:nfcg-swallow .65s both}.nfcg-vortex small{position:absolute;top:61px;width:100%;color:#907394;font-size:7px;text-align:center;letter-spacing:.14em}
@keyframes nfcg-vortex{to{transform:rotate(360deg)}}@keyframes nfcg-swallow{from{transform:translateY(80px) scale(1.5);opacity:0}to{transform:none;opacity:.8}}
.nfcg-darkness{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 0 25%,rgba(0,3,9,.5) 72%,rgba(0,0,3,.82));animation:nfcg-darken 2s both}.nfcg-darkness span{position:absolute;left:50%;top:50%;padding:8px 15px;color:rgba(216,213,205,.72);border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.6);font:700 11px Georgia;letter-spacing:.15em;transform:translate(-50%,-50%);animation:nfcg-fade-label 4s both}
@keyframes nfcg-darken{from{opacity:0}to{opacity:1}}@keyframes nfcg-fade-label{0%,50%{opacity:1}100%{opacity:0}}
.nfcg-log-panel{overflow:hidden}.nfcg-log-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #242a32}.nfcg-log-head span{color:#668873;font-size:8px}.nfcg-log-panel ol{display:flex;flex-direction:column;gap:0;max-height:540px;margin:0;padding:0;overflow:auto;list-style:none}.nfcg-log-panel li{display:grid;grid-template-columns:27px 1fr;gap:7px;padding:10px 2px;color:#999;border-bottom:1px solid rgba(255,255,255,.055);font-size:9px}.nfcg-log-panel time{color:#b49762;font:700 8px ui-monospace,monospace}.nfcg-log-capture span,.nfcg-log-victory span{color:#e06e73}.nfcg-log-toybox span,.nfcg-log-item span{color:#c9ad73}.nfcg-log-terrain span{color:#aeb4bd}

/* Action dock and planner */
.nfcg-action-dock { position:sticky;z-index:30;bottom:0;display:flex;align-items:stretch;justify-content:center;gap:8px;min-height:92px;padding:10px 22px;border-top:1px solid rgba(183,154,98,.33);backdrop-filter:blur(18px);background:rgba(5,7,10,.94);box-shadow:0 -20px 55px rgba(0,0,0,.35)}
.nfcg-action-title{display:flex;flex-direction:column;justify-content:center;min-width:170px;padding-right:20px;border-right:1px solid #292e35}.nfcg-action-title span{color:var(--nfcg-gold);font-size:8px;letter-spacing:.2em}.nfcg-action-title strong{color:#ddd3c2;font:700 17px Georgia,serif}
.nfcg-action-dock>button{display:grid;grid-template-columns:34px minmax(70px,auto);grid-template-rows:auto auto;align-content:center;min-width:145px;padding:10px 16px;color:#ddd4c5;border:1px solid #343a43;border-radius:4px;background:#11161d;text-align:left;transition:.18s}.nfcg-action-dock>button:hover{border-color:var(--nfcg-blue);transform:translateY(-3px);background:#151d26}.nfcg-action-dock.faction-b>button:hover{border-color:var(--nfcg-red)}.nfcg-action-dock>button i{grid-row:1/3;align-self:center;color:var(--nfcg-blue);font:normal 25px/1 Georgia}.nfcg-action-dock.faction-b>button i{color:var(--nfcg-red)}.nfcg-action-dock>button strong{font-size:12px}.nfcg-action-dock>button span{color:#6f7379;font-size:8px}.nfcg-action-dock>button.nfcg-action-danger{border-color:rgba(217,72,78,.43);background:rgba(70,15,20,.32)}
.nfcg-action-dock.is-waiting{align-items:center;color:#888}.nfcg-action-dock.is-waiting strong{display:block;color:#bbb;font:700 15px Georgia}.nfcg-action-dock.is-waiting span{font-size:9px}.nfcg-waiting-eye{position:relative;width:60px;height:34px;margin-right:8px;overflow:hidden;border:1px solid #4a3f40;border-radius:70% 10%;transform:rotate(45deg)}.nfcg-waiting-eye i{position:absolute;left:18px;top:6px;width:20px;height:20px;border-radius:50%;background:#8c2027;box-shadow:0 0 15px #9d262e;animation:nfcg-eye-look 2.4s infinite}.nfcg-waiting-eye i::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#09090b}
@keyframes nfcg-eye-look{0%,100%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
.nfcg-forfeit-corner{position:absolute;right:18px;bottom:106px;z-index:12;padding:4px 8px;color:#705e61;border:0;background:transparent;font-size:8px}
.nfcg-move-planner{position:fixed;z-index:80;right:22px;bottom:110px;width:min(420px,calc(100vw - 30px));padding:16px;color:#ddd4c5;border:1px solid rgba(183,154,98,.55);border-radius:6px;background:rgba(8,11,16,.97);box-shadow:0 24px 70px rgba(0,0,0,.65);backdrop-filter:blur(18px)}
.nfcg-planner-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.nfcg-planner-head span{display:block;color:#777;font-size:8px;letter-spacing:.14em}.nfcg-planner-head strong{font-size:13px}.nfcg-planner-head>button{width:28px;height:28px;color:#999;border:1px solid #3a4049;border-radius:50%;background:transparent}
.nfcg-direction-pad{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.nfcg-direction-pad>button{display:flex;align-items:center;gap:9px;padding:9px;color:#bbb;border:1px solid #303741;border-radius:3px;background:#121820}.nfcg-direction-pad>button:hover{border-color:var(--nfcg-blue)}.nfcg-direction-pad i{display:grid;place-items:center;width:27px;height:27px;color:#111;border-radius:50%;background:#9fc4d7;font-style:normal;font-weight:900}.nfcg-direction-pad span{font-size:10px}.nfcg-planner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.nfcg-move-planner>small{display:block;margin-top:8px;color:#6d7076;font-size:8px}

/* Heart, modal, toast, finished */
.nfcg-heartbeat{position:fixed;z-index:65;left:50%;top:90px;display:flex;align-items:center;gap:9px;padding:7px 13px;color:#d96a70;border:1px solid rgba(217,72,78,.4);border-radius:99px;background:rgba(25,4,7,.86);box-shadow:0 5px 30px rgba(0,0,0,.45);transform:translateX(-50%);pointer-events:none}.nfcg-heartbeat i{font-style:normal;animation:nfcg-heart .72s infinite}.nfcg-heartbeat span{font-size:9px}.nfcg-heart-1 i{font-size:17px}.nfcg-heart-2 i{font-size:27px}.nfcg-heart-3 i{font-size:40px;text-shadow:0 0 18px #d9484e}
@keyframes nfcg-heart{0%,100%{transform:scale(.86)}35%{transform:scale(1.18)}}
.nfcg-modal{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:18px}.nfcg-modal-backdrop{position:absolute;inset:0;background:rgba(1,2,4,.84);backdrop-filter:blur(8px)}.nfcg-modal-panel{position:relative;width:min(1000px,96vw);max-height:90vh;padding:clamp(22px,4vw,48px);overflow:auto;color:#dcd3c4;border:1px solid #4a443a;border-radius:8px;background:linear-gradient(145deg,#141a23,#090c11);box-shadow:0 35px 100px #000;animation:nfcg-modal-in .25s both}.nfcg-modal-close{position:absolute;right:15px;top:15px;z-index:3;width:35px;height:35px;color:#999;border:1px solid #3d424a;border-radius:50%;background:#0b0e13;font-size:20px}.nfcg-modal-panel h2{margin:0 0 24px;color:#eee4d3;font:700 clamp(28px,4vw,46px) Georgia,serif}
@keyframes nfcg-modal-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.nfcg-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.nfcg-rule-grid article{padding:18px;border:1px solid #2c333d;border-radius:4px;background:#10151c}.nfcg-rule-grid b{color:#725d3f;font:700 30px Georgia}.nfcg-rule-grid h3{margin:5px 0;color:#dcd1bd;font:700 18px Georgia}.nfcg-rule-grid p{margin:0;color:#898b8e;font-size:11px}
.nfcg-item-modal{text-align:center}.nfcg-item-fan{display:flex;justify-content:center;align-items:center;min-height:340px;margin:10px 0 0;padding:35px 80px;overflow:auto}.nfcg-item-fan button{flex:0 0 190px;min-height:280px;margin-left:-55px;padding:24px 16px;color:#e4dac9;border:1px solid #826a46;border-radius:9px;background:linear-gradient(160deg,#222b35,#0d1117 70%);box-shadow:-8px 14px 25px rgba(0,0,0,.45);transform:rotate(calc((var(--i) - (var(--count) - 1)/2)*5deg)) translateY(calc(abs(var(--i) - (var(--count) - 1)/2)*8px));transition:.2s}.nfcg-item-fan button:first-child{margin-left:0}.nfcg-item-fan button:hover{z-index:3;transform:translateY(-25px) rotate(0);border-color:#d2b97c}.nfcg-item-fan i{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 25px;border:1px solid #6c5b43;border-radius:50%;background:#151b22;color:#d6bc7e;font:normal 38px Georgia}.nfcg-item-fan strong{display:block;font:700 18px Georgia}.nfcg-item-fan span{display:block;margin-top:12px;color:#8d9092;font-size:10px}.nfcg-item-modal>p:last-child{color:#73767b;font-size:10px}
.nfcg-toast{position:fixed;z-index:150;left:50%;top:25px;max-width:min(520px,90vw);padding:11px 18px;color:#ddd;border:1px solid #4b515a;border-radius:4px;background:rgba(11,15,21,.94);box-shadow:0 16px 45px rgba(0,0,0,.55);font-size:12px;opacity:0;pointer-events:none;transform:translate(-50%,-18px);transition:.25s}.nfcg-toast.is-visible{opacity:1;transform:translate(-50%,0)}.nfcg-toast.toast-danger{color:#f1c9ca;border-color:#8b3036;background:rgba(55,10,15,.95)}.nfcg-toast.toast-success{color:#d3e8d9;border-color:#386c49;background:rgba(8,37,19,.95)}
.nfcg-stage-finished{box-sizing:border-box;display:grid;place-items:center;min-height:100dvh;padding:clamp(10px,2vw,28px);text-align:left;border:0;background:#020204;overflow:hidden}.nfcg-finished{position:relative;isolation:isolate;display:grid;align-items:end;width:min(1600px,100%);min-height:min(920px,calc(100dvh - clamp(20px,4vw,56px)));overflow:hidden;border:1px solid rgba(213,173,95,.48);border-radius:26px 5px 26px 5px;background:#06070a;box-shadow:0 42px 130px #000,inset 0 0 0 3px rgba(45,24,18,.9)}
.nfcg-finished::before{content:"";position:absolute;z-index:2;inset:11px;border:1px solid rgba(238,200,124,.26);border-radius:20px 3px 20px 3px;pointer-events:none}.nfcg-finish-art{position:absolute;z-index:0;inset:0;margin:0;overflow:hidden;background:#050609}.nfcg-finish-art img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(.92) contrast(1.05);animation:nfcg-finish-art-in 6s cubic-bezier(.2,.7,.2,1) both}.nfcg-finished::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(2,3,5,.97) 0%,rgba(3,4,7,.86) 25%,rgba(3,4,7,.34) 53%,rgba(2,3,5,.05) 76%),linear-gradient(0deg,rgba(2,3,5,.86),transparent 48%);pointer-events:none}.nfcg-finish-b .nfcg-finished::after{background:linear-gradient(90deg,rgba(4,2,4,.98) 0%,rgba(8,3,6,.88) 28%,rgba(8,3,6,.3) 55%,rgba(3,1,3,.04) 78%),linear-gradient(0deg,rgba(4,1,3,.9),transparent 52%)}
.nfcg-finish-copy{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;width:min(610px,54%);padding:clamp(34px,6vw,94px);text-shadow:0 3px 24px #000}.nfcg-finish-symbol{display:grid;place-items:center;width:94px;height:94px;margin-bottom:24px;color:#ead18b;border:1px solid rgba(232,204,134,.68);border-radius:50%;background:radial-gradient(circle,rgba(87,112,124,.5),rgba(7,10,13,.92) 68%);box-shadow:0 0 64px rgba(198,230,224,.22),inset 0 0 24px rgba(255,255,255,.09);font:800 46px Georgia;animation:nfcg-finish-symbol 3s ease-in-out infinite alternate}.nfcg-finish-b .nfcg-finish-symbol{color:#df666d;border-color:rgba(175,53,62,.72);background:radial-gradient(circle,rgba(103,20,31,.52),rgba(10,4,7,.94) 68%);box-shadow:0 0 70px rgba(184,32,44,.28),inset 0 0 24px rgba(255,102,113,.08)}
@keyframes nfcg-finish-art-in{from{opacity:.2;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}@keyframes nfcg-finish-symbol{to{transform:translateY(-4px) scale(1.035);filter:brightness(1.1)}}
.nfcg-finish-copy h2{max-width:640px;margin:0 0 12px;color:#f4e9d5;font:700 clamp(42px,4.4vw,78px)/1.02 Georgia,"Noto Serif TC",serif;letter-spacing:-.035em;white-space:nowrap}.nfcg-finish-copy>strong{color:#d4bb7d;font-size:14px;letter-spacing:.12em}.nfcg-finish-b .nfcg-finish-copy>strong{color:#dc8589}.nfcg-finish-copy>p:not(.nfcg-eyebrow){max-width:520px;margin:16px 0 0;color:#b6b3ad;font-size:13px;line-height:1.75}.nfcg-finish-stats{display:flex;gap:38px;margin:28px 0 30px;color:#95918a;font-size:10px;letter-spacing:.08em}.nfcg-finish-stats b{display:block;margin-top:3px;color:#eee0c7;font:700 30px Georgia}.nfcg-finish-actions{display:flex;flex-wrap:wrap;gap:10px}.nfcg-finish-actions .nfcg-primary,.nfcg-finish-actions .nfcg-secondary{min-height:46px}
.nfcg-app.is-busy::after{content:"夢境正在回應……";position:fixed;z-index:200;inset:0;display:grid;place-items:center;color:#d5c4a3;background:rgba(2,3,5,.55);backdrop-filter:blur(2px);font:700 14px Georgia;letter-spacing:.12em}
.nfcg-capture-flash::after{content:"";position:fixed;z-index:190;inset:0;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.8),rgba(125,0,12,.8) 28%,transparent 70%);animation:nfcg-capture-flash .75s both}
@keyframes nfcg-capture-flash{0%{opacity:0}15%{opacity:1;transform:translateX(-7px)}25%{transform:translateX(8px)}35%{transform:translateX(-5px)}100%{opacity:0;transform:none}}
.nfcg-capture-board-fx{position:absolute;z-index:46;inset:4px;overflow:hidden;border-radius:inherit;pointer-events:none;isolation:isolate;mix-blend-mode:screen}
.nfcg-capture-board-fx::before{content:"";position:absolute;inset:-18%;background:radial-gradient(ellipse at var(--capture-x) var(--capture-y),rgba(255,178,154,.38) 0 1.5%,rgba(172,19,31,.3) 5%,rgba(87,2,12,.18) 15%,transparent 38%),conic-gradient(from 15deg at var(--capture-x) var(--capture-y),transparent,rgba(159,8,25,.12),transparent 17%,rgba(94,0,17,.2),transparent 36%,rgba(209,26,33,.12),transparent 63%);filter:blur(7px) saturate(1.28);animation:nfcg-capture-mist 1.75s cubic-bezier(.18,.7,.22,1) both}
.nfcg-capture-board-fx::after{content:"";position:absolute;left:var(--capture-x);top:var(--capture-y);width:clamp(86px,11vw,156px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,224,198,.65) 0 2%,rgba(233,42,38,.42) 5%,rgba(121,2,18,.3) 18%,transparent 59%);box-shadow:0 0 18px rgba(255,89,70,.72),0 0 55px rgba(196,10,29,.58),0 0 110px rgba(91,0,19,.42);filter:blur(.4px);transform:translate(-50%,-50%);animation:nfcg-capture-core 1.75s ease-out both}
.nfcg-capture-board-fx>i{position:absolute;left:var(--capture-x);top:var(--capture-y);width:clamp(9px,1.05vw,18px);height:clamp(18px,2.5vw,40px);border-radius:50% 50% 46% 54%;background:radial-gradient(ellipse at 45% 28%,rgba(255,229,211,.94),rgba(247,69,61,.72) 18%,rgba(147,5,26,.6) 45%,rgba(38,0,11,0) 76%);box-shadow:0 0 12px rgba(255,86,64,.85),0 0 28px rgba(164,7,28,.64);filter:blur(.55px);opacity:0;transform-origin:center;animation:nfcg-capture-converge 1.52s var(--capture-delay) cubic-bezier(.16,.76,.25,1) both}
.nfcg-pixi-host.is-capture-quake{animation:nfcg-capture-quake .74s cubic-bezier(.36,.07,.19,.97) both}
@keyframes nfcg-capture-converge{0%{opacity:0;transform:translate(var(--capture-dx),var(--capture-dy)) rotate(12deg) scale(.2)}14%{opacity:.82}72%{opacity:.96}100%{opacity:0;transform:translate(-50%,-50%) rotate(165deg) scale(var(--capture-scale))}}
@keyframes nfcg-capture-mist{0%{opacity:0;transform:scale(1.14)}18%{opacity:.4}68%{opacity:.94;transform:scale(.92)}100%{opacity:0;transform:scale(.7)}}
@keyframes nfcg-capture-core{0%{opacity:0;transform:translate(-50%,-50%) scale(.18)}55%{opacity:.92;transform:translate(-50%,-50%) scale(.78)}78%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:0;transform:translate(-50%,-50%) scale(.38)}}
@keyframes nfcg-capture-quake{0%,100%{translate:0 0}12%{translate:-7px 2px}24%{translate:6px -3px}36%{translate:-5px 4px}48%{translate:4px -2px}62%{translate:-3px 2px}78%{translate:2px -1px}}
.nfcg-reduced-motion .nfcg-capture-board-fx>i{display:none}.nfcg-reduced-motion .nfcg-capture-board-fx::before,.nfcg-reduced-motion .nfcg-capture-board-fx::after{animation-duration:1.15s}.nfcg-reduced-motion .nfcg-pixi-host.is-capture-quake{animation:none}
.nfcg-hide-flash::before{content:"";position:fixed;z-index:189;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 0 5%,rgba(0,3,8,.95) 65%);animation:nfcg-hide-flash 1.1s both}
@keyframes nfcg-hide-flash{0%{opacity:0;transform:scale(1.35)}42%{opacity:1;transform:scale(1)}100%{opacity:0}}
.nfcg-noscript{padding:20px;color:#822;background:#fee}

/* Fallback for browsers that do not yet support CSS abs(). */
.nfcg-item-fan button{transform:rotate(calc((var(--i) - (var(--count) - 1)/2)*5deg));transform-origin:50% 115%}

/* Responsive */
@media (max-width:1180px){
  .nfcg-game-layout{grid-template-columns:210px minmax(620px,1fr)}
  .nfcg-log-panel{grid-column:1/-1}.nfcg-log-panel ol{display:grid;grid-template-columns:repeat(2,1fr);max-height:180px}
  .nfcg-game-head{grid-template-columns:1fr auto minmax(190px,auto) auto}.nfcg-head-stats{display:none}
  .nfcg-action-dock>button{min-width:125px;padding:8px 11px}
}

@media (max-width:900px){
  .nfcg-app{min-height:700px}
  .nfcg-lobby{grid-template-columns:1fr;min-height:760px}.nfcg-lobby-art{position:absolute;inset:0;border:0;opacity:.38}.nfcg-lobby-copy{position:relative;z-index:4;justify-content:flex-end;padding:55px 25px 70px;background:linear-gradient(180deg,rgba(4,5,8,.05),rgba(4,5,8,.93) 55%)}.nfcg-lobby-copy h1{font-size:clamp(54px,15vw,90px)}.nfcg-moon{width:230px;height:230px}.nfcg-cat-shadow{right:8%;bottom:22%;transform:scale(.75)}
  .nfcg-selection-head{align-items:flex-start;flex-direction:column}.nfcg-ready-status{flex-wrap:wrap}.nfcg-selection-intro{flex-direction:column}.nfcg-card-deal{grid-template-columns:repeat(5,230px);scroll-snap-type:x mandatory}.nfcg-choice-card{scroll-snap-align:center}.nfcg-selection-footer{flex-wrap:wrap}.nfcg-pioneer-select{width:100%}
  .nfcg-game-head{grid-template-columns:1fr auto auto;gap:9px;padding:10px 12px}.nfcg-game-brand small{display:none}.nfcg-round-meter{padding:3px 9px}.nfcg-round-meter strong{font-size:27px}.nfcg-turn-call{grid-column:1/-1;grid-row:2;padding:5px}.nfcg-head-menu{grid-column:3;grid-row:1}.nfcg-game-layout{display:flex;flex-direction:column;padding:8px}.nfcg-roster-panel{order:2}.nfcg-board-column{order:1}.nfcg-log-panel{order:3}.nfcg-roster-panel h3:not(:first-child){margin-top:12px}.nfcg-mini-roster{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));overflow:auto}.nfcg-action-dock{justify-content:flex-start;min-height:80px;padding:8px;overflow-x:auto}.nfcg-action-title{position:sticky;left:0;z-index:2;min-width:120px;padding:0 10px;background:#06080b}.nfcg-action-dock>button{min-width:130px}.nfcg-log-panel ol{grid-template-columns:1fr}.nfcg-forfeit-corner{display:none}
  .nfcg-rule-grid{grid-template-columns:repeat(2,1fr)}.nfcg-item-fan{justify-content:flex-start;padding:30px 40px}.nfcg-move-planner{right:15px;bottom:94px}
}

@media (max-width:560px){
  .nfcg-lobby-copy{padding-bottom:42px}.nfcg-lead{font-size:14px}.nfcg-code-row{grid-template-columns:1fr}.nfcg-code-row input{border-right:1px solid #323a47;border-radius:3px 3px 0 0}.nfcg-code-row button{height:46px;border-radius:0 0 3px 3px}.nfcg-code-display{min-width:92vw;padding:18px}.nfcg-code-display strong{font-size:31px;letter-spacing:.13em}.nfcg-inline-actions{width:100%;flex-direction:column}.nfcg-inline-actions>*{width:100%}
  .nfcg-selection-head{padding:25px 18px 18px}.nfcg-selection-intro{padding:15px 18px}.nfcg-card-deal{grid-template-columns:repeat(5,78vw);padding-inline:11vw}.nfcg-selection-footer{align-items:stretch;flex-direction:column}.nfcg-selection-footer>*{width:100%}
  .nfcg-game-brand span{font-size:16px}.nfcg-round-meter span,.nfcg-round-meter i{display:none}.nfcg-mini-roster{grid-template-columns:repeat(3,190px)}.nfcg-board{min-width:700px}.nfcg-board-wrap::after{content:"可左右滑動查看完整地圖";position:sticky;left:10px;bottom:8px;z-index:20;padding:4px 7px;color:#aaa;border-radius:99px;background:rgba(0,0,0,.7);font-size:8px}.nfcg-action-title{display:none}.nfcg-action-dock>button{min-width:122px;grid-template-columns:29px minmax(65px,auto)}.nfcg-direction-pad{grid-template-columns:1fr}.nfcg-move-planner{left:10px;right:10px;bottom:88px;width:auto}.nfcg-heartbeat{top:102px}.nfcg-rule-grid{grid-template-columns:1fr}.nfcg-modal-panel{padding:25px 16px}.nfcg-item-fan{min-height:310px;padding-inline:15px}.nfcg-item-fan button{flex-basis:175px;margin-left:-35px}.nfcg-finish-stats{gap:20px}
}

/* 2.6.0 — full-viewport nightmare theatre and procedural 9x9 terrain. */
.nfcg-app{width:100vw;max-width:none;min-height:100dvh;margin-left:calc(50% - 50vw);border:0;background:radial-gradient(circle at 18% 12%,rgba(103,24,49,.24),transparent 29%),radial-gradient(circle at 82% 70%,rgba(62,35,91,.2),transparent 32%),linear-gradient(145deg,#090508,#160b10 46%,#030305)}
.nfcg-stage-lobby,.nfcg-stage-waiting,.nfcg-stage-selection{min-height:100dvh}
.nfcg-stage-lobby{display:grid;place-items:center;padding:clamp(12px,2.2vw,34px)}
.nfcg-stage-lobby .nfcg-lobby{width:min(1640px,calc(100vw - 44px));min-height:min(900px,calc(100dvh - 54px));grid-template-columns:minmax(460px,1.08fr) minmax(520px,.92fr);border-color:#80603a;background:#080608;box-shadow:0 45px 120px #000,inset 0 0 0 4px #1d0e0b}
.nfcg-lobby-art{position:relative;margin:0;isolation:isolate;border-right:2px solid #6f4e2d;background:#070407;transform:none}
.nfcg-lobby-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;filter:saturate(.82) contrast(1.13) brightness(.72)}
.nfcg-lobby-art::before{content:"";position:absolute;z-index:2;inset:0;width:auto;height:auto;border-radius:0;background:linear-gradient(90deg,rgba(5,2,4,.03) 48%,rgba(8,4,6,.72)),linear-gradient(180deg,rgba(3,2,4,.05) 52%,rgba(3,2,4,.88));transform:none;pointer-events:none}
.nfcg-lobby-art::after{content:"";position:absolute;z-index:3;left:13px;right:13px;top:13px;bottom:13px;width:auto;height:auto;border:1px solid rgba(222,180,93,.42);border-radius:20px 3px 22px 3px;background:none;transform:none;filter:none;pointer-events:none}
.nfcg-lobby-art figcaption{position:absolute;z-index:4;left:clamp(25px,4vw,62px);right:34px;bottom:clamp(26px,5vh,66px);padding-left:18px;border-left:3px solid #a23545;text-shadow:0 3px 18px #000}
.nfcg-lobby-art figcaption span{display:block;color:#d5ad61;font:800 9px/1.4 ui-monospace,monospace;letter-spacing:.3em}
.nfcg-lobby-art figcaption strong{display:block;margin-top:7px;color:#f2e2c2;font:700 clamp(18px,2vw,30px)/1.25 Georgia,"Noto Serif TC",serif}
.nfcg-lobby-copy{background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 7px),radial-gradient(circle at 72% 5%,rgba(125,37,61,.2),transparent 31%),linear-gradient(135deg,#211016,#09070a 70%)}
.nfcg-lobby-copy h1{font-size:clamp(58px,6.5vw,104px)}
.nfcg-stage-waiting{display:grid;place-items:center;padding:clamp(18px,4vw,54px);background:radial-gradient(circle at 50% 35%,rgba(100,20,42,.24),transparent 40%),linear-gradient(#12090e,#030304)}
.nfcg-stage-waiting .nfcg-waiting{width:min(1080px,94vw);min-height:min(820px,calc(100dvh - 50px));justify-content:center;padding:clamp(22px,4vw,58px);border:3px ridge #9c733b;border-radius:28px 5px 28px 5px;background:linear-gradient(155deg,rgba(35,15,21,.97),rgba(7,6,9,.98));box-shadow:0 38px 110px #000,inset 0 0 0 4px #1c0d0b}
.nfcg-waiting-visual{width:min(920px,88vw);height:clamp(260px,39vw,460px)}

.nfcg-stage-game{display:flex;flex-direction:column;width:100vw;height:100dvh;min-height:680px;overflow:hidden}
.nfcg-game-head{flex:0 0 auto;min-height:70px;padding:9px 20px}
.nfcg-grimoire-runes{flex:0 0 24px}
.nfcg-game-layout{flex:1 1 auto;min-height:0;grid-template-columns:clamp(205px,15vw,260px) minmax(0,1fr) clamp(230px,17vw,300px);gap:10px;padding:10px;overflow:hidden}
.nfcg-roster-panel,.nfcg-log-panel{min-height:0;overflow:auto}
.nfcg-log-panel ol{max-height:none}
.nfcg-board-column{display:flex;min-width:0;min-height:0}
.nfcg-pixi-board-wrap{display:flex;flex:1;flex-direction:column;width:100%;height:100%;min-height:0;padding:7px;overflow:hidden}
.nfcg-pixi-host{display:grid;flex:1;place-items:center;width:100%;min-width:0;min-height:0;overflow:hidden}
.nfcg-pixi-canvas{width:100%!important;height:100%!important;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain}
.nfcg-board-toolbar{flex:0 0 40px}
.nfcg-pixi-scroll-hint{display:none}
.nfcg-action-dock{position:relative;flex:0 0 auto;min-height:82px;padding-block:8px}
.nfcg-forfeit-corner{z-index:55}
.nfcg-war-fog{display:flex;flex:0 0 35px;align-items:center;justify-content:center;gap:12px;color:#cab994;border-block:1px solid rgba(139,88,107,.35);background:linear-gradient(90deg,transparent,rgba(66,31,57,.64),rgba(21,17,30,.8),rgba(66,31,57,.64),transparent);font-size:10px;letter-spacing:.08em}
.nfcg-war-fog strong{color:#eedaa8;font:700 12px Georgia,"Noto Serif TC",serif}.nfcg-war-fog i{width:34px;height:1px;background:linear-gradient(90deg,transparent,#aa6a7a)}.nfcg-war-fog i:last-child{transform:scaleX(-1)}

.terrain-grass::before,.terrain-wood::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:58px;height:58px;border:1px solid rgba(255,255,255,.25);border-radius:5px;transform:translate(-50%,-50%);box-shadow:0 5px 12px #000}
.terrain-grass{background:#496232;border-color:#aabd72}.terrain-grass::before{background:repeating-linear-gradient(76deg,transparent 0 5px,rgba(186,205,101,.5) 6px 7px,transparent 8px 12px),repeating-linear-gradient(105deg,#273a20 0 5px,#4d6732 6px 8px,#1d2d19 9px 13px)}
.terrain-wood{background:#654025;border-color:#d09a59}.terrain-wood::before{background:repeating-linear-gradient(0deg,#3c2418 0 2px,#704629 3px 11px,#2a1811 12px 14px,#5d3822 15px 25px)}
.nfcg-vector-item,.nfcg-vector-toybox,.prop-puzzle-vector{display:grid!important;place-items:center;color:#f0d28a;border:1px solid #9f7136;border-radius:4px;background:radial-gradient(circle,#5d3522,#160c0c);box-shadow:0 3px 8px #000,0 0 10px rgba(205,158,67,.3);font:800 10px/1 Georgia,serif}
.nfcg-vector-item{width:24px;height:24px}.nfcg-vector-toybox{position:absolute;width:34px;height:31px;font-size:20px;transform:translate(-6px,-18px)}.prop-puzzle-vector{width:28px;height:28px;color:#f5cf6f;font-size:19px}

@media (max-width:1000px){
  .nfcg-stage-lobby .nfcg-lobby{width:min(760px,calc(100vw - 24px));grid-template-columns:1fr;grid-template-rows:minmax(310px,42vh) auto}.nfcg-lobby-art{position:relative;opacity:1;border-right:0;border-bottom:2px solid #6f4e2d}.nfcg-lobby-copy{justify-content:flex-start;padding:32px clamp(22px,7vw,56px)}
  .nfcg-stage-game{height:auto;min-height:100dvh;overflow:visible}.nfcg-game-layout{display:flex;overflow:visible}.nfcg-board-column{min-height:480px}.nfcg-pixi-board-wrap{height:auto}.nfcg-pixi-host{width:100%;min-width:680px;min-height:425px}.nfcg-pixi-canvas{height:auto!important;aspect-ratio:8/5}.nfcg-action-dock{position:sticky}
}
@media (max-width:700px){
  .nfcg-stage-lobby{padding:8px}.nfcg-stage-lobby .nfcg-lobby{width:calc(100vw - 16px);grid-template-rows:300px auto}.nfcg-lobby-art figcaption{left:24px;bottom:23px}.nfcg-lobby-art figcaption strong{font-size:18px}.nfcg-lobby-copy h1{font-size:clamp(46px,14vw,62px)}
  .nfcg-war-fog{padding:5px 10px;text-align:center}.nfcg-war-fog i{display:none}.nfcg-war-fog span{font-size:8px}
  .nfcg-stage-waiting{padding:8px}.nfcg-stage-waiting .nfcg-waiting{width:calc(100vw - 16px);min-height:calc(100dvh - 16px);padding:18px 12px}.nfcg-waiting-visual{width:100%;height:270px}
}
@media (prefers-reduced-motion:reduce){.terrain-grass::before{background:repeating-linear-gradient(90deg,#273a20 0 6px,#4d6732 7px 9px,#1d2d19 10px 14px)}}

@media (prefers-reduced-motion:reduce){
  .nfcg-app *, .nfcg-app *::before, .nfcg-app *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* 1.2.0 · Cursed fairytale pop-up grimoire */
:root{
  --nfcg-ink:#050307;
  --nfcg-night:#100a13;
  --nfcg-panel:#171019;
  --nfcg-paper:#e1d1ac;
  --nfcg-muted:#a6947d;
  --nfcg-gold:#c2a35d;
  --nfcg-blue:#65b7ec;
  --nfcg-red:#dc3444;
  --nfcg-purple:#8b46c7;
  --nfcg-parchment:#c9b078;
}

.nfcg-app{
  color:#e3d5b8;
  border-top:8px solid #2e2117;
  border-bottom:8px solid #1b120e;
  background:
    radial-gradient(circle at 14% 12%,rgba(121,55,92,.22),transparent 24%),
    radial-gradient(circle at 86% 75%,rgba(100,17,27,.25),transparent 30%),
    repeating-linear-gradient(96deg,rgba(194,163,93,.025) 0 1px,transparent 1px 9px),
    linear-gradient(145deg,#09060b,#17101a 46%,#050307);
  box-shadow:inset 0 0 0 2px #7e6438,inset 0 0 0 8px #1a100d,inset 0 0 120px #000;
  font-family:"Palatino Linotype","Noto Serif TC","PMingLiU",Georgia,serif;
}

.nfcg-stage-game::after,
.nfcg-stage-selection::after,
.nfcg-stage-waiting::after{
  content:"❦";
  position:fixed;
  inset:10px;
  z-index:70;
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  padding:8px 14px;
  color:rgba(102,18,31,.7);
  border:1px solid rgba(194,163,93,.44);
  border-radius:24px 4px 24px 4px;
  box-shadow:inset 0 0 0 3px rgba(27,13,12,.72),inset 0 0 28px rgba(83,21,29,.25);
  font-size:30px;
  line-height:1;
  pointer-events:none;
}

.nfcg-lobby-copy,.nfcg-waiting,.nfcg-stage-selection{
  background-image:
    radial-gradient(circle at 50% 0,rgba(198,161,91,.09),transparent 34%),
    repeating-linear-gradient(92deg,rgba(230,207,159,.018) 0 1px,transparent 1px 8px);
}
.nfcg-lobby-copy h1{color:#e6d7b4;text-shadow:0 4px #19080c,0 0 35px rgba(133,64,170,.22)}
.nfcg-primary,.nfcg-login-button{border-color:#d1b16a;background:linear-gradient(135deg,#ddc889,#9b7438);box-shadow:0 12px 34px #000,inset 0 1px rgba(255,250,218,.55)}
.nfcg-choice-card{border-color:rgba(194,163,93,.58);border-radius:18px 4px 16px 3px;background:linear-gradient(155deg,#281c1d,#0f0a10 72%);box-shadow:0 18px 40px #000,inset 0 0 0 3px rgba(37,23,18,.8);clip-path:polygon(2% 0,98% 1%,100% 4%,98% 98%,94% 100%,3% 99%,0 95%,1% 3%)}
.nfcg-selection-head,.nfcg-selection-footer{border-color:rgba(194,163,93,.32);background-color:rgba(10,6,10,.9)}
.nfcg-code-display,.nfcg-code-row input{border-color:#675233;background-color:rgba(15,9,13,.88)}

.nfcg-game-head{
  grid-template-columns:minmax(150px,1fr) auto minmax(210px,auto) 1fr auto;
  border-color:rgba(194,163,93,.38);
  background:
    linear-gradient(90deg,rgba(68,13,24,.22),transparent 27%,rgba(76,34,91,.16) 73%,rgba(68,13,24,.2)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 7px),
    #0b080d;
  box-shadow:0 8px 32px #000,inset 0 -1px #5e492b;
}

.nfcg-game-brand span,.nfcg-selection-head h2,.nfcg-modal-panel h2,.nfcg-finished h2{
  color:#eadcb9;
  text-shadow:0 2px #000,0 0 16px rgba(194,163,93,.2);
  letter-spacing:.025em;
}

.nfcg-grimoire-runes{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  height:26px;
  color:#7e6b4a;
  border-bottom:1px solid rgba(194,163,93,.18);
  background:linear-gradient(90deg,transparent,rgba(90,39,99,.12),rgba(109,23,31,.13),transparent);
  font-size:8px;
  letter-spacing:.25em;
}
.nfcg-grimoire-runes i{color:#913744;text-shadow:0 0 8px #8a2533;font-style:normal}

.nfcg-roster-panel,.nfcg-log-panel{
  border-color:rgba(194,163,93,.28);
  border-radius:2px 12px 3px 10px;
  background:
    linear-gradient(105deg,rgba(197,170,111,.08),transparent 10% 90%,rgba(197,170,111,.07)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 5px),
    rgba(15,10,15,.94);
  box-shadow:0 18px 45px #000,inset 0 0 30px rgba(0,0,0,.62),inset 0 0 0 2px rgba(57,39,27,.7);
  clip-path:polygon(1% 0,98% 1%,100% 97%,96% 100%,2% 99%,0 3%);
}
.nfcg-mini-card{border-color:#433626;background:linear-gradient(105deg,#21191a,#100c11 75%)}

.nfcg-board-wrap{
  padding:9px;
  border:2px solid #8b6d3b;
  border-radius:5px 17px 4px 14px;
  background:
    repeating-linear-gradient(90deg,#2b190f 0 18px,#1d100b 18px 36px,#321d11 36px 52px),
    #1a0f0a;
  box-shadow:0 32px 75px #000,inset 0 0 0 3px #120a07,inset 0 0 0 5px #5c4326;
}
.nfcg-board{
  min-width:650px;
  border:1px solid rgba(213,181,112,.3);
  border-radius:2px 12px 2px 9px;
  background-blend-mode:multiply,normal;
  box-shadow:inset 0 0 115px 35px #030205;
}
.nfcg-board::before{
  box-shadow:inset 0 0 105px 34px #020104,inset 0 0 0 1px rgba(222,191,123,.22);
  background:
    radial-gradient(circle at 24% 67%,rgba(126,55,179,.12),transparent 23%),
    radial-gradient(circle at 77% 31%,rgba(173,24,40,.13),transparent 21%);
}
.nfcg-paths line{stroke:rgba(154,93,187,.48);stroke-width:.72;stroke-dasharray:1.6 1.1;filter:drop-shadow(0 0 3px #6e2d9e) drop-shadow(0 0 2px #8d1727)}

.nfcg-barrier{position:absolute;inset:0;z-index:3;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 5px #000)}
.nfcg-barrier line{stroke:#291108;stroke-width:5.6;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #a22b38)}
.nfcg-barrier line:nth-child(odd){stroke-dasharray:1 1.4}
.nfcg-barrier-label{position:absolute;z-index:5;right:8px;top:8px;padding:4px 8px;color:#d4b57d;border:1px solid rgba(133,45,54,.55);border-radius:2px;background:rgba(29,8,12,.82);font-size:7px;letter-spacing:.12em;pointer-events:none}

.nfcg-node{width:25px;height:25px;border-color:rgba(238,215,165,.72);box-shadow:0 3px 8px #000,0 0 0 2px rgba(22,10,12,.72)}
.nfcg-node>span{font-size:7px}
.nfcg-node>em{position:absolute;right:-7px;top:-9px;display:grid;place-items:center;width:15px;height:15px;color:#170b14;border:1px solid #f2dcad;border-radius:50%;background:#d3b568;box-shadow:0 0 9px #b08438;font:900 7px/1 ui-monospace,monospace}
.nfcg-node.is-reachable{z-index:6;cursor:pointer;box-shadow:0 0 0 4px rgba(103,183,236,.18),0 0 18px #6c45c7,0 0 30px rgba(214,48,66,.45);animation:nfcg-reachable 1s infinite alternate}
.nfcg-faction-b .nfcg-node.is-reachable{box-shadow:0 0 0 4px rgba(220,52,68,.2),0 0 20px #dc3444,0 0 30px rgba(132,57,192,.4)}
.nfcg-node.is-reachable:hover,.nfcg-node.is-reachable:focus-visible{z-index:12;outline:2px solid #f0d79e;outline-offset:5px;transform:translate(-50%,-50%) scale(1.48)}
@keyframes nfcg-reachable{to{filter:brightness(1.48);transform:translate(-50%,-50%) scale(1.12)}}

.nfcg-token.is-terrified{z-index:18;animation:none!important}
.nfcg-token.is-terrified img{animation:nfcg-terror-shake .16s infinite!important}
.nfcg-token.is-terrified img{box-shadow:0 0 0 4px rgba(255,255,255,.14),0 0 28px #ba2030;filter:saturate(.55) contrast(1.2)}
.nfcg-token.is-terrified::after{content:"噩夢就在附近";position:absolute;left:50%;top:-79px;padding:3px 7px;color:#ffd5d5;border:1px solid #9a2834;border-radius:2px;background:rgba(49,5,11,.92);font-size:7px;white-space:nowrap;transform:translateX(-50%)}
@keyframes nfcg-terror-shake{
  0%{transform:translateX(-5px) rotate(-4deg)}
  50%{transform:translate(6px,-2px) rotate(5deg)}
  100%{transform:translate(-3px,2px) rotate(-3deg)}
}
.nfcg-token.is-moving-ghost{z-index:24;transition:left .52s cubic-bezier(.2,.78,.24,1),top .52s cubic-bezier(.2,.78,.24,1);will-change:left,top}
.nfcg-token.is-moving-ghost.is-stepping img{animation:nfcg-piece-step .5s ease}
@keyframes nfcg-piece-step{0%,100%{transform:none}42%{transform:translateY(-13px) rotate(-3deg)}68%{transform:translateY(-5px) rotate(2deg)}}

.nfcg-action-dock{
  border-top:1px solid #755c34;
  background:
    linear-gradient(90deg,rgba(81,18,29,.17),transparent 34%,rgba(88,45,105,.12)),
    rgba(8,5,9,.96);
  box-shadow:0 -20px 55px #000,inset 0 1px rgba(226,191,116,.16);
}
.nfcg-action-dock>button{position:relative;overflow:visible;border-color:#59462d;border-radius:14px 3px 13px 3px;background:linear-gradient(145deg,#251b1d,#100c12 75%);box-shadow:inset 0 0 18px rgba(0,0,0,.65),0 8px 18px rgba(0,0,0,.35)}
.nfcg-action-dock>button::before{content:"│";position:absolute;left:13px;top:-20px;color:#615340;font-size:17px;line-height:1}
.nfcg-action-dock>button::after{content:"☞";position:absolute;left:5px;top:-10px;color:#89765b;font-size:13px;transform:rotate(90deg)}
.nfcg-action-dock>button:hover{border-color:#c1a05b;box-shadow:0 0 22px rgba(132,69,182,.23),inset 0 0 18px #1b101d}
.nfcg-action-dock>button.nfcg-action-fear{border-color:#6c315d;background:linear-gradient(145deg,#2c142c,#100a14 76%)}
.nfcg-action-dock>button.nfcg-action-fear i{color:#b46ee5;text-shadow:0 0 14px #7f39af}

.nfcg-modal-backdrop{background:rgba(3,1,4,.88)}
.nfcg-modal-panel{
  border:2px solid #8c713f;
  border-radius:22px 3px 20px 4px;
  background:
    radial-gradient(circle at 50% -20%,rgba(179,142,72,.19),transparent 40%),
    repeating-linear-gradient(95deg,rgba(231,205,151,.025) 0 1px,transparent 1px 7px),
    linear-gradient(145deg,#21181a,#0d090e 70%);
  box-shadow:0 40px 110px #000,inset 0 0 0 4px #17100d,inset 0 0 80px #000;
  clip-path:polygon(1% 0,98% 1%,100% 5%,99% 97%,96% 100%,3% 99%,0 95%,1% 4%);
}
.nfcg-move-confirm{text-align:center}
.nfcg-move-confirm>p:not(.nfcg-eyebrow){max-width:620px;margin:18px auto;color:#a99a80}
.nfcg-destination-seal{display:grid;place-items:center;width:150px;height:150px;margin:12px auto;color:#e6d3a0;border:1px solid #b99c5a;border-radius:50%;background:radial-gradient(circle,#3a2037,#100a12 68%);box-shadow:0 0 0 7px rgba(185,156,90,.07),0 0 45px rgba(133,66,182,.22)}
.nfcg-destination-seal b{font:900 54px/.8 Georgia,serif}.nfcg-destination-seal span{color:#b5a176;font-size:11px;letter-spacing:.12em}
.nfcg-confirm-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
.nfcg-required-notice{z-index:220}
.nfcg-required-notice .nfcg-modal-panel{width:min(560px,94vw);padding:clamp(28px,6vw,58px);text-align:center}
.nfcg-required-notice .nfcg-notice-mark{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 16px;color:#1a0d10;border:2px solid #ead49e;border-radius:50%;background:radial-gradient(circle,#dfc47d,#9f7238);box-shadow:0 0 34px rgba(207,166,84,.32);font:900 38px/1 Georgia,serif}
.nfcg-required-notice.notice-danger .nfcg-notice-mark{color:#f4d6d7;border-color:#e16a73;background:radial-gradient(circle,#8d2630,#350a10);box-shadow:0 0 38px rgba(206,45,60,.42)}
.nfcg-required-notice .nfcg-notice-message{margin:0 auto 28px;color:#e8dfcf;font-size:clamp(16px,2.5vw,22px);line-height:1.65}
.nfcg-required-notice .nfcg-primary{min-width:180px;font-size:16px;letter-spacing:.14em}

/* Version 2.2: full-body nightmare fairy-tale character dialogue. */
.nfcg-character-dialogue{z-index:240;place-items:end center;padding:0;overflow:hidden}
.nfcg-character-dialogue .nfcg-modal-backdrop{background:radial-gradient(circle at 50% 35%,rgba(82,30,73,.3),transparent 42%),linear-gradient(rgba(3,1,5,.62),rgba(4,1,5,.94));backdrop-filter:blur(3px) saturate(.65)}
.nfcg-dialogue-panel{position:relative;width:min(1240px,100vw);height:min(780px,96vh);overflow:hidden;color:#eee2d2;isolation:isolate}
.nfcg-dialogue-panel::before{content:"";position:absolute;z-index:0;inset:5% 3% 21%;border:1px solid rgba(200,157,82,.18);border-radius:50% 50% 8% 8%;background:radial-gradient(circle at 50% 38%,rgba(119,43,105,.19),transparent 40%),repeating-radial-gradient(circle at 50% 70%,transparent 0 46px,rgba(207,168,88,.04) 47px 48px);box-shadow:inset 0 0 100px #050207;clip-path:polygon(4% 0,96% 0,100% 8%,98% 100%,2% 100%,0 8%)}
.nfcg-dialogue-atmosphere{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}.nfcg-dialogue-atmosphere::before{content:"✦  CURSED FAIRYTALE  ✦";position:absolute;left:50%;top:7%;color:rgba(215,178,101,.25);font:800 10px/1 ui-monospace,monospace;letter-spacing:.55em;transform:translateX(-50%);white-space:nowrap}.nfcg-dialogue-atmosphere i{position:absolute;width:260px;height:260px;border:1px solid rgba(151,52,86,.15);border-radius:50%;box-shadow:0 0 60px rgba(112,34,89,.12)}.nfcg-dialogue-atmosphere i:nth-child(1){left:-70px;top:23%}.nfcg-dialogue-atmosphere i:nth-child(2){right:-90px;top:5%;width:350px;height:350px}.nfcg-dialogue-atmosphere i:nth-child(3){left:42%;top:19%;width:180px;height:180px}
.nfcg-dialogue-portrait{--dialogue-enter-x:70px;position:absolute;z-index:4;right:0;bottom:112px;width:min(47vw,570px);height:min(74vh,650px);pointer-events:none;animation:nfcg-dialogue-character-in .48s cubic-bezier(.17,.8,.2,1) both}.nfcg-dialogue-portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 25px 18px rgba(0,0,0,.92)) drop-shadow(0 0 28px rgba(151,62,119,.24))}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-portrait{--dialogue-enter-x:-70px;right:auto;left:0}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-portrait img{filter:drop-shadow(0 25px 18px rgba(0,0,0,.94)) drop-shadow(0 0 34px rgba(194,43,59,.28))}
.nfcg-dialogue-portrait::after{content:"";position:absolute;left:15%;right:15%;bottom:1%;height:7%;border-radius:50%;background:rgba(0,0,0,.72);filter:blur(13px);transform:scaleX(.8)}
.nfcg-dialogue-portrait.is-hidden{display:grid;place-items:end center}.nfcg-dialogue-silhouette{position:relative;width:58%;height:78%;margin-bottom:3%;color:#b4879b;background:linear-gradient(90deg,#07060a,#171019 48%,#07060a);clip-path:polygon(37% 0,63% 0,69% 8%,67% 21%,79% 33%,87% 60%,74% 100%,26% 100%,13% 60%,21% 33%,33% 21%,31% 8%);box-shadow:0 0 55px rgba(151,66,118,.3)}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-silhouette{color:#bd6b75;background:linear-gradient(90deg,#080507,#200a10 48%,#080507)}.nfcg-dialogue-silhouette span{position:absolute;left:50%;top:16%;font:900 82px/1 Georgia,serif;transform:translateX(-50%);text-shadow:0 0 26px currentColor}
.nfcg-dialogue-box{position:absolute;z-index:3;left:22px;right:22px;bottom:18px;min-height:250px;padding:30px min(42vw,485px) 24px 42px;border:2px solid #9a3452;border-radius:4px 28px 4px 24px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 8px),radial-gradient(circle at 22% -25%,rgba(152,55,99,.3),transparent 52%),linear-gradient(145deg,rgba(35,8,22,.97),rgba(8,5,11,.985) 70%);box-shadow:0 22px 70px #000,inset 0 0 0 4px #160711,inset 0 0 65px rgba(0,0,0,.72);clip-path:polygon(0 5%,2% 0,97% 1%,100% 8%,99% 94%,96% 100%,2% 98%,0 91%);animation:nfcg-dialogue-box-in .34s ease-out both}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-box{padding-right:42px;padding-left:min(42vw,485px);border-color:#8f2a35;background:repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0 1px,transparent 1px 8px),radial-gradient(circle at 78% -25%,rgba(154,41,53,.28),transparent 52%),linear-gradient(215deg,rgba(39,7,13,.98),rgba(8,5,9,.985) 70%)}.nfcg-character-dialogue.speaker-unknown .nfcg-dialogue-box{border-color:#69536d}
.nfcg-dialogue-box::before{content:"";position:absolute;inset:8px;border:1px solid rgba(223,183,103,.34);clip-path:polygon(0 8%,2% 0,98% 0,100% 9%,100% 91%,97% 100%,2% 100%,0 92%);pointer-events:none}.nfcg-dialogue-kind{margin:0 0 4px;color:#d8b56e;font:800 9px/1.2 ui-monospace,monospace;letter-spacing:.22em;text-transform:uppercase}.nfcg-dialogue-box h2{margin:0;color:#f1d9b0;font:700 clamp(19px,2.4vw,30px)/1.2 Georgia,"Noto Serif TC",serif;text-shadow:0 2px 12px #000}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-kind{color:#dd8990}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-box h2{color:#f0b5b9}
.nfcg-dialogue-box blockquote{max-width:690px;margin:12px 0 10px;padding:0;color:#fff2e2;border:0;text-shadow:0 2px 12px #000;font:700 clamp(19px,2.25vw,29px)/1.48 Georgia,"Noto Serif TC",serif}.nfcg-dialogue-effect{display:grid;grid-template-columns:auto 1fr;gap:9px;max-width:720px;margin:0 0 17px;color:#afa292;font-size:11px;line-height:1.55}.nfcg-dialogue-effect b{align-self:start;padding:3px 6px;color:#e2c98f;border:1px solid rgba(214,177,96,.36);border-radius:2px;background:rgba(91,65,33,.25);font-size:8px;letter-spacing:.08em;white-space:nowrap}.nfcg-dialogue-box .nfcg-primary{min-width:132px;min-height:42px;padding:8px 22px;font-size:12px;letter-spacing:.16em}.nfcg-dialogue-rose{position:absolute;z-index:2;color:#b03d62;text-shadow:0 0 14px #6f1636;font:900 36px/1 Georgia;transform:rotate(45deg)}.nfcg-dialogue-rose.rose-left{left:6px;bottom:5px}.nfcg-dialogue-rose.rose-right{right:7px;top:6px;transform:rotate(225deg)}.nfcg-character-dialogue.speaker-b .nfcg-dialogue-rose{color:#9f303c;text-shadow:0 0 14px #69121d}
@keyframes nfcg-dialogue-character-in{from{opacity:0;transform:translateX(var(--dialogue-enter-x)) scale(.92);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes nfcg-dialogue-box-in{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}

@media (max-width:700px){
  .nfcg-dialogue-panel{width:100vw;height:100vh;min-height:540px}.nfcg-dialogue-panel::before{inset:2% 1% 34%}
  .nfcg-dialogue-atmosphere::before{top:3%;font-size:7px;letter-spacing:.3em}
  .nfcg-dialogue-portrait,.nfcg-character-dialogue.speaker-b .nfcg-dialogue-portrait{right:-6vw;left:auto;bottom:35vh;width:78vw;height:60vh}.nfcg-dialogue-portrait.is-hidden{right:4vw;width:62vw}
  .nfcg-dialogue-box,.nfcg-character-dialogue.speaker-b .nfcg-dialogue-box{left:6px;right:6px;bottom:5px;min-height:0;max-height:48vh;padding:24px 18px 14px;overflow-y:auto;scrollbar-width:none;border-radius:3px 16px 3px 14px;clip-path:polygon(0 3%,3% 0,97% 1%,100% 5%,99% 96%,96% 100%,2% 99%,0 94%)}
  .nfcg-dialogue-box::-webkit-scrollbar{width:0;height:0}
  .nfcg-dialogue-kind{padding-right:26px;font-size:8px}.nfcg-dialogue-box h2{font-size:19px}.nfcg-dialogue-box blockquote{margin:8px 0;font-size:18px;line-height:1.38}.nfcg-dialogue-effect{grid-template-columns:1fr;gap:4px;margin-bottom:11px;font-size:10px}.nfcg-dialogue-effect b{justify-self:start}.nfcg-dialogue-box .nfcg-primary{width:100%;min-height:40px}.nfcg-dialogue-rose{font-size:26px}
}

/* 2.4.0 — brass nightmare-fairy lobby/selection UI and clearer persistent effects. */
.nfcg-stage-lobby,.nfcg-stage-selection{background:
  radial-gradient(circle at 50% -10%,rgba(174,112,46,.18),transparent 36%),
  radial-gradient(circle at 15% 80%,rgba(92,34,112,.19),transparent 32%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 7px),#07070a}
.nfcg-stage-lobby{padding:clamp(10px,2vw,28px);perspective:1500px}
.nfcg-stage-lobby .nfcg-lobby{position:relative;isolation:isolate;max-width:1480px;margin:auto;overflow:visible;border:3px solid #9d733b;border-radius:14px;background:#0a090d;box-shadow:0 40px 100px #000,inset 0 0 0 3px #25150c,inset 0 0 0 5px rgba(219,174,91,.24);transform-style:preserve-3d}
.nfcg-stage-lobby .nfcg-lobby::before{content:"";position:absolute;z-index:8;inset:-12px;border:4px ridge #b78743;border-radius:20px;box-shadow:inset 0 0 0 3px #241208,0 0 32px rgba(204,149,63,.16);pointer-events:none}
.nfcg-stage-lobby .nfcg-lobby::after{content:"✦";position:absolute;z-index:9;left:50%;top:-28px;display:grid;place-items:center;width:58px;height:44px;color:#2a1308;border:3px ridge #e0b96c;border-radius:50%;background:radial-gradient(circle,#e5c47c,#765021 75%);box-shadow:0 8px 20px #000;transform:translateX(-50%);font:900 22px Georgia;pointer-events:none}
.nfcg-lobby-art{transform:translateZ(18px);box-shadow:inset -40px 0 75px rgba(0,0,0,.65)}
.nfcg-lobby-copy{position:relative;z-index:2;padding:clamp(42px,5.5vw,86px);background:linear-gradient(125deg,rgba(25,15,16,.96),rgba(8,8,12,.94));transform:translateZ(28px)}
.nfcg-lobby-plaque{display:flex;align-items:center;gap:11px;width:max-content;margin:0 0 20px;padding:7px 14px;color:#e3c47b;border:1px solid #8a6737;border-radius:99px;background:linear-gradient(#2b1a12,#110b0c);box-shadow:0 8px 18px #000,inset 0 1px rgba(255,255,255,.11);font-size:10px;letter-spacing:.12em}
.nfcg-lobby-plaque i{width:4px;height:4px;border-radius:50%;background:#c54150;box-shadow:0 0 8px #f04d61}.nfcg-lobby-plaque b{color:#a99a80;font-weight:600}
.nfcg-lobby-features{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(660px,100%);margin:20px 0 24px}
.nfcg-lobby-features>span{position:relative;display:grid;grid-template-columns:34px 1fr;padding:11px;color:#d9ccb4;border:1px solid rgba(183,140,68,.34);border-radius:4px;background:linear-gradient(145deg,rgba(68,41,23,.35),rgba(16,12,16,.78));box-shadow:inset 0 0 18px rgba(0,0,0,.5);transform:translateZ(10px)}
.nfcg-lobby-features i{grid-row:1/3;color:#bd914a;font:900 16px Georgia}.nfcg-lobby-features b{font:700 11px Georgia,"Noto Serif TC",serif}.nfcg-lobby-features small{color:#837d73;font-size:8px}
.nfcg-lobby-actions .nfcg-primary,.nfcg-selection-footer .nfcg-primary{border:1px solid #f0cb76;background:linear-gradient(180deg,#bd8e45,#6f421d 51%,#4a2814 52%,#7b4c24);box-shadow:0 7px 0 #2a1409,0 12px 24px #000,inset 0 2px rgba(255,242,191,.35);text-shadow:0 2px #2a1006;transform:translateY(0)}
.nfcg-lobby-actions .nfcg-primary:active,.nfcg-selection-footer .nfcg-primary:active{box-shadow:0 2px 0 #2a1409,0 6px 14px #000;transform:translateY(5px)}
.nfcg-lobby-utility{display:flex;align-items:center;gap:14px;margin-top:20px}.nfcg-lobby-utility .nfcg-music-toggle,.nfcg-selection-status-wrap .nfcg-music-toggle{padding:7px 10px;color:#9f9585;border:1px solid #51432f;border-radius:99px;background:#100d12;font-size:9px}.nfcg-lobby-utility .nfcg-music-toggle.is-on,.nfcg-selection-status-wrap .nfcg-music-toggle.is-on{color:#f1d58b;border-color:#9f793c;box-shadow:0 0 16px rgba(209,164,67,.15)}

.nfcg-stage-selection{min-height:760px;padding:16px clamp(8px,2vw,28px) 30px;perspective:1600px}
.nfcg-stage-selection .nfcg-selection-head{position:relative;max-width:1500px;margin:auto;padding:30px 42px;border:3px ridge #a5793e;border-radius:12px 12px 2px 2px;background:linear-gradient(180deg,#25170f,#0c090c);box-shadow:0 18px 40px #000,inset 0 0 0 3px #140b08}
.nfcg-stage-selection .nfcg-selection-head::before,.nfcg-stage-selection .nfcg-selection-head::after{content:"";position:absolute;top:50%;width:36px;height:36px;border:4px double #bc904b;border-radius:50%;background:radial-gradient(circle,#cba257,#432515 70%);transform:translateY(-50%)}
.nfcg-stage-selection .nfcg-selection-head::before{left:-19px}.nfcg-stage-selection .nfcg-selection-head::after{right:-19px}
.nfcg-selection-status-wrap{display:flex;align-items:center;gap:12px}
.nfcg-stage-selection .nfcg-selection-intro{max-width:1460px;margin:0 auto;padding:19px 35px;border-inline:2px solid #60431f;background:rgba(12,9,12,.88)}
.nfcg-stage-selection .nfcg-card-deal{max-width:1500px;margin:auto;padding:28px 34px 34px;border-inline:2px solid #60431f;background:linear-gradient(180deg,rgba(25,18,18,.92),rgba(9,8,11,.95));perspective:1300px}
.nfcg-stage-selection .nfcg-choice-card{overflow:visible;border:3px ridge #9f783f;border-radius:10px;background:linear-gradient(160deg,#3b2618,#100c10 72%);box-shadow:0 22px 35px #000,inset 0 0 0 3px #1c100b;clip-path:none;transform:rotateX(1deg) translateY(0);transform-style:preserve-3d;transition:transform .24s ease,filter .24s ease,box-shadow .24s ease}
.nfcg-stage-selection .nfcg-choice-card::before{content:"";position:absolute;z-index:3;inset:5px;border:1px solid rgba(237,199,118,.45);border-radius:6px;box-shadow:inset 0 0 28px rgba(0,0,0,.55);pointer-events:none}
.nfcg-stage-selection .nfcg-choice-card:hover{z-index:8;filter:brightness(1.13);transform:rotateX(0) translateY(-12px) translateZ(28px) scale(1.025);box-shadow:0 36px 55px #000,0 0 24px rgba(211,163,74,.18)}
.nfcg-stage-selection .nfcg-choice-card.is-selected{border-color:#f0cc78;box-shadow:0 0 0 4px rgba(218,176,86,.2),0 34px 56px #000;transform:translateY(-9px) translateZ(22px)}
.nfcg-stage-selection .nfcg-card-art{border-bottom-color:#8d6937;background:radial-gradient(circle at 50% 60%,#51361e,#0a080c 70%)}
.nfcg-stage-selection .nfcg-card-art img{filter:drop-shadow(0 18px 13px rgba(0,0,0,.65));transform:translateZ(20px)}
.nfcg-ai-difficulty{position:absolute;z-index:5;top:12px;right:10px;display:grid;min-width:88px;padding:5px 8px;color:#d9d5cb;border:1px solid rgba(205,181,125,.43);border-radius:3px 9px 3px 9px;background:linear-gradient(135deg,rgba(8,10,16,.94),rgba(40,29,25,.92));box-shadow:0 6px 16px rgba(0,0,0,.68);text-align:right;pointer-events:none;transition:top .2s ease}.nfcg-ai-difficulty span{color:#8e8476;font:700 6px/1 ui-monospace,monospace;letter-spacing:.17em}.nfcg-ai-difficulty b{margin-top:3px;color:#b9d9ee;font:800 8px/1.15 Georgia,"Noto Serif TC",serif;letter-spacing:.03em}.nfcg-ai-difficulty[data-level="2"] b{color:#d9b5f2}.nfcg-ai-difficulty[data-level="3"] b{color:#f1c86f}.nfcg-choice-card.is-selected .nfcg-ai-difficulty{top:51px}
.nfcg-selection-ai{display:grid;grid-template-columns:58px minmax(280px,1fr) auto;gap:17px;align-items:center;max-width:1460px;margin:0 auto;padding:14px 28px;color:#c9beaa;border:1px solid rgba(161,121,62,.38);border-inline-width:2px;background:radial-gradient(circle at 5% 50%,rgba(53,121,159,.19),transparent 28%),linear-gradient(90deg,rgba(11,17,24,.96),rgba(20,13,16,.94));box-shadow:inset 0 1px rgba(255,231,184,.05)}
.nfcg-selection-ai-mark{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid #7392a5;border-radius:50%;background:radial-gradient(circle,#244257,#080b10 70%);box-shadow:0 0 18px rgba(85,176,221,.22),inset 0 0 11px #000}.nfcg-selection-ai-mark span{z-index:1;color:#bfe8f7;font:800 13px/1 ui-monospace,monospace;letter-spacing:.05em}.nfcg-selection-ai-mark i{position:absolute;inset:5px;border:1px dashed rgba(173,225,246,.43);border-radius:50%;animation:nfcg-ai-orbit 7s linear infinite}.nfcg-selection-ai p{margin:0 0 5px;color:#e0d4bf;font:750 12px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.06em}.nfcg-selection-ai p small{margin-left:7px;color:#75828b;font:500 8px/1.2 sans-serif;letter-spacing:.03em}.nfcg-selection-ai strong{display:block;color:#aeb4b4;font-size:10px;font-weight:500;line-height:1.5}.nfcg-selection-ai>em{max-width:240px;color:#716b64;font-size:8px;font-style:normal;line-height:1.45;text-align:right}.nfcg-ai-inline-stars{color:#e0b963;font-weight:800;letter-spacing:.05em}@keyframes nfcg-ai-orbit{to{transform:rotate(360deg)}}
.nfcg-selection-console{display:grid;grid-template-columns:110px minmax(220px,.8fr) minmax(380px,1.5fr);gap:22px;align-items:center;max-width:1430px;margin:0 auto;padding:20px 28px;color:#d8ccb6;border:3px ridge #98703a;background:linear-gradient(180deg,#3d2817,#1b110d 48%,#120c0d 49%,#24160f);box-shadow:0 22px 45px #000,inset 0 0 28px rgba(0,0,0,.48);transform:translateZ(14px)}
.nfcg-selection-orb{display:grid;place-items:center;width:92px;height:92px;border:3px double #d0a75a;border-radius:50%;background:radial-gradient(circle,#523b24,#09080b 70%);box-shadow:0 0 24px rgba(189,135,57,.18),inset 0 0 20px #000;overflow:hidden}.nfcg-selection-orb img{width:84px;height:108px;object-fit:contain;filter:drop-shadow(0 7px 6px #000)}
.nfcg-selection-console h3{margin:3px 0 7px;color:#f0dfbc;font:700 24px Georgia,"Noto Serif TC",serif}.nfcg-selection-console>div>p:not(.nfcg-eyebrow){margin:0;color:#a89e8e;font-size:11px;line-height:1.6}
.nfcg-selection-console dl{display:grid;grid-template-columns:82px 1fr;gap:8px 12px;margin:0}.nfcg-selection-console dl>div{display:contents}.nfcg-selection-console dt{color:#d0a964;font-size:9px;letter-spacing:.1em}.nfcg-selection-console dd{margin:0;color:#c6bcaa;font-size:11px;line-height:1.45}
.nfcg-stage-selection .nfcg-selection-footer{max-width:1500px;margin:auto;border:2px solid #60431f;border-top-color:#ac7f40;background:rgba(10,8,11,.96);box-shadow:0 18px 40px #000}

.nfcg-mini-card.is-current{overflow:visible!important;border-color:#f1ca70!important;box-shadow:0 0 0 3px rgba(238,192,91,.22),0 0 25px rgba(239,190,75,.42)!important}
.nfcg-mini-card.is-current::before{content:"▼ 操控中";position:absolute;z-index:20;left:50%;top:-27px;width:max-content;padding:4px 8px;color:#2b1507;border:2px solid #4c260d;border-radius:4px;background:#f3c95f;box-shadow:0 5px 12px #000;transform:translateX(-50%);font:900 9px/1 Arial;animation:nfcg-active-arrow .75s ease-in-out infinite alternate}
.nfcg-node.is-collapsed::before{content:"";position:absolute;inset:-9px;border-radius:50%;background:repeating-conic-gradient(from 20deg,#030104 0 18deg,#35213f 20deg 31deg,#000 33deg 46deg);box-shadow:inset 0 0 12px #000,0 0 18px #000;animation:nfcg-vortex-spin 2.8s linear infinite;pointer-events:none}
.nfcg-node.is-wax-sealed::before{content:"";position:absolute;inset:-12px -15px -15px;border-radius:47% 55% 62% 43%;background:radial-gradient(ellipse at 37% 26%,rgba(255,174,134,.9) 0 8%,#b52531 22%,#6e0913 64%,rgba(53,3,9,.92));box-shadow:inset 0 -7px 12px rgba(44,0,4,.65),0 7px 14px rgba(91,5,13,.62);transform:rotate(-5deg);pointer-events:none}.nfcg-node.is-wax-sealed>span,.nfcg-node.is-wax-sealed>.prop-wax{position:relative;z-index:2}
@keyframes nfcg-active-arrow{to{transform:translate(-50%,6px)}}@keyframes nfcg-vortex-spin{to{transform:rotate(360deg)}}

@media (max-width:900px){
  .nfcg-lobby-features{grid-template-columns:1fr}.nfcg-lobby-features>span{min-height:48px}
  .nfcg-selection-console{grid-template-columns:84px 1fr}.nfcg-selection-console dl{grid-column:1/-1}.nfcg-selection-orb{width:72px;height:72px}.nfcg-selection-orb img{width:68px;height:88px}
	.nfcg-selection-ai{grid-template-columns:52px 1fr}.nfcg-selection-ai>em{display:none}
  .nfcg-selection-status-wrap{align-items:flex-start;flex-direction:column}
}
@media (max-width:700px){
  .nfcg-stage-lobby{padding:8px}.nfcg-stage-lobby .nfcg-lobby{min-height:760px}.nfcg-stage-lobby .nfcg-lobby::before{inset:-5px}.nfcg-lobby-copy{padding:48px 20px 34px}.nfcg-lobby-copy>.nfcg-eyebrow{max-width:100%;white-space:normal;font-size:8px;line-height:1.45;letter-spacing:.14em}.nfcg-lobby-copy h1{font-size:clamp(46px,14vw,58px)}.nfcg-lobby-plaque{margin-top:10px}.nfcg-lobby-features{margin-block:12px}.nfcg-lobby-utility{align-items:flex-start;flex-direction:column}
  .nfcg-stage-selection{padding-inline:5px}.nfcg-stage-selection .nfcg-selection-head{padding:25px 20px}.nfcg-stage-selection .nfcg-selection-intro{padding-inline:18px}.nfcg-stage-selection .nfcg-card-deal{grid-template-columns:repeat(5,78vw);padding-inline:11vw}.nfcg-selection-console{grid-template-columns:65px 1fr;margin-inline:6px;padding:15px 12px;gap:12px}.nfcg-selection-console dl{grid-template-columns:68px 1fr}.nfcg-selection-console h3{font-size:18px}
	.nfcg-selection-ai{margin-inline:6px;padding:12px 13px;grid-template-columns:42px 1fr;gap:10px}.nfcg-selection-ai-mark{width:38px;height:38px}.nfcg-selection-ai p small{display:block;margin:4px 0 0}.nfcg-selection-ai strong{font-size:9px}.nfcg-ai-difficulty{min-width:79px;padding:4px 6px}
}
@media (prefers-reduced-motion:reduce){.nfcg-mini-card.is-current::before,.nfcg-node.is-collapsed::before,.nfcg-selection-ai-mark i{animation:none}}

@media (prefers-reduced-motion:reduce){.nfcg-dialogue-portrait,.nfcg-dialogue-box{animation:none!important}}

/* 2.5.0 — cinematic opponent search illustration. */
.nfcg-stage-waiting{perspective:1500px}
.nfcg-waiting-visual{position:relative;width:min(820px,92vw);height:clamp(210px,30vw,310px);margin:0 0 24px;overflow:hidden;border:3px ridge #a5793e;border-radius:28px 5px 28px 5px;background:#08060a;box-shadow:0 30px 70px #000,inset 0 0 0 4px #170c0c,0 0 34px rgba(119,22,43,.2);transform:rotateX(2deg) translateZ(24px);transform-style:preserve-3d}
.nfcg-waiting-visual::before{content:"";position:absolute;z-index:2;inset:8px;border:1px solid rgba(232,190,105,.42);border-radius:21px 3px 21px 3px;box-shadow:inset 0 0 46px rgba(0,0,0,.68);pointer-events:none}
.nfcg-waiting-visual::after{content:"";position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 50% 48%,transparent 0 10%,rgba(9,4,8,.08) 25%,rgba(4,2,5,.38) 80%),linear-gradient(90deg,rgba(83,18,37,.2),transparent 35% 65%,rgba(117,12,25,.2));pointer-events:none}
.nfcg-waiting-visual>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 68%;filter:saturate(.9) contrast(1.08) brightness(.78);transform:scale(1.025)}
.nfcg-waiting-visual .nfcg-waiting-rings{position:absolute;z-index:3;left:50%;top:50%;width:170px;height:170px;margin:0;transform:translate(-50%,-50%);filter:drop-shadow(0 0 16px rgba(130,18,38,.7))}
.nfcg-waiting-visual .nfcg-waiting-rings::before{content:"";position:absolute;inset:50px;border:1px solid rgba(241,198,112,.78);border-radius:50%;box-shadow:inset 0 0 18px #000,0 0 20px rgba(224,57,75,.32)}
.nfcg-waiting-visual .nfcg-waiting-rings::after{inset:58px;background:#6d0917;box-shadow:0 0 34px #c1263a,inset 0 0 0 8px #17050b}
@media (max-width:700px){.nfcg-waiting{padding-inline:14px}.nfcg-waiting-visual{width:94vw;height:250px}.nfcg-waiting-visual>img{object-position:50% 65%}.nfcg-waiting-visual .nfcg-waiting-rings{width:140px;height:140px}.nfcg-waiting-visual .nfcg-waiting-rings::before{inset:40px}.nfcg-waiting-visual .nfcg-waiting-rings::after{inset:47px}}
@media (prefers-reduced-motion:reduce){.nfcg-waiting-visual{transform:none}.nfcg-waiting-rings i{animation:none!important;opacity:.42}}

.nfcg-fear-scan-flash::before{content:"";position:fixed;z-index:189;inset:0;pointer-events:none;background:repeating-radial-gradient(circle at center,transparent 0 7%,rgba(126,47,173,.18) 8%,transparent 11%),radial-gradient(circle,rgba(139,61,190,.25),rgba(78,6,19,.72) 46%,transparent 76%);animation:nfcg-fear-scan 1.2s both}
@keyframes nfcg-fear-scan{0%{opacity:0;transform:scale(.4)}35%{opacity:1}100%{opacity:0;transform:scale(1.35)}}
@media (max-width:1180px){
  .nfcg-game-head{grid-template-columns:1fr auto minmax(190px,auto) auto}
  .nfcg-head-stats{display:none}
}

@media (max-width:900px){
  .nfcg-game-head{grid-template-columns:1fr auto auto auto;gap:7px}
  .nfcg-turn-call{grid-column:1/-1;grid-row:2}.nfcg-head-menu{grid-column:4;grid-row:1}
  .nfcg-grimoire-runes span{max-width:72vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .nfcg-action-dock>button::before,.nfcg-action-dock>button::after{display:none}
}

@media (max-width:560px){
  .nfcg-app{border-width:4px;box-shadow:inset 0 0 0 1px #7e6438,inset 0 0 70px #000}
  .nfcg-stage-game::after,.nfcg-stage-selection::after,.nfcg-stage-waiting::after{inset:5px;padding:4px 7px;font-size:20px}
  .nfcg-game-head{grid-template-columns:1fr auto auto;padding:8px}
  .nfcg-game-brand span{font-size:15px}.nfcg-game-brand small{font-size:7px}
  .nfcg-round-meter{padding-inline:7px}.nfcg-head-menu{display:none}
  .nfcg-grimoire-runes{height:22px;font-size:6px}
  .nfcg-game-layout{padding:5px}.nfcg-board-wrap{padding:5px;overflow:hidden}
  .nfcg-board{width:100%;min-width:0;aspect-ratio:1/1.05}
  .nfcg-board-wrap::after{content:"直接點選發光格移動";position:absolute;left:8px;bottom:6px;z-index:20;padding:3px 6px;color:#d7c7a5;border:1px solid rgba(194,163,93,.35);border-radius:2px;background:rgba(14,8,12,.78);font-size:7px}
  .nfcg-node{width:23px;height:23px}.nfcg-node>span{font-size:6px}.nfcg-node>em{right:-5px;top:-7px;width:13px;height:13px}
  .nfcg-token{width:42px;height:42px}.nfcg-token-name{bottom:47px;max-width:95px;overflow:hidden;text-overflow:ellipsis;font-size:6px}
  .nfcg-barrier-label{right:4px;top:4px;font-size:5px}
  .nfcg-action-dock{min-height:74px}.nfcg-action-dock>button{min-width:142px;padding:7px 9px}.nfcg-action-dock>button span{font-size:7px}
  .nfcg-confirm-actions{flex-direction:column}.nfcg-confirm-actions>*{width:100%}.nfcg-destination-seal{width:118px;height:118px}.nfcg-destination-seal b{font-size:43px}
}

@media (prefers-reduced-motion:reduce){
  .nfcg-node.is-reachable,.nfcg-token.is-terrified img,.nfcg-token.is-moving-ghost{animation:none!important;transition-duration:.001ms!important}
}

/* Version 1.3: photographic props, item cards and skill presentation. */
.nfcg-node.has-box{z-index:8;width:48px;height:48px;border:2px solid #d6b462;border-radius:8px;background:#100b0e;box-shadow:0 5px 13px #000,0 0 22px rgba(198,151,62,.62);overflow:visible}
.nfcg-node.has-box:hover{transform:translate(-50%,-50%) scale(1.18)}
.nfcg-box-photo{display:block;width:100%;height:100%;border-radius:6px;object-fit:cover;pointer-events:none}
.nfcg-node.box-opened .nfcg-box-photo{filter:saturate(.55) brightness(.62);transform:rotate(-5deg)}
.nfcg-node.box-destroyed .nfcg-box-photo{filter:grayscale(1) brightness(.3);transform:rotate(12deg) scale(.86)}
.nfcg-node.box-destroyed::after{content:"×";position:absolute;inset:0;display:grid;place-items:center;color:#e05b62;text-shadow:0 2px 3px #000;font:900 28px/1 Georgia}
.nfcg-board-items{position:absolute;left:50%;top:50%;z-index:10;display:flex!important;align-items:center;justify-content:center;width:max-content;max-width:70px;transform:translate(-50%,-72%);pointer-events:none}
.nfcg-board-items img{display:block;width:25px;height:35px;margin-left:-8px;border:1px solid #ead39a;border-radius:3px;object-fit:cover;background:#09070a;box-shadow:0 5px 9px #000,0 0 10px rgba(214,174,88,.32)}
.nfcg-board-items img:first-child{margin-left:0}.nfcg-node.has-placed-items{z-index:9}.nfcg-node.has-syrup-zone{background:#35203f;box-shadow:0 0 0 3px rgba(107,198,82,.17),0 0 15px rgba(93,204,72,.38)}
.nfcg-board-prop{position:absolute;left:50%;top:50%;z-index:4;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;transform:translate(-50%,-50%);font:900 9px/1 Georgia;pointer-events:none}
.prop-shard{color:#fff;border:1px solid #fff;background:rgba(120,26,48,.82);box-shadow:0 0 18px #f8d8df}
.nfcg-node.is-forced-target{box-shadow:0 0 0 8px rgba(214,171,54,.26),0 0 34px #e3a936!important}
.nfcg-node.is-selected-target{color:#14040a;background:#f2d17d;box-shadow:0 0 0 7px rgba(239,207,124,.25),0 0 30px #fff!important;transform:translate(-50%,-50%) scale(1.35)}
.nfcg-token.is-revealed-enemy img{box-shadow:0 0 0 5px rgba(191,20,40,.2),0 0 34px #d21c35;animation:nfcg-revealed-aura 1.1s infinite alternate}
@keyframes nfcg-revealed-aura{to{filter:saturate(1.35) drop-shadow(0 0 13px #e12443)}}

.nfcg-item-fan{align-items:flex-end;min-height:430px;padding:35px 90px 65px}
.nfcg-item-fan .nfcg-item-card{position:relative;display:flex;flex:0 0 210px;min-height:340px;padding:0 0 18px;overflow:hidden;flex-direction:column;color:#eee1ca;border:2px solid #866e43;border-radius:12px;background:linear-gradient(#181119,#08070a);box-shadow:-13px 18px 32px rgba(0,0,0,.68);transform:rotate(calc((var(--i) - (var(--count) - 1)/2)*5deg));transform-origin:50% 118%}
.nfcg-item-fan .nfcg-item-card:hover,.nfcg-item-fan .nfcg-item-card:focus-visible{z-index:20;transform:translateY(-34px) rotate(0) scale(1.05);outline:2px solid #e8cf92;outline-offset:3px}
.nfcg-item-card img{display:block;width:100%;height:255px;margin:0 0 12px;padding:8px;object-fit:contain;object-position:center;border-bottom:1px solid #80693e;background:radial-gradient(circle at 50% 68%,#2a2118,#07080b 72%)}
.nfcg-item-card>span{padding:0 12px;color:#aa8c5d;font-size:9px;letter-spacing:.1em}
.nfcg-item-card>strong{padding:7px 12px 0;font:700 16px/1.35 Georgia,"Noto Serif TC",serif}
.nfcg-item-card>em{margin:10px 12px 0;padding:5px;color:#d9f5cb;border:1px solid #668456;border-radius:3px;background:rgba(40,70,30,.35);font-size:9px}
.nfcg-item-detail{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.nfcg-item-detail-art{position:relative}.nfcg-item-detail-art::before{content:"";position:absolute;inset:-8px;border:1px solid #c7a963;border-radius:14px;box-shadow:0 0 30px rgba(147,88,199,.25)}
.nfcg-item-detail-art img{position:relative;display:block;width:100%;max-height:64vh;border-radius:9px;object-fit:contain;background:#080609}
.nfcg-item-detail h2{margin-bottom:10px}.nfcg-item-detail>div:last-child>p{font-size:16px;line-height:1.8}
.nfcg-item-detail h3{margin:20px 0 5px;color:#c9ad72;font:700 12px/1.3 Georgia,"Noto Serif TC",serif;letter-spacing:.12em}.nfcg-item-detail blockquote{margin:18px 0 0;padding:11px 14px;color:#edc6cb;border-left:3px solid #a63c4c;background:rgba(94,22,35,.25);font-size:12px}
.nfcg-item-category{display:inline-block;padding:6px 10px;color:#e2cb95;border:1px solid #745e39;border-radius:99px;background:#18120d;font-size:11px}
.nfcg-item-bonus{display:block;margin-top:18px;padding:10px;color:#d8efcc;border-left:3px solid #83a765;background:rgba(77,105,54,.16)}
.nfcg-target-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:15px}.nfcg-target-list>h2,.nfcg-target-list>.nfcg-eyebrow{grid-column:1/-1}
.nfcg-target-list button{display:grid;grid-template-columns:58px 1fr;gap:4px 12px;align-items:center;padding:12px;color:#e6dcc9;border:1px solid #65543c;border-radius:6px;background:#11151b;text-align:left}.nfcg-target-list button:hover{border-color:#d8b96f;background:#1c2028}.nfcg-target-list img{grid-row:1/3;width:58px;height:72px;border-radius:4px;object-fit:cover}.nfcg-target-list strong{font:700 15px Georgia}.nfcg-target-list span{color:#8c9097;font-size:10px}
.nfcg-skill-confirm{text-align:center}.nfcg-skill-confirm>img{width:150px;height:210px;margin:0 auto 12px;border:1px solid #927642;border-radius:7px;object-fit:cover;box-shadow:0 15px 35px #000}.nfcg-skill-confirm>strong{display:block;color:#dfc784;font:700 18px Georgia}.nfcg-skill-confirm>p:not(.nfcg-eyebrow){max-width:680px;margin:14px auto 25px;line-height:1.75}
.nfcg-notice-actor{display:inline-block;margin:-8px auto 18px;padding:7px 13px;color:#9fccee;border:1px solid rgba(112,182,230,.36);border-radius:99px;background:rgba(17,49,72,.35);font-size:12px}.nfcg-faction-b .nfcg-notice-actor{color:#f0a7ae;border-color:rgba(218,74,85,.38);background:rgba(78,14,21,.35)}
.nfcg-log-panel li b{display:block;margin-bottom:3px;color:#d1b36d;font-size:9px;letter-spacing:.08em}
.nfcg-skill-flash::after{content:"";position:fixed;inset:0;z-index:190;pointer-events:none;background:radial-gradient(circle,rgba(176,91,234,.05),rgba(112,20,144,.28),transparent 70%);animation:nfcg-skill-flash .8s both}
@keyframes nfcg-skill-flash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
.nfcg-effect-demo::before{content:"✦";position:fixed;left:50%;top:45%;z-index:205;display:grid;place-items:center;width:150px;height:150px;color:#f6e3ad;border:2px solid #e3c477;border-radius:50%;background:radial-gradient(circle,rgba(63,22,80,.96),rgba(14,5,20,.95) 68%);box-shadow:0 0 0 16px rgba(143,69,185,.16),0 0 80px #8d3fc0;transform:translate(-50%,-50%);pointer-events:none;font:900 70px/1 Georgia;animation:nfcg-effect-seal 1.2s both}
.nfcg-effect-demo::after{content:"SPECIAL EFFECT";position:fixed;left:50%;top:calc(45% + 98px);z-index:206;color:#ead49d;text-shadow:0 2px 8px #000;transform:translateX(-50%);pointer-events:none;font:900 10px/1.2 ui-monospace,monospace;letter-spacing:.28em;animation:nfcg-effect-caption 1.2s both}
@keyframes nfcg-effect-seal{0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(-35deg)}28%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(4deg)}75%{opacity:1;transform:translate(-50%,-50%) scale(.94)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6) rotate(18deg)}}
@keyframes nfcg-effect-caption{0%,15%,100%{opacity:0}35%,78%{opacity:1}}
.nfcg-effect-demo[data-effect="skill_john"]::before,.nfcg-effect-demo[data-effect="skill_john_guard"]::before{content:"守"}.nfcg-effect-demo[data-effect="skill_jack"]::before{content:"偷"}.nfcg-effect-demo[data-effect^="skill_nick"]::before{content:"眼"}.nfcg-effect-demo[data-effect="skill_caesar"]::before{content:"幸"}.nfcg-effect-demo[data-effect="skill_alice"]::before{content:"鬱"}.nfcg-effect-demo[data-effect="skill_razak"]::before{content:"»"}.nfcg-effect-demo[data-effect="skill_ripley"]::before{content:"∞"}.nfcg-effect-demo[data-effect="skill_yari"]::before{content:"足"}.nfcg-effect-demo[data-effect="skill_jenny"]::before{content:"虹"}
.nfcg-effect-demo[data-effect="skill_prince"]::before{content:"◉"}.nfcg-effect-demo[data-effect^="skill_muscle"]::before{content:"拳"}.nfcg-effect-demo[data-effect="skill_dharma"]::before{content:"封"}.nfcg-effect-demo[data-effect="skill_thousand"]::before{content:"瞳"}.nfcg-effect-demo[data-effect="skill_scissor"]::before{content:"✂"}.nfcg-effect-demo[data-effect="skill_priest"]::before{content:"鈴"}.nfcg-effect-demo[data-effect="skill_twin"]::before{content:"☯"}.nfcg-effect-demo[data-effect="skill_gold"]::before{content:"金"}
.nfcg-effect-demo[data-effect^="item_windup"]::before{content:"鍵"}.nfcg-effect-demo[data-effect^="item_needles"]::before,.nfcg-effect-demo[data-effect="trap_needles"]::before{content:"針"}.nfcg-effect-demo[data-effect^="item_monocle"]::before{content:"鏡"}.nfcg-effect-demo[data-effect^="item_jackbox"]::before,.nfcg-effect-demo[data-effect="trap_jackbox"]::before{content:"笑"}.nfcg-effect-demo[data-effect^="item_coin"]::before,.nfcg-effect-demo[data-effect="trap_coin"]::before{content:"両"}.nfcg-effect-demo[data-effect^="item_crane"]::before{content:"鶴"}.nfcg-effect-demo[data-effect^="item_nutcracker"]::before,.nfcg-effect-demo[data-effect="trap_nutcracker"]::before{content:"衛"}.nfcg-effect-demo[data-effect^="item_rose"]::before{content:"薔"}.nfcg-effect-demo[data-effect^="item_wax"]::before{content:"煙"}.nfcg-effect-demo[data-effect^="item_syrup"]::before,.nfcg-effect-demo[data-effect="trap_syrup"]::before{content:"糖"}.nfcg-effect-demo[data-effect^="item_music"]::before{content:"♫"}.nfcg-effect-demo[data-effect^="item_reset"]::before{content:"↺"}
.nfcg-rainbow-world .nfcg-node{border:3px solid transparent;background:linear-gradient(#342a2c,#342a2c) padding-box,conic-gradient(#ff4d61,#ff9f35,#f5dc4b,#58d77b,#47b9f2,#6d68e8,#c45bdd,#ff4d61) border-box;box-shadow:0 3px 8px #000}
.nfcg-rainbow-world .nfcg-node.has-box{background:linear-gradient(#100b0e,#100b0e) padding-box,conic-gradient(#ff4d61,#ff9f35,#f5dc4b,#58d77b,#47b9f2,#6d68e8,#c45bdd,#ff4d61) border-box}

@media (max-width:700px){
  .nfcg-node.has-box{width:42px;height:42px}.nfcg-item-fan{min-height:370px;padding:25px 32px 55px}.nfcg-item-fan .nfcg-item-card{flex-basis:190px;min-height:315px;margin-left:-46px}.nfcg-item-card img{height:225px}.nfcg-item-detail{grid-template-columns:1fr}.nfcg-item-detail-art img{max-height:44vh}.nfcg-item-detail>div:last-child>p{font-size:14px}
}

/* 2.1.0 transparent 3D card art: keep the whole miniature and its base visible. */
.nfcg-mini-card img,.nfcg-intel-large-card img,.nfcg-target-list img,.nfcg-skill-confirm>img{object-fit:contain!important;object-position:center!important;background:radial-gradient(circle at 50% 68%,#2b2118,#07080b 72%)}
.nfcg-mini-card img{padding:2px}
.nfcg-intel-large-card img,.nfcg-skill-confirm>img{padding:5px}

/* Version 1.5: dual nightmares, persistent cooldowns, intelligence and board decay. */
.nfcg-intel-open{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;color:#b7aa91;border:0;background:transparent;text-align:left;text-transform:uppercase;letter-spacing:.14em}.nfcg-intel-open span{padding:2px 5px;color:#d0b36f;border:1px solid rgba(194,163,93,.35);border-radius:99px;font-size:7px;letter-spacing:.06em}.nfcg-intel-open:hover span{color:#fff0bd;border-color:#d0b36f}
.nfcg-mini-card:is(button){width:100%;color:inherit;text-align:left;cursor:pointer}.nfcg-mini-card:is(button):hover,.nfcg-mini-card:is(button):focus-visible{border-color:#b59554;outline:2px solid rgba(194,163,93,.28);outline-offset:2px;filter:brightness(1.12)}
.nfcg-modal-panel{width:min(1180px,96vw)}
.nfcg-opponent-intel>p:not(.nfcg-eyebrow){max-width:820px;color:#9e927d;font-size:14px}.nfcg-intel-large-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}.nfcg-intel-large-card{display:grid;grid-template-columns:170px 1fr;gap:22px;min-height:245px;padding:14px;color:#e7dac0;border:1px solid #685536;border-radius:5px 16px 5px 14px;background:linear-gradient(145deg,#24191c,#0d090e 75%);box-shadow:0 16px 36px rgba(0,0,0,.35);text-align:left}.nfcg-intel-large-card:is(button):hover,.nfcg-intel-large-card:is(button):focus-visible{border-color:#e0bd68;outline:3px solid rgba(213,173,85,.2);transform:translateY(-3px)}.nfcg-intel-large-card img,.nfcg-intel-unknown-art{width:170px;height:225px;border:1px solid #7d6842;border-radius:4px 11px 4px 9px;object-fit:cover;object-position:50% 22%;box-shadow:0 13px 28px #000}.nfcg-intel-unknown-art{display:grid;place-items:center;color:#8e7e67;background:repeating-linear-gradient(135deg,#211a20 0 9px,#0f0c12 9px 18px);font:900 72px/1 Georgia}.nfcg-intel-large-card p{margin:2px 0;color:#9a7f51;font-size:9px;letter-spacing:.1em}.nfcg-intel-large-card h3{margin:4px 0 6px;color:#f0e2c6;font:700 24px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-intel-large-card span{color:#999084;font-size:11px}.nfcg-intel-large-card dl{display:grid;grid-template-columns:65px 1fr;gap:6px 10px;margin:16px 0 0;font-size:11px;line-height:1.5}.nfcg-intel-large-card dt{color:#c3a366}.nfcg-intel-large-card dd{margin:0;color:#a69c8c}.nfcg-intel-large-card>div>strong{display:block;margin-top:15px;padding:8px;color:#171008;border:1px solid #e0c174;border-radius:3px;background:linear-gradient(135deg,#dec67e,#9d7338);text-align:center}.nfcg-intel-large-card.is-captured{opacity:.5;filter:grayscale(1)}

.nfcg-action-dock>button.is-skill-blocked,.nfcg-action-dock>button.is-skill-cooldown{opacity:1;padding-right:50px}.nfcg-action-dock>button.is-skill-blocked{border-color:#9d2937;background:linear-gradient(145deg,#351017,#12080d 78%);filter:saturate(.7)}.nfcg-skill-x{position:absolute;z-index:6;inset:4px;display:grid;place-items:center;color:rgba(255,225,225,.92);text-shadow:0 0 12px #d21831,0 3px #25030a;font:900 64px/1 Arial;pointer-events:none;transform:rotate(-7deg)}.nfcg-hourglass{position:absolute;z-index:6;right:8px;top:50%;display:grid;place-items:center;width:38px;height:54px;color:#f3d58d;border:1px solid #9b7a3c;border-radius:18px;background:rgba(22,12,14,.94);box-shadow:0 0 18px rgba(202,158,62,.28);transform:translateY(-50%);pointer-events:none}.nfcg-action-dock>button .nfcg-hourglass i{grid-row:auto;color:#e5bf61;font:normal 21px/1 sans-serif;animation:nfcg-hourglass-turn 1.8s ease-in-out infinite}.nfcg-hourglass em{color:#fff1bd;font:900 10px/1 ui-monospace,monospace}.nfcg-action-dock>button.is-skill-cooldown:disabled{opacity:.86}.nfcg-action-dock>button.is-skill-blocked:disabled{opacity:.9}@keyframes nfcg-hourglass-turn{0%,42%{transform:rotate(0)}58%,100%{transform:rotate(180deg)}}

.nfcg-node.is-collapsed{z-index:5;color:#4d4650;border-color:#120f14;background:#010103;box-shadow:0 0 0 6px rgba(0,0,0,.82),0 0 24px #000;filter:none!important;animation:none!important}.nfcg-node.is-collapsed:hover{transform:translate(-50%,-50%) scale(1.08)}.nfcg-collapsed-mark{color:#3e3640!important;text-shadow:0 0 7px #000;font:900 14px/1 Georgia!important}.nfcg-node.is-wax-sealed{z-index:7;color:#ffe2d2;border-color:#ff8a73;background:radial-gradient(circle at 35% 28%,#ffb18e 0 10%,#b81f2d 31%,#56060e 78%);box-shadow:0 0 0 4px rgba(179,24,39,.28),0 0 23px #d62637}.nfcg-node.is-wax-sealed::after{content:"";position:absolute;left:3px;right:3px;bottom:-8px;height:13px;background:linear-gradient(90deg,#7c0b16 0 18%,transparent 18% 25%,#b51b29 25% 52%,transparent 52% 65%,#650812 65%);clip-path:polygon(0 0,100% 0,84% 40%,73% 100%,56% 38%,38% 83%,22% 35%,8% 70%);pointer-events:none}.prop-wax{z-index:7;color:#ffe7d6;border:1px solid rgba(255,194,157,.72);background:rgba(109,7,17,.6);text-shadow:0 1px #310006;box-shadow:0 0 15px #d32939}.nfcg-node.is-deep-water{background:radial-gradient(circle,#214f68,#102844 62%,#07131f);border-color:#76c8e1;box-shadow:0 0 0 4px rgba(62,170,209,.16),0 0 22px rgba(53,190,225,.55)}.prop-bubbles{z-index:3;color:#b9ecff;border:1px solid rgba(148,220,247,.55);background:radial-gradient(circle,rgba(137,225,255,.38),rgba(12,53,79,.65));box-shadow:0 0 18px #55b9d8;animation:nfcg-bubbles 1.5s ease-in-out infinite}.prop-puzzle{z-index:8;width:42px;height:42px;color:#231403;border:1px solid #fff0ad;background:radial-gradient(circle,#f3d06b,#b57923);box-shadow:0 0 0 4px rgba(241,202,91,.18),0 0 22px #efb63a;font-size:22px;animation:nfcg-puzzle-float 1s ease-in-out infinite alternate}@keyframes nfcg-bubbles{50%{transform:translate(-50%,-62%) scale(1.12);opacity:.7}}@keyframes nfcg-puzzle-float{to{transform:translate(-50%,-62%) rotate(5deg)}}.nfcg-node.signal-drowned .nfcg-signal-pulse{border-color:#7ae2ff;box-shadow:0 0 20px #39badc}.nfcg-node.signal-drowned{box-shadow:0 0 0 9px rgba(64,198,229,.22),0 0 34px #45c2e1}
.nfcg-unknown-piece{display:grid;place-items:center;width:100%;height:100%;color:#ffd4d7;border:3px solid #bd3443;border-radius:50%;background:radial-gradient(circle,#3d1721,#09070b 70%);box-shadow:0 0 24px #9e1728;font:900 28px/1 Georgia}.nfcg-token.is-unknown-token>i{box-shadow:0 2px 0 #9f3439}

.nfcg-effect-demo[data-effect="skill_marionette"]::before{content:"線"}.nfcg-effect-demo[data-effect="skill_melting_wax"]::before{content:"蠟"}.nfcg-effect-demo[data-effect="skill_drowned"]::before,.nfcg-effect-demo[data-effect="trap_drowned"]::before{content:"溺"}.nfcg-effect-demo[data-effect^="item_sandals"]::before{content:"鞋"}

@media (max-width:760px){.nfcg-intel-large-grid{grid-template-columns:1fr}.nfcg-intel-large-card{grid-template-columns:110px 1fr;gap:13px;min-height:170px}.nfcg-intel-large-card img,.nfcg-intel-unknown-art{width:110px;height:150px}.nfcg-intel-large-card h3{font-size:18px}.nfcg-intel-large-card dl{grid-template-columns:1fr}.nfcg-intel-large-card dt{margin-top:5px}.prop-puzzle{width:34px;height:34px;font-size:17px}}

/* 2.3.0 — realistic transparent puzzle collectible, shared by the DOM fallback. */
.nfcg-app .prop-puzzle{z-index:8;width:56px;height:56px;object-fit:contain;color:transparent;border:0;background:transparent;box-shadow:none;font-size:0;filter:drop-shadow(0 6px 7px rgba(0,0,0,.72)) drop-shadow(0 0 5px rgba(238,190,100,.35));animation:nfcg-puzzle-float 1.35s ease-in-out infinite alternate}
@media (max-width:760px){.nfcg-app .prop-puzzle{width:45px;height:45px}}

/* Version 2.0: persistent PixiJS 2.5D canvas with HTML controls. */
.nfcg-pixi-board-wrap{position:relative;overflow:hidden;min-height:420px;border-color:#75603b;background:#05070b;box-shadow:0 28px 75px #000,inset 0 0 0 1px rgba(210,174,99,.17)}
.nfcg-pixi-host{position:relative;min-width:650px;min-height:406px;background:radial-gradient(circle at 50% 45%,#1c2530,#030407 72%)}
.nfcg-pixi-host[aria-busy="true"]::before{content:"正在展開 2.5D 夢境……";position:absolute;inset:0;z-index:2;display:grid;place-items:center;color:#cfb778;background:#080a0f;font:700 13px Georgia,"Noto Serif TC",serif;letter-spacing:.12em}
.nfcg-pixi-canvas{display:block;width:100%!important;height:auto!important;aspect-ratio:8/5;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.nfcg-board-toolbar{position:relative;z-index:12;display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:6px 8px;color:#b6a98e;border-bottom:1px solid rgba(203,170,99,.35);background:#090b10}
.nfcg-board-toolbar span{margin-right:4px;color:#d4bb7e;font:800 8px/1 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}
.nfcg-board-toolbar button{min-height:28px;padding:4px 8px;color:#d8cdb7;border:1px solid #4f4638;border-radius:3px;background:#17151a;font-size:8px}.nfcg-board-toolbar button:hover,.nfcg-board-toolbar button:focus-visible{color:#fff0c1;border-color:#c49b4d;outline:2px solid rgba(224,186,104,.22)}
.nfcg-board-toolbar .nfcg-music-toggle{min-width:62px;color:#998e7d}.nfcg-board-toolbar .nfcg-music-toggle.is-on{color:#f0d88e;border-color:#8d7138;background:linear-gradient(145deg,#2a2117,#15131a);box-shadow:inset 0 0 12px rgba(222,179,83,.1)}
.nfcg-pixi-scroll-hint{position:relative;z-index:11;width:max-content;max-width:calc(100% - 16px);margin:5px auto;padding:4px 8px;color:#b7aa91;border:1px solid rgba(194,163,93,.25);border-radius:99px;background:#080a0e;font-size:8px;text-align:center;pointer-events:none}
.nfcg-board-a11y{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.nfcg-board-a11y:focus-within{position:relative!important;z-index:14;width:auto!important;height:auto!important;padding:12px!important;overflow:auto!important;clip:auto!important;white-space:normal!important;display:grid;grid-template-columns:repeat(8,minmax(92px,1fr));gap:5px;color:#ddd;background:#090c12}
.nfcg-board-a11y button{min-height:42px;color:#ddd1ba;border:1px solid #514632;border-radius:3px;background:#151820;font-size:9px}.nfcg-board-a11y button[aria-disabled="true"]{opacity:.45}.nfcg-board-a11y button:focus-visible{outline:3px solid #e3c06d;outline-offset:1px}
.nfcg-quality-low .nfcg-board-toolbar{backdrop-filter:none}.nfcg-quality-low .nfcg-roster-panel,.nfcg-quality-low .nfcg-log-panel,.nfcg-quality-low .nfcg-action-dock{backdrop-filter:none;box-shadow:none}
.nfcg-quality-low.nfcg-capture-flash::after,.nfcg-quality-low.nfcg-hide-flash::before,.nfcg-quality-low.nfcg-fear-scan-flash::before,.nfcg-quality-low.nfcg-skill-flash::before,.nfcg-quality-low.nfcg-effect-demo::before,.nfcg-quality-low.nfcg-effect-demo::after{display:none!important}
.nfcg-reduced-motion.nfcg-capture-flash::after,.nfcg-reduced-motion.nfcg-hide-flash::before,.nfcg-reduced-motion.nfcg-fear-scan-flash::before,.nfcg-reduced-motion.nfcg-skill-flash::before,.nfcg-reduced-motion.nfcg-effect-demo::before,.nfcg-reduced-motion.nfcg-effect-demo::after{display:none!important}
.nfcg-reduced-motion *,.nfcg-reduced-motion *::before,.nfcg-reduced-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

@media (max-width:700px){
  .nfcg-app{width:auto;max-width:100%}
  .nfcg-pixi-board-wrap{overflow-x:auto;min-height:436px;-webkit-overflow-scrolling:touch}
  .nfcg-pixi-host{width:680px;min-width:680px;min-height:425px}
  .nfcg-board-toolbar{position:sticky;left:0;justify-content:center;width:calc(100vw - 24px);min-width:350px}
  .nfcg-pixi-scroll-hint{position:sticky;display:block;left:8px;margin:5px 8px;width:max-content}
}

/* 2.6.0 final cascade: WordPress themes must not constrain the game viewport. */
.nfcg-app{width:var(--nfcg-viewport-width,100vw)!important;max-width:none!important;min-height:100dvh;margin-left:calc(50% - var(--nfcg-viewport-half,50vw))}
.nfcg-stage-lobby{display:grid;place-items:center;min-height:100dvh;padding:clamp(12px,2.2vw,34px)}
.nfcg-stage-lobby .nfcg-lobby{width:min(1640px,calc(100vw - 44px));min-height:min(900px,calc(100dvh - 54px));grid-template-columns:minmax(460px,1.08fr) minmax(520px,.92fr)}
.nfcg-stage-lobby .nfcg-lobby-art{position:relative;margin:0;opacity:1;border-right:2px solid #6f4e2d;transform:none}
.nfcg-stage-lobby .nfcg-lobby-art>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 52%;filter:saturate(.82) contrast(1.13) brightness(.72)}
.nfcg-stage-lobby .nfcg-lobby-art::before{z-index:2;inset:0;width:auto;height:auto;border-radius:0;background:linear-gradient(90deg,transparent 45%,rgba(7,3,5,.75)),linear-gradient(180deg,transparent 52%,rgba(3,2,4,.9));transform:none}
.nfcg-stage-lobby .nfcg-lobby-art::after{z-index:3;left:13px;right:13px;top:13px;bottom:13px;width:auto;height:auto;border:1px solid rgba(222,180,93,.42);border-radius:20px 3px 22px 3px;background:none;transform:none;filter:none}
.nfcg-stage-game{display:flex;flex-direction:column;width:100vw;height:100dvh;min-height:680px;overflow:hidden}
.nfcg-stage-game .nfcg-game-layout{flex:1 1 auto;min-height:0;grid-template-columns:clamp(205px,15vw,260px) minmax(0,1fr) clamp(230px,17vw,300px);gap:10px;padding:10px;overflow:hidden}
.nfcg-stage-game .nfcg-roster-panel,.nfcg-stage-game .nfcg-log-panel{min-height:0;overflow:auto}
.nfcg-stage-game .nfcg-log-panel ol{max-height:none}
.nfcg-stage-game .nfcg-board-column{display:flex;min-height:0}
.nfcg-stage-game .nfcg-pixi-board-wrap{display:flex;flex:1;flex-direction:column;width:100%;height:100%;min-height:0;padding:7px;overflow:hidden}
.nfcg-stage-game .nfcg-pixi-host{display:grid;flex:1;place-items:center;width:100%;min-width:0;min-height:0;overflow:hidden}
.nfcg-stage-game .nfcg-pixi-canvas{width:100%!important;height:100%!important;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain}
.nfcg-stage-game .nfcg-board-toolbar{flex:0 0 40px}.nfcg-stage-game .nfcg-pixi-scroll-hint{display:none}
.nfcg-board-a11y:focus-within{grid-template-columns:repeat(9,minmax(82px,1fr))}
@media (max-width:1000px){
  .nfcg-stage-lobby .nfcg-lobby{width:min(760px,calc(100vw - 24px));grid-template-columns:1fr;grid-template-rows:minmax(310px,42vh) auto}.nfcg-stage-lobby .nfcg-lobby-art{position:relative;border-right:0;border-bottom:2px solid #6f4e2d}
  .nfcg-stage-game{height:auto;min-height:100dvh;overflow:visible}.nfcg-stage-game .nfcg-game-layout{display:flex;overflow:visible}.nfcg-stage-game .nfcg-board-column{min-height:480px}.nfcg-stage-game .nfcg-pixi-board-wrap{height:auto;overflow-x:auto}.nfcg-stage-game .nfcg-pixi-host{width:680px;min-width:680px;min-height:425px}.nfcg-stage-game .nfcg-pixi-canvas{height:auto!important;aspect-ratio:8/5}
}
@media (max-width:700px){.nfcg-app{width:var(--nfcg-viewport-width,100vw)!important;max-width:none!important}.nfcg-stage-lobby{padding:8px}.nfcg-stage-lobby .nfcg-lobby{width:calc(100vw - 16px);grid-template-rows:300px auto}.nfcg-stage-lobby .nfcg-lobby-art figcaption{left:24px;bottom:23px}.nfcg-stage-lobby .nfcg-lobby-art figcaption strong{font-size:18px}.nfcg-stage-game .nfcg-pixi-host{width:680px;min-width:680px}}

/* 2.6.1 unified realistic 3D presentation and complete 9x9 safe frame. */
.nfcg-stage-lobby .nfcg-lobby,.nfcg-stage-waiting .nfcg-waiting-card{box-shadow:inset 0 2px 0 rgba(255,239,195,.2),inset 0 -12px 24px rgba(0,0,0,.72),0 8px 0 #100908,0 32px 85px rgba(0,0,0,.82)}
.nfcg-stage-lobby .nfcg-lobby-art{box-shadow:inset -42px 0 72px rgba(0,0,0,.72),inset 0 2px 0 rgba(255,228,169,.25),12px 0 26px rgba(0,0,0,.5)}
.nfcg-stage-lobby .nfcg-lobby-art>img,.nfcg-stage-waiting img{filter:saturate(.9) contrast(1.18) brightness(.75) drop-shadow(0 18px 24px rgba(0,0,0,.78))}
.nfcg-choice-card,.nfcg-item-fan .nfcg-item-card,.nfcg-mini-card,.nfcg-intel-large-card,.nfcg-target-list button,.nfcg-skill-confirm{border-top-color:rgba(245,215,151,.72)!important;border-left-color:rgba(211,171,96,.58)!important;box-shadow:inset 0 2px 0 rgba(255,239,202,.18),inset -7px -11px 18px rgba(0,0,0,.6),0 5px 0 #0b0708,0 16px 28px rgba(0,0,0,.72)!important;transform-style:preserve-3d}
.nfcg-choice-card img,.nfcg-item-card img,.nfcg-mini-card img,.nfcg-intel-large-card img,.nfcg-target-list img,.nfcg-skill-confirm>img,.nfcg-item-detail-art img{filter:contrast(1.1) saturate(.96) drop-shadow(5px 12px 9px rgba(0,0,0,.76)) drop-shadow(-2px -2px 2px rgba(255,228,174,.14))!important}
.nfcg-dialogue-portrait img{filter:contrast(1.08) saturate(.94) drop-shadow(9px 28px 18px rgba(0,0,0,.94)) drop-shadow(-5px -4px 5px rgba(255,224,188,.12)) drop-shadow(0 0 30px rgba(151,62,119,.2))!important}
.nfcg-character-dialogue.speaker-b .nfcg-dialogue-portrait img{filter:contrast(1.1) saturate(.94) drop-shadow(-9px 28px 18px rgba(0,0,0,.95)) drop-shadow(4px -4px 5px rgba(255,211,180,.1)) drop-shadow(0 0 34px rgba(194,43,59,.24))!important}
.nfcg-dialogue-box,.nfcg-modal-panel{box-shadow:inset 0 2px 0 rgba(255,230,179,.17),inset 0 -13px 25px rgba(0,0,0,.62),0 7px 0 #090507,0 28px 75px #000!important}
.nfcg-stage-game .nfcg-pixi-board-wrap{padding:8px 8px 10px;box-shadow:inset 0 2px 0 rgba(255,225,166,.18),inset 0 -9px 18px rgba(0,0,0,.8),0 8px 0 #070506,0 24px 55px #000}
.nfcg-stage-game .nfcg-pixi-host{padding:4px;overflow:hidden;background:radial-gradient(ellipse at 50% 44%,#25242a,#08090d 67%,#020204 100%)}
.nfcg-stage-game .nfcg-pixi-canvas{width:100%!important;height:100%!important;max-width:100%;max-height:100%;aspect-ratio:32/21;object-fit:contain;object-position:50% 50%;filter:drop-shadow(0 12px 16px rgba(0,0,0,.76))}
.nfcg-quality-low .nfcg-pixi-canvas{filter:drop-shadow(0 5px 7px rgba(0,0,0,.62))}
@media (max-width:1000px){.nfcg-stage-game .nfcg-board-column{min-height:510px}.nfcg-stage-game .nfcg-pixi-board-wrap{min-height:480px}.nfcg-stage-game .nfcg-pixi-host{width:680px;min-width:680px;min-height:447px}.nfcg-stage-game .nfcg-pixi-canvas{height:auto!important;aspect-ratio:32/21}}

/* 2.7.0 shared character chat, original full card art and guaranteed complete-board fit. */
.nfcg-chat-strip{position:relative;z-index:22;display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,38vw);gap:10px;flex:0 0 98px;min-height:98px;padding:8px 12px;border-top:1px solid rgba(214,178,103,.48);border-bottom:1px solid #0a0609;background:linear-gradient(180deg,rgba(34,23,27,.98),rgba(10,8,13,.99));box-shadow:inset 0 2px rgba(255,230,181,.08),0 -12px 28px rgba(0,0,0,.48)}
.nfcg-chat-feed{display:flex;align-items:stretch;gap:8px;min-width:0;padding:2px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#775f3c #110c10}
.nfcg-chat-message{display:grid;grid-template-columns:54px minmax(145px,1fr);gap:8px;flex:0 0 clamp(225px,20vw,310px);min-width:0;padding:5px 9px 5px 5px;border:1px solid #5a3b3e;border-radius:10px 3px 10px 3px;background:linear-gradient(130deg,#291419,#100c11 72%);box-shadow:inset 0 1px rgba(255,231,194,.12),0 5px 12px rgba(0,0,0,.55)}
.nfcg-chat-message.faction-a{border-color:#3d7188;background:linear-gradient(130deg,#132b39,#0b0c12 72%)}.nfcg-chat-message.is-mine{box-shadow:inset 0 0 0 1px rgba(246,213,132,.3),0 0 15px rgba(197,151,63,.13)}
.nfcg-chat-avatar{position:relative;width:52px;height:70px;overflow:hidden;border:1px solid #a9844c;border-radius:7px 2px 7px 2px;background:#07070a;box-shadow:inset 0 0 12px #000,3px 5px 8px rgba(0,0,0,.65)}
.nfcg-chat-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 17%;filter:contrast(1.08) saturate(.9) drop-shadow(0 5px 4px #000)}
.nfcg-chat-unknown{display:grid;place-items:center;width:100%;height:100%;color:#b59563;background:radial-gradient(circle,#2b2021,#07070a);font:900 30px Georgia,serif}
.nfcg-chat-message header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.nfcg-chat-message strong{overflow:hidden;color:#f1d9a2;font:700 11px/1.2 Georgia,"Noto Serif TC",serif;text-overflow:ellipsis;white-space:nowrap}.nfcg-chat-message small{flex:none;color:#867a6b;font:8px/1.2 ui-monospace,monospace}.nfcg-chat-message p{display:-webkit-box;margin:5px 0 0;overflow:hidden;color:#ece4d6;font:11px/1.45 "Noto Serif TC",sans-serif;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere}
.nfcg-chat-empty{display:grid;place-items:center;min-width:100%;margin:0;color:#8d806f;font:11px/1.4 Georgia,"Noto Serif TC",serif;letter-spacing:.06em}
.nfcg-chat-compose{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:22px 44px;gap:5px 7px;align-content:center;padding:3px 4px}.nfcg-chat-compose label{grid-column:1/-1;color:#c9a96f;font:700 10px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.12em}.nfcg-chat-compose input{grid-column:1/3;min-width:0;height:42px;padding:0 12px;color:#f5eee2;border:1px solid #755a38;border-radius:8px 2px 8px 2px;outline:0;background:#090a0e;box-shadow:inset 0 4px 12px #000;font:12px/1.2 "Noto Serif TC",sans-serif}.nfcg-chat-compose input:focus{border-color:#e2bb68;box-shadow:inset 0 4px 12px #000,0 0 0 2px rgba(224,180,91,.18)}.nfcg-chat-compose span{align-self:center;color:#897967;font:9px/1 ui-monospace,monospace}.nfcg-chat-compose button{height:42px;padding:0 16px;color:#28150c;border:1px solid #f1cf7e;border-radius:8px 2px 8px 2px;background:linear-gradient(#e4bd65,#a86b2d);box-shadow:inset 0 1px #fff0bb,0 4px 0 #4b2515;font:900 11px/1 "Noto Serif TC",sans-serif;cursor:pointer}
.nfcg-mini-card{grid-template-columns:58px minmax(0,1fr);min-height:82px}.nfcg-mini-card img{width:56px!important;height:72px!important;padding:0!important;object-fit:contain!important;object-position:center!important;border-radius:3px;background:radial-gradient(circle at 50% 65%,#33261b,#07070a 74%)}.nfcg-mini-card.is-unknown{grid-template-columns:58px minmax(0,1fr)}.nfcg-mini-card.is-unknown>div{width:56px;height:72px}
.nfcg-stage-game .nfcg-pixi-host{width:100%!important;min-width:0!important;min-height:0;container-type:size}.nfcg-stage-game .nfcg-pixi-canvas{display:block;flex:none;aspect-ratio:32/21!important;object-fit:contain!important;object-position:center!important}
@media (max-width:1000px){.nfcg-stage-game .nfcg-pixi-board-wrap{min-height:460px;overflow:hidden}.nfcg-stage-game .nfcg-pixi-host{width:100%!important;min-width:0!important;min-height:430px}.nfcg-chat-strip{grid-template-columns:1fr;flex-basis:auto}.nfcg-chat-feed{min-height:88px}.nfcg-chat-compose{min-height:76px}.nfcg-stage-game .nfcg-pixi-canvas{aspect-ratio:32/21!important}}
@media (max-width:700px){.nfcg-stage-game .nfcg-pixi-host{width:100%!important;min-width:0!important;min-height:300px}.nfcg-stage-game .nfcg-board-column{min-height:370px}.nfcg-stage-game .nfcg-pixi-board-wrap{min-height:350px}.nfcg-chat-strip{padding:7px}.nfcg-chat-message{flex-basis:235px}.nfcg-chat-compose{grid-template-columns:minmax(0,1fr) auto auto}.nfcg-chat-compose input{grid-column:1/2}.nfcg-chat-compose button{padding:0 12px}}

/* 2.9.1 inspection camera: full-board default, lossless wheel zoom and middle-button pan. */
.nfcg-stage-game .nfcg-pixi-host{isolation:isolate;cursor:zoom-in;touch-action:manipulation}
.nfcg-stage-game .nfcg-pixi-host.has-map-backdrop{background-color:#020205!important;background-image:linear-gradient(90deg,rgba(1,2,6,.58),rgba(2,3,8,.2) 24%,rgba(2,3,8,.1) 50%,rgba(2,3,8,.2) 76%,rgba(1,2,6,.58)),linear-gradient(180deg,rgba(1,2,6,.24),rgba(1,1,4,.48)),var(--nfcg-board-backdrop-image)!important;background-size:cover,cover,cover!important;background-position:center,center,center!important;background-repeat:no-repeat!important;background-blend-mode:normal,normal,normal;box-shadow:inset 0 0 86px 22px rgba(0,0,0,.66),inset 0 0 0 1px rgba(217,179,98,.16)}
.nfcg-stage-game .nfcg-pixi-host.has-map-backdrop>.nfcg-pixi-canvas{position:relative;z-index:2}
.nfcg-stage-game .nfcg-pixi-host::after{
  content:"滾輪縮放 · 中鍵拖曳 · 中鍵雙擊重設  ×" attr(data-zoom);
  position:absolute;right:12px;bottom:10px;z-index:40;padding:6px 10px;color:#e7d6ad;
  border:1px solid rgba(215,180,104,.62);border-radius:13px 3px 12px 3px;
  background:linear-gradient(135deg,rgba(45,28,24,.94),rgba(10,7,13,.94));
  box-shadow:0 8px 22px rgba(0,0,0,.72),inset 0 0 12px rgba(153,91,46,.16);
  font:700 9px/1.2 "Noto Serif TC",serif;letter-spacing:.06em;pointer-events:none
}
.nfcg-stage-game .nfcg-pixi-host.is-board-zoomed{cursor:grab}
.nfcg-stage-game .nfcg-pixi-host.is-board-panning{cursor:grabbing}
.nfcg-stage-game .nfcg-pixi-canvas,.nfcg-stage-game .nfcg-three-fx-canvas{transform-origin:50% 50%;will-change:transform;image-rendering:auto;backface-visibility:hidden}
.nfcg-stage-game .nfcg-pixi-host:not(.is-board-panning) .nfcg-pixi-canvas,.nfcg-stage-game .nfcg-pixi-host:not(.is-board-panning) .nfcg-three-fx-canvas{transition:transform .12s cubic-bezier(.2,.75,.25,1)}
@media (max-width:700px){.nfcg-stage-game .nfcg-pixi-host::after{content:"桌面版可用滾輪縮放";right:7px;bottom:6px;padding:4px 7px;font-size:7px}}

/* 2.8.0 embedded GLB overlay, terrain advisories and safer exit placement. */
.nfcg-three-fx-canvas{position:absolute!important;z-index:18;left:50%;top:50%;display:block;max-width:100%;max-height:100%;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 15px 16px rgba(0,0,0,.62))}
.nfcg-head-tools{display:flex;align-items:center;gap:14px;padding-left:16px;border-left:1px solid #30272a}
.nfcg-gpu-retry{display:grid;gap:2px;min-width:96px;height:36px;padding:5px 10px;color:#d8c49b;border:1px solid #78623d;border-radius:8px 2px 8px 2px;background:linear-gradient(145deg,#292116,#0d0b0c);box-shadow:inset 0 1px rgba(255,239,198,.09);font-family:"Noto Serif TC",serif;text-align:left}.nfcg-gpu-retry b{font-size:10px;line-height:1}.nfcg-gpu-retry span{color:#a89776;font-size:8px;line-height:1}.nfcg-gpu-retry:hover{color:#fff0c3;border-color:#c19a55;background:linear-gradient(145deg,#3a2c18,#120e0d)}
.nfcg-head-exit{min-width:86px;height:36px;padding:0 14px;color:#c9adb0;border:1px solid #6d3339;border-radius:8px 2px 8px 2px;background:linear-gradient(145deg,#30151a,#100a0d);box-shadow:inset 0 1px rgba(255,228,204,.08);font:800 10px/1 "Noto Serif TC",sans-serif;letter-spacing:.08em}
.nfcg-head-exit:hover{color:#ffe2df;border-color:#c35a61;background:#471c23}
.nfcg-terrain-advisory{margin:16px 0 4px;padding:13px 15px;border:1px solid #695637;border-radius:10px 3px 10px 3px;background:linear-gradient(145deg,rgba(33,26,20,.96),rgba(10,10,13,.98));box-shadow:inset 0 1px rgba(255,235,194,.1),0 8px 18px rgba(0,0,0,.38)}
.nfcg-terrain-advisory>strong{display:block;margin-bottom:8px;color:#e5c477;font:800 11px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.1em}.nfcg-terrain-advisory ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.nfcg-terrain-advisory li{display:grid;grid-template-columns:86px 1fr;gap:9px;color:#c8c0b4;font-size:11px;line-height:1.45}.nfcg-terrain-advisory li b{color:#b9d798}.nfcg-terrain-advisory li.is-risk b{color:#ed9b82}
@media (max-width:1000px){.nfcg-head-tools{grid-column:3;grid-row:1;gap:8px;padding-left:8px}.nfcg-gpu-retry{min-width:82px;padding-inline:7px}.nfcg-head-exit{min-width:74px;padding:0 9px}.nfcg-head-menu{grid-column:auto;grid-row:auto}}
@media (max-width:700px){.nfcg-game-head{grid-template-columns:minmax(0,1fr) auto auto}.nfcg-head-tools{gap:6px;padding-left:6px}.nfcg-gpu-retry{min-width:72px;height:34px}.nfcg-gpu-retry span{display:none}.nfcg-head-exit{min-width:66px;height:34px;padding:0 7px;font-size:9px}.nfcg-terrain-advisory li{grid-template-columns:1fr}.nfcg-chat-strip{margin-bottom:14px}.nfcg-action-dock{border-top-width:2px}}

/* 2.8.0 authoritative turn clock, internal nightmare confirmations and 12x12 terrain. */
.nfcg-turn-clock{--clock-progress:0deg;position:absolute;z-index:45;right:clamp(8px,1.2vw,18px);top:50%;display:grid;place-items:center;width:clamp(86px,8vw,116px);padding:8px 7px 10px;pointer-events:none;transform:translateY(-48%);color:#ead6ae;border:1px solid rgba(155,112,64,.7);border-radius:48% 48% 18px 18px;background:linear-gradient(145deg,rgba(42,25,20,.97),rgba(7,6,10,.98));box-shadow:inset 0 2px rgba(255,228,172,.14),inset 0 -11px 18px #050306,0 9px 0 #050305,0 24px 44px rgba(0,0,0,.86)}
.nfcg-clock-crown{display:flex;align-items:center;justify-content:center;gap:5px;width:74%;height:18px;margin-top:-17px;color:#c29452}.nfcg-clock-crown i{width:18px;height:4px;border:1px solid #8b6235;border-radius:50%;background:#2b1915}.nfcg-clock-crown b{font:18px/1 Georgia,serif;filter:drop-shadow(0 3px 2px #000)}
.nfcg-clock-case{position:relative;width:clamp(68px,6.7vw,92px);aspect-ratio:1;border:6px ridge #7b5736;border-radius:50%;background:radial-gradient(circle at 38% 31%,#e8d4af,#9b8265 44%,#352923 71%,#0b090b 73%);box-shadow:inset 0 0 0 3px #1a1110,inset 6px 8px 16px rgba(255,232,181,.14),0 9px 10px #000;transition:filter .35s,transform .35s}
.nfcg-clock-face{position:absolute;inset:7px;overflow:hidden;border:1px solid rgba(52,33,29,.8);border-radius:50%;background:conic-gradient(from 0deg,rgba(104,19,27,.45) 0 var(--clock-progress),transparent var(--clock-progress) 360deg),radial-gradient(circle at 42% 34%,rgba(255,244,211,.44),rgba(113,93,77,.24) 42%,rgba(14,10,13,.88));box-shadow:inset 0 0 13px #000}
.nfcg-clock-face::after{content:"";position:absolute;inset:7px;border:1px dotted rgba(246,216,158,.52);border-radius:50%}.nfcg-clock-hand{position:absolute;z-index:3;left:calc(50% - 1px);top:14%;width:2px;height:36%;background:linear-gradient(#401217,#d0a665);box-shadow:0 0 4px #d28c55;transform:rotate(var(--clock-progress));transform-origin:50% 100%}.nfcg-clock-face>span{position:absolute;width:3px;height:8px;background:#3d1918;box-shadow:0 0 2px #e6bf7b}.nfcg-clock-face .mark-a{left:50%;top:3px}.nfcg-clock-face .mark-b{right:5px;top:47%;transform:rotate(90deg)}.nfcg-clock-face .mark-c{left:50%;bottom:3px}.nfcg-clock-face .mark-d{left:5px;top:47%;transform:rotate(90deg)}
.nfcg-clock-cracks{position:absolute;z-index:4;inset:0}.nfcg-clock-cracks i{position:absolute;left:50%;top:50%;width:38%;height:1px;opacity:0;background:linear-gradient(90deg,#f3debd,rgba(255,255,255,.08));box-shadow:0 0 2px #fff;transform-origin:left center;transition:opacity .28s}.nfcg-clock-cracks i:nth-child(1){transform:rotate(28deg)}.nfcg-clock-cracks i:nth-child(2){transform:rotate(141deg)}.nfcg-clock-cracks i:nth-child(3){transform:rotate(224deg)}.nfcg-clock-cracks i:nth-child(4){transform:rotate(306deg)}
.nfcg-clock-fragments{position:absolute;inset:0}.nfcg-clock-fragments i{position:absolute;left:50%;top:50%;width:10px;height:7px;opacity:0;background:linear-gradient(135deg,rgba(229,211,184,.82),rgba(62,47,48,.45));clip-path:polygon(0 0,100% 18%,68% 100%,18% 74%);transition:opacity .3s,transform .45s}.nfcg-turn-clock>strong{margin-top:7px;color:#fff0c9;font:900 clamp(19px,2vw,28px)/1 Georgia,serif;text-shadow:0 2px #000,0 0 10px rgba(213,94,61,.35)}.nfcg-turn-clock>small{margin-top:4px;color:#9e8e7c;font:700 7px/1.2 "Noto Serif TC",serif;letter-spacing:.08em}
.nfcg-turn-clock[data-stage="1"] .nfcg-clock-cracks i:nth-child(1),.nfcg-turn-clock[data-stage="1"] .nfcg-clock-cracks i:nth-child(2){opacity:.7}.nfcg-turn-clock[data-stage="2"] .nfcg-clock-cracks i:not(:last-child){opacity:.86}.nfcg-turn-clock[data-stage="2"] .nfcg-clock-case{filter:saturate(.82) contrast(1.12);transform:rotate(-1.5deg)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-cracks i{opacity:1}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-case{filter:saturate(.55) contrast(1.3) brightness(.7);transform:rotate(3deg) scale(.96)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-face{clip-path:polygon(0 0,58% 0,53% 34%,100% 22%,100% 100%,42% 100%,47% 58%,0 72%)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i{opacity:.85}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i:nth-child(1){transform:translate(-46px,-38px) rotate(42deg)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i:nth-child(2){transform:translate(39px,-30px) rotate(-33deg)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i:nth-child(3){transform:translate(-43px,31px) rotate(112deg)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i:nth-child(4){transform:translate(37px,37px) rotate(-82deg)}.nfcg-turn-clock[data-stage="3"] .nfcg-clock-fragments i:nth-child(5){transform:translate(5px,49px) rotate(18deg)}
.nfcg-nightmare-confirm{display:grid;grid-template-columns:minmax(170px,235px) minmax(260px,1fr);gap:24px;align-items:center;max-width:720px}.nfcg-nightmare-confirm-art{position:relative;min-height:330px;overflow:hidden;border:1px solid #79505d;border-radius:46% 46% 12px 12px;background:radial-gradient(circle at 50% 55%,#692333,#120a11 66%,#020204);box-shadow:inset 0 0 32px #000,0 20px 36px #000}.nfcg-nightmare-confirm-art img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain;filter:contrast(1.12) saturate(.9) drop-shadow(0 20px 15px #000)}.nfcg-nightmare-confirm-art i{position:absolute;inset:0;background:radial-gradient(circle at 50% 75%,transparent 25%,rgba(116,20,41,.26) 45%,transparent 66%);mix-blend-mode:screen;animation:nfcg-nightmare-breathe 2.8s ease-in-out infinite}.nfcg-nightmare-confirm h2{margin:4px 0 9px;color:#f3d9ba;font:700 clamp(24px,4vw,39px)/1.1 Georgia,"Noto Serif TC",serif}.nfcg-nightmare-confirm>div:last-child>strong{color:#d1978d;font:700 13px/1.4 Georgia,"Noto Serif TC",serif}.nfcg-nightmare-confirm>div:last-child>p:not(.nfcg-eyebrow){color:#c7beb5;font-size:13px;line-height:1.75}.nfcg-nightmare-confirm.is-fear .nfcg-nightmare-confirm-art{border-color:#67468d;background:radial-gradient(circle at 50% 55%,#45245d,#0e0915 66%,#020204)}.nfcg-nightmare-confirm.is-fear .nfcg-nightmare-confirm-art i{background:radial-gradient(circle at 50% 75%,transparent 20%,rgba(111,54,157,.34) 46%,transparent 68%)}
@keyframes nfcg-nightmare-breathe{50%{transform:scale(1.07);opacity:.55}}
.nfcg-node.terrain-puddle{background:#142e39!important;border-color:#6d9aae!important}.nfcg-cosmos-fallback{position:absolute;z-index:3;inset:-8%;width:116%;height:116%;object-fit:contain;pointer-events:none;filter:contrast(1.14) drop-shadow(0 0 8px #5c3d91)}
@media (max-width:1000px){.nfcg-turn-clock{right:5px;top:48%;transform:translateY(-50%) scale(.8);transform-origin:right center}.nfcg-nightmare-confirm{grid-template-columns:150px minmax(220px,1fr)}.nfcg-nightmare-confirm-art{min-height:260px}}
@media (max-width:700px){.nfcg-turn-clock{top:67px;right:6px;transform:scale(.62);transform-origin:right top}.nfcg-nightmare-confirm{grid-template-columns:1fr}.nfcg-nightmare-confirm-art{min-height:210px}.nfcg-nightmare-confirm-art img{object-position:50% 20%}}
.nfcg-reduced-motion .nfcg-nightmare-confirm-art i{animation:none}.nfcg-reduced-motion .nfcg-turn-clock *{transition:none!important}

/* 2.9.2.3 optional CDN cinematic lighting. Gameplay stays on the packaged Pixi board. */
.nfcg-aaa-mounted{position:relative!important;isolation:isolate}
.nfcg-aaa-lighting-layer{position:absolute;z-index:14;inset:4px;overflow:hidden;border-radius:inherit;pointer-events:none;contain:strict;transform:translateZ(0)}
.nfcg-aaa-lighting-layer::before{content:"";position:absolute;z-index:3;inset:0;background:radial-gradient(ellipse at 50% 44%,transparent 36%,rgba(2,3,7,.12) 61%,rgba(0,0,4,.48) 100%),linear-gradient(180deg,rgba(3,5,11,.12),transparent 23%,transparent 72%,rgba(2,2,5,.25));mix-blend-mode:multiply;pointer-events:none}
.nfcg-aaa-lighting-layer::after{content:"";position:absolute;z-index:4;inset:-18%;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.48'/%3E%3C/svg%3E");mix-blend-mode:soft-light;animation:nfcg-aaa-grain .42s steps(2,end) infinite;pointer-events:none}
.nfcg-aaa-lighting-canvas{position:absolute;z-index:2;inset:0;display:block;width:100%!important;height:100%!important;opacity:.94;mix-blend-mode:screen;pointer-events:none}
.nfcg-aaa-fallback-layer{position:absolute;z-index:13;inset:4px;overflow:hidden;border-radius:inherit;pointer-events:none;isolation:isolate;transform:translateZ(0);background:radial-gradient(ellipse at 22% 7%,rgba(126,158,226,.18),transparent 34%),radial-gradient(ellipse at 78% 12%,rgba(207,73,119,.15),transparent 38%),linear-gradient(115deg,transparent 5%,rgba(120,153,218,.08) 22%,transparent 39%,rgba(192,75,121,.07) 66%,transparent 86%);mix-blend-mode:screen;animation:nfcg-aaa-fallback-breathe 5.6s ease-in-out infinite}
.nfcg-aaa-fallback-layer::before{content:"";position:absolute;inset:-20%;background:radial-gradient(ellipse at 50% 46%,rgba(91,121,181,.1),transparent 31%),repeating-conic-gradient(from 196deg at 50% -12%,transparent 0 7deg,rgba(145,175,226,.055) 8deg 11deg,transparent 12deg 19deg);filter:blur(8px);animation:nfcg-aaa-fallback-drift 9s ease-in-out infinite alternate}
.nfcg-aaa-fallback-layer::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,transparent 38%,rgba(1,2,6,.18) 69%,rgba(0,0,3,.48));mix-blend-mode:multiply}
.nfcg-aaa-fallback-layer>i{position:absolute;z-index:2;left:var(--aaa-mote-x);top:var(--aaa-mote-y);width:4px;height:4px;border-radius:50%;background:#ffe8bd;box-shadow:0 0 7px #f2c887,0 0 18px rgba(131,163,222,.72);opacity:.24;transform:scale(var(--aaa-mote-scale));animation:nfcg-aaa-fallback-mote 4.8s var(--aaa-mote-delay) ease-in-out infinite}
@keyframes nfcg-aaa-fallback-breathe{50%{filter:brightness(1.16) saturate(1.13);opacity:.88}}
@keyframes nfcg-aaa-fallback-drift{0%{transform:translate3d(-2%,1%,0) scale(1.02)}100%{transform:translate3d(2%,-2%,0) scale(1.08)}}
@keyframes nfcg-aaa-fallback-mote{0%,100%{opacity:.12;translate:0 9px}48%{opacity:.66;translate:5px -16px}}
.nfcg-cdn-aaa-ready .nfcg-pixi-canvas{filter:brightness(.92) contrast(1.07) saturate(1.04) drop-shadow(0 16px 19px rgba(0,0,0,.82))!important}
.nfcg-cdn-aaa-ready .nfcg-game-head,.nfcg-cdn-aaa-ready .nfcg-roster-panel,.nfcg-cdn-aaa-ready .nfcg-log-panel,.nfcg-cdn-aaa-ready .nfcg-chat-strip,.nfcg-cdn-aaa-ready .nfcg-action-dock{box-shadow:inset 0 1px rgba(255,230,177,.11),inset 0 -15px 32px rgba(0,0,0,.38),0 16px 40px rgba(0,0,0,.66)}
.nfcg-cdn-aaa-ready .nfcg-mini-card,.nfcg-cdn-aaa-ready .nfcg-chat-message{box-shadow:inset 0 1px rgba(255,239,207,.12),inset -6px -10px 17px rgba(0,0,0,.46),0 10px 22px rgba(0,0,0,.66)!important}
.nfcg-cdn-aaa-ready .nfcg-mini-card img,.nfcg-cdn-aaa-ready .nfcg-chat-avatar img{filter:brightness(.94) contrast(1.08) saturate(1.02) drop-shadow(3px 8px 7px rgba(0,0,0,.78))!important}
.nfcg-cdn-aaa-fallback .nfcg-pixi-host{background:radial-gradient(ellipse at 48% 38%,#202833,#090b11 66%,#020205 100%);box-shadow:inset 0 0 44px rgba(0,0,0,.68)}
.nfcg-aaa-status{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;color:#d7bc7e;border:1px solid rgba(190,149,82,.38);border-radius:8px 2px 8px 2px;background:linear-gradient(145deg,rgba(42,30,26,.86),rgba(8,9,14,.9));box-shadow:inset 0 1px rgba(255,235,194,.08),0 5px 12px rgba(0,0,0,.42);font:800 7px/1 ui-monospace,monospace;letter-spacing:.08em;white-space:nowrap}
.nfcg-aaa-status[data-status="ready"]{color:#edcf88;border-color:rgba(231,186,88,.62);text-shadow:0 0 9px rgba(241,193,81,.34)}
.nfcg-aaa-status[data-status="fallback"]{color:#9d9384;border-color:rgba(133,124,110,.34)}
@keyframes nfcg-aaa-grain{0%{transform:translate3d(-2%,1%,0)}25%{transform:translate3d(1%,-1%,0)}50%{transform:translate3d(2%,2%,0)}75%{transform:translate3d(-1%,-2%,0)}100%{transform:translate3d(-2%,1%,0)}}
.nfcg-reduced-motion .nfcg-aaa-lighting-layer::after{animation:none;opacity:.045}
.nfcg-reduced-motion .nfcg-aaa-fallback-layer,.nfcg-reduced-motion .nfcg-aaa-fallback-layer::before,.nfcg-reduced-motion .nfcg-aaa-fallback-layer>i{animation:none!important}
@media (max-width:1000px){.nfcg-aaa-status{display:none}.nfcg-aaa-lighting-layer{inset:3px}}

/* 2.8.0 server-authoritative pause veil and B-faction evil power glasswork. */
.nfcg-head-pause{min-width:102px;height:36px;padding:0 12px;color:#dfc892;border:1px solid #705d3b;border-radius:8px 2px 8px 2px;background:linear-gradient(145deg,#352919,#100d0c);box-shadow:inset 0 1px rgba(255,240,197,.13),0 3px 0 #080606;font:800 9px/1 "Noto Serif TC",sans-serif;letter-spacing:.06em}.nfcg-head-pause.is-resume{color:#172114;border-color:#a7c982;background:linear-gradient(#d5e7ae,#7fa55f);box-shadow:inset 0 1px #f4ffdb,0 3px 0 #314228}
.nfcg-pause-veil{position:absolute;z-index:90;inset:94px 0 0;display:grid;place-content:center;justify-items:center;padding:24px;color:#e9ddc5;text-align:center;pointer-events:none;background:radial-gradient(circle at 50% 43%,rgba(73,58,48,.43),rgba(9,7,11,.91) 48%,rgba(2,2,4,.97));backdrop-filter:blur(5px) saturate(.45)}.nfcg-pause-veil::before,.nfcg-pause-veil::after{content:"";position:absolute;left:6%;right:6%;height:1px;background:linear-gradient(90deg,transparent,#a77a43,transparent);box-shadow:0 0 18px #925633}.nfcg-pause-veil::before{top:15%}.nfcg-pause-veil::after{bottom:15%}.nfcg-pause-veil p{margin:12px 0 2px;color:#a28c69;font:700 9px/1 Georgia,serif;letter-spacing:.3em}.nfcg-pause-veil h2{margin:5px 0;color:#f0dfbd;font:700 clamp(27px,4vw,51px)/1 Georgia,"Noto Serif TC",serif;text-shadow:0 4px #000,0 0 28px rgba(206,148,76,.24)}.nfcg-pause-veil>strong{margin:14px 0 8px;color:#fff1c9;font:900 clamp(42px,7vw,78px)/1 ui-monospace,monospace;letter-spacing:.08em;text-shadow:0 5px #000,0 0 30px rgba(218,156,79,.45)}.nfcg-pause-veil>span,.nfcg-pause-veil>small{color:#b9ad9b;font-size:11px}.nfcg-pause-veil>button{margin-top:22px;padding:12px 22px;color:#20160e;border:1px solid #efd291;border-radius:9px 2px;background:linear-gradient(#e8ca83,#a77639);box-shadow:inset 0 1px #fff1bd,0 5px 0 #452b17;font-weight:900;pointer-events:auto}.nfcg-pause-hourglass{position:relative;display:grid;place-items:center;width:92px;height:110px;color:#e4c788;border-block:9px ridge #80603a;filter:drop-shadow(0 12px 9px #000)}.nfcg-pause-hourglass::before{content:"";position:absolute;inset:9px 19px;border:3px solid #684d33;clip-path:polygon(0 0,100% 0,64% 48%,100% 100%,0 100%,36% 48%);background:conic-gradient(from 145deg,transparent,#a87e3e 22%,#ead49d 30%,transparent 42%)}.nfcg-pause-hourglass i{position:absolute;left:12px;right:12px;height:4px;background:linear-gradient(90deg,#342319,#d4ac66,#342319)}.nfcg-pause-hourglass i:first-child{top:0}.nfcg-pause-hourglass i:last-child{bottom:0}.nfcg-pause-hourglass b{font:800 21px/1 Georgia,serif;text-shadow:0 2px #000}.nfcg-is-paused .nfcg-game-layout,.nfcg-is-paused .nfcg-action-dock{filter:saturate(.35) brightness(.48)}
.nfcg-evil-meter{position:relative;z-index:24;display:grid;grid-template-columns:46px auto minmax(150px,260px) 42px;align-items:center;gap:10px;flex:0 0 50px;min-height:50px;padding:5px clamp(12px,3vw,36px);border-block:1px solid rgba(126,65,122,.5);background:linear-gradient(90deg,#070609,rgba(39,12,45,.95) 23%,rgba(23,7,30,.97) 76%,#070609);box-shadow:inset 0 1px rgba(244,190,255,.08),inset 0 -8px 16px rgba(0,0,0,.55)}.nfcg-evil-emblem{display:grid;place-items:center;width:39px;height:39px;color:#d89ce0;border:2px ridge #634067;border-radius:50%;background:radial-gradient(circle at 36% 28%,#74466f,#190d20 57%,#020204);box-shadow:inset 0 0 12px #000,0 0 15px rgba(190,75,208,.25);font:26px/1 Georgia,serif}.nfcg-evil-meter>div:nth-child(2){display:flex;align-items:baseline;gap:9px}.nfcg-evil-meter span{color:#a474aa;font:700 8px/1 Georgia,serif;letter-spacing:.18em}.nfcg-evil-meter strong{color:#ead4ea;font:800 12px/1.1 "Noto Serif TC",serif}.nfcg-evil-meter small{color:#89788b;font-size:8px}.nfcg-evil-meter>b{color:#f2d6f3;font:900 17px/1 Georgia,serif;text-shadow:0 0 9px #d65ddf}.nfcg-evil-vials{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;height:29px}.nfcg-evil-vials>i{position:relative;overflow:hidden;border:2px ridge #5d4b60;border-radius:4px 4px 9px 9px;background:linear-gradient(90deg,rgba(255,255,255,.07),rgba(10,6,12,.72));box-shadow:inset 0 0 9px #000,0 3px 5px #000}.nfcg-evil-vials>i::after{content:"";position:absolute;left:18%;top:7%;width:14%;height:65%;border-radius:99px;background:rgba(255,255,255,.18)}.nfcg-evil-vials>i b{position:absolute;inset:100% 2px 2px;border-radius:2px 2px 6px 6px;background:radial-gradient(circle at 50% 80%,#ff92ff,#6f1688 44%,#28042e 72%);box-shadow:0 0 14px #d849ec;transition:inset .4s ease}.nfcg-evil-vials>i.is-filled b{inset:18% 2px 2px;animation:nfcg-evil-pulse 2.6s ease-in-out infinite}.nfcg-evil-meter.is-empty{border-color:#522934;filter:saturate(.55)}.nfcg-evil-meter.is-empty .nfcg-evil-emblem{color:#765b6c;box-shadow:inset 0 0 12px #000}.nfcg-action-dock.is-paused{justify-content:center}
@keyframes nfcg-evil-pulse{50%{filter:brightness(1.28);transform:scaleY(.93);transform-origin:bottom}}
@media (max-width:1000px){.nfcg-evil-meter{grid-template-columns:40px auto minmax(120px,220px) 36px}.nfcg-evil-meter small{display:none}.nfcg-pause-veil{inset:86px 0 0}.nfcg-head-pause{min-width:86px;padding:0 8px}}
@media (max-width:700px){.nfcg-head-pause{min-width:64px;height:34px;font-size:8px}.nfcg-evil-meter{grid-template-columns:34px minmax(72px,auto) minmax(104px,1fr) 28px;gap:6px;padding-inline:7px}.nfcg-evil-emblem{width:32px;height:32px;font-size:20px}.nfcg-evil-meter span,.nfcg-evil-meter small{display:none}.nfcg-pause-veil{inset:120px 0 0}.nfcg-pause-hourglass{transform:scale(.78)}.nfcg-pause-veil>strong{font-size:46px}}
.nfcg-reduced-motion .nfcg-evil-vials>i.is-filled b{animation:none}

/* 2.8.0 illustrated tutorial and photorealistic wind-up duck fallback. */
.nfcg-tutorial{width:min(1060px,90vw);max-height:82vh;overflow:auto;padding-right:8px;color:#d9d0c3;scroll-behavior:smooth}.nfcg-tutorial>h2{margin:4px 0 10px;color:#f1d8a9;font:700 clamp(28px,4vw,48px)/1.05 Georgia,"Noto Serif TC",serif}.nfcg-tutorial>nav{position:sticky;z-index:5;top:-1px;display:flex;gap:8px;padding:9px;border-block:1px solid #6e5131;background:rgba(12,9,11,.96);backdrop-filter:blur(8px)}.nfcg-tutorial>nav a{padding:7px 13px;color:#e3c37f;border:1px solid #5c482f;border-radius:8px 2px;background:#20171a;font:800 10px/1 "Noto Serif TC",sans-serif;text-decoration:none}.nfcg-tutorial-basics,.nfcg-tutorial-tips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.nfcg-tutorial-basics article,.nfcg-tutorial-tips article{padding:15px;border:1px solid #594530;border-radius:13px 3px;background:linear-gradient(145deg,#24181a,#09090d);box-shadow:inset 0 1px rgba(255,232,191,.1),0 8px 22px #000}.nfcg-tutorial-basics b,.nfcg-tutorial-tips h3{color:#e6c478}.nfcg-tutorial p,.nfcg-tutorial li{font-size:11px;line-height:1.65}.nfcg-tutorial-tips ul{margin:8px 0 0;padding-left:20px}.nfcg-tutorial-section{margin:25px 0}.nfcg-tutorial-section>h3{padding-bottom:9px;color:#eed29a;border-bottom:1px solid #654c31;font:700 21px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-tutorial-cards,.nfcg-tutorial-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:12px}.nfcg-tutorial-cards article,.nfcg-tutorial-items article{display:grid;grid-template-columns:94px minmax(0,1fr);gap:11px;min-height:148px;padding:8px;border:1px solid #4e3a33;border-radius:11px 3px;background:radial-gradient(circle at 20% 45%,#382529,#0b0a0d 72%);box-shadow:inset 0 1px rgba(255,232,192,.08),0 9px 16px rgba(0,0,0,.5)}.nfcg-tutorial-cards img,.nfcg-tutorial-items img{width:94px;height:132px;object-fit:contain;border-radius:7px 2px;background:#050507;filter:drop-shadow(0 8px 6px #000)}.nfcg-tutorial-cards small,.nfcg-tutorial-items small{color:#98856d;font:8px/1.2 ui-monospace,monospace}.nfcg-tutorial-cards h4,.nfcg-tutorial-items h4{margin:5px 0;color:#f0dfbd;font:700 14px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-tutorial-cards b{color:#ca9c68;font-size:10px}.nfcg-tutorial-cards p,.nfcg-tutorial-items p{margin:6px 0 0;color:#bdb4a8;font-size:9px;line-height:1.5}.nfcg-item-card>small{display:block;margin-top:5px;color:#ad9871;font:8px/1.3 "Noto Serif TC",sans-serif}.nfcg-duck-fallback{position:absolute;z-index:12;left:50%;bottom:23%;width:82%;height:82%;object-fit:contain;pointer-events:none;transform:translateX(-50%);filter:drop-shadow(0 9px 5px rgba(0,0,0,.85));animation:nfcg-duck-hop 1.15s ease-in-out infinite}.nfcg-duck-fallback.is-broken{bottom:4%;height:65%;animation:none;filter:saturate(.72) drop-shadow(0 7px 5px #000)}
@keyframes nfcg-duck-hop{50%{transform:translate(-50%,-13%) rotate(3deg);filter:drop-shadow(0 15px 8px rgba(0,0,0,.65)) brightness(1.08)}}
@media (max-width:700px){.nfcg-tutorial{width:84vw}.nfcg-tutorial-basics,.nfcg-tutorial-tips{grid-template-columns:1fr}.nfcg-tutorial-cards,.nfcg-tutorial-items{grid-template-columns:1fr}.nfcg-tutorial>nav{overflow-x:auto}.nfcg-tutorial>nav a{white-space:nowrap}}
.nfcg-reduced-motion .nfcg-duck-fallback{animation:none}

/* 2.9.3.6: persistent cinematic props for the requested character reworks. */
.nfcg-toybox-fallback{position:absolute;z-index:13;left:50%;top:50%;width:96%;height:96%;object-fit:contain;pointer-events:none;transform:translate(-50%,-55%);filter:drop-shadow(0 9px 6px rgba(0,0,0,.9)) drop-shadow(0 0 8px rgba(212,165,77,.45));animation:nfcg-toybox-hover 2.2s ease-in-out infinite alternate}
.nfcg-toybox-fallback.is-destroyed{width:112%;height:112%;transform:translate(-50%,-48%);filter:drop-shadow(0 8px 5px rgba(0,0,0,.95));animation:none}.nfcg-node.box-destroyed::after{display:none}
.nfcg-bubbles-fallback{position:absolute;z-index:15;left:50%;top:50%;width:112%;height:112%;object-fit:contain;pointer-events:none;transform:translate(-50%,-58%);filter:drop-shadow(0 0 8px rgba(89,205,255,.85)) saturate(1.12);animation:nfcg-real-bubbles 1.8s ease-in-out infinite alternate}
.nfcg-node.has-blood-trail{z-index:18!important}.nfcg-blood-trail-fallback{position:absolute;z-index:50;left:50%;top:50%;width:118%;height:118%;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%) rotate(-7deg);filter:contrast(1.16) saturate(1.2) drop-shadow(0 2px 2px rgba(0,0,0,.9)) drop-shadow(0 0 7px rgba(180,0,20,.78));animation:nfcg-blood-trail-pulse 1.25s ease-in-out infinite alternate}
.nfcg-token .nfcg-token-blood-drops{position:absolute;z-index:8;left:52%;top:45%;width:46%;height:52%;border:0!important;border-radius:0!important;object-fit:contain;background:transparent!important;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 0 4px rgba(184,0,24,.82));animation:nfcg-blood-drip 1.05s ease-in infinite}
.nfcg-token .nfcg-token-sweat-drops{position:absolute;z-index:9;left:52%;top:45%;width:74%;height:82%;border:0!important;border-radius:0!important;object-fit:contain;background:transparent!important;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 0 5px rgba(137,220,255,.72));animation:nfcg-sweat-drip 1.18s ease-in infinite}
@keyframes nfcg-sweat-drip{0%{opacity:.25;transform:translate(-50%,-57%) scale(.86)}35%{opacity:.96}100%{opacity:.12;transform:translate(-50%,-38%) scale(1.02)}}
.nfcg-ponyo-balloon-fallback{position:absolute!important;z-index:12!important;left:50%!important;top:47%!important;width:82%!important;height:105%!important;object-fit:contain!important;transform:translate(-50%,-63%);filter:drop-shadow(0 10px 8px rgba(0,0,0,.72)) drop-shadow(0 0 8px rgba(197,17,44,.5));pointer-events:none;animation:nfcg-ponyo-balloon-bob 2.4s ease-in-out infinite}
.nfcg-ponyo-balloon-fallback.is-broken{top:58%!important;width:92%!important;height:72%!important;transform:translate(-50%,-50%);animation:nfcg-ponyo-balloon-debris 1.3s ease-out both}
@keyframes nfcg-ponyo-balloon-bob{0%,100%{transform:translate(-50%,-63%) rotate(-1.5deg)}50%{transform:translate(-50%,-74%) rotate(1.8deg)}}
@keyframes nfcg-ponyo-balloon-debris{0%{opacity:.2;transform:translate(-50%,-50%) scale(1.24)}45%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.nfcg-pochi-bark .nfcg-pixi-host::after,.nfcg-pochi-bark .nfcg-board::after{content:'ワン！ ワン！';position:absolute;z-index:9999;left:50%;top:38%;transform:translate(-50%,-50%) scale(.72) rotate(-5deg);font:900 clamp(34px,6vw,92px)/1 'Arial Black','Noto Sans JP',sans-serif;letter-spacing:.08em;color:#fff3c0;-webkit-text-stroke:3px #3d1709;text-shadow:0 5px 0 #8c2d18,0 0 18px #ffb340,0 0 44px rgba(255,86,34,.78);pointer-events:none;animation:nfcg-pochi-bark-text 1.2s cubic-bezier(.18,.82,.22,1) both}
@keyframes nfcg-pochi-bark-text{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-9deg)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(4deg)}70%{opacity:1;transform:translate(-50%,-50%) scale(.96) rotate(-2deg)}100%{opacity:0;transform:translate(-50%,-58%) scale(1.18) rotate(1deg)}}
.nfcg-ponyo-hug-fx{position:absolute;z-index:9997;width:1px;height:1px;pointer-events:none;transform:translate(-50%,-58%)}
.nfcg-ponyo-hug-fx i{position:absolute;left:var(--heart-x);top:10px;width:22px;height:22px;background:linear-gradient(135deg,#fff3f5 0 14%,#ff789d 34%,#a50839 100%);border-radius:50% 50% 45% 8%;transform:rotate(-45deg) scale(var(--heart-scale));filter:drop-shadow(0 0 5px #ffd1dc) drop-shadow(0 0 13px rgba(255,35,103,.82));animation:nfcg-ponyo-heart-rise 1.75s var(--heart-delay) cubic-bezier(.18,.72,.3,1) both}
.nfcg-ponyo-hug-fx i::before,.nfcg-ponyo-hug-fx i::after{content:'';position:absolute;width:22px;height:22px;background:inherit;border-radius:50%}
.nfcg-ponyo-hug-fx i::before{left:11px;top:0}.nfcg-ponyo-hug-fx i::after{left:0;top:-11px}
@keyframes nfcg-ponyo-heart-rise{0%{opacity:0;transform:translateY(20px) rotate(-45deg) scale(.3)}18%{opacity:1}72%{opacity:.95}100%{opacity:0;transform:translateY(calc(-1 * var(--heart-rise))) rotate(-28deg) scale(var(--heart-scale))}}
.nfcg-ponyo-hug-fx.is-reduced i{animation-duration:.8s}
@keyframes nfcg-toybox-hover{to{transform:translate(-50%,-62%) rotate(1.5deg);filter:drop-shadow(0 12px 7px rgba(0,0,0,.92)) drop-shadow(0 0 12px rgba(226,181,92,.58))}}
@keyframes nfcg-real-bubbles{0%{opacity:.68;transform:translate(-50%,-48%) scale(.9)}100%{opacity:1;transform:translate(-50%,-68%) scale(1.08);filter:drop-shadow(0 0 13px rgba(105,218,255,.98)) saturate(1.24)}}
@keyframes nfcg-blood-trail-pulse{to{transform:translate(-50%,-50%) rotate(-3deg) scale(1.08);filter:contrast(1.22) saturate(1.35) drop-shadow(0 2px 2px rgba(0,0,0,.95)) drop-shadow(0 0 11px rgba(220,0,28,.92))}}
@keyframes nfcg-blood-drip{0%{opacity:.28;transform:translate(-50%,-66%) scale(.86)}45%{opacity:1}100%{opacity:.1;transform:translate(-50%,-23%) scale(1.04)}}
.nfcg-reduced-motion .nfcg-toybox-fallback,.nfcg-reduced-motion .nfcg-bubbles-fallback,.nfcg-reduced-motion .nfcg-blood-trail-fallback,.nfcg-reduced-motion .nfcg-token-blood-drops,.nfcg-reduced-motion .nfcg-token-sweat-drops,.nfcg-reduced-motion .nfcg-ponyo-balloon-fallback{animation:none!important}

/* 2.9.0 item rarity, action illustrations and ornate nightmare notices. */
.nfcg-rarity-stars{position:absolute;z-index:5;left:10px;top:9px;padding:5px 8px;color:#f8e6a5;border:1px solid currentColor;border-radius:99px;background:rgba(5,5,9,.82);box-shadow:0 2px 10px #000;font:900 12px/1 Georgia,serif;letter-spacing:.12em;font-style:normal}
.nfcg-item-card.rarity-1,.nfcg-item-detail.rarity-1 .nfcg-item-detail-art,.nfcg-tutorial-items article.rarity-1{--rarity:#4ca9ff;--rarity-soft:rgba(48,143,255,.48)}
.nfcg-item-card.rarity-2,.nfcg-item-detail.rarity-2 .nfcg-item-detail-art,.nfcg-tutorial-items article.rarity-2{--rarity:#af62ff;--rarity-soft:rgba(153,69,255,.5)}
.nfcg-item-card.rarity-3,.nfcg-item-detail.rarity-3 .nfcg-item-detail-art,.nfcg-tutorial-items article.rarity-3{--rarity:#ffd35f;--rarity-soft:rgba(255,187,45,.56)}
.nfcg-item-fan .nfcg-item-card[class*="rarity-"],.nfcg-tutorial-items article[class*="rarity-"]{border-color:var(--rarity);box-shadow:-13px 18px 32px rgba(0,0,0,.72),0 0 12px var(--rarity),0 0 34px var(--rarity-soft);animation:nfcg-rarity-breathe 2.8s ease-in-out infinite}
.nfcg-item-detail[class*="rarity-"] .nfcg-item-detail-art::before{border-color:var(--rarity);box-shadow:0 0 15px var(--rarity),0 0 46px var(--rarity-soft);animation:nfcg-rarity-breathe 2.8s ease-in-out infinite}
.nfcg-rarity-explainer{padding:11px 14px;color:#d7c6a2;border-left:3px solid #a77a43;background:rgba(74,47,26,.25)}
@keyframes nfcg-rarity-breathe{50%{filter:brightness(1.12);box-shadow:0 15px 34px rgba(0,0,0,.72),0 0 24px var(--rarity),0 0 54px var(--rarity-soft)}}

.nfcg-required-notice .nfcg-modal-backdrop{background:radial-gradient(circle at 50% 42%,rgba(28,20,20,.52),rgba(1,2,5,.94) 72%),linear-gradient(rgba(3,5,8,.7),rgba(3,5,8,.92));backdrop-filter:blur(4px) saturate(.65)}
.nfcg-required-notice .nfcg-parchment-notice{position:relative;width:min(760px,92vw);min-height:390px;padding:clamp(76px,10vw,100px) clamp(38px,8vw,90px) 42px;overflow:visible;color:#2a1512;border:18px ridge #2b2423;border-radius:20px 7px 20px 7px;background:linear-gradient(96deg,rgba(72,47,29,.17),transparent 18% 82%,rgba(61,35,24,.18)),repeating-linear-gradient(0deg,rgba(77,50,30,.04) 0 1px,transparent 1px 5px),radial-gradient(circle at 48% 42%,#ead4a8,#c7aa75 72%,#8e6846);box-shadow:inset 0 0 0 4px #725442,inset 0 0 46px rgba(54,23,17,.48),0 0 0 4px #0b090b,0 30px 90px #000}
.nfcg-parchment-notice::before,.nfcg-parchment-notice::after{content:"";position:absolute;z-index:1;left:-28px;right:-28px;height:22px;border:3px solid #6b4e3a;background:repeating-linear-gradient(90deg,#171315 0 18px,#5d4233 18px 22px,#241a1a 22px 42px);box-shadow:0 5px 15px #000}
.nfcg-parchment-notice::before{top:-23px;border-radius:15px 15px 4px 4px}.nfcg-parchment-notice::after{bottom:-23px;border-radius:4px 4px 15px 15px}
.nfcg-parchment-notice .nfcg-eyebrow{color:#4a161c;font:900 16px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.28em}.nfcg-parchment-notice h2{margin:12px 0 22px;color:#28110f;text-shadow:0 1px #f0dcb2;font:800 clamp(32px,6vw,53px)/1.1 Georgia,"Noto Serif TC",serif}.nfcg-parchment-notice .nfcg-notice-message{max-width:560px;margin:20px auto 30px;color:#321d18;font:700 clamp(17px,2.5vw,23px)/1.7 Georgia,"Noto Serif TC",serif}.nfcg-parchment-notice .nfcg-notice-actor{color:#52211f;border-color:#7d4b39;background:rgba(255,244,204,.22)}
.nfcg-occult-eye{position:absolute;z-index:4;left:50%;top:-63px;width:102px;height:102px;border:9px ridge #3a2d29;border-radius:50%;background:radial-gradient(circle,#a78355 0 8%,#151012 9% 27%,#9d7950 28% 33%,#1a1415 34% 56%,#6d4c39 57% 62%,#0b090b 63%);box-shadow:inset 0 0 14px #000,0 8px 18px #000,0 0 22px rgba(142,36,42,.38);transform:translateX(-50%)}.nfcg-occult-eye i{position:absolute;left:25%;right:25%;top:37%;height:26%;border:2px solid #bd9867;border-radius:50% 10% 50% 10%;background:radial-gradient(circle,#060305 0 19%,#a57c4b 21% 38%,#dbc688 40% 48%,#4c2926 50%);transform:rotate(45deg)}
.nfcg-frame-corner{position:absolute;z-index:3;width:72px;height:72px;border-color:#5c4032;filter:drop-shadow(0 4px 3px #000)}.nfcg-frame-corner::after{content:"";position:absolute;inset:16px;border:3px solid #6b171f;transform:rotate(45deg)}.nfcg-frame-corner.corner-a{left:-15px;top:-15px;border-left:8px ridge;border-top:8px ridge}.nfcg-frame-corner.corner-b{right:-15px;top:-15px;border-right:8px ridge;border-top:8px ridge}.nfcg-frame-corner.corner-c{left:-15px;bottom:-15px;border-left:8px ridge;border-bottom:8px ridge}.nfcg-frame-corner.corner-d{right:-15px;bottom:-15px;border-right:8px ridge;border-bottom:8px ridge}
.nfcg-parchment-notice .nfcg-blood-button{min-width:min(340px,80%);padding:15px 28px;color:#f5dfbd;border:4px ridge #562027;border-radius:5px 18px 5px 18px;background:linear-gradient(#8f1827,#430710 66%,#210307);box-shadow:inset 0 1px #d87574,0 6px 0 #170205,0 0 22px rgba(131,17,31,.5);font:900 19px/1 Georgia,"Noto Serif TC",serif;letter-spacing:.12em}

.nfcg-character-dialogue .nfcg-dialogue-portrait img{object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 24px 17px rgba(0,0,0,.9)) contrast(1.06) saturate(.92)}
.nfcg-capture-duet{position:absolute;inset:0 0 170px;display:flex;align-items:flex-end;justify-content:center;gap:clamp(5px,4vw,46px);overflow:hidden;pointer-events:none}.nfcg-capture-hunter,.nfcg-capture-victim{position:relative;z-index:3;width:min(35vw,300px);height:100%;display:flex;align-items:flex-end;justify-content:center}.nfcg-capture-hunter img,.nfcg-capture-victim img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 20px 16px #000)}.nfcg-capture-hunter small,.nfcg-capture-victim small{position:absolute;bottom:8px;padding:5px 10px;color:#f1d9bc;border:1px solid #7b4d51;border-radius:99px;background:rgba(10,6,10,.8);font:800 9px/1 "Noto Serif TC",sans-serif}.nfcg-capture-victim{animation:nfcg-victim-drag 2.8s ease-in-out infinite}.nfcg-capture-hunter{animation:nfcg-hunter-lunge 2.8s ease-in-out infinite}.nfcg-capture-vortex{position:relative;z-index:2;flex:0 0 clamp(90px,13vw,160px);aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(ellipse at center,#020204 0 11%,#27132f 13% 18%,#050407 20% 28%);box-shadow:0 0 42px #7e294f,0 0 90px rgba(87,31,117,.65);animation:nfcg-vortex-pulse 1.1s linear infinite}.nfcg-capture-vortex i{position:absolute;inset:10%;border:2px solid rgba(199,116,213,.34);border-radius:46% 54% 48% 52%;animation:nfcg-vortex-spin 1.4s linear infinite}.nfcg-capture-vortex i:nth-child(2){inset:24%;animation-direction:reverse}.nfcg-capture-vortex i:nth-child(3){inset:39%}
.nfcg-capture-duet.is-beach-crab-capture .nfcg-capture-hunter{width:min(39vw,340px)}.nfcg-capture-duet .nfcg-environment-crab{display:block;width:100%;height:100%}.nfcg-capture-duet .nfcg-environment-crab>.nfcg-character-photo-base{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 22px 18px rgba(0,0,0,.94)) contrast(1.07) saturate(.96)!important}
@keyframes nfcg-victim-drag{0%,18%{transform:translateX(0) scale(1);opacity:1}60%{transform:translateX(-8%) scale(.9);opacity:.92}82%,100%{transform:translateX(-34%) scale(.22) rotate(-12deg);opacity:.18}}@keyframes nfcg-hunter-lunge{50%{transform:translateX(6%) scale(1.05)}}@keyframes nfcg-vortex-spin{to{transform:rotate(360deg)}}@keyframes nfcg-vortex-pulse{50%{transform:scale(1.12);filter:brightness(1.35)}}
.nfcg-coin-choice{text-align:center}.nfcg-coin-stage{display:grid;place-items:center;height:190px;perspective:750px}.nfcg-fortune-coin{position:relative;display:block;width:128px;height:128px;transform-style:preserve-3d;animation:nfcg-coin-idle 2.2s ease-in-out infinite}.nfcg-fortune-coin b,.nfcg-fortune-coin em{position:absolute;inset:0;display:grid;place-items:center;color:#3f120c;border:10px ridge #bd7b23;border-radius:50%;backface-visibility:hidden;background:radial-gradient(circle at 34% 27%,#ffe999,#d69a31 45%,#772b18 78%);box-shadow:inset 0 0 20px #7b2a14,0 15px 24px #000;font:900 35px/1 Georgia,"Noto Serif TC",serif;font-style:normal}.nfcg-fortune-coin em{transform:rotateY(180deg)}@keyframes nfcg-coin-idle{50%{transform:translateY(-25px) rotateY(540deg) rotateX(12deg)}}
@media (max-width:700px){.nfcg-required-notice .nfcg-parchment-notice{min-height:340px;padding:65px 25px 30px;border-width:12px}.nfcg-occult-eye{top:-48px;width:78px;height:78px}.nfcg-capture-duet{inset:0 0 190px}.nfcg-capture-hunter,.nfcg-capture-victim{width:38vw}.nfcg-capture-vortex{flex-basis:75px}.nfcg-parchment-notice::before,.nfcg-parchment-notice::after{left:-18px;right:-18px}}
.nfcg-reduced-motion .nfcg-item-card[class*="rarity-"],.nfcg-reduced-motion .nfcg-item-detail-art,.nfcg-reduced-motion .nfcg-capture-hunter,.nfcg-reduced-motion .nfcg-capture-victim,.nfcg-reduced-motion .nfcg-capture-vortex,.nfcg-reduced-motion .nfcg-capture-vortex i,.nfcg-reduced-motion .nfcg-fortune-coin{animation:none!important}

.nfcg-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.nfcg-mode-grid article{display:flex;min-height:210px;padding:14px;flex-direction:column;border:1px solid #695238;border-radius:13px 3px;background:linear-gradient(145deg,rgba(45,29,27,.96),rgba(8,8,12,.98));box-shadow:inset 0 1px rgba(255,228,178,.1),0 12px 24px rgba(0,0,0,.55)}.nfcg-mode-grid small{color:#b7945e;font:800 8px/1.2 ui-monospace,monospace;letter-spacing:.12em}.nfcg-mode-grid h3{margin:8px 0;color:#f0d7a7;font:800 18px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-mode-grid p{min-height:42px;margin:0 0 8px;color:#aea395;font-size:10px;line-height:1.5}.nfcg-mode-grid label{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:6px;margin:3px 0;color:#bdae96;font-size:9px}.nfcg-mode-grid select{height:31px;color:#ead9ba;border:1px solid #665037;border-radius:5px;background:#111016}.nfcg-mode-grid button{width:100%;margin-top:auto;padding-inline:8px;font-size:10px}
@media (max-width:760px){.nfcg-mode-grid{grid-template-columns:1fr}.nfcg-mode-grid article{min-height:170px}}

/* 2.9.2 illustrated endings and artifact-safe item particles. */
.nfcg-app.nfcg-stage-finished{border:0}
@media (max-width:900px){
  .nfcg-stage-finished{padding:0}
  .nfcg-finished{min-height:100dvh;border-radius:0;border-inline:0}
  .nfcg-finish-art img{object-position:58% 50%}
  .nfcg-finished::after,.nfcg-finish-b .nfcg-finished::after{background:linear-gradient(0deg,rgba(2,3,5,.98) 0%,rgba(2,3,5,.91) 35%,rgba(2,3,5,.28) 68%,rgba(2,3,5,.06) 100%)}
  .nfcg-finish-copy{width:auto;max-width:680px;padding:clamp(34px,7vw,70px)}
  .nfcg-finish-symbol{width:76px;height:76px;margin-bottom:18px;font-size:38px}
  .nfcg-finish-copy h2{font-size:clamp(42px,10vw,70px);white-space:normal}
}
@media (max-width:560px){
  .nfcg-finish-copy{padding:80px 24px 34px}
  .nfcg-finish-copy>p:not(.nfcg-eyebrow){font-size:11px}
  .nfcg-finish-stats{gap:25px;margin:21px 0 24px}
  .nfcg-finish-actions{display:grid;width:100%}.nfcg-finish-actions button{width:100%}
}
@media (prefers-reduced-motion:reduce){.nfcg-finish-art img,.nfcg-finish-symbol{animation:none!important}}
.nfcg-reduced-motion .nfcg-finish-art img,.nfcg-reduced-motion .nfcg-finish-symbol{animation:none!important}

/* 2.9.2.1 — lazy-loaded B skill cut-ins and a consistent board-effect language. */
.nfcg-skill-cutin{position:absolute;inset:0;z-index:35;overflow:hidden;pointer-events:none;isolation:isolate;font-family:Georgia,"Noto Serif TC",serif}.nfcg-skill-dimmer{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at var(--skill-x) var(--skill-y),rgba(22,19,28,.3),rgba(0,0,0,.9));animation:nfcg-skill-dim 1.1s ease both}.nfcg-skill-card{position:absolute;z-index:3;top:6%;left:2%;display:grid;width:min(54%,560px);height:76%;margin:0;grid-template-columns:minmax(0,58%) minmax(145px,42%);align-items:end;overflow:hidden;border:1px solid rgba(226,190,121,.62);border-radius:5px 24px 5px 24px;background:linear-gradient(102deg,rgba(7,6,10,.98),rgba(27,12,24,.91) 58%,rgba(8,7,12,.96));box-shadow:0 28px 70px #000,inset 0 0 0 2px rgba(97,63,52,.38);animation:nfcg-skill-card-in 1s cubic-bezier(.12,.82,.2,1) both}.nfcg-skill-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,transparent 38%,rgba(227,188,120,.13),transparent 72%);mix-blend-mode:screen}.nfcg-skill-card img{position:relative;z-index:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 22px 17px #000) contrast(1.08) saturate(1.06)}.nfcg-hidden-nightmare{position:relative;z-index:0;display:grid;width:100%;height:100%;place-items:center;color:#261b2d;text-shadow:0 0 28px #7b245e;font:900 min(25vw,180px)/1 Georgia,serif;background:radial-gradient(circle,#341a3e,transparent 66%)}.nfcg-skill-card figcaption{position:relative;z-index:2;align-self:center;padding:25px 22px 25px 10px;text-shadow:0 3px 10px #000}.nfcg-skill-card figcaption small{display:block;margin-bottom:13px;color:#d0a967;font:800 9px/1 ui-monospace,monospace;letter-spacing:.28em}.nfcg-skill-card figcaption strong{display:block;color:#f5e7ce;font:900 clamp(20px,3.2vw,39px)/1.18 Georgia,"Noto Serif TC",serif}.nfcg-skill-card figcaption em{display:block;margin-top:12px;color:#d48ca8;font:700 clamp(14px,2vw,23px)/1.2 "Yu Mincho","Noto Serif JP",serif;letter-spacing:.18em;font-style:normal}
.nfcg-skill-board-language{position:absolute;z-index:2;left:var(--skill-x);top:var(--skill-y);width:clamp(92px,18%,180px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.62);opacity:0;border:2px solid rgba(183,38,60,.72);border-radius:50%;background:radial-gradient(circle,rgba(180,24,48,.05),rgba(67,0,17,.38) 57%,transparent 60%);box-shadow:0 0 24px rgba(193,27,61,.44),inset 0 0 20px rgba(219,49,71,.28);animation:nfcg-skill-board-on 1.35s .95s ease-out both}.nfcg-skill-board-language>i{position:absolute;inset:15%;border:1px solid currentColor;border-radius:inherit;opacity:.58}.nfcg-skill-board-language>i:nth-child(2){inset:31%}.nfcg-skill-board-language>i:nth-child(3){inset:45%;background:currentColor;filter:blur(3px)}.scope-cross .nfcg-skill-board-language{border-radius:18%}.scope-cross .nfcg-skill-board-language::before,.scope-cross .nfcg-skill-board-language::after{content:"";position:absolute;left:50%;top:50%;border-radius:8px;background:currentColor;box-shadow:0 0 18px currentColor;opacity:.27;transform:translate(-50%,-50%)}.scope-cross .nfcg-skill-board-language::before{width:180%;height:24%}.scope-cross .nfcg-skill-board-language::after{width:24%;height:180%}.scope-nine .nfcg-skill-board-language{width:clamp(150px,30%,285px);border-radius:12px;background-image:linear-gradient(rgba(107,49,148,.25) 2px,transparent 2px),linear-gradient(90deg,rgba(107,49,148,.25) 2px,transparent 2px),radial-gradient(circle,rgba(70,17,91,.28),rgba(4,2,8,.06));background-size:33.333% 33.333%,33.333% 33.333%,100% 100%}.scope-line .nfcg-skill-board-language{width:62%;height:34px;aspect-ratio:auto;border-radius:50%;transform:translate(-50%,-50%) rotate(-8deg) scaleX(.62)}.scope-global .nfcg-skill-board-language{left:5%;right:5%;top:7%;bottom:7%;width:auto;height:auto;aspect-ratio:auto;border-radius:18px;transform:scale(.86)}.scope-target .nfcg-skill-board-language{border-radius:7% 50%;transform:translate(-50%,-50%) rotate(45deg) scale(.62)}.scope-tile .nfcg-skill-board-language{border-radius:8px}
.visual-search .nfcg-skill-board-language{color:#e94659;border-color:rgba(233,70,89,.8);background:repeating-radial-gradient(circle,rgba(232,47,68,.12) 0 6%,transparent 7% 18%);animation-name:nfcg-skill-search}.visual-attack .nfcg-skill-board-language{color:#c21932;border-color:#751020;background:linear-gradient(112deg,transparent 28%,rgba(232,42,61,.74) 30% 33%,transparent 35% 46%,rgba(146,6,28,.74) 48% 52%,transparent 54%),radial-gradient(circle,#220208,rgba(0,0,0,.72));animation-name:nfcg-skill-attack}.visual-curse .nfcg-skill-board-language{color:#963ec6;border-color:#7d3aa0;background:radial-gradient(ellipse,#2a073b,rgba(39,7,54,.48) 48%,transparent 69%);filter:drop-shadow(0 0 16px #5c1b83);animation-name:nfcg-skill-curse}.visual-control .nfcg-skill-board-language{color:#9671dc;border-color:#7555bc;background:repeating-conic-gradient(from 0deg,rgba(124,85,192,.34) 0 4deg,transparent 4deg 19deg),radial-gradient(circle,transparent 42%,rgba(102,66,169,.22) 44% 54%,transparent 56%);animation-name:nfcg-skill-control}.visual-teleport .nfcg-skill-board-language{color:#b261e5;border-color:#a14bd6;background:repeating-radial-gradient(ellipse,#050207 0 8%,#37104b 10% 16%,#09030d 18% 27%);animation-name:nfcg-skill-teleport}.visual-special .nfcg-skill-board-language{color:#dc7bb6;border-color:#b84e8c;background:radial-gradient(circle at 50% 47%,rgba(224,100,163,.48) 0 8%,transparent 9%),repeating-conic-gradient(rgba(175,62,130,.3) 0 8deg,transparent 8deg 29deg)}.visual-tracking .nfcg-skill-board-language{color:#86c5ff;border-color:#78b5ef}.visual-defense .nfcg-skill-board-language{color:#fff0b0;border-color:#f1d375;background:radial-gradient(circle,rgba(255,244,188,.3),rgba(240,202,101,.08) 56%,transparent 58%)}
.nfcg-skill-result{position:absolute;z-index:4;left:50%;bottom:7%;width:min(74%,690px);padding:13px 24px;opacity:0;color:#f5e8d2;border:1px solid rgba(221,183,116,.65);border-radius:3px 15px;background:linear-gradient(90deg,rgba(12,7,10,.96),rgba(49,14,26,.94),rgba(12,7,10,.96));box-shadow:0 14px 38px #000,0 0 25px rgba(130,31,58,.38);text-align:center;transform:translate(-50%,18px);animation:nfcg-skill-result-in 1.25s 1.18s ease both}.nfcg-skill-result small{display:block;color:#c7a268;font:800 8px/1 ui-monospace,monospace;letter-spacing:.24em}.nfcg-skill-result p{margin:7px 0 0;font:800 clamp(13px,2vw,19px)/1.45 Georgia,"Noto Serif TC",serif}
@keyframes nfcg-skill-dim{0%{opacity:0}15%,78%{opacity:1}100%{opacity:0}}@keyframes nfcg-skill-card-in{0%{opacity:0;transform:translateX(-115%) skewX(-8deg)}15%{opacity:1;transform:translateX(0) skewX(0)}35%,72%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-12%) scale(.98)}}@keyframes nfcg-skill-board-on{0%{opacity:0;transform:translate(-50%,-50%) scale(.56)}24%{opacity:.92}72%{opacity:.68}100%{opacity:0;transform:translate(-50%,-50%) scale(1.16)}}@keyframes nfcg-skill-search{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}30%{opacity:.95}100%{opacity:0;transform:translate(-50%,-50%) scale(1.42)}}@keyframes nfcg-skill-attack{0%{opacity:0;transform:translate(-50%,-50%) scale(1.35)}24%{opacity:1;transform:translate(-50%,-50%) scale(.78)}34%{transform:translate(calc(-50% - 5px),-50%) scale(.82)}42%{transform:translate(calc(-50% + 5px),-50%) scale(.82)}100%{opacity:0;transform:translate(-50%,-50%) scale(.5)}}@keyframes nfcg-skill-curse{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-8deg)}35%{opacity:.94}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3) rotate(8deg);filter:blur(5px)}}@keyframes nfcg-skill-control{0%{opacity:0;transform:translate(-50%,-50%) rotate(-35deg) scale(.5)}35%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) rotate(28deg) scale(1.14)}}@keyframes nfcg-skill-teleport{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.3)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) rotate(260deg) scale(1.38)}}@keyframes nfcg-skill-result-in{0%{opacity:0;transform:translate(-50%,18px)}15%,76%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
.nfcg-skill-cutin.is-reduced .nfcg-skill-dimmer,.nfcg-skill-cutin.is-reduced .nfcg-skill-card,.nfcg-skill-cutin.is-reduced .nfcg-skill-board-language,.nfcg-skill-cutin.is-reduced .nfcg-skill-result{animation-duration:1.2s!important;animation-delay:0s!important}.nfcg-skill-cutin.is-reduced .nfcg-skill-card{transform:none}.nfcg-skill-cutin.is-reduced .nfcg-skill-board-language{opacity:.58}
@media (max-width:700px){.nfcg-skill-card{left:3%;top:9%;width:74%;height:67%;grid-template-columns:56% 44%}.nfcg-skill-card figcaption{padding:16px 12px 16px 5px}.nfcg-skill-card figcaption small{font-size:7px}.nfcg-skill-result{bottom:5%;width:86%;padding:9px 14px}}
@media (prefers-reduced-motion:reduce){.nfcg-skill-dimmer,.nfcg-skill-card,.nfcg-skill-board-language,.nfcg-skill-result{animation-duration:1.2s!important;animation-delay:0s!important}}

.nfcg-fear-search-confirm>.nfcg-fear-search-preview{display:block;width:clamp(220px,40vw,390px);height:auto;aspect-ratio:1;margin:4px auto 10px;padding:0;border:0;background:transparent;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.78)) drop-shadow(0 0 24px rgba(178,12,35,.56))!important;animation:nfcg-fear-eye-preview 1.8s ease-in-out infinite alternate}
@keyframes nfcg-fear-eye-preview{from{transform:translateY(2px) scale(.985);opacity:.88}to{transform:translateY(-3px) scale(1.015);opacity:1}}
.nfcg-reduced-motion .nfcg-fear-search-confirm>.nfcg-fear-search-preview{animation:none}

/* 3.2.13 · Fear Search is an exact 2×2 area in both compatibility and GPU boards. */
.nfcg-node.has-fear-search-fx{box-shadow:inset 0 0 0 2px rgba(255,63,84,.72),inset 0 0 18px rgba(172,9,37,.32),0 0 12px rgba(219,31,59,.25)}
.nfcg-fear-search-fallback{position:absolute;z-index:75;left:0;top:0;width:200%;height:200%;pointer-events:none;transform-origin:center;filter:drop-shadow(0 0 13px rgba(238,22,55,.74)) drop-shadow(0 10px 10px rgba(0,0,0,.72));animation:nfcg-fear-search-2x2-fallback 1.2s ease-out both}
.nfcg-fear-search-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.nfcg-fear-search-fallback i{position:absolute;inset:4%;border:1px solid rgba(255,77,96,.64);border-radius:12%;box-shadow:inset 0 0 20px rgba(222,18,51,.38),0 0 19px rgba(219,24,52,.34);animation:nfcg-fear-search-2x2-pulse .7s ease-in-out infinite alternate}
@keyframes nfcg-fear-search-2x2-fallback{0%{opacity:0;transform:scale(.7)}30%{opacity:1}100%{opacity:.88;transform:scale(1)}}
@keyframes nfcg-fear-search-2x2-pulse{from{opacity:.42;transform:scale(.97)}to{opacity:.92;transform:scale(1.02)}}
.nfcg-reduced-motion .nfcg-fear-search-fallback,.nfcg-reduced-motion .nfcg-fear-search-fallback i{animation:none!important}

/* 2.9.2.2 · B-faction feedback when a child item is triggered. */
.nfcg-item-trigger-dialogue .nfcg-modal-backdrop{background:radial-gradient(circle at 27% 40%,rgba(170,49,71,.26),transparent 32%),radial-gradient(circle at 75% 72%,rgba(73,30,104,.22),transparent 38%),linear-gradient(rgba(2,1,4,.72),rgba(3,1,5,.97))}
.nfcg-item-trigger-dialogue .nfcg-dialogue-panel::before{border-color:rgba(215,170,89,.3);background:repeating-conic-gradient(from 18deg at 28% 42%,rgba(176,38,60,.07) 0 3deg,transparent 3deg 19deg),radial-gradient(circle at 28% 42%,rgba(141,41,70,.24),transparent 34%),radial-gradient(circle at 69% 72%,rgba(74,34,105,.14),transparent 45%);box-shadow:inset 0 0 120px #030104,0 0 75px rgba(122,25,46,.16)}
.nfcg-item-trigger-art{position:absolute;z-index:5;left:2%;bottom:104px;width:min(43vw,510px);height:min(73vh,625px);margin:0;pointer-events:none;animation:nfcg-item-trigger-in .5s cubic-bezier(.16,.82,.21,1) both}
.nfcg-item-trigger-art>i{position:absolute;left:50%;bottom:7%;width:76%;aspect-ratio:1;border:1px solid rgba(231,188,102,.54);border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(198,51,72,.3) 0 2deg,transparent 2deg 19deg),radial-gradient(circle,rgba(108,20,44,.38),rgba(17,4,12,.08) 54%,transparent 56%);box-shadow:0 0 42px rgba(187,42,68,.4),inset 0 0 36px rgba(219,171,87,.13);transform:translateX(-50%) rotate(9deg);animation:nfcg-item-trigger-seal 4.8s linear infinite}
.nfcg-item-trigger-art>i::before,.nfcg-item-trigger-art>i::after{content:"";position:absolute;inset:13%;border:1px solid rgba(224,181,102,.34);border-radius:50%}.nfcg-item-trigger-art>i::after{inset:27%;box-shadow:0 0 22px rgba(208,51,81,.4)}
.nfcg-item-trigger-art img{position:relative;z-index:2;display:block;width:100%;height:82%;object-fit:contain;object-position:center bottom;filter:contrast(1.08) saturate(1.05) drop-shadow(0 30px 20px rgba(0,0,0,.96)) drop-shadow(0 0 25px rgba(216,62,86,.32));animation:nfcg-item-trigger-hover 2.8s ease-in-out infinite}
.nfcg-item-trigger-art figcaption{position:absolute;z-index:3;left:7%;right:7%;bottom:1%;padding:12px 16px;border:1px solid rgba(215,172,91,.42);border-radius:3px 13px;background:linear-gradient(90deg,rgba(12,5,9,.97),rgba(58,12,25,.9),rgba(12,5,9,.97));box-shadow:0 12px 32px #000;text-align:center}.nfcg-item-trigger-art figcaption small{display:block;color:#d1a965;font:800 8px/1 ui-monospace,monospace;letter-spacing:.23em}.nfcg-item-trigger-art figcaption strong{display:block;margin-top:6px;color:#fae6c9;font:800 clamp(17px,2vw,25px)/1.2 Georgia,"Noto Serif TC",serif}.nfcg-item-trigger-art figcaption em{display:block;margin-top:4px;color:#c88690;font:600 9px/1.25 Georgia,serif;letter-spacing:.08em;font-style:normal}
.nfcg-item-trigger-dialogue .nfcg-dialogue-box{padding-left:min(43vw,510px);border-color:#a13343;background:repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0 1px,transparent 1px 8px),radial-gradient(circle at 78% -20%,rgba(164,45,61,.34),transparent 54%),linear-gradient(215deg,rgba(45,7,14,.99),rgba(7,4,8,.99) 72%)}
.nfcg-item-trigger-dialogue .nfcg-dialogue-kind{color:#e29a94}.nfcg-item-trigger-dialogue .nfcg-dialogue-effect b{color:#ffe1a4;border-color:rgba(229,180,91,.48);background:rgba(114,40,36,.38)}
@keyframes nfcg-item-trigger-in{from{opacity:0;transform:translateX(-70px) scale(.86);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes nfcg-item-trigger-hover{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes nfcg-item-trigger-seal{to{transform:translateX(-50%) rotate(369deg)}}
@media (max-width:700px){.nfcg-item-trigger-art{left:8vw;right:8vw;bottom:42vh;width:84vw;height:53vh}.nfcg-item-trigger-art img{height:78%}.nfcg-item-trigger-art figcaption{left:12%;right:12%;padding:8px 10px}.nfcg-item-trigger-art figcaption strong{font-size:16px}.nfcg-item-trigger-dialogue .nfcg-dialogue-box{padding:24px 18px 14px}}
@media (prefers-reduced-motion:reduce){.nfcg-item-trigger-art,.nfcg-item-trigger-art img,.nfcg-item-trigger-art>i{animation:none!important}}

/* 2.9.3.2 · Yari's server-authoritative two-faction bluff. */
.nfcg-yari-bluff-modal{z-index:260;background:radial-gradient(circle at 31% 54%,rgba(104,38,132,.28),transparent 34%)}
.nfcg-yari-bluff-modal .nfcg-modal-backdrop{cursor:default;background:radial-gradient(circle at 50% 45%,rgba(80,16,104,.26),rgba(2,1,5,.95) 67%)}
.nfcg-yari-bluff-panel{position:relative;z-index:2;display:grid;grid-template-columns:minmax(240px,38%) minmax(330px,1fr);align-items:center;width:min(960px,92vw);min-height:min(650px,88vh);overflow:hidden;border:2px ridge #b48a56;border-radius:22px 4px;background:radial-gradient(circle at 24% 36%,rgba(113,43,139,.25),transparent 39%),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 8px),linear-gradient(145deg,#1c111f,#08060c 68%);box-shadow:inset 0 0 80px #000,0 35px 110px #000,0 0 38px rgba(155,76,188,.28)}
.nfcg-yari-bluff-panel::before{content:"";position:absolute;inset:13px;border:1px solid rgba(226,188,111,.28);border-radius:15px 2px;pointer-events:none}
.nfcg-yari-bluff-panel figure{position:relative;align-self:stretch;margin:0;background:radial-gradient(circle at 50% 72%,rgba(173,81,199,.3),transparent 43%);filter:drop-shadow(22px 18px 25px rgba(0,0,0,.78))}
.nfcg-yari-bluff-panel figure img{display:block;width:100%;height:100%;max-height:650px;object-fit:contain;object-position:center bottom;filter:saturate(1.05) contrast(1.04) drop-shadow(0 22px 15px #000);animation:nfcg-yari-bluff-in .52s cubic-bezier(.15,.85,.2,1) both}
.nfcg-yari-bluff-panel figcaption{position:absolute;left:8%;right:8%;bottom:5%;padding:12px;text-align:center;border:1px solid rgba(230,190,111,.48);background:rgba(8,4,11,.9);box-shadow:0 10px 30px #000}.nfcg-yari-bluff-panel figcaption small{display:block;color:#c58bd3;font:800 9px/1 ui-monospace,monospace;letter-spacing:.24em}.nfcg-yari-bluff-panel figcaption strong{display:block;margin-top:7px;color:#f7dfb2;font:800 20px/1.2 Georgia,"Noto Serif TC",serif}
.nfcg-yari-bluff-panel>div{position:relative;padding:clamp(28px,5vw,70px)}.nfcg-yari-bluff-panel h2{margin:12px 0 22px;color:#fff0cf;font:900 clamp(26px,4vw,47px)/1.35 Georgia,"Noto Serif TC",serif;text-shadow:0 4px #000,0 0 24px rgba(190,107,218,.33)}.nfcg-yari-bluff-panel>div>p:last-of-type{color:#bfb0bf;font-size:13px;line-height:1.9}
.nfcg-yari-answer-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}.nfcg-yari-answer-actions button{min-height:68px;border:1px solid #d5ae68;border-radius:10px 2px;color:#fff2ce;background:linear-gradient(#604071,#271530);box-shadow:inset 0 1px rgba(255,255,255,.19),0 8px 0 #0b0710,0 0 24px rgba(166,81,200,.25);font:900 24px/1 Georgia,serif;letter-spacing:.16em}.nfcg-yari-answer-actions button.nfcg-action-danger{border-color:#c54c5f;background:linear-gradient(#762d3d,#2c0c14)}.nfcg-yari-answer-actions button:hover{transform:translateY(-3px);filter:brightness(1.16)}
.nfcg-action-dock.is-yari-bluff{border-top-color:#795183;background:linear-gradient(90deg,#09060d,#25102d,#09060d)}
@keyframes nfcg-yari-bluff-in{from{opacity:0;transform:translateX(-70px) scale(.9);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
@media (max-width:700px){.nfcg-yari-bluff-panel{grid-template-columns:1fr;min-height:88vh}.nfcg-yari-bluff-panel figure{height:38vh}.nfcg-yari-bluff-panel figcaption{bottom:2%}.nfcg-yari-bluff-panel>div{padding:20px}.nfcg-yari-bluff-panel h2{font-size:27px}.nfcg-yari-answer-actions{margin-top:20px}}
.nfcg-reduced-motion .nfcg-yari-bluff-panel figure img{animation:none}

/* 2.9.3.9 · Full-bleed cinematic nightmare-fairy-tale title screen. */
.nfcg-stage-lobby{display:block;min-height:100svh;padding:0!important;background:#020204}
.nfcg-stage-lobby .nfcg-lobby{position:relative;display:block;width:100vw!important;max-width:none!important;height:100svh;min-height:680px!important;margin:0;overflow:hidden;border:0;border-radius:0;background:#030407;box-shadow:none!important;transform:none;isolation:isolate}
.nfcg-stage-lobby .nfcg-lobby::before{content:"";position:absolute;z-index:2;inset:0;border:0;border-radius:0;background:linear-gradient(180deg,rgba(1,2,4,.25),transparent 20%,transparent 58%,rgba(2,1,3,.82) 89%,#020103),radial-gradient(ellipse at 50% 23%,transparent 7%,rgba(0,0,0,.17) 51%,rgba(0,0,0,.72) 100%);box-shadow:inset 0 0 115px 18px rgba(0,0,0,.84);pointer-events:none}
.nfcg-stage-lobby .nfcg-lobby::after{content:"";position:absolute;z-index:9;inset:10px;display:block;width:auto;height:auto;border:1px solid rgba(197,151,79,.32);border-radius:20px 3px;background:none;box-shadow:inset 0 0 0 2px rgba(29,15,10,.78),inset 0 0 28px rgba(0,0,0,.78),0 0 0 5px rgba(4,3,5,.72);transform:none;pointer-events:none}
.nfcg-title-backdrop{position:absolute;z-index:0;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:saturate(.92) contrast(1.08) brightness(.82);transform:scale(1.01);animation:nfcg-title-breathe 18s ease-in-out infinite alternate}
.nfcg-title-vignette{position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 51% 24%,rgba(0,0,0,.02) 0 12%,rgba(0,0,0,.48) 38%,transparent 59%),linear-gradient(90deg,rgba(2,1,3,.26),transparent 25% 72%,rgba(2,1,3,.18));mix-blend-mode:multiply}
.nfcg-title-identity{position:absolute;z-index:4;top:clamp(46px,8.5vh,108px);left:50%;width:min(920px,84vw);text-align:center;transform:translateX(-50%);filter:drop-shadow(0 18px 19px rgba(0,0,0,.92))}
.nfcg-title-identity::before,.nfcg-title-identity::after{content:"";position:absolute;top:55%;width:clamp(70px,12vw,210px);height:1px;background:linear-gradient(90deg,transparent,#a77a42)}
.nfcg-title-identity::before{right:calc(100% - 13%);transform:rotate(-3deg)}.nfcg-title-identity::after{left:calc(100% - 13%);background:linear-gradient(90deg,#a77a42,transparent);transform:rotate(3deg)}
.nfcg-title-identity>p{margin:0 0 2px;color:#bd9558;text-shadow:0 2px 5px #000;font:800 clamp(8px,1vw,12px)/1.2 ui-monospace,Consolas,monospace;letter-spacing:.43em}
.nfcg-title-identity h1{position:relative;margin:0;color:#e8d5a9;background:linear-gradient(180deg,#fff3cf 0,#d8b87e 42%,#8c6336 74%,#ead7a6 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px rgba(42,20,11,.82);font:900 clamp(68px,9.6vw,154px)/.96 Georgia,"Noto Serif TC","Microsoft JhengHei",serif;letter-spacing:.075em;text-indent:.075em;text-shadow:0 5px 0 rgba(41,18,12,.7),0 0 26px rgba(197,142,75,.16)}
.nfcg-title-identity h1::before{display:none}
.nfcg-title-identity>div{display:flex;align-items:center;justify-content:center;gap:clamp(17px,3vw,42px);margin:8px auto 0;color:#cdb98d;text-shadow:0 3px 7px #000;font:700 clamp(15px,1.75vw,25px)/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.24em}
.nfcg-title-identity>div::before,.nfcg-title-identity>div::after{content:"";width:clamp(45px,8vw,120px);height:1px;background:linear-gradient(90deg,transparent,#8c6b3c)}.nfcg-title-identity>div::after{background:linear-gradient(90deg,#8c6b3c,transparent)}
.nfcg-title-identity>div i{color:#a52d35;text-shadow:0 0 14px rgba(195,41,55,.65);font-size:1.35em;font-style:normal}
.nfcg-title-entry{position:absolute;z-index:5;left:50%;bottom:clamp(158px,18vh,210px);display:grid;justify-items:center;transform:translateX(-50%)}
.nfcg-title-start{position:relative;display:grid;place-items:center;width:clamp(300px,29vw,500px);min-height:clamp(76px,8.5vh,104px);padding:10px 55px;color:#f8e8c6;border:2px ridge #d5a65c;border-radius:5px 18px 5px 18px;outline:1px solid #30120d;outline-offset:-8px;background:radial-gradient(ellipse at 50% 12%,rgba(221,117,86,.28),transparent 52%),linear-gradient(180deg,#802d2b 0,#541315 53%,#26080b 54%,#5a171a 100%);box-shadow:inset 0 2px rgba(255,223,169,.31),inset 0 -8px 18px rgba(0,0,0,.55),0 7px 0 #150707,0 15px 32px rgba(0,0,0,.82),0 0 25px rgba(137,25,34,.24);text-shadow:0 3px 3px #170306;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}
.nfcg-title-start::before,.nfcg-title-start::after{content:"◆";position:absolute;top:50%;display:grid;place-items:center;width:34px;height:34px;color:#b88a4d;border:1px solid #a4753c;background:#24090b;transform:translateY(-50%) rotate(45deg);font:800 10px/1 Georgia}.nfcg-title-start::before{left:-17px}.nfcg-title-start::after{right:-17px}
.nfcg-title-start span{font:800 clamp(27px,3vw,45px)/1 Georgia,"Noto Serif TC",serif;letter-spacing:.14em;text-indent:.14em}.nfcg-title-start small{margin-top:5px;color:#bc9d72;font:700 8px/1 ui-monospace,monospace;letter-spacing:.21em}
.nfcg-title-start:hover,.nfcg-title-start:focus-visible{filter:brightness(1.19);transform:translateY(-4px) scale(1.015);box-shadow:inset 0 2px rgba(255,223,169,.38),inset 0 -8px 18px rgba(0,0,0,.55),0 11px 0 #150707,0 22px 42px #000,0 0 42px rgba(180,40,48,.42);outline-color:#e0bd79}.nfcg-title-start:active{transform:translateY(4px);box-shadow:inset 0 3px 12px #180305,0 2px 0 #150707,0 7px 18px #000}
.nfcg-title-entry>p{margin:16px 0 0;padding:4px 12px;color:#ac9d89;border:1px solid rgba(171,132,73,.25);border-radius:99px;background:rgba(3,2,4,.58);backdrop-filter:blur(6px);font-size:9px;letter-spacing:.07em}.nfcg-title-entry>p span{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#72aa84;box-shadow:0 0 9px #72aa84}
.nfcg-title-music{position:absolute;z-index:10;top:27px;right:31px;min-height:32px;padding:5px 12px;color:#9e907a;border:1px solid rgba(178,133,70,.38);border-radius:99px;background:rgba(5,4,7,.7);backdrop-filter:blur(8px);font-size:9px}.nfcg-title-music.is-on{color:#edd28f;border-color:#9f793c;box-shadow:0 0 18px rgba(209,164,67,.2)}
.nfcg-language-switch{position:absolute;z-index:14;top:25px;left:50%;display:flex;gap:3px;padding:3px;border:1px solid rgba(178,133,70,.42);border-radius:999px;background:rgba(5,4,7,.78);box-shadow:0 8px 22px rgba(0,0,0,.52);transform:translateX(-50%);backdrop-filter:blur(10px)}
.nfcg-language-switch button{min-height:27px;padding:5px 11px;color:#988b79;border:0;border-radius:999px;background:transparent;font:700 8px/1.1 ui-monospace,Consolas,monospace;letter-spacing:.05em;transition:color .16s ease,background .16s ease,box-shadow .16s ease}.nfcg-language-switch button:hover,.nfcg-language-switch button:focus-visible{color:#f0d99d;background:rgba(142,102,49,.18);outline:none}.nfcg-language-switch button.is-active{color:#1c1108;background:linear-gradient(180deg,#f1d694,#b98a43);box-shadow:0 0 14px rgba(226,178,83,.32)}
.nfcg-app[data-locale="en"] .nfcg-title-identity{width:min(1160px,88vw)}
.nfcg-app[data-locale="en"] .nfcg-title-identity h1{font-size:clamp(43px,5.3vw,86px);line-height:1.02;letter-spacing:.012em;text-indent:0}
.nfcg-app[data-locale="ja"] .nfcg-title-identity h1{font-size:clamp(51px,6.4vw,105px);letter-spacing:.025em;text-indent:0}
.nfcg-title-menu{position:absolute;z-index:7;left:50%;bottom:50px;display:grid;width:min(1320px,calc(100vw - 54px));grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid rgba(195,150,77,.58);border-radius:5px 14px 5px 14px;background:linear-gradient(180deg,rgba(34,24,23,.94),rgba(8,7,10,.97));box-shadow:inset 0 1px rgba(255,229,172,.16),0 12px 42px rgba(0,0,0,.86);transform:translateX(-50%);backdrop-filter:blur(12px)}
.nfcg-title-menu::before{content:"";position:absolute;inset:5px;border:1px solid rgba(128,92,52,.27);pointer-events:none}
.nfcg-title-menu>button{position:relative;z-index:1;display:grid;min-height:86px;padding:12px 12px 10px;grid-template-columns:38px 1fr;grid-template-rows:1fr 1fr;align-items:center;color:#dacdb6;border:0;border-right:1px solid rgba(160,118,61,.34);background:transparent;text-align:left;transition:background .18s ease,color .18s ease,transform .18s ease}.nfcg-title-menu>button:last-child{border-right:0}
.nfcg-title-menu>button i{grid-row:1/3;color:#c2a06c;text-shadow:0 4px 6px #000;font:400 25px/1 Georgia;font-style:normal;text-align:center}.nfcg-title-menu>button span{align-self:end;font:750 clamp(12px,1.15vw,17px)/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.08em}.nfcg-title-menu>button small{align-self:start;margin-top:3px;color:#7f786e;font-size:7px;letter-spacing:.11em}
.nfcg-title-menu>button:hover,.nfcg-title-menu>button:focus-visible,.nfcg-title-menu>button[aria-expanded="true"]{z-index:2;color:#fff1cf;outline:1px solid #b88846;outline-offset:-5px;background:radial-gradient(circle at 50% 110%,rgba(139,35,40,.48),transparent 68%),rgba(91,53,29,.26);transform:translateY(-3px)}
.nfcg-title-panel{position:absolute;z-index:12;left:50%;bottom:156px;width:min(560px,calc(100vw - 36px));padding:24px 27px 26px;color:#d9cbb3;border:2px ridge #b78749;border-radius:4px 18px 4px 18px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 8px),radial-gradient(circle at 50% 0,rgba(116,35,45,.37),transparent 52%),linear-gradient(145deg,rgba(33,18,19,.98),rgba(5,5,8,.99));box-shadow:inset 0 0 0 7px #12090a,inset 0 0 0 8px rgba(200,155,82,.22),0 22px 75px #000;transform:translateX(-50%);animation:nfcg-title-panel-in .24s ease-out both}
.nfcg-title-panel[hidden]{display:none!important}.nfcg-title-panel>p{margin:0;color:#b98a50;font:800 8px/1 ui-monospace,monospace;letter-spacing:.28em}.nfcg-title-panel h2{margin:8px 0 18px;color:#f1dfbd;font:800 clamp(23px,3vw,34px)/1.1 Georgia,"Noto Serif TC",serif}.nfcg-title-panel>.nfcg-primary{width:100%;margin-top:15px}.nfcg-title-panel-close{position:absolute;top:12px;right:14px;width:32px;height:32px;color:#c6aa7a;border:1px solid #765733;border-radius:50%;background:#14090b;font:700 20px/1 Georgia}.nfcg-title-panel-close:hover{color:#fff0c6;border-color:#c58d42;background:#57171c}
.nfcg-title-panel .nfcg-code-field>span:first-child{color:#ac9d88}.nfcg-title-panel .nfcg-code-row input{background:#07070a}.nfcg-title-panel .nfcg-code-row button{color:#f5e5c4;border-color:#9f733f;background:linear-gradient(#693626,#2e1112)}
.nfcg-title-solo-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nfcg-title-solo-options label{display:grid;gap:7px;color:#aa9a84;font-size:10px}.nfcg-title-solo-options label:last-child{grid-column:1/-1}.nfcg-title-solo-options select{height:44px;padding:0 12px;color:#f1dfbd;border:1px solid #705434;border-radius:4px;background:#09080b;outline:none}.nfcg-title-solo-options select:focus{border-color:#d2a354;box-shadow:0 0 0 3px rgba(193,145,70,.14)}
.nfcg-campaign-entry{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin-top:14px;padding:13px 14px;border:1px solid rgba(151,73,108,.5);border-radius:5px;background:linear-gradient(120deg,rgba(43,9,29,.84),rgba(10,7,12,.9));box-shadow:inset 0 0 24px rgba(158,45,93,.1)}.nfcg-campaign-entry div{display:grid;gap:4px}.nfcg-campaign-entry b{color:#f3d7dd;font:700 13px/1.2 Georgia,serif;letter-spacing:.08em}.nfcg-campaign-entry span{max-width:450px;color:#bba7ab;font:500 10px/1.55 sans-serif}.nfcg-campaign-entry button{white-space:nowrap}.nfcg-campaign-progress{color:#f4cfdd!important;text-shadow:0 0 12px rgba(219,71,130,.45)}
.nfcg-title-coop-panel{width:min(680px,calc(100vw - 36px))}.nfcg-title-coop-panel .nfcg-title-solo-options label:last-child{grid-column:auto}.nfcg-title-coop-note{margin:15px 0 0!important;padding:11px 13px;color:#b9ad99!important;border:1px solid rgba(169,126,62,.3);border-radius:4px;background:rgba(8,7,10,.62);font:500 10px/1.65 sans-serif!important;letter-spacing:.02em!important}
.nfcg-title-version{position:absolute;z-index:11;left:50%;bottom:7px;width:min(1320px,calc(100vw - 54px));color:#cfc1a9;border:1px solid rgba(179,136,70,.55);border-radius:4px 10px 4px 10px;background:linear-gradient(180deg,rgba(27,18,18,.96),rgba(7,6,9,.98));box-shadow:0 9px 28px rgba(0,0,0,.72),inset 0 1px rgba(255,226,166,.1);transform:translateX(-50%);backdrop-filter:blur(14px)}
.nfcg-title-version>summary{display:grid;min-height:34px;padding:5px 13px;grid-template-columns:auto auto 1fr;gap:13px;align-items:center;list-style:none;cursor:pointer;user-select:none}.nfcg-title-version>summary::-webkit-details-marker{display:none}.nfcg-title-version>summary:focus-visible{outline:2px solid #d0a15c;outline-offset:2px}.nfcg-title-version>summary>span{color:#e7d6b7;font:750 10px/1 Georgia,"Noto Serif TC",serif;letter-spacing:.1em}.nfcg-title-version>summary>span i{margin-right:7px;color:#9c2330;font-style:normal}.nfcg-title-version>summary strong{padding:2px 8px;color:#e5bd71;border:1px solid rgba(202,154,77,.32);border-radius:99px;font:700 9px/1.2 ui-monospace,monospace}.nfcg-title-version>summary small{color:#887e70;font-size:8px;letter-spacing:.06em;text-align:right}
.nfcg-title-version[open]{z-index:16;max-height:min(58vh,470px);overflow:hidden;border-color:#b88a47;box-shadow:0 22px 75px #000,inset 0 1px rgba(255,233,183,.16)}.nfcg-title-version[open]>summary{border-bottom:1px solid rgba(181,137,69,.35);background:rgba(88,46,31,.2)}
.nfcg-title-version-content{display:grid;max-height:min(49vh,390px);padding:20px 24px 23px;grid-template-columns:minmax(220px,.72fr) minmax(300px,1.45fr) minmax(220px,.9fr);gap:22px;overflow:auto;background:radial-gradient(circle at 16% 0,rgba(118,35,43,.19),transparent 38%),repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 8px),rgba(7,6,9,.97)}
.nfcg-title-version-content header{padding-right:20px;border-right:1px solid rgba(185,142,73,.25)}.nfcg-title-version-content header p{margin:0;color:#9e763e;font:800 8px/1 ui-monospace,monospace;letter-spacing:.27em}.nfcg-title-version-content h2{margin:8px 0 10px;color:#f0dfbd;font:750 clamp(20px,2.2vw,30px)/1.1 Georgia,"Noto Serif TC",serif}.nfcg-title-version-content time{color:#8c8274;font-size:9px}.nfcg-title-version-content h3{margin:0 0 10px;color:#d5aa63;font:750 11px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.09em}.nfcg-title-version-content ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.nfcg-title-version-content section>ul>li{position:relative;padding-left:16px;color:#bdb3a3;font-size:10px;line-height:1.55}.nfcg-title-version-content section>ul>li::before{content:"◆";position:absolute;left:0;top:1px;color:#72202a;font-size:7px}.nfcg-title-version-history{padding-left:20px;border-left:1px solid rgba(185,142,73,.25)}.nfcg-title-version-history li{display:grid!important;padding-left:0!important;grid-template-columns:52px 1fr;gap:8px}.nfcg-title-version-history li::before{display:none}.nfcg-title-version-history b{color:#d7ae68;font:700 9px/1.5 ui-monospace,monospace}.nfcg-title-version-history span{color:#918779}
@keyframes nfcg-title-breathe{from{transform:scale(1.01)}to{transform:scale(1.035)}}@keyframes nfcg-title-panel-in{from{opacity:0;transform:translate(-50%,16px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media (max-width:900px){.nfcg-stage-lobby .nfcg-lobby{width:100vw!important;grid-template-rows:none}.nfcg-title-backdrop{object-position:61% 50%}.nfcg-title-identity{top:55px;width:92vw}.nfcg-title-identity::before,.nfcg-title-identity::after{display:none}.nfcg-title-identity h1{font-size:clamp(55px,12vw,96px)}.nfcg-title-entry{bottom:150px}.nfcg-title-menu{bottom:45px;width:calc(100vw - 18px);overflow-x:auto;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);scrollbar-width:thin}.nfcg-title-menu>button{min-height:84px}.nfcg-title-panel{bottom:142px}.nfcg-title-version{width:calc(100vw - 18px)}.nfcg-title-version-content{grid-template-columns:minmax(180px,.65fr) minmax(300px,1.35fr)}.nfcg-title-version-history{display:none}}
@media (max-width:560px){.nfcg-stage-lobby .nfcg-lobby{min-height:680px!important}.nfcg-stage-lobby .nfcg-lobby::after{inset:5px}.nfcg-title-backdrop{object-position:64% 50%;filter:saturate(.88) contrast(1.08) brightness(.74)}.nfcg-title-identity{top:46px}.nfcg-title-identity>p{font-size:7px;letter-spacing:.29em}.nfcg-title-identity h1{font-size:clamp(48px,17vw,72px);letter-spacing:.035em}.nfcg-title-identity>div{gap:10px;font-size:12px;letter-spacing:.12em}.nfcg-title-identity>div::before,.nfcg-title-identity>div::after{width:24px}.nfcg-title-start{width:min(78vw,350px);min-height:72px;padding-inline:40px}.nfcg-title-start span{font-size:26px}.nfcg-title-entry{bottom:143px}.nfcg-title-entry>p{margin-top:12px}.nfcg-title-music{top:16px;right:15px;padding:4px 8px;font-size:8px}.nfcg-title-menu{bottom:43px;grid-auto-columns:122px}.nfcg-title-menu>button{min-height:78px;padding:9px 8px;grid-template-columns:32px 1fr}.nfcg-title-menu>button i{font-size:20px}.nfcg-title-menu>button span{font-size:12px}.nfcg-title-panel{bottom:132px;padding:22px 18px}.nfcg-title-solo-options{grid-template-columns:1fr}.nfcg-title-version{bottom:5px}.nfcg-title-version>summary{grid-template-columns:auto auto;padding-inline:10px}.nfcg-title-version>summary small{display:none}.nfcg-title-version-content{grid-template-columns:1fr;padding:17px 16px;gap:16px}.nfcg-title-version-content header{padding:0 0 14px;border:0;border-bottom:1px solid rgba(185,142,73,.25)}}
@media (prefers-reduced-motion:reduce){.nfcg-title-backdrop,.nfcg-title-panel{animation:none!important}}

/* 3.1.0 · Black Lacquer Maki-e persistent gold mandala field. */
.nfcg-pixi-host{position:relative;isolation:isolate}.nfcg-makie-overlay{position:absolute;z-index:18;inset:0;overflow:hidden;pointer-events:none}.nfcg-makie-cell{position:absolute;width:clamp(38px,6.5%,88px);aspect-ratio:1;transform:translate(-50%,-50%);isolation:isolate;filter:drop-shadow(0 8px 8px rgba(0,0,0,.86))}.nfcg-makie-cell>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;border-radius:12%;object-fit:cover;opacity:.9;mix-blend-mode:screen;filter:contrast(1.13) saturate(1.12) brightness(.84)}.nfcg-makie-cell::before{content:"";position:absolute;z-index:1;inset:7%;border:1px solid rgba(255,222,125,.72);border-radius:50%;background:radial-gradient(circle,transparent 25%,rgba(246,194,72,.11) 54%,transparent 69%);box-shadow:0 0 17px rgba(230,168,56,.5),inset 0 0 13px rgba(255,229,154,.36);animation:nfcg-makie-turn 7s linear infinite}.nfcg-makie-cell::after{content:"";position:absolute;z-index:1;inset:-10%;border-radius:50%;background:radial-gradient(circle,rgba(245,192,64,.25),transparent 64%);mix-blend-mode:screen;animation:nfcg-makie-breathe 1.9s ease-in-out infinite alternate}.nfcg-makie-cell>i{position:absolute;z-index:2;left:50%;top:7%;width:16%;height:11%;border-radius:80% 14% 72% 20%;background:linear-gradient(135deg,#ffe0ec,#c7477d);box-shadow:0 0 8px rgba(255,121,170,.72);transform-origin:50% 370%;animation:nfcg-makie-petal 2.8s var(--petal-delay) ease-in-out infinite}.nfcg-makie-cell>i:nth-of-type(2){left:23%;top:39%;animation-delay:calc(var(--petal-delay) - .8s);transform-origin:190% 160%}.nfcg-makie-cell>i:nth-of-type(3){left:72%;top:57%;animation-delay:calc(var(--petal-delay) - 1.55s);transform-origin:-130% -80%}.nfcg-makie-cell.is-extinction>i{background:linear-gradient(135deg,#736175,#08060b);box-shadow:0 0 8px rgba(121,57,138,.84)}.nfcg-makie-cell.is-extinction::after{background:radial-gradient(circle,rgba(84,21,98,.35),transparent 65%)}
.nfcg-makie-fallback{position:absolute;z-index:31;left:50%;top:50%;width:270%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.nfcg-makie-fallback img{position:absolute;inset:0;width:100%;height:100%;border-radius:11%;object-fit:cover;opacity:.9;filter:contrast(1.12) saturate(1.1) drop-shadow(0 0 8px rgba(241,190,73,.6))}.nfcg-makie-fallback>i{position:absolute;left:38%;top:12%;width:13%;height:9%;border-radius:80% 12%;background:#eaa1bc;box-shadow:0 0 5px #df6da0;animation:nfcg-makie-petal 2.5s ease-in-out infinite}.nfcg-makie-fallback>i:nth-of-type(2){left:67%;top:44%;animation-delay:-.7s}.nfcg-makie-fallback>i:nth-of-type(3){left:20%;top:64%;animation-delay:-1.4s}.nfcg-makie-fallback.is-extinction>i{background:#19131d;box-shadow:0 0 6px #783b91}
@keyframes nfcg-makie-turn{to{transform:rotate(360deg)}}@keyframes nfcg-makie-breathe{to{opacity:.56;transform:scale(1.09)}}@keyframes nfcg-makie-petal{0%{opacity:0;transform:rotate(0) translateY(-4px) scale(.7)}24%{opacity:1}100%{opacity:0;transform:rotate(260deg) translateY(25px) scale(1.05)}}
.nfcg-reduced-motion .nfcg-makie-cell::before,.nfcg-reduced-motion .nfcg-makie-cell::after,.nfcg-reduced-motion .nfcg-makie-cell>i,.nfcg-reduced-motion .nfcg-makie-fallback>i{animation:none!important}

/* 3.1.0 · One authoritative campfire per map, with a persistent doused prop. */
.nfcg-campfire-overlay{position:absolute;z-index:22;inset:0;overflow:hidden;pointer-events:none;isolation:isolate}.nfcg-campfire-prop{position:absolute;width:5.35%;min-width:46px;aspect-ratio:1;transform:translate(-50%,-54%);filter:drop-shadow(0 13px 7px rgba(0,0,0,.92));isolation:isolate}.nfcg-campfire-prop>img{position:absolute;z-index:2;inset:-18%;width:136%;height:136%;object-fit:contain;filter:contrast(1.08) saturate(1.12)}.nfcg-campfire-overlay.is-burning .nfcg-campfire-prop::before{content:"";position:absolute;z-index:0;left:4%;right:4%;bottom:-9%;height:49%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,179,65,.56),rgba(220,49,16,.21) 42%,transparent 72%);filter:blur(7px);mix-blend-mode:screen;animation:nfcg-campfire-glow 1.25s ease-in-out infinite alternate}.nfcg-campfire-overlay.is-burning .nfcg-campfire-prop>i{position:absolute;z-index:3;left:38%;top:8%;width:24%;height:44%;border-radius:58% 42% 62% 38%;background:linear-gradient(180deg,rgba(255,248,186,.82),rgba(255,164,50,.52) 42%,rgba(197,27,13,.08));filter:blur(3px);mix-blend-mode:screen;transform-origin:50% 100%;animation:nfcg-campfire-flame .78s ease-in-out infinite alternate}.nfcg-campfire-overlay.is-extinguished .nfcg-campfire-prop{filter:grayscale(.28) contrast(1.12) drop-shadow(0 11px 7px rgba(0,0,0,.92))}.nfcg-campfire-overlay.is-extinguished .nfcg-campfire-prop>i{position:absolute;z-index:3;left:43%;top:0;width:14%;height:44%;border-radius:50%;background:linear-gradient(180deg,transparent,rgba(205,220,224,.36));filter:blur(4px);animation:nfcg-campfire-smoke 2.9s ease-out infinite}.nfcg-campfire-footprint{position:absolute;z-index:49;width:4.45%;min-width:38px;aspect-ratio:1;transform:translate(-50%,-50%) rotate(-7deg);filter:drop-shadow(0 3px 3px #000) drop-shadow(0 0 10px rgba(255,117,57,.9));animation:nfcg-campfire-track 1.35s ease-in-out infinite alternate}.nfcg-campfire-footprint>img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen;filter:brightness(1.58) contrast(1.18) sepia(.3) saturate(1.35)}
.nfcg-beach-overlay{position:absolute;z-index:23;inset:0;overflow:visible;pointer-events:none;isolation:isolate}.nfcg-beach-overlay>span{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);isolation:isolate}.nfcg-beach-overlay>span>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 5px rgba(0,0,0,.84))}.nfcg-beach-shell{z-index:3;animation:nfcg-beach-shell-float 1.8s ease-in-out infinite alternate}.nfcg-beach-shell>img{inset:5%!important;width:90%!important;height:90%!important;filter:brightness(1.12) drop-shadow(0 0 9px rgba(236,248,255,.78))!important}.nfcg-beach-shell.is-broken{opacity:.78;animation:none}.nfcg-beach-footprint{z-index:7;opacity:.88;animation:nfcg-campfire-track 1.35s ease-in-out infinite alternate}.nfcg-beach-footprint>img{inset:8%!important;width:84%!important;height:84%!important;filter:sepia(.55) saturate(.65) brightness(1.16) drop-shadow(0 2px 2px #000)!important}.nfcg-beach-crab{z-index:6;width:calc(var(--nfcg-cell-width,4%) * 2)!important;transform:translate(-25%,-25%)!important;animation:nfcg-beach-crab-idle 1.5s ease-in-out infinite alternate}.nfcg-beach-crab>img{object-fit:contain!important;filter:drop-shadow(0 12px 8px rgba(0,0,0,.9)) drop-shadow(0 0 12px rgba(255,101,61,.32))!important}@keyframes nfcg-beach-shell-float{from{transform:translate(-50%,-54%) rotate(-2deg)}to{transform:translate(-50%,-63%) rotate(2deg)}}@keyframes nfcg-beach-crab-idle{from{transform:translate(-25%,-25%) rotate(-1deg)}to{transform:translate(-25%,-27%) rotate(1deg)}}
.nfcg-beach-sand-terrain-fallback{position:absolute!important;z-index:0!important;inset:2%!important;width:96%!important;height:96%!important;border-radius:8%;object-fit:cover!important;opacity:.96}.nfcg-beach-shell-fallback,.nfcg-beach-footprint-fallback,.nfcg-beach-crab-fallback{position:absolute!important;pointer-events:none;object-fit:contain!important}.nfcg-beach-shell-fallback{z-index:17!important;inset:8%!important;width:84%!important;height:84%!important;filter:brightness(1.12) drop-shadow(0 0 8px rgba(240,250,255,.75));animation:nfcg-beach-shell-float 1.8s ease-in-out infinite alternate}.nfcg-beach-shell-fallback.is-broken{opacity:.78;animation:none}.nfcg-beach-footprint-fallback{z-index:19!important;inset:12%!important;width:76%!important;height:76%!important;filter:sepia(.55) saturate(.65) drop-shadow(0 2px 2px #000)}.nfcg-beach-crab-fallback{z-index:18!important;left:0!important;top:0!important;width:200%!important;height:200%!important;max-width:none!important;filter:drop-shadow(0 10px 7px #000);animation:nfcg-beach-crab-legacy 1.5s ease-in-out infinite alternate}@keyframes nfcg-beach-crab-legacy{from{transform:translate(0,0) rotate(-1deg)}to{transform:translate(0,-2%) rotate(1deg)}}
.nfcg-campfire-fallback{position:absolute;z-index:41;left:50%;top:50%;width:285%;aspect-ratio:1;pointer-events:none;transform:translate(-50%,-55%);filter:drop-shadow(0 8px 6px rgba(0,0,0,.95));isolation:isolate}.nfcg-campfire-fallback>img{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain}.nfcg-campfire-fallback.is-burning::before{content:"";position:absolute;z-index:0;left:15%;right:15%;bottom:4%;height:34%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,178,69,.65),rgba(207,45,15,.18) 52%,transparent 74%);filter:blur(5px);animation:nfcg-campfire-glow 1.25s ease-in-out infinite alternate}.nfcg-campfire-fallback.is-burning>i{position:absolute;z-index:3;left:41%;top:19%;width:18%;height:37%;border-radius:50%;background:linear-gradient(rgba(255,248,186,.78),rgba(255,103,29,.12));filter:blur(2px);mix-blend-mode:screen;animation:nfcg-campfire-flame .78s ease-in-out infinite alternate}.nfcg-campfire-fallback.is-extinguished{filter:grayscale(.32) contrast(1.12) drop-shadow(0 8px 6px #000)}.nfcg-footprint-fallback.is-nightmare{z-index:50;filter:brightness(1.7) contrast(1.2) sepia(.45) saturate(1.5) drop-shadow(0 3px 3px #000) drop-shadow(0 0 11px rgba(255,112,48,.98))}
@keyframes nfcg-campfire-glow{to{opacity:.64;transform:scale(1.18,.92)}}@keyframes nfcg-campfire-flame{0%{opacity:.66;transform:skewX(-8deg) scale(.82,1.03)}100%{opacity:1;transform:skewX(9deg) scale(1.05,.88)}}@keyframes nfcg-campfire-smoke{0%{opacity:0;transform:translateY(12px) scale(.6)}35%{opacity:.5}100%{opacity:0;transform:translate(9px,-28px) scale(1.45)}}@keyframes nfcg-campfire-track{to{opacity:.76;transform:translate(-50%,-50%) rotate(-3deg) scale(1.08)}}
.nfcg-reduced-motion .nfcg-campfire-prop::before,.nfcg-reduced-motion .nfcg-campfire-prop>i,.nfcg-reduced-motion .nfcg-campfire-footprint,.nfcg-reduced-motion .nfcg-campfire-fallback::before,.nfcg-reduced-motion .nfcg-campfire-fallback>i{animation:none!important}
.nfcg-campfire-prop>img,.nfcg-campfire-fallback>img{clip-path:ellipse(48% 48% at 50% 50%)}

/* 3.1.3 · Exact cell overlays, Candy World terrain and deterministic layer grammar. */
.nfcg-makie-cell{width:clamp(24px,4%,54px);overflow:hidden;border-radius:10%}
.nfcg-makie-fallback{left:0;top:0;width:100%;height:100%;aspect-ratio:auto;overflow:hidden;border-radius:10%;transform:none}
.nfcg-makie-fallback img{inset:0;width:100%;height:100%;border-radius:10%;object-fit:cover}
.nfcg-makie-fallback{z-index:6}
.prop-puzzle-vector{position:relative;z-index:14}
.nfcg-campfire-prop{width:4%;min-width:32px}
.nfcg-campfire-prop>img{inset:-4%;width:108%;height:108%}
.nfcg-campfire-fallback{width:204%}
.nfcg-makie-cell.is-active-token>img,.nfcg-makie-cell.is-under-token>img{opacity:.82!important;filter:saturate(1.08) brightness(.88) drop-shadow(0 0 5px rgba(246,196,93,.78))}.nfcg-campfire-prop.is-active-token>img,.nfcg-campfire-prop.is-under-token>img{opacity:.86!important;filter:saturate(1.1) brightness(.92) drop-shadow(0 0 7px rgba(255,132,49,.88))}
.nfcg-makie-cell.is-active-token::before,.nfcg-makie-cell.is-active-token::after,.nfcg-makie-cell.is-active-token>i,.nfcg-makie-cell.is-under-token::before,.nfcg-makie-cell.is-under-token::after,.nfcg-makie-cell.is-under-token>i,.nfcg-campfire-prop.is-active-token::before,.nfcg-campfire-prop.is-active-token>i,.nfcg-campfire-prop.is-under-token::before,.nfcg-campfire-prop.is-under-token>i{opacity:.68!important}
.nfcg-candy-terrain-fallback{position:absolute;z-index:0;inset:2%;border:1px solid rgba(255,255,255,.2);border-radius:9%;pointer-events:none;box-shadow:inset 0 1px 5px rgba(255,255,255,.28),inset 0 -5px 9px rgba(0,0,0,.24),0 2px 4px rgba(0,0,0,.68)}
.nfcg-candy-terrain-fallback{filter:saturate(.62) brightness(.78)}.nfcg-candy-terrain-fallback.is-red{background:#87454a}.nfcg-candy-terrain-fallback.is-yellow{background:#9b853f}.nfcg-candy-terrain-fallback.is-blue{background:#456f91}.nfcg-candy-terrain-fallback.is-green{background:#557b59}.nfcg-candy-terrain-fallback.is-purple{background:#6b557f}
.nfcg-node.terrain-candy{background:#171119;border-color:#ffe3a4}
.nfcg-node.is-reachable{z-index:60!important}
.nfcg-reachable-marker{position:absolute;z-index:80;inset:-7%;border:2px solid rgba(130,206,255,.95);border-radius:12%;background:linear-gradient(145deg,rgba(27,116,214,.48),rgba(42,174,236,.24));box-shadow:inset 0 0 12px rgba(168,227,255,.38),0 0 13px rgba(54,164,255,.82);pointer-events:none;animation:nfcg-reachable-marker 1s ease-in-out infinite alternate}
.nfcg-reachable-marker::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#ffe46c;box-shadow:0 0 4px #fff,0 0 12px #ffd42e;transform:translate(-50%,-50%)}
.nfcg-nutcracker-nails-fallback{position:absolute;z-index:12;left:50%;top:50%;width:94%;height:88%;border:0!important;border-radius:0!important;background:transparent!important;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.9)) drop-shadow(0 0 5px rgba(214,229,255,.56));animation:nfcg-nutcracker-nails-glint 1.45s ease-in-out infinite alternate}@keyframes nfcg-nutcracker-nails-glint{to{filter:drop-shadow(0 4px 4px rgba(0,0,0,.9)) drop-shadow(0 0 9px rgba(237,246,255,.82));transform:translate(-50%,-50%) scale(1.025)}}.nfcg-reduced-motion .nfcg-nutcracker-nails-fallback{animation:none!important}
.nfcg-token{z-index:50000!important}.nfcg-token.is-active,.nfcg-token.is-moving-ghost{z-index:51000!important}.nfcg-control-arrow{z-index:52000!important}
.nfcg-nightmare-item-auras{position:absolute;z-index:18;inset:0;overflow:visible;pointer-events:none}.nfcg-nightmare-item-orbit{position:absolute;left:50%;top:48%;width:23px;height:23px;transform-origin:0 0;animation:nfcg-nightmare-item-orbit calc(2.65s + var(--aura-index)*.23s) linear infinite;animation-delay:calc(var(--aura-index)*-.71s);filter:drop-shadow(0 0 5px rgba(255,208,96,.95)) drop-shadow(0 3px 3px rgba(0,0,0,.85))}.nfcg-nightmare-item-orbit::before{content:"";position:absolute;z-index:-1;inset:-4px;border:1px solid rgba(255,221,138,.88);border-radius:50%;background:radial-gradient(circle,rgba(80,9,19,.82),rgba(11,4,8,.16) 72%);box-shadow:0 0 9px rgba(238,58,82,.72)}.nfcg-token .nfcg-nightmare-item-orbit>img{display:block!important;width:23px!important;height:23px!important;border:0!important;border-radius:50%!important;background:rgba(9,3,8,.65)!important;object-fit:contain!important;filter:saturate(1.22) contrast(1.08)!important}.nfcg-nightmare-item-orbit>b{position:absolute;right:-5px;top:-6px;display:grid;place-items:center;width:13px;height:13px;color:#2b0509;border:1px solid #fff0bd;border-radius:50%;background:#ffd75c;box-shadow:0 0 8px #ff9b3d;font:900 10px/1 Arial,sans-serif}.nfcg-nightmare-item-auras::after{content:"";position:absolute;left:50%;top:50%;width:86px;height:38px;border:1px solid rgba(255,192,75,.3);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 13px rgba(194,27,49,.24);animation:nfcg-nightmare-aura-pulse 1.25s ease-in-out infinite alternate}
@keyframes nfcg-nightmare-item-orbit{from{transform:rotate(0deg) translateX(calc(39px + var(--aura-index)*4px)) rotate(0deg)}to{transform:rotate(360deg) translateX(calc(39px + var(--aura-index)*4px)) rotate(-360deg)}}
@keyframes nfcg-nightmare-aura-pulse{to{opacity:.45;transform:translate(-50%,-50%) scale(1.12)}}
.nfcg-reduced-motion .nfcg-nightmare-item-orbit{animation:none!important}.nfcg-reduced-motion .nfcg-nightmare-item-orbit:nth-child(1){transform:translate(34px,-30px)}.nfcg-reduced-motion .nfcg-nightmare-item-orbit:nth-child(2){transform:translate(-57px,-30px)}.nfcg-reduced-motion .nfcg-nightmare-item-orbit:nth-child(3){transform:translate(34px,18px)}.nfcg-reduced-motion .nfcg-nightmare-item-orbit:nth-child(n+4){transform:translate(-57px,18px)}.nfcg-reduced-motion .nfcg-nightmare-item-auras::after{animation:none!important}
@keyframes nfcg-reachable-marker{to{background:linear-gradient(145deg,rgba(31,130,235,.57),rgba(49,189,244,.3));box-shadow:inset 0 0 15px rgba(191,237,255,.46),0 0 17px rgba(57,176,255,.95)}}
.nfcg-reduced-motion .nfcg-reachable-marker{animation:none!important}
.nfcg-pixi-host.is-stardust-world,.nfcg-board.is-stardust-world{box-shadow:inset 0 0 80px rgba(82,37,154,.52),0 0 42px rgba(93,159,255,.25)}
.nfcg-pixi-host.is-rainbow-world,.nfcg-board.is-rainbow-world{box-shadow:inset 0 0 70px rgba(255,235,143,.34),0 0 34px rgba(102,230,255,.28)}
.nfcg-pixi-host.is-valentine-world,.nfcg-board.is-valentine-world{box-shadow:inset 0 0 82px rgba(122,0,45,.62),0 0 42px rgba(255,62,117,.3)}

/* 3.2.0 · Persistent generated nightmare fields shared by GPU and compatible boards. */
.nfcg-nightmare-field-overlay{position:absolute;z-index:19;inset:0;overflow:hidden;pointer-events:none;isolation:isolate}
.nfcg-nightmare-field-overlay>span{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);isolation:isolate;filter:drop-shadow(0 8px 7px rgba(0,0,0,.82))}
.nfcg-nightmare-field-overlay>span>img{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain}
.nfcg-stardust-field{z-index:1;overflow:hidden;border-radius:8%;background:radial-gradient(circle at 67% 31%,rgba(98,211,255,.54),transparent 23%),radial-gradient(circle at 25% 72%,rgba(194,74,255,.5),transparent 31%),linear-gradient(145deg,#05051c,#241052 46%,#071d44);box-shadow:inset 0 0 0 1px rgba(157,209,255,.58),inset 0 0 12px rgba(83,42,160,.82),0 0 8px rgba(106,155,255,.56);animation:nfcg-stardust-field 1.9s var(--field-delay) ease-in-out infinite alternate}
.nfcg-stardust-field>img{object-fit:cover!important;opacity:1;mix-blend-mode:screen;filter:saturate(1.28) contrast(1.17) brightness(.92);transform:scale(1.18)}
.nfcg-stardust-field>i{position:absolute;z-index:2;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.7) 0 2%,transparent 4%),radial-gradient(circle at 68% 28%,rgba(109,225,255,.7),transparent 18%);mix-blend-mode:screen;animation:nfcg-stardust-spark 2.2s linear infinite}
.nfcg-puppet-field{z-index:20;overflow:visible!important;animation:nfcg-puppet-shiver .34s var(--field-delay) steps(2,end) infinite}
.nfcg-puppet-field>img{left:-18%!important;top:-74%!important;width:136%!important;height:190%!important;object-fit:contain!important;object-position:center bottom;filter:contrast(1.08) saturate(.96) drop-shadow(0 10px 6px rgba(0,0,0,.92));animation:nfcg-puppet-image-float 1.65s var(--field-delay) ease-in-out infinite alternate}
.nfcg-puppet-field>i{position:absolute;z-index:0;left:14%;right:14%;bottom:-5%;height:25%;border-radius:50%;background:radial-gradient(ellipse,rgba(115,24,32,.46),transparent 70%);filter:blur(4px)}
.nfcg-puppet-field>b,.nfcg-puppet-field-fallback>b{position:absolute;z-index:3;right:-3%;top:-8%;display:grid;place-items:center;width:18px;height:18px;color:#fff0ca;border:1px solid #e0bb74;border-radius:50%;background:#391018;box-shadow:0 2px 5px #000,0 0 9px rgba(220,95,101,.72);font:900 9px/1 Georgia,serif}
.nfcg-prismatic-clone{z-index:24;overflow:visible!important;animation:nfcg-prismatic-float 1.45s var(--field-delay) ease-in-out infinite alternate}
.nfcg-prismatic-clone>img{left:-26%!important;top:-65%!important;width:152%!important;height:178%!important;object-position:center bottom;filter:saturate(1.18) drop-shadow(0 0 12px rgba(105,215,255,.62)) drop-shadow(0 12px 7px #000)}
.nfcg-prismatic-clone>i,.nfcg-dream-bubbles>i{position:absolute;z-index:0;inset:-24%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),rgba(91,218,255,.24) 34%,rgba(255,95,214,.14) 53%,transparent 72%);mix-blend-mode:screen;animation:nfcg-prismatic-halo 1.7s ease-in-out infinite alternate}
.nfcg-prismatic-burst{z-index:29;animation:nfcg-prismatic-burst .72s var(--field-delay) ease-out both}
.nfcg-prismatic-burst>img{inset:-30%!important;width:160%!important;height:160%!important;filter:saturate(1.25) brightness(1.09) drop-shadow(0 0 17px rgba(160,235,255,.85))}
.nfcg-dream-bubbles{z-index:30;overflow:visible!important;animation:nfcg-prismatic-float 1.25s var(--field-delay) ease-in-out infinite alternate}
.nfcg-dream-bubbles>img{inset:-37%!important;width:174%!important;height:174%!important;filter:saturate(1.15) drop-shadow(0 0 12px rgba(203,132,255,.72))}
.nfcg-nightmare-field-overlay>span.is-under-token{opacity:.72!important}.nfcg-nightmare-field-overlay>span.is-under-token.nfcg-mischief-fire,.nfcg-nightmare-field-overlay>span.is-under-token.nfcg-stardust-field,.nfcg-nightmare-field-overlay>span.is-under-token.nfcg-gas-cloud{opacity:.86!important}.nfcg-nightmare-field-overlay>span.is-under-prop.nfcg-stardust-field{opacity:.38}.nfcg-nightmare-field-overlay>span.is-under-prop.nfcg-puppet-field{opacity:.16}

.nfcg-stardust-field-fallback{position:absolute;z-index:4;inset:0;width:100%;height:100%;padding:0;border-radius:8%;object-fit:cover;pointer-events:none;opacity:1;background:radial-gradient(circle at 67% 31%,rgba(98,211,255,.54),transparent 23%),radial-gradient(circle at 25% 72%,rgba(194,74,255,.5),transparent 31%),linear-gradient(145deg,#05051c,#241052 46%,#071d44);box-shadow:inset 0 0 0 1px rgba(157,209,255,.58),inset 0 0 10px rgba(83,42,160,.82),0 0 7px rgba(106,155,255,.68);mix-blend-mode:normal;filter:saturate(1.26) contrast(1.15) brightness(.93);animation:nfcg-stardust-tile-pulse 1.9s ease-in-out infinite alternate}
.nfcg-puppet-field-fallback{position:absolute;z-index:2;left:50%;top:50%;width:100%;height:100%;pointer-events:none;transform:translate(-50%,-50%);animation:nfcg-puppet-shiver .22s steps(2,end) infinite}
.nfcg-puppet-field-fallback>img{position:absolute;left:-18%;top:-74%;width:136%;height:190%;object-fit:contain;object-position:center bottom;filter:contrast(1.08) saturate(.96) drop-shadow(0 8px 5px rgba(0,0,0,.92));animation:nfcg-puppet-image-float 1.65s ease-in-out infinite alternate}
.nfcg-bubble-clone-fallback{position:absolute;z-index:24;left:50%;top:50%;width:152%;height:178%;object-fit:contain;object-position:center bottom;pointer-events:none;transform:translate(-50%,-65%);filter:saturate(1.18) drop-shadow(0 0 10px rgba(105,215,255,.62)) drop-shadow(0 9px 6px #000);animation:nfcg-prismatic-float 1.45s ease-in-out infinite alternate}
.nfcg-bubble-burst-fallback{position:absolute;z-index:29;left:50%;top:50%;width:160%;height:160%;object-fit:contain;pointer-events:none;filter:saturate(1.25) brightness(1.09) drop-shadow(0 0 14px rgba(160,235,255,.85));animation:nfcg-prismatic-burst .72s ease-out both}
.nfcg-token-dream-bubbles{position:absolute;z-index:9;left:50%;top:50%;width:174%!important;height:174%!important;object-fit:contain!important;pointer-events:none;transform:translate(-50%,-50%);filter:saturate(1.15) drop-shadow(0 0 11px rgba(203,132,255,.72))!important;animation:nfcg-prismatic-float 1.25s ease-in-out infinite alternate!important}
@keyframes nfcg-stardust-field{to{filter:drop-shadow(0 0 12px rgba(120,187,255,.76));transform:translate(-50%,-50%) scale(1.025)}}
@keyframes nfcg-stardust-tile-pulse{to{filter:saturate(1.4) contrast(1.18) brightness(1.04) drop-shadow(0 0 10px rgba(120,187,255,.86))}}
@keyframes nfcg-stardust-spark{to{transform:rotate(360deg);opacity:.48}}
@keyframes nfcg-puppet-shiver{0%{transform:translate(-50%,-50%) rotate(-1.2deg)}100%{transform:translate(-49%,-50%) rotate(1.2deg)}}
@keyframes nfcg-puppet-image-float{0%{transform:translateY(3%) rotate(-1deg)}100%{transform:translateY(-6%) rotate(1.4deg)}}
@keyframes nfcg-prismatic-float{to{transform:translate(-50%,-57%) scale(1.035)}}
@keyframes nfcg-prismatic-halo{to{opacity:.55;transform:scale(1.12) rotate(12deg)}}
@keyframes nfcg-prismatic-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.24) rotate(-18deg)}42%{opacity:1}100%{opacity:.75;transform:translate(-50%,-50%) scale(1.06) rotate(3deg)}}
.nfcg-reduced-motion .nfcg-stardust-field,.nfcg-reduced-motion .nfcg-stardust-field>i,.nfcg-reduced-motion .nfcg-puppet-field,.nfcg-reduced-motion .nfcg-puppet-field>img,.nfcg-reduced-motion .nfcg-prismatic-clone,.nfcg-reduced-motion .nfcg-prismatic-clone>i,.nfcg-reduced-motion .nfcg-prismatic-burst,.nfcg-reduced-motion .nfcg-dream-bubbles,.nfcg-reduced-motion .nfcg-dream-bubbles>i,.nfcg-reduced-motion .nfcg-stardust-field-fallback,.nfcg-reduced-motion .nfcg-puppet-field-fallback,.nfcg-reduced-motion .nfcg-puppet-field-fallback>img,.nfcg-reduced-motion .nfcg-bubble-clone-fallback,.nfcg-reduced-motion .nfcg-bubble-burst-fallback,.nfcg-reduced-motion .nfcg-token-dream-bubbles{animation:none!important}

/* Mischief Bomb: authoritative countdown, explosion and two-round fire sea. */
.nfcg-mischief-fire{z-index:8;overflow:hidden;border-radius:9%;box-shadow:inset 0 0 0 1px rgba(255,202,103,.48),0 0 12px rgba(255,77,18,.76);animation:nfcg-mischief-fire-pulse .72s var(--field-delay) ease-in-out infinite alternate}
.nfcg-mischief-fire>img{inset:-8%!important;width:116%!important;height:116%!important;object-fit:cover!important;filter:saturate(1.12) contrast(1.08) brightness(.86) drop-shadow(0 0 6px rgba(255,84,13,.85))}
.nfcg-mischief-fire>i{position:absolute;z-index:2;inset:-12%;background:radial-gradient(circle at 50% 70%,rgba(255,218,125,.38),rgba(255,61,8,.16) 42%,transparent 70%);mix-blend-mode:screen;animation:nfcg-mischief-heat .9s ease-in-out infinite alternate}
.nfcg-mischief-bomb{z-index:38;overflow:visible!important;filter:drop-shadow(0 11px 8px #000) drop-shadow(0 0 10px rgba(255,111,28,.8))!important;animation:nfcg-mischief-bomb-hover 1.1s var(--field-delay) ease-in-out infinite alternate}
.nfcg-mischief-bomb>img{left:-12%!important;top:-28%!important;width:124%!important;height:142%!important;object-fit:contain!important}
.nfcg-mischief-bomb>i{position:absolute;z-index:0;inset:-22%;border-radius:50%;background:radial-gradient(circle,rgba(255,190,59,.28),rgba(238,47,9,.12) 38%,transparent 70%);mix-blend-mode:screen;animation:nfcg-mischief-heat .46s ease-in-out infinite alternate}
.nfcg-mischief-bomb>b{position:absolute;z-index:5;right:-7%;top:-12%;display:grid;place-items:center;width:18px;height:18px;color:#251000;border:1px solid #fff1a8;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff7ac,#ffc21f 48%,#d46b00);box-shadow:0 2px 5px #000,0 0 8px #ffd43f;font:900 10px/1 ui-monospace,monospace;animation:nfcg-mischief-count .7s ease-in-out infinite alternate}
.nfcg-mischief-explosion{z-index:80!important;aspect-ratio:1!important;overflow:visible!important;filter:drop-shadow(0 0 22px rgba(255,94,16,.95)) brightness(1.08)!important;animation:nfcg-mischief-explode 1.35s cubic-bezier(.13,.7,.2,1) both!important}
.nfcg-mischief-explosion>img{inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important}
.nfcg-mischief-explosion>i{position:absolute;z-index:0;inset:20%;border-radius:50%;background:#fff4c0;box-shadow:0 0 50px 18px #ff9a23,0 0 120px 45px rgba(255,43,7,.62);mix-blend-mode:screen;animation:nfcg-mischief-flash .72s ease-out both}
.nfcg-lulu-picnic{z-index:34;overflow:visible!important;animation:nfcg-picnic-float 1.8s var(--field-delay) ease-in-out infinite alternate}
.nfcg-lulu-picnic>img{left:-8%!important;top:-34%!important;width:116%!important;height:145%!important;object-fit:contain!important;filter:drop-shadow(0 9px 6px #000) drop-shadow(0 0 9px rgba(255,215,112,.68))}
.nfcg-lulu-picnic>i{position:absolute;z-index:2;inset:-12%;background:radial-gradient(circle at 25% 30%,#ffe983 0 1.5%,transparent 3%),radial-gradient(circle at 75% 22%,#fff2a4 0 1.2%,transparent 3%);animation:nfcg-picnic-butterfly 1.25s ease-in-out infinite alternate}
.nfcg-lulu-picnic.is-broken{z-index:25;animation:none;filter:saturate(.72) drop-shadow(0 8px 6px #000)!important}
.nfcg-fear-shadow{z-index:44;overflow:visible!important;opacity:.78;mix-blend-mode:multiply;animation:nfcg-fear-shadow-hover 1.45s var(--field-delay) ease-in-out infinite alternate}
.nfcg-fear-shadow>img{left:-28%!important;top:-96%!important;width:156%!important;height:220%!important;object-fit:contain!important;object-position:center bottom;filter:contrast(1.18) drop-shadow(0 0 10px rgba(40,0,58,.72))}
.nfcg-picnic-fallback{position:absolute;z-index:31;left:-8%;top:-34%;width:116%!important;height:145%!important;object-fit:contain!important;pointer-events:none;filter:drop-shadow(0 9px 6px #000) drop-shadow(0 0 9px rgba(255,215,112,.68));animation:nfcg-picnic-fallback-float 1.8s ease-in-out infinite alternate}
.nfcg-picnic-fallback.is-broken{z-index:24;animation:none;filter:saturate(.72) drop-shadow(0 8px 6px #000)}
.nfcg-mischief-fire-fallback{position:absolute;z-index:7;inset:-8%;width:116%!important;height:116%!important;object-fit:cover!important;border-radius:9%;pointer-events:none;filter:saturate(1.12) contrast(1.08) brightness(.86) drop-shadow(0 0 6px rgba(255,84,13,.85));animation:nfcg-mischief-fire-pulse-fallback .72s ease-in-out infinite alternate}
.nfcg-mischief-bomb-fallback{position:absolute;z-index:38;left:50%;top:50%;width:124%;height:142%;pointer-events:none;transform:translate(-50%,-58%);filter:drop-shadow(0 11px 8px #000) drop-shadow(0 0 10px rgba(255,111,28,.8));animation:nfcg-mischief-bomb-fallback-hover 1.1s ease-in-out infinite alternate}
.nfcg-mischief-bomb-fallback>img{width:100%!important;height:100%!important;object-fit:contain!important}
.nfcg-mischief-bomb-fallback>b{position:absolute;z-index:5;right:2%;top:4%;display:grid;place-items:center;width:18px;height:18px;color:#251000;border:1px solid #fff1a8;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff7ac,#ffc21f 48%,#d46b00);box-shadow:0 2px 5px #000,0 0 8px #ffd43f;font:900 10px/1 ui-monospace,monospace;animation:nfcg-mischief-count .7s ease-in-out infinite alternate}
.nfcg-mischief-explosion-fallback{position:absolute;z-index:80;left:50%;top:50%;width:515%;height:515%;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 0 22px rgba(255,94,16,.95)) brightness(1.08);animation:nfcg-mischief-explode-fallback 1.35s cubic-bezier(.13,.7,.2,1) both}
.nfcg-mischief-explosion-fallback>img{position:absolute;z-index:1;inset:0;width:100%!important;height:100%!important;object-fit:contain!important}
.nfcg-mischief-explosion-fallback>i{position:absolute;z-index:0;inset:20%;border-radius:50%;background:#fff4c0;box-shadow:0 0 50px 18px #ff9a23,0 0 120px 45px rgba(255,43,7,.62);mix-blend-mode:screen;animation:nfcg-mischief-flash .72s ease-out both}
.nfcg-token-fear-shadow{position:absolute;z-index:8;left:50%;top:44%;width:156%!important;height:220%!important;object-fit:contain!important;object-position:center bottom;pointer-events:none;opacity:.78;mix-blend-mode:multiply;transform:translate(-50%,-50%);filter:contrast(1.18) drop-shadow(0 0 10px rgba(40,0,58,.72))!important;animation:nfcg-token-fear-shadow-hover 1.45s ease-in-out infinite alternate!important}
@keyframes nfcg-mischief-fire-pulse{to{filter:brightness(1.12) drop-shadow(0 0 9px rgba(255,90,18,.9));transform:translate(-50%,-50%) scale(1.025)}}
@keyframes nfcg-mischief-heat{to{opacity:.48;transform:scale(1.08)}}
@keyframes nfcg-mischief-bomb-hover{to{transform:translate(-50%,-57%) rotate(1.5deg) scale(1.035)}}
@keyframes nfcg-mischief-count{to{transform:scale(1.08);box-shadow:0 2px 5px #000,0 0 12px #fff44c}}
@keyframes nfcg-mischief-explode{0%{opacity:0;transform:translate(-50%,-50%) scale(.06)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}66%{opacity:1;transform:translate(-50%,-50%) scale(.98)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes nfcg-mischief-flash{to{opacity:0;transform:scale(2.1)}}
@keyframes nfcg-picnic-float{to{transform:translate(-50%,-56%) scale(1.025)}}
@keyframes nfcg-picnic-butterfly{to{filter:brightness(1.7);transform:translateY(-5%) rotate(3deg)}}
@keyframes nfcg-fear-shadow-hover{to{opacity:.92;transform:translate(-50%,-55%) scale(1.035)}}
@keyframes nfcg-picnic-fallback-float{to{transform:translateY(-6%) scale(1.025)}}
@keyframes nfcg-mischief-fire-pulse-fallback{to{filter:saturate(1.12) contrast(1.08) brightness(1.02) drop-shadow(0 0 9px rgba(255,90,18,.9));transform:scale(1.025)}}
@keyframes nfcg-mischief-bomb-fallback-hover{to{transform:translate(-50%,-62%) rotate(1.5deg) scale(1.035)}}
@keyframes nfcg-mischief-explode-fallback{0%{opacity:0;transform:translate(-50%,-50%) scale(.06)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}66%{opacity:1;transform:translate(-50%,-50%) scale(.98)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes nfcg-token-fear-shadow-hover{to{opacity:.92;transform:translate(-50%,-55%) scale(1.035)}}
.nfcg-reduced-motion .nfcg-mischief-fire,.nfcg-reduced-motion .nfcg-mischief-fire>i,.nfcg-reduced-motion .nfcg-mischief-bomb,.nfcg-reduced-motion .nfcg-mischief-bomb>b,.nfcg-reduced-motion .nfcg-lulu-picnic,.nfcg-reduced-motion .nfcg-fear-shadow,.nfcg-reduced-motion .nfcg-picnic-fallback,.nfcg-reduced-motion .nfcg-mischief-fire-fallback,.nfcg-reduced-motion .nfcg-mischief-bomb-fallback,.nfcg-reduced-motion .nfcg-mischief-bomb-fallback>b,.nfcg-reduced-motion .nfcg-mischief-explosion-fallback,.nfcg-reduced-motion .nfcg-token-fear-shadow{animation:none!important}

/* 3.2.2 · Stable action-card geometry: verbose skill copy never stretches the dock. */
.nfcg-action-dock{overflow-x:auto;overflow-y:hidden}
.nfcg-action-dock>button{flex:0 1 250px;width:clamp(145px,16vw,250px);max-width:250px;height:72px;min-height:72px;grid-template-columns:34px minmax(0,1fr);grid-template-rows:18px 28px;align-content:center}
.nfcg-action-dock>button strong,.nfcg-action-dock>button span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.nfcg-action-dock>button strong{display:block;white-space:nowrap}
.nfcg-action-dock>button>span{display:-webkit-box;max-height:2.7em;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}
@media (max-width:900px){.nfcg-action-dock>button{flex-basis:142px;width:142px;min-width:142px;max-width:142px}}

/* 3.2.9 · Item reminders orbit behind the figurine, never over the active arrow. */
.nfcg-nightmare-item-auras{z-index:-1!important}

/* 3.2.17 · Mint Breeze Pinwheel, flat puddle, numbered path and Chonky cuddle. */
.nfcg-puddle-terrain-fallback{position:absolute;z-index:3;inset:2%;width:96%!important;height:96%!important;border-radius:10%;object-fit:cover!important;pointer-events:none;opacity:.88;mix-blend-mode:screen;filter:saturate(.72) contrast(1.04) brightness(.82) drop-shadow(0 0 3px rgba(162,221,235,.42))}
.nfcg-pinwheel-fallback{position:absolute;z-index:31;left:50%;top:50%;width:92%!important;height:92%!important;object-fit:contain!important;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 6px rgba(0,0,0,.82)) drop-shadow(0 0 10px rgba(179,255,240,.72));animation:nfcg-pinwheel-spin 2.25s linear infinite}
.nfcg-pinwheel-fallback.is-broken{z-index:27;width:94%!important;height:94%!important;animation:none;filter:saturate(.7) brightness(.75) drop-shadow(0 7px 5px rgba(0,0,0,.85))}
.nfcg-move-plan-step{position:absolute;z-index:49500;right:5%;top:5%;display:grid;place-items:center;width:24px;height:24px;color:#071729;border:2px solid #fff3a9;border-radius:50%;background:radial-gradient(circle at 36% 30%,#fffbd0,#ffd34e 47%,#ea8b17);box-shadow:0 2px 5px rgba(0,0,0,.88),0 0 12px rgba(61,184,255,.9);font:900 13px/1 ui-monospace,Consolas,monospace;pointer-events:none;animation:nfcg-move-plan-step-pulse .75s ease-in-out infinite alternate}
.nfcg-action-dock.is-move-planning{box-shadow:inset 0 0 0 1px rgba(92,196,255,.5),0 0 16px rgba(45,145,255,.22)}
.nfcg-chonky-cuddle .nfcg-token.is-active{transform-origin:50% 88%;animation:nfcg-chonky-roll 1.4s cubic-bezier(.45,.03,.32,1) both!important}
.nfcg-chonky-cuddle .nfcg-token.is-active::before{content:"\2665  \2665  \2665";position:absolute;z-index:51900;left:50%;top:-18%;width:130%;color:#ff9bbd;text-align:center;text-shadow:0 2px 4px #26000d,0 0 10px #ff5f91;transform:translateX(-50%);pointer-events:none;animation:nfcg-chonky-hearts 1.45s ease-out both}
@keyframes nfcg-pinwheel-spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes nfcg-move-plan-step-pulse{to{transform:scale(1.1);box-shadow:0 3px 7px rgba(0,0,0,.9),0 0 18px rgba(93,216,255,1)}}
@keyframes nfcg-chonky-roll{0%{transform:rotate(0deg) scale(1)}38%{transform:rotate(-12deg) scale(1.04,.96)}72%{transform:rotate(10deg) scale(.98,1.04)}100%{transform:rotate(0deg) scale(1)}}
@keyframes nfcg-chonky-hearts{0%{opacity:0;transform:translate(-50%,24%) scale(.7)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-60%) scale(1.18)}}
.nfcg-reduced-motion .nfcg-pinwheel-fallback,.nfcg-reduced-motion .nfcg-move-plan-step,.nfcg-reduced-motion.nfcg-chonky-cuddle .nfcg-token.is-active,.nfcg-reduced-motion.nfcg-chonky-cuddle .nfcg-token.is-active::before{animation:none!important}
/* v3.2.21 · Abandoned furniture factory portals and gas-lamp quest. */
.nfcg-factory-overlay{position:absolute;z-index:42;inset:0;pointer-events:none;overflow:visible;transform-origin:50% 50%}
.nfcg-factory-overlay>span{position:absolute;display:grid;place-items:center;aspect-ratio:1;transform:translate(-50%,-50%);isolation:isolate}
.nfcg-factory-overlay img{display:block;max-width:none;object-fit:contain;filter:drop-shadow(0 .32rem .38rem rgba(0,0,0,.82))}
.nfcg-factory-door{z-index:12}
.nfcg-factory-door img{width:104%;height:146%;transform:translateY(-31%);animation:nfcg-factory-door-float 3.1s ease-in-out infinite}
.nfcg-factory-door i{position:absolute;inset:7% 5%;z-index:-1;border-radius:45%;opacity:.72;filter:blur(9px);animation:nfcg-factory-door-aura 2.2s ease-in-out infinite}
.nfcg-factory-door.is-sharing-token i{inset:-8% -12%;opacity:.96;box-shadow:0 0 0 2px rgba(240,199,107,.48),0 0 18px rgba(231,178,72,.82)}
.nfcg-factory-door.is-white i{background:rgba(242,236,213,.62)}.nfcg-factory-door.is-black i{background:rgba(92,61,129,.56)}
.nfcg-factory-door.is-red i{background:rgba(191,34,43,.58)}.nfcg-factory-door.is-blue i{background:rgba(31,112,205,.6)}.nfcg-factory-door.is-yellow i{background:rgba(229,176,46,.62)}
.nfcg-factory-part{z-index:18}.nfcg-factory-part img{width:84%;height:84%;animation:nfcg-factory-part-float 2.35s ease-in-out infinite}
.nfcg-factory-part i{position:absolute;width:64%;height:32%;bottom:5%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,214,119,.62),rgba(255,190,55,0) 72%);filter:blur(5px);z-index:-1}
.nfcg-factory-gas-lamp{z-index:22}.nfcg-factory-gas-lamp img{width:118%;height:186%;transform:translateY(-28%);filter:drop-shadow(0 .35rem .45rem #000) drop-shadow(0 0 .45rem rgba(255,195,79,.9))}
.nfcg-factory-gas-lamp i{position:absolute;width:165%;height:210%;bottom:-22%;border-radius:48%;background:radial-gradient(ellipse at 50% 22%,rgba(255,236,163,.74),rgba(255,178,52,.18) 42%,transparent 72%);mix-blend-mode:screen;filter:blur(5px);animation:nfcg-factory-lamp-glow 1.65s ease-in-out infinite}
.nfcg-factory-lamp-footprint{z-index:28}.nfcg-factory-lamp-footprint img{width:74%;height:74%;filter:sepia(.55) saturate(1.7) drop-shadow(0 0 .35rem #ffd978);animation:nfcg-factory-track-pulse 1.25s ease-in-out infinite}
@keyframes nfcg-factory-door-float{0%,100%{transform:translateY(-24%)}50%{transform:translateY(-31%)}}
@keyframes nfcg-factory-door-aura{0%,100%{opacity:.42;transform:scale(.9)}50%{opacity:.82;transform:scale(1.08)}}
@keyframes nfcg-factory-part-float{0%,100%{transform:translateY(2%) rotate(-1deg)}50%{transform:translateY(-10%) rotate(1deg)}}
@keyframes nfcg-factory-lamp-glow{0%,100%{opacity:.62;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@keyframes nfcg-factory-track-pulse{0%,100%{opacity:.72;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}

.nfcg-factory-door-fallback,.nfcg-factory-part-fallback,.nfcg-factory-gas-lamp-fallback{position:absolute;inset:0;z-index:55;display:grid;place-items:center;pointer-events:none;overflow:visible}
.nfcg-factory-door-fallback img{width:104%;height:146%;object-fit:contain;transform:translateY(-31%);animation:nfcg-factory-door-float 3.1s ease-in-out infinite;filter:drop-shadow(0 .3rem .35rem #000)}
.nfcg-factory-part-fallback img{width:84%;height:84%;object-fit:contain;animation:nfcg-factory-part-float 2.35s ease-in-out infinite;filter:drop-shadow(0 .25rem .3rem #000)}
.nfcg-factory-gas-lamp-fallback img{width:118%;height:186%;object-fit:contain;transform:translateY(-28%);filter:drop-shadow(0 .3rem .4rem #000) drop-shadow(0 0 .45rem #ffd06a)}
.nfcg-factory-lamp-footprint-fallback{position:absolute;z-index:70;inset:13%;width:74%;height:74%;object-fit:contain;filter:sepia(.55) saturate(1.7) drop-shadow(0 0 .3rem #ffd978);animation:nfcg-factory-track-pulse 1.25s ease-in-out infinite;pointer-events:none}

.nfcg-factory-portal-modal{z-index:65000}
.nfcg-factory-portal-modal .nfcg-modal-backdrop{z-index:0}

/* v3.2.22 — poison mine, inverted judgment and Ren risk-choice presentation. */
.nfcg-gas-mine{z-index:14!important;overflow:hidden;border-radius:10%;animation:nfcg-gas-mine-breathe 1.05s var(--field-delay) ease-in-out infinite alternate}.nfcg-gas-mine>img{object-fit:contain!important;filter:drop-shadow(0 0 7px rgba(147,255,88,.82))}.nfcg-gas-mine>i{position:absolute;z-index:2;inset:7%;border-radius:50%;box-shadow:0 0 13px rgba(146,255,79,.78),inset 0 0 12px rgba(225,255,163,.36)}
.nfcg-gas-cloud{z-index:11!important;overflow:visible;border-radius:12%;animation:nfcg-gas-cloud-drift 1.7s var(--field-delay) ease-in-out infinite alternate}.nfcg-gas-cloud>img{inset:-10%!important;width:120%!important;height:120%!important;object-fit:cover!important;filter:saturate(1.16) contrast(1.04) drop-shadow(0 0 8px rgba(98,255,113,.62))}.nfcg-gas-cloud>i{position:absolute;z-index:2;inset:-22%;border-radius:50%;background:radial-gradient(circle,rgba(208,255,183,.23),rgba(57,149,70,.16) 42%,transparent 72%);mix-blend-mode:screen;animation:nfcg-gas-cloud-pulse .9s ease-in-out infinite alternate}
.nfcg-nightmare-field-overlay>.nfcg-gas-cloud.is-under-token{opacity:.76!important}.nfcg-nightmare-field-overlay>.nfcg-gas-mine.is-under-token{opacity:.72!important}
.nfcg-gas-explosion{z-index:18!important;overflow:visible;animation:nfcg-gas-blast .95s ease-out both}.nfcg-gas-explosion>img{inset:-76%!important;width:252%!important;height:252%!important;object-fit:contain!important;filter:saturate(1.25) brightness(1.17) drop-shadow(0 0 22px #74ff70)}
.nfcg-gas-mine-fallback,.nfcg-gas-cloud-fallback{position:absolute;pointer-events:none}.nfcg-gas-mine-fallback{z-index:14;inset:6%;width:88%!important;height:88%!important;object-fit:contain;animation:nfcg-gas-mine-fallback-breathe 1.05s ease-in-out infinite alternate}.nfcg-gas-cloud-fallback{z-index:10;inset:-8%;width:116%!important;height:116%!important;object-fit:cover;opacity:.82;animation:nfcg-gas-cloud-pulse 1.25s ease-in-out infinite alternate}.nfcg-gas-explosion-fallback{position:absolute;z-index:18;inset:-65%;pointer-events:none;animation:nfcg-gas-blast .95s ease-out both}.nfcg-gas-explosion-fallback img{width:100%;height:100%;object-fit:contain;filter:saturate(1.25) brightness(1.15) drop-shadow(0 0 18px #75ff71)}
@keyframes nfcg-gas-mine-breathe{to{filter:brightness(1.22) drop-shadow(0 0 9px rgba(121,255,76,.85));transform:translate(-50%,-50%) scale(1.055)}}@keyframes nfcg-gas-mine-fallback-breathe{to{filter:brightness(1.22) drop-shadow(0 0 9px rgba(121,255,76,.85));transform:scale(1.055)}}@keyframes nfcg-gas-cloud-drift{to{transform:translate(-47%,-53%) scale(1.06);filter:brightness(1.12)}}@keyframes nfcg-gas-cloud-pulse{to{opacity:.62;transform:scale(1.08)}}@keyframes nfcg-gas-blast{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}38%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.46)}}

.nfcg-scale-judgment-modal{z-index:180}.nfcg-scale-judgment-modal .nfcg-modal-backdrop{cursor:default;background:radial-gradient(circle at 50% 40%,rgba(130,25,24,.22),rgba(2,1,3,.97) 70%);backdrop-filter:blur(7px) saturate(.7)}
.nfcg-scale-judgment-panel{--court-image:none;position:relative;z-index:2;display:grid;grid-template-columns:minmax(250px,36%) minmax(360px,1fr);align-items:end;width:min(1120px,94vw);min-height:min(700px,90vh);overflow:hidden;border:2px ridge #aa8144;border-radius:4px;background-image:linear-gradient(90deg,rgba(7,4,5,.3),rgba(5,2,3,.92) 58%),var(--court-image);background-position:center;background-size:cover;box-shadow:inset 0 0 100px #000,0 40px 130px #000,0 0 42px rgba(147,30,24,.28)}
.nfcg-scale-judgment-panel::before{content:"";position:absolute;z-index:2;inset:12px;border:1px solid rgba(224,188,110,.34);pointer-events:none}.nfcg-scale-court-shade{position:absolute;z-index:0;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 9px),linear-gradient(0deg,rgba(0,0,0,.55),transparent 45%);pointer-events:none}
.nfcg-scale-judgment-panel figure{position:relative;z-index:1;align-self:stretch;margin:0;background:radial-gradient(circle at 50% 72%,rgba(167,44,30,.25),transparent 47%)}.nfcg-scale-judgment-panel figure img{display:block;width:100%;height:100%;max-height:700px;object-fit:contain;object-position:center bottom;filter:drop-shadow(20px 22px 18px #000);animation:nfcg-scale-judge-in .58s cubic-bezier(.12,.82,.2,1) both}.nfcg-scale-judgment-panel figcaption{position:absolute;left:7%;right:7%;bottom:4%;padding:13px;text-align:center;border:1px solid rgba(228,187,102,.5);background:rgba(8,3,4,.92)}.nfcg-scale-judgment-panel figcaption small{display:block;color:#d3a659;font:800 9px/1 ui-monospace,monospace;letter-spacing:.22em}.nfcg-scale-judgment-panel figcaption strong{display:block;margin-top:8px;color:#fff0c9;font:900 22px/1.2 Georgia,"Noto Serif TC",serif}
.nfcg-scale-judgment-copy{position:relative;z-index:3;padding:clamp(30px,5vw,72px)}.nfcg-scale-judgment-copy h2{margin:14px 0 22px;color:#ffe9b9;font:900 clamp(27px,3.7vw,48px)/1.38 Georgia,"Noto Serif TC",serif;text-shadow:0 5px 2px #000,0 0 24px rgba(175,42,30,.4)}.nfcg-scale-judgment-copy>p{color:#d1c0ae;font-size:14px;line-height:2}.nfcg-scale-answer-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.nfcg-scale-answer-actions button{min-height:70px;font-weight:900}.nfcg-scale-waiting{padding:18px;border:1px solid rgba(218,177,99,.35);background:rgba(8,3,4,.72);text-align:center;animation:nfcg-scale-wait 1.25s ease-in-out infinite alternate}
@keyframes nfcg-scale-judge-in{from{opacity:0;transform:translateX(-16%) scale(1.06)}to{opacity:1;transform:none}}@keyframes nfcg-scale-wait{to{color:#fff1c8;box-shadow:inset 0 0 20px rgba(166,40,28,.32)}}
.nfcg-ren-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.nfcg-ren-choice-grid button{min-height:112px;padding:15px;color:#ddf8ff;border:1px solid rgba(63,195,255,.42);border-radius:8px;background:linear-gradient(160deg,rgba(12,59,83,.82),rgba(4,11,20,.96));box-shadow:inset 0 0 24px rgba(36,161,235,.12);cursor:pointer}.nfcg-ren-choice-grid button:hover,.nfcg-ren-choice-grid button:focus{border-color:#69d9ff;box-shadow:0 0 24px rgba(38,188,255,.34),inset 0 0 28px rgba(36,161,235,.2)}.nfcg-ren-choice-grid b{display:block;color:#9cecff;font:900 25px/1.1 Georgia,serif}.nfcg-ren-choice-grid span{display:block;margin-top:10px;color:#aabcc8;font-size:11px;line-height:1.5}
@media(max-width:720px){.nfcg-scale-judgment-panel{grid-template-columns:1fr;min-height:92vh}.nfcg-scale-judgment-panel figure{height:38vh}.nfcg-scale-judgment-copy{padding:22px}.nfcg-scale-answer-actions,.nfcg-ren-choice-grid{grid-template-columns:1fr}.nfcg-scale-judgment-copy h2{font-size:28px}}
.nfcg-reduced-motion .nfcg-gas-mine,.nfcg-reduced-motion .nfcg-gas-cloud,.nfcg-reduced-motion .nfcg-gas-explosion,.nfcg-reduced-motion .nfcg-gas-mine-fallback,.nfcg-reduced-motion .nfcg-gas-cloud-fallback,.nfcg-reduced-motion .nfcg-gas-explosion-fallback,.nfcg-reduced-motion .nfcg-scale-judgment-panel figure img,.nfcg-reduced-motion .nfcg-scale-waiting{animation:none!important}

/* v3.2.24 · Three-round room collapse warning outside the board, broken entrances and integrated dialogue miniatures. */
.nfcg-factory-door.is-destroyed img{width:108%;height:112%;transform:translateY(-4%);object-fit:contain;animation:nfcg-factory-door-ruin 2.8s ease-in-out infinite;filter:drop-shadow(0 .25rem .34rem #000) drop-shadow(0 0 .42rem rgba(155,69,184,.72))}
.nfcg-factory-door.is-destroyed i{inset:14% 6% 5%;border-radius:42%;background:radial-gradient(circle,rgba(150,63,188,.5),rgba(43,16,61,.18) 52%,transparent 74%);filter:blur(7px);opacity:.9}
.nfcg-factory-door-fallback.is-destroyed img{width:108%;height:112%;transform:translateY(-4%);object-fit:contain;animation:nfcg-factory-door-ruin 2.8s ease-in-out infinite;filter:drop-shadow(0 .25rem .34rem #000) drop-shadow(0 0 .38rem rgba(155,69,184,.65))}
@keyframes nfcg-factory-door-ruin{0%,100%{opacity:.88;transform:translateY(-4%) scale(.98)}50%{opacity:1;transform:translateY(-5%) scale(1.02)}}

.nfcg-factory-room-warning{position:fixed;top:50%;right:clamp(18px,3.2vw,62px);left:auto;z-index:238;transform:translateY(-50%);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy number" "label number" "detail detail";align-items:center;gap:6px 18px;width:clamp(220px,18vw,310px);padding:18px 20px;overflow:hidden;border:1px solid rgba(211,56,81,.72);border-radius:12px;background:radial-gradient(circle at 84% 44%,rgba(184,25,63,.24),transparent 32%),linear-gradient(140deg,rgba(20,4,9,.97),rgba(58,6,18,.94));box-shadow:0 12px 42px rgba(0,0,0,.68),inset 0 0 28px rgba(224,25,65,.13);color:#f8d8cf;pointer-events:none;isolation:isolate}
.nfcg-factory-room-warning::before{content:"";position:absolute;z-index:-1;right:13px;top:50%;width:86px;height:86px;border:1px solid rgba(255,84,111,.38);border-radius:50%;transform:translateY(-50%);box-shadow:0 0 22px rgba(211,35,76,.22),inset 0 0 22px rgba(211,35,76,.14)}
.nfcg-factory-room-warning>div{grid-area:copy;min-width:0}.nfcg-factory-room-warning span{display:block;color:#ff657a;font:800 9px/1.2 ui-monospace,monospace;letter-spacing:.2em}.nfcg-factory-room-warning strong{display:block;margin-top:7px;overflow:hidden;color:#f6ded4;font:800 15px/1.25 Georgia,"Noto Serif TC",serif;text-overflow:ellipsis;white-space:nowrap}.nfcg-factory-room-warning>em{grid-area:number;min-width:64px;color:#fff0df;font:900 clamp(58px,5.5vw,86px)/.82 Georgia,serif;font-style:normal;text-align:center;text-shadow:0 5px 4px #000,0 0 22px rgba(237,37,79,.68);animation:nfcg-room-warning-pulse .82s ease-in-out infinite alternate}.nfcg-factory-room-warning>b{grid-area:label;color:#d2b6b0;font-size:10px;letter-spacing:.12em}.nfcg-factory-room-warning>small{grid-area:detail;margin-top:8px;padding-top:10px;border-top:1px solid rgba(241,114,134,.2);color:#cbb7b3;font-size:10px;line-height:1.55}
.nfcg-factory-room-warning.is-critical{border-color:#ff3154;box-shadow:0 12px 48px rgba(0,0,0,.72),0 0 28px rgba(255,25,68,.24),inset 0 0 32px rgba(224,25,65,.18)}.nfcg-factory-room-warning.is-critical::before{border-color:rgba(255,40,76,.72);box-shadow:0 0 30px rgba(255,15,67,.42),inset 0 0 28px rgba(124,0,31,.32)}
.nfcg-factory-black-hole-cinema{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;background:#000;animation:nfcg-room-collapse-cinema 3.9s ease both}.nfcg-factory-black-hole-cinema>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.18) saturate(1.2);animation:nfcg-room-black-hole 3.9s cubic-bezier(.12,.75,.2,1) both}.nfcg-factory-black-hole-cinema>i{position:absolute;inset:0;background:radial-gradient(circle,transparent 0 16%,rgba(64,13,97,.14) 28%,rgba(0,0,0,.68) 72%,#000);mix-blend-mode:multiply}.nfcg-factory-black-hole-cinema>div{position:relative;z-index:2;margin-top:30vh;padding:22px 34px;border-block:1px solid rgba(222,175,111,.44);background:linear-gradient(90deg,transparent,rgba(5,2,8,.9) 16% 84%,transparent);text-align:center;text-shadow:0 4px 8px #000}.nfcg-factory-black-hole-cinema span{display:block;color:#d9a55e;font:800 10px/1 ui-monospace,monospace;letter-spacing:.28em}.nfcg-factory-black-hole-cinema strong{display:block;margin-top:12px;color:#f6e5cd;font:900 clamp(25px,4.3vw,62px)/1.25 Georgia,"Noto Serif TC",serif}.nfcg-factory-black-hole-cinema b{display:block;margin-top:9px;color:#c9b7b5;font-size:12px}
@keyframes nfcg-room-warning-pulse{to{transform:scale(1.06);filter:brightness(1.18)}}@keyframes nfcg-room-black-hole{0%{opacity:0;transform:scale(1.18)}18%,78%{opacity:1}100%{opacity:0;transform:scale(1.02)}}@keyframes nfcg-room-collapse-cinema{0%{opacity:0}10%,76%{opacity:1}100%{opacity:0}}

.nfcg-dialogue-portrait{isolation:isolate}
.nfcg-dialogue-portrait::before{content:"";position:absolute;z-index:0;left:8%;right:8%;bottom:0;height:78%;border-radius:48%;background:radial-gradient(ellipse at 50% 72%,rgba(118,50,95,.34),rgba(63,18,47,.15) 44%,transparent 72%);filter:blur(17px);opacity:.82;mix-blend-mode:screen}
.nfcg-character-dialogue.speaker-b .nfcg-dialogue-portrait::before{background:radial-gradient(ellipse at 50% 72%,rgba(165,40,52,.35),rgba(73,16,28,.16) 46%,transparent 73%)}
.nfcg-dialogue-portrait img{position:relative;z-index:1;transform-origin:50% 100%;mask-image:linear-gradient(to bottom,#000 0 91%,rgba(0,0,0,.88) 96%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0 91%,rgba(0,0,0,.88) 96%,transparent 100%)}
.nfcg-dialogue-portrait::after{z-index:2}
@media(max-width:700px){.nfcg-factory-room-warning{top:116px;right:10px;transform:none;width:min(216px,56vw);grid-template-columns:minmax(0,1fr) 52px;gap:4px 10px;padding:11px 13px}.nfcg-factory-room-warning::before{right:7px;width:56px;height:56px}.nfcg-factory-room-warning strong{font-size:12px}.nfcg-factory-room-warning>em{min-width:44px;font-size:48px}.nfcg-factory-room-warning>small{margin-top:5px;padding-top:6px;font-size:9px}.nfcg-factory-black-hole-cinema>div{margin-top:22vh;padding:18px}}
.nfcg-reduced-motion .nfcg-factory-door.is-destroyed img,.nfcg-reduced-motion .nfcg-factory-door-fallback.is-destroyed img,.nfcg-reduced-motion .nfcg-factory-room-warning>em,.nfcg-reduced-motion .nfcg-factory-black-hole-cinema,.nfcg-reduced-motion .nfcg-factory-black-hole-cinema>img{animation:none!important}
.nfcg-factory-portal-panel{position:relative;z-index:2;isolation:isolate;width:min(930px,92vw);max-height:calc(100dvh - 36px);display:grid;grid-template-columns:minmax(210px,34%) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.8rem);align-items:center;padding:clamp(1.5rem,3vw,3rem);overflow:auto;border:1px solid #9a7742;background:radial-gradient(circle at 20% 25%,rgba(122,85,41,.2),transparent 38%),linear-gradient(145deg,#15100f,#080708 72%);box-shadow:0 2rem 6rem #000,inset 0 0 0 4px rgba(210,173,103,.1);color:#eadfc7}
.nfcg-factory-portal-panel figure{position:relative;z-index:0;min-height:390px;display:grid;place-items:center;margin:0;overflow:hidden;background:radial-gradient(ellipse,rgba(224,174,87,.15),transparent 65%);pointer-events:none}
.nfcg-factory-portal-panel figure img{position:absolute;z-index:0;width:90%;height:116%;object-fit:contain;filter:drop-shadow(0 .7rem .7rem #000);animation:nfcg-factory-door-float 3.1s ease-in-out infinite}
.nfcg-factory-portal-copy{position:relative;z-index:3;min-width:0}
.nfcg-factory-portal-panel h2{font-size:clamp(2rem,5vw,4rem);margin:.2em 0;color:#f4e8ca}.nfcg-factory-portal-panel strong{display:block;color:#d9b96f;font-size:1.2rem}.nfcg-factory-portal-panel p:not(.nfcg-eyebrow){line-height:1.9;color:#c7bba5}
.nfcg-factory-portal-actions{position:relative;z-index:5;display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(218,183,112,.24);background:linear-gradient(180deg,transparent,rgba(4,3,4,.78) 28%)}
.nfcg-factory-portal-actions button{position:relative;z-index:6;min-height:58px;font-size:15px;font-weight:850;letter-spacing:.12em;pointer-events:auto}
.nfcg-factory-portal-actions .nfcg-ghost{color:#e8ddc8;border-color:rgba(232,221,200,.38);background:rgba(255,255,255,.05)}
.nfcg-action-dock.is-factory-portal{border-color:#a78045;background:linear-gradient(90deg,#130d0c,#23150f 52%,#0d0a0a)}
@media(max-width:700px){.nfcg-factory-portal-panel{grid-template-columns:1fr;align-items:start}.nfcg-factory-portal-panel figure{min-height:210px}.nfcg-factory-portal-panel figure img{height:128%}.nfcg-factory-portal-actions{position:sticky;bottom:0;padding:14px 0 2px;background:linear-gradient(180deg,rgba(8,7,8,.3),#080708 30%)}}
.nfcg-reduced-motion .nfcg-factory-overlay img,.nfcg-reduced-motion .nfcg-factory-overlay i,.nfcg-reduced-motion .nfcg-factory-door-fallback img,.nfcg-reduced-motion .nfcg-factory-part-fallback img,.nfcg-reduced-motion .nfcg-factory-lamp-footprint-fallback{animation:none!important}

/* Night Castle: the board assets live below tokens and critical markers. */
.nfcg-night-castle-overlay{position:absolute;z-index:44;inset:0;overflow:visible;pointer-events:none;isolation:isolate;transform-origin:50% 50%}.nfcg-night-castle-overlay>span{position:absolute;display:grid;place-items:center;aspect-ratio:1;transform:translate(-50%,-50%);isolation:isolate}.nfcg-night-castle-overlay img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;filter:drop-shadow(0 .35rem .46rem rgba(0,0,0,.92))}.nfcg-night-castle-prop{z-index:5;aspect-ratio:auto!important}.nfcg-night-castle-prop>img{object-fit:fill;filter:brightness(.92) contrast(1.08) drop-shadow(0 1rem 1.2rem #000)!important;animation:nfcg-castle-breathe 3.8s ease-in-out infinite alternate}.nfcg-castle-relic{z-index:13;animation:nfcg-castle-float 1.8s ease-in-out infinite alternate}.nfcg-castle-relic>img{inset:4%!important;width:92%!important;height:92%!important;filter:drop-shadow(0 .35rem .3rem #000) drop-shadow(0 0 .7rem rgba(157,99,224,.7))!important}.nfcg-castle-armor-ghost{z-index:18;animation:nfcg-castle-float 2.3s ease-in-out infinite alternate}.nfcg-castle-wraith{z-index:17;aspect-ratio:auto!important;animation:nfcg-wraith-drift 2.8s ease-in-out infinite alternate}.nfcg-castle-wraith>img{filter:brightness(.9) contrast(1.18) drop-shadow(0 1rem 1rem #000) drop-shadow(0 0 1.25rem rgba(70,16,115,.92))!important}.nfcg-castle-blue-fire,.nfcg-castle-black-tornado,.nfcg-castle-silver-blade,.nfcg-castle-tentacle{z-index:9;opacity:.88}.nfcg-castle-blue-fire{animation:nfcg-castle-flame .82s ease-in-out infinite alternate}.nfcg-castle-black-tornado{animation:nfcg-castle-spin 3.2s linear infinite}.nfcg-castle-silver-blade{animation:nfcg-castle-silver 1.3s ease-in-out infinite alternate}.nfcg-castle-tentacle{z-index:16;animation:nfcg-castle-tentacle .72s ease-out both}.nfcg-night-castle-overlay>span.is-under-token{opacity:.55!important}.nfcg-night-castle-overlay>.nfcg-castle-relic.is-under-token,.nfcg-night-castle-overlay>.nfcg-castle-armor-ghost.is-under-token,.nfcg-night-castle-overlay>.nfcg-castle-wraith.is-under-token{opacity:.36!important}
@keyframes nfcg-castle-breathe{from{filter:brightness(.82) contrast(1.1) drop-shadow(0 1rem 1.2rem #000)}to{filter:brightness(1.02) contrast(1.16) drop-shadow(0 1rem 1.2rem #000) drop-shadow(0 0 1rem rgba(104,47,145,.5))}}@keyframes nfcg-castle-float{from{transform:translate(-50%,-48%)}to{transform:translate(-50%,-57%)}}@keyframes nfcg-wraith-drift{from{transform:translate(-50%,-47%) scale(.97)}to{transform:translate(-50%,-54%) scale(1.03)}}@keyframes nfcg-castle-flame{from{opacity:.72;filter:brightness(.88)}to{opacity:1;filter:brightness(1.35)}}@keyframes nfcg-castle-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes nfcg-castle-silver{from{opacity:.54;filter:brightness(.9)}to{opacity:1;filter:brightness(1.55) drop-shadow(0 0 .7rem #d9f4ff)}}@keyframes nfcg-castle-tentacle{from{opacity:0;filter:brightness(1.8);transform:translate(-50%,-50%) scale(.25)}to{opacity:.95;filter:brightness(.88);transform:translate(-50%,-50%) scale(1)}}

.nfcg-night-castle-exterior-fallback{position:absolute!important;z-index:8!important;left:0!important;top:0!important;width:500%!important;height:500%!important;max-width:none!important;object-fit:fill!important;pointer-events:none;filter:brightness(.92) contrast(1.1) drop-shadow(0 12px 12px #000);animation:nfcg-castle-breathe 3.8s ease-in-out infinite alternate}.nfcg-castle-relic-fallback,.nfcg-castle-armor-fallback,.nfcg-castle-wraith-fallback{position:absolute;z-index:34;inset:0;display:grid;place-items:center;overflow:visible;pointer-events:none}.nfcg-castle-relic-fallback>img,.nfcg-castle-armor-fallback>img{position:absolute;inset:3%;width:94%;height:94%;object-fit:contain;filter:drop-shadow(0 5px 4px #000) drop-shadow(0 0 8px rgba(151,91,214,.72));animation:nfcg-castle-object-float 1.8s ease-in-out infinite alternate}.nfcg-castle-armor-fallback>img{inset:-12%;width:124%;height:124%}.nfcg-castle-wraith-fallback{z-index:33;left:-100%;top:-100%;width:300%;height:300%}.nfcg-castle-wraith-fallback>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 10px #000) drop-shadow(0 0 16px rgba(83,23,121,.92));animation:nfcg-castle-object-float 2.4s ease-in-out infinite alternate}.nfcg-castle-wraith-fallback>b{position:absolute;z-index:2;right:5%;top:4%;padding:3px 7px;color:#f6d8ff;border:1px solid #9a57c4;border-radius:99px;background:rgba(19,3,27,.9);font:900 10px/1 sans-serif}.nfcg-castle-field-fallback,.nfcg-castle-tentacle-fallback{position:absolute!important;z-index:16!important;inset:1%!important;width:98%!important;height:98%!important;object-fit:cover!important;border-radius:8%;pointer-events:none}.nfcg-castle-field-fallback.is-blue-fire{animation:nfcg-castle-flame .82s ease-in-out infinite alternate}.nfcg-castle-field-fallback.is-tornado{object-fit:contain!important;animation:nfcg-castle-field-spin 3.2s linear infinite}.nfcg-castle-field-fallback.is-silver{animation:nfcg-castle-silver 1.3s ease-in-out infinite alternate}.nfcg-castle-tentacle-fallback{z-index:29!important;animation:nfcg-castle-tentacle-fallback .72s ease-out both}@keyframes nfcg-castle-object-float{from{transform:translateY(1%)}to{transform:translateY(-8%)}}@keyframes nfcg-castle-field-spin{to{transform:rotate(360deg)}}@keyframes nfcg-castle-tentacle-fallback{from{opacity:0;transform:scale(.25)}to{opacity:.95;transform:scale(1)}}

.nfcg-castle-entry-modal{z-index:65000}.nfcg-castle-entry-panel{position:relative;z-index:2;width:min(980px,92vw);max-height:calc(100dvh - 36px);display:grid;grid-template-columns:minmax(270px,43%) minmax(0,1fr);gap:clamp(1.2rem,3vw,3rem);align-items:center;padding:clamp(1.4rem,3vw,3rem);overflow:auto;color:#eee1c6;border:1px solid #8c6940;background:radial-gradient(circle at 28% 35%,rgba(78,35,95,.3),transparent 45%),linear-gradient(145deg,#130d18,#050508 74%);box-shadow:0 2rem 6rem #000,inset 0 0 0 4px rgba(187,144,79,.1)}.nfcg-castle-entry-panel figure{position:relative;min-height:430px;margin:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse,rgba(108,51,132,.24),transparent 68%);pointer-events:none}.nfcg-castle-entry-panel figure img{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1rem 1rem #000);animation:nfcg-castle-breathe 3.4s ease-in-out infinite alternate}.nfcg-castle-entry-panel h2{margin:.18em 0;font-size:clamp(2rem,5vw,4.2rem);color:#f3dfb6}.nfcg-castle-entry-copy>p:not(.nfcg-eyebrow){color:#cbbca8;line-height:1.9}.nfcg-castle-entry-panel .nfcg-confirm-actions{position:relative;z-index:5}.nfcg-action-dock.is-castle-entry{border-color:#7b4c91;background:linear-gradient(100deg,#140a1b,#08070b)}@media(max-width:720px){.nfcg-castle-entry-panel{grid-template-columns:1fr}.nfcg-castle-entry-panel figure{min-height:230px}}
.nfcg-reduced-motion .nfcg-night-castle-overlay *,.nfcg-reduced-motion .nfcg-night-castle-exterior-fallback,.nfcg-reduced-motion .nfcg-castle-relic-fallback img,.nfcg-reduced-motion .nfcg-castle-armor-fallback img,.nfcg-reduced-motion .nfcg-castle-wraith-fallback img{animation:none!important}
.nfcg-castle-dark-fire{z-index:8!important;opacity:.92;animation:nfcg-wraith-dark-flame .74s ease-in-out infinite alternate}.nfcg-castle-dark-fire>img{object-fit:cover!important;border-radius:8%;filter:brightness(.8) contrast(1.2) saturate(1.12) drop-shadow(0 0 .72rem rgba(93,23,126,.84))!important}.nfcg-castle-field-fallback.is-dark-fire{z-index:15!important;animation:nfcg-wraith-dark-flame .74s ease-in-out infinite alternate;filter:brightness(.78) contrast(1.22) saturate(1.1) drop-shadow(0 0 8px rgba(91,18,123,.86))}@keyframes nfcg-wraith-dark-flame{from{opacity:.78;filter:brightness(.72) contrast(1.2) saturate(1.02) drop-shadow(0 0 5px rgba(69,10,96,.65));transform:scale(.985)}to{opacity:.98;filter:brightness(.93) contrast(1.28) saturate(1.22) drop-shadow(0 0 13px rgba(122,30,155,.9));transform:scale(1.025)}}
.nfcg-character-dialogue.is-night-wraith-dialogue .nfcg-dialogue-portrait{left:-2vw;right:auto;width:min(53vw,670px);height:min(78vh,760px)}.nfcg-night-wraith-dialogue-art>.nfcg-character-photo-base{object-fit:cover!important;object-position:center 43%!important;mask-image:radial-gradient(ellipse 78% 92% at 50% 48%,#000 0 56%,rgba(0,0,0,.92) 70%,rgba(0,0,0,.35) 84%,transparent 100%)!important;-webkit-mask-image:radial-gradient(ellipse 78% 92% at 50% 48%,#000 0 56%,rgba(0,0,0,.92) 70%,rgba(0,0,0,.35) 84%,transparent 100%)!important;filter:brightness(.72) contrast(1.2) saturate(.82) drop-shadow(0 24px 22px #000) drop-shadow(0 0 38px rgba(95,19,137,.65))!important}
.nfcg-factory-progress{position:fixed;top:92px;left:50%;z-index:235;transform:translateX(-50%);display:grid;grid-template-columns:auto auto;gap:2px 18px;min-width:340px;padding:9px 18px;border:1px solid rgba(194,151,74,.68);border-radius:6px;background:linear-gradient(100deg,rgba(12,8,8,.94),rgba(31,19,13,.9));box-shadow:0 8px 30px rgba(0,0,0,.48),inset 0 0 22px rgba(181,120,41,.08);color:#eadcb9;pointer-events:none}
.nfcg-factory-progress span{color:#b7965d;font:700 9px/1.2 ui-monospace,monospace;letter-spacing:.18em}.nfcg-factory-progress strong{grid-row:1/3;grid-column:2;align-self:center;color:#f0d89d;font-size:15px}.nfcg-factory-progress i{color:#a69a88;font-size:11px;font-style:normal}.nfcg-factory-progress b{grid-column:1/-1;color:#c8bca4;font-size:10px;font-weight:500}.nfcg-factory-progress.is-complete{border-color:#e7bd58;box-shadow:0 0 30px rgba(236,178,57,.2),inset 0 0 22px rgba(236,178,57,.1)}
@media(max-width:1100px){.nfcg-factory-progress{position:relative;top:auto;left:auto;transform:none;width:min(96%,520px);margin:8px auto}}

/* v3.2.21 · Character leaderboard, mall ceramic floor and figurine interaction. */
.nfcg-title-leaderboard-panel{width:min(1180px,calc(100vw - 36px));max-height:min(72vh,760px);overflow:auto;padding:24px 28px 30px}
.nfcg-leaderboard-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-right:44px}
.nfcg-leaderboard-heading p{margin:0;color:#b98a50;font:800 8px/1 ui-monospace,monospace;letter-spacing:.25em}.nfcg-leaderboard-heading h2{margin:7px 0 0}.nfcg-leaderboard-heading>button,.nfcg-leaderboard-error button{min-height:38px;padding:8px 15px;color:#ead8b4;border:1px solid #8d693a;border-radius:3px;background:#2a1515;font-weight:750;cursor:pointer}
.nfcg-leaderboard-note{margin:12px 0 18px!important;color:#a99c87!important;font-size:11px}.nfcg-leaderboard-body{display:grid;gap:20px}.nfcg-leaderboard-faction{overflow:hidden;border:1px solid rgba(185,142,73,.35);border-radius:5px;background:rgba(5,5,8,.72);box-shadow:inset 0 0 25px rgba(104,52,23,.09)}
.nfcg-leaderboard-faction>header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(185,142,73,.24);background:linear-gradient(90deg,rgba(34,71,103,.24),transparent)}.nfcg-leaderboard-faction.is-b>header{background:linear-gradient(90deg,rgba(112,28,38,.3),transparent)}.nfcg-leaderboard-faction>header>span{display:grid;place-items:center;width:38px;height:38px;color:#07101a;border-radius:50%;background:#76c4ef;font:900 20px/1 Georgia}.nfcg-leaderboard-faction.is-b>header>span{color:#210408;background:#df6870}.nfcg-leaderboard-faction h3{margin:0;color:#edddbf;font-size:17px}.nfcg-leaderboard-faction header p{margin:2px 0 0;color:#827a70;font-size:8px}
.nfcg-leaderboard-table-wrap{overflow:auto}.nfcg-leaderboard-faction table{width:100%;min-width:820px;border-collapse:collapse;font-size:11px}.nfcg-leaderboard-faction th,.nfcg-leaderboard-faction td{padding:8px 11px;border-bottom:1px solid rgba(255,255,255,.055);text-align:left;white-space:nowrap}.nfcg-leaderboard-faction th{position:sticky;top:0;z-index:2;color:#a68d68;background:#100d0f;font-size:8px;letter-spacing:.08em}.nfcg-leaderboard-faction td{color:#cfc2ad}.nfcg-leaderboard-character{display:flex;align-items:center;gap:10px}.nfcg-leaderboard-character>img{width:34px;height:46px;border:1px solid #70583a;border-radius:2px;object-fit:cover}.nfcg-leaderboard-character span{display:grid}.nfcg-leaderboard-character strong{color:#f1e2c5}.nfcg-leaderboard-character small{max-width:210px;overflow:hidden;color:#766f67;text-overflow:ellipsis}.nfcg-leaderboard-rate{position:relative;display:grid;min-width:112px;gap:4px}.nfcg-leaderboard-rate b{color:#f2d996}.nfcg-leaderboard-rate i{display:block;width:100%;height:4px;overflow:hidden;border-radius:4px;background:#251f21}.nfcg-leaderboard-rate i::before{content:"";display:block;width:var(--nfcg-win-rate);height:100%;background:linear-gradient(90deg,#7cbde2,#e6c15e);box-shadow:0 0 8px #d4ab4d}.nfcg-leaderboard-loading,.nfcg-leaderboard-error{display:flex;align-items:center;justify-content:center;gap:12px;min-height:120px;color:#baa989}.nfcg-leaderboard-loading i{width:24px;height:24px;border:2px solid #5d462b;border-top-color:#e3bd72;border-radius:50%;animation:nfcg-leaderboard-spin .75s linear infinite}@keyframes nfcg-leaderboard-spin{to{transform:rotate(360deg)}}

.nfcg-white-tile-terrain-fallback{position:absolute;z-index:2;inset:2%;width:96%!important;height:96%!important;border-radius:9%;object-fit:cover!important;pointer-events:none;opacity:.96;filter:saturate(.72) contrast(1.06) brightness(.82) drop-shadow(0 2px 3px rgba(0,0,0,.76))}.nfcg-white-tile-terrain-fallback.is-broken{filter:saturate(.58) contrast(1.14) brightness(.67) drop-shadow(0 2px 3px rgba(0,0,0,.82))}

.nfcg-token-interaction-overlay,.nfcg-token-emote-overlay{position:absolute;inset:0;overflow:visible;pointer-events:none;transform-origin:50% 50%}.nfcg-token-interaction-overlay{z-index:61000}.nfcg-token-emote-overlay{z-index:62000}.nfcg-token-emote-hitbox{position:absolute;aspect-ratio:.72;transform:translate(-50%,-82%);border:0!important;border-radius:48% 48% 30% 30%;outline:0;background:transparent!important;box-shadow:none!important;cursor:pointer;pointer-events:auto}.nfcg-token-emote-hitbox:focus-visible{outline:2px dashed rgba(255,221,136,.82);outline-offset:2px}.nfcg-token.is-token-emote-target{pointer-events:auto;cursor:pointer}.nfcg-token-emote-bubble{position:absolute;display:grid;width:clamp(170px,21vw,300px);max-width:30vw;padding:10px 13px;color:#f6ecd8;border:1px solid #c8a763;border-radius:15px 15px 15px 4px;background:linear-gradient(145deg,rgba(26,16,17,.97),rgba(7,8,12,.98));box-shadow:0 10px 30px rgba(0,0,0,.82),inset 0 0 16px rgba(172,108,61,.12);transform:translate(-8%,-160%);animation:nfcg-token-emote-in .18s ease-out both;pointer-events:none}.nfcg-token-emote-bubble::after{content:"";position:absolute;left:10%;bottom:-9px;width:16px;height:16px;border-right:1px solid #c8a763;border-bottom:1px solid #c8a763;background:#0c0b0e;transform:rotate(45deg)}.nfcg-token-emote-bubble.speaker-a{border-color:#75c6ee;box-shadow:0 10px 30px #000,inset 0 0 18px rgba(71,167,220,.15)}.nfcg-token-emote-bubble.speaker-b{border-color:#db626e;box-shadow:0 10px 30px #000,inset 0 0 18px rgba(193,43,58,.17)}.nfcg-token-emote-bubble strong{position:relative;z-index:1;color:#d4b66f;font:800 10px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.08em}.nfcg-token-emote-bubble span{position:relative;z-index:1;margin-top:5px;font:650 12px/1.5 Georgia,"Noto Serif TC",serif;white-space:normal}.nfcg-token-emote-bubble.speaker-a strong{color:#94d9f8}.nfcg-token-emote-bubble.speaker-b strong{color:#ef8d95}@keyframes nfcg-token-emote-in{from{opacity:0;transform:translate(-8%,-135%) scale(.86)}to{opacity:1;transform:translate(-8%,-160%) scale(1)}}
@media(max-width:700px){.nfcg-title-leaderboard-panel{padding:20px 12px 24px}.nfcg-leaderboard-heading{align-items:flex-start;flex-direction:column;padding-right:38px}.nfcg-token-emote-bubble{width:180px;max-width:54vw;font-size:10px;transform:translate(-12%,-150%)}}
.nfcg-reduced-motion .nfcg-leaderboard-loading i,.nfcg-reduced-motion .nfcg-token-emote-bubble{animation:none!important}

/* v3.2.26 · Stun, rainbow helmet, spring lift and Bark dam presentation. */
.nfcg-beaver-dam,.nfcg-spring-lift{overflow:visible!important;border-radius:8%;pointer-events:none}.nfcg-beaver-dam>img,.nfcg-spring-lift>img{inset:1%!important;width:98%!important;height:98%!important;object-fit:contain!important;filter:drop-shadow(0 7px 6px rgba(0,0,0,.9))}.nfcg-beaver-dam{z-index:22!important;animation:nfcg-dam-settle 2.4s ease-in-out infinite alternate}.nfcg-beaver-dam.is-broken{z-index:12!important;opacity:.8;animation:none}.nfcg-spring-lift{z-index:23!important;animation:nfcg-lift-idle 1.55s ease-in-out infinite alternate}.nfcg-spring-lift.is-broken{z-index:12!important;opacity:.78;animation:none}.nfcg-spring-lift>b,.nfcg-spring-lift-fallback>b{position:absolute;z-index:4;right:-5%;top:-12%;display:grid;place-items:center;width:22px;height:22px;color:#211405;border:1px solid #ffe38b;border-radius:50%;background:#f5bf3d;box-shadow:0 2px 6px #000,0 0 13px rgba(255,210,83,.92);font:900 13px/1 sans-serif}.nfcg-nightmare-field-overlay>.nfcg-beaver-dam.is-under-token,.nfcg-nightmare-field-overlay>.nfcg-spring-lift.is-under-token{opacity:.42!important;animation:none!important}.nfcg-nightmare-field-overlay>.nfcg-beaver-dam.is-under-prop,.nfcg-nightmare-field-overlay>.nfcg-spring-lift.is-under-prop{opacity:.32!important}
.nfcg-beaver-dam-fallback,.nfcg-spring-lift-fallback{position:absolute;z-index:22;inset:1%;pointer-events:none}.nfcg-beaver-dam-fallback{width:98%!important;height:98%!important;object-fit:contain;filter:drop-shadow(0 5px 5px #000);animation:nfcg-dam-settle-fallback 2.4s ease-in-out infinite alternate}.nfcg-beaver-dam-fallback.is-broken{z-index:12;opacity:.8;animation:none}.nfcg-spring-lift-fallback{display:grid;place-items:center;animation:nfcg-lift-idle-fallback 1.55s ease-in-out infinite alternate}.nfcg-spring-lift-fallback>img{width:98%!important;height:98%!important;object-fit:contain;filter:drop-shadow(0 5px 5px #000)}.nfcg-spring-lift-fallback.is-broken{z-index:12;opacity:.78;animation:none}
.nfcg-token-status-overlay{position:absolute;z-index:61500;inset:0;overflow:visible;pointer-events:none;isolation:isolate}.nfcg-token-status-overlay>span{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);overflow:visible;pointer-events:none}.nfcg-token-status-overlay>span>img{position:absolute;width:100%;height:100%;object-fit:contain;pointer-events:none}.nfcg-token-status-overlay>span>i{position:absolute;inset:0;pointer-events:none}.nfcg-brick-helmet-status>img{z-index:3;left:12%;top:-112%;width:76%!important;height:86%!important;object-position:center bottom;filter:drop-shadow(0 3px 3px #000) drop-shadow(0 0 7px rgba(255,218,93,.7));animation:nfcg-helmet-propeller 1.05s ease-in-out infinite alternate}.nfcg-brick-helmet-status>i{z-index:1;left:14%;top:-87%;right:14%;bottom:72%;border-radius:50%;box-shadow:0 0 17px rgba(86,214,255,.75),inset 0 0 10px rgba(255,225,98,.5)}.nfcg-dizzy-stun-status>img{z-index:5;left:-15%;top:-148%;width:130%!important;height:92%!important;filter:saturate(1.15) brightness(1.14) drop-shadow(0 0 9px rgba(255,229,87,.86));animation:nfcg-dizzy-orbit .82s linear infinite}.nfcg-dizzy-stun-status>i{z-index:0;left:8%;right:8%;top:-36%;height:31%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,228,109,.2),transparent 72%);filter:blur(5px)}.nfcg-moe-paperbag-status>img{z-index:2;left:-2%;top:-92%;width:104%!important;height:160%!important;object-position:center bottom;filter:drop-shadow(0 8px 7px #000);animation:nfcg-paperbag-tremble .33s steps(2,end) infinite}
.nfcg-token.is-stunned>img:not(.nfcg-token-dizzy-stun),.nfcg-token.is-stunned .nfcg-miniature-sprite{transform-origin:50% 100%;animation:nfcg-stunned-rock .54s ease-in-out infinite alternate!important}.nfcg-token-brick-helmet{position:absolute!important;z-index:13!important;left:50%!important;top:-4%!important;width:72%!important;height:62%!important;object-fit:contain!important;transform:translate(-50%,-75%)!important;filter:drop-shadow(0 3px 3px #000) drop-shadow(0 0 7px rgba(255,222,95,.72))!important;animation:nfcg-helmet-propeller 1.05s ease-in-out infinite alternate!important}.nfcg-token-dizzy-stun{position:absolute!important;z-index:15!important;left:50%!important;top:-13%!important;width:128%!important;height:76%!important;object-fit:contain!important;transform:translate(-50%,-100%)!important;filter:saturate(1.14) drop-shadow(0 0 9px rgba(255,229,87,.86))!important;animation:nfcg-dizzy-orbit-fallback .82s linear infinite!important}.nfcg-token-moe-paperbag{position:absolute!important;z-index:12!important;left:50%!important;bottom:0!important;width:108%!important;height:154%!important;object-fit:contain!important;object-position:center bottom!important;transform:translateX(-50%)!important;filter:drop-shadow(0 8px 7px #000)!important;animation:nfcg-paperbag-tremble-fallback .33s steps(2,end) infinite!important}
.nfcg-item-card.is-item-locked{filter:saturate(.28) brightness(.56);cursor:not-allowed}.nfcg-item-card.is-item-locked::after{content:"暗袋封存";position:absolute;z-index:8;inset:42% 7% auto;padding:6px;border:1px solid rgba(228,192,111,.45);background:rgba(7,5,8,.9);color:#e5c984;font:800 10px/1.2 Georgia,serif;letter-spacing:.09em}.nfcg-item-detail.is-item-locked{filter:saturate(.6)}.nfcg-direction-pad{display:grid!important;grid-template-columns:repeat(2,minmax(120px,1fr))!important;gap:10px}.nfcg-direction-pad>button{justify-content:center;min-height:54px;color:#f3dfad;border-color:rgba(211,167,76,.55);background:linear-gradient(145deg,#27190f,#0c0b0d);font-weight:850;cursor:pointer}.nfcg-direction-pad>button:hover,.nfcg-direction-pad>button:focus{border-color:#ffe293;box-shadow:0 0 16px rgba(255,203,79,.25)}
.nfcg-item-card.is-dark-shrouded{filter:saturate(.22) brightness(.55);border-color:#4d2b65!important;box-shadow:-13px 18px 32px rgba(0,0,0,.78),0 0 22px rgba(93,26,143,.72)!important}.nfcg-dark-shroud-art{position:absolute!important;z-index:7!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;object-fit:cover!important;opacity:.76;mix-blend-mode:screen;pointer-events:none;animation:nfcg-dark-shroud-breathe 2.4s ease-in-out infinite}.nfcg-item-card.is-dark-shrouded>em{position:relative;z-index:9;color:#f0d6ff;border-color:#8241a9;background:rgba(22,4,35,.88)}.nfcg-item-detail.is-dark-shrouded .nfcg-item-detail-art{filter:saturate(.35) brightness(.72)}.nfcg-item-detail .nfcg-dark-shroud-art{border-radius:9px!important}.nfcg-item-bonus.is-dark{display:block;color:#e2bdff;border-color:#773b9c;background:rgba(35,4,55,.66)}@keyframes nfcg-dark-shroud-breathe{0%,100%{opacity:.58;filter:hue-rotate(-8deg) brightness(.85)}50%{opacity:.88;filter:hue-rotate(10deg) brightness(1.18)}}
@keyframes nfcg-dam-settle{to{filter:brightness(1.08);transform:translate(-50%,-51%) scale(1.015)}}@keyframes nfcg-dam-settle-fallback{to{filter:brightness(1.08);transform:translateY(-1%) scale(1.015)}}@keyframes nfcg-lift-idle{to{filter:brightness(1.12);transform:translate(-50%,-56%) scale(1.025)}}@keyframes nfcg-lift-idle-fallback{to{filter:brightness(1.12);transform:translateY(-5%) scale(1.025)}}@keyframes nfcg-helmet-propeller{to{transform:translateY(-3%) rotate(1.4deg);filter:drop-shadow(0 3px 3px #000) drop-shadow(0 0 12px rgba(255,222,95,.9))}}@keyframes nfcg-dizzy-orbit{to{transform:rotate(360deg)}}@keyframes nfcg-dizzy-orbit-fallback{to{transform:translate(-50%,-100%) rotate(360deg)}}@keyframes nfcg-stunned-rock{from{transform:rotate(-5deg) translateX(-2%)}to{transform:rotate(5deg) translateX(2%)}}@keyframes nfcg-paperbag-tremble{from{transform:rotate(-1.3deg)}to{transform:translateX(1%) rotate(1.3deg)}}@keyframes nfcg-paperbag-tremble-fallback{from{transform:translateX(-50%) rotate(-1.3deg)}to{transform:translateX(-49%) rotate(1.3deg)}}
@media(max-width:700px){.nfcg-direction-pad{grid-template-columns:1fr!important}.nfcg-token-status-overlay{z-index:61500}}
.nfcg-reduced-motion .nfcg-beaver-dam,.nfcg-reduced-motion .nfcg-spring-lift,.nfcg-reduced-motion .nfcg-beaver-dam-fallback,.nfcg-reduced-motion .nfcg-spring-lift-fallback,.nfcg-reduced-motion .nfcg-brick-helmet-status>img,.nfcg-reduced-motion .nfcg-dizzy-stun-status>img,.nfcg-reduced-motion .nfcg-moe-paperbag-status>img,.nfcg-reduced-motion .nfcg-token.is-stunned>img,.nfcg-reduced-motion .nfcg-token-brick-helmet,.nfcg-reduced-motion .nfcg-token-dizzy-stun,.nfcg-reduced-motion .nfcg-token-moe-paperbag{animation:none!important}

/* v3.2.27 · Critical skill readouts sit above figurines; ground art stays below. */
.nfcg-critical-board-markers{position:absolute;z-index:61700;inset:0;overflow:visible;pointer-events:none;transform-origin:50% 50%}
.nfcg-critical-marker{position:absolute;aspect-ratio:1;overflow:visible;transform:translate(-50%,-50%);pointer-events:none}
.nfcg-critical-marker.is-compatible{z-index:61700;width:clamp(24px,2.2vw,34px);height:clamp(24px,2.2vw,34px)}
.nfcg-critical-marker>b{position:absolute;right:-17%;top:-27%;display:grid;place-items:center;width:clamp(24px,2.1vw,34px);height:clamp(24px,2.1vw,34px);color:#261000;border:2px solid #fff1a8;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff9bb,#ffc528 48%,#d56c00);box-shadow:0 4px 8px #000,0 0 17px rgba(255,210,48,.98);font:900 clamp(13px,1.1vw,18px)/1 ui-monospace,Consolas,monospace;text-shadow:0 1px rgba(255,255,255,.35);animation:nfcg-critical-marker-pulse .7s ease-in-out infinite alternate}
.nfcg-critical-marker.is-puppet>b{color:#fff0ca;border-color:#efca83;background:radial-gradient(circle at 35% 28%,#8c3248,#4b101c 58%,#17070b);box-shadow:0 4px 8px #000,0 0 17px rgba(225,87,113,.88)}
@keyframes nfcg-critical-marker-pulse{to{transform:translateY(-4px) scale(1.07);filter:brightness(1.14)}}
.nfcg-reduced-motion .nfcg-critical-marker>b{animation:none!important}

/* v3.2.29 · Fail-closed rendering, two-round Mad Zoo rings and full-map mud. */
.nfcg-asset-failed{display:none!important;visibility:hidden!important;width:0!important;height:0!important}
.nfcg-board img[src=""],.nfcg-pixi-host img[src=""],.nfcg-nightmare-field-overlay img[src=""],.nfcg-token-status-overlay img[src=""]{display:none!important;visibility:hidden!important;width:0!important;height:0!important}
.nfcg-pixi-host.is-gpu-recovering::after{content:"高畫質棋盤重新連線中";position:absolute;z-index:9999;right:18px;bottom:16px;padding:8px 13px;color:#ecd69e;border:1px solid rgba(204,162,83,.55);border-radius:999px;background:rgba(8,8,13,.86);box-shadow:0 4px 18px rgba(0,0,0,.65);font:700 11px/1.2 "Noto Serif TC",serif;pointer-events:none}
.nfcg-pixi-host.is-gpu-recovering{background-color:#070910!important}
.nfcg-pixi-host.is-gpu-recovering .nfcg-pixi-canvas{background:transparent!important}
.nfcg-aaa-lighting-layer.is-failed,.nfcg-aaa-lighting-layer[hidden]{display:none!important}
.nfcg-aaa-lighting-canvas{background:transparent!important}
.nfcg-mud-terrain-fallback{position:absolute;z-index:3;inset:2%;width:96%!important;height:96%!important;border-radius:9%;object-fit:cover!important;pointer-events:none;opacity:.92;filter:saturate(.9) contrast(1.07) brightness(.72) drop-shadow(0 2px 3px rgba(0,0,0,.82))}
.nfcg-node.terrain-mud{background:#351811;border-color:#8d5940;box-shadow:inset 0 0 10px rgba(83,28,15,.78),0 0 4px rgba(147,79,48,.34)}
.nfcg-node.is-zoo-locked{z-index:5!important;cursor:not-allowed!important;pointer-events:none!important;border-color:#5d2d83!important;box-shadow:inset 0 0 17px #020006,0 0 10px rgba(130,52,187,.66)!important}
.nfcg-node.is-zoo-locked>.nfcg-cosmos-fallback{z-index:6!important;inset:-1%!important;width:102%!important;height:102%!important;opacity:.98!important;animation:nfcg-zoo-vortex 2.6s ease-in-out infinite alternate}
.nfcg-mad-zoo-overlay{position:absolute;z-index:2;inset:0;overflow:visible;pointer-events:none;transform-origin:50% 50%}
.nfcg-zoo-quake-plane,.nfcg-zoo-white-halo{position:absolute;inset:0;pointer-events:none}.nfcg-zoo-quake-plane{z-index:0}.nfcg-zoo-white-halo{z-index:1;inset:3%;border:1px solid rgba(230,241,255,.32);border-radius:4px;box-shadow:inset 0 0 24px rgba(224,239,255,.08),0 0 14px rgba(225,237,255,.11)}
.nfcg-pinwheel-fallback:not(.is-broken){transform-origin:50% 88%;animation:nfcg-pinwheel-ground-sway 1.7s ease-in-out infinite alternate!important}
.nfcg-token.is-moe-isolated>.nfcg-token-moe-paperbag{background:transparent!important;object-position:center bottom!important;animation:nfcg-paperbag-tremble-fallback .33s steps(2,end) infinite!important}
@keyframes nfcg-zoo-vortex{from{transform:rotate(-4deg) scale(.98);filter:brightness(.72)}to{transform:rotate(5deg) scale(1.04);filter:brightness(1.16)}}
@keyframes nfcg-pinwheel-ground-sway{from{transform:translate(-50%,-50%) rotate(-3deg)}to{transform:translate(-50%,-50%) rotate(3deg)}}
.nfcg-mad-zoo-overlay.is-light{animation:nfcg-zoo-board-shake-light .42s ease-in-out infinite alternate}.nfcg-mad-zoo-overlay.is-normal{animation:nfcg-zoo-board-shake-normal .26s ease-in-out infinite alternate}.nfcg-mad-zoo-overlay.is-violent{animation:nfcg-zoo-board-shake-violent .16s linear infinite alternate}
@keyframes nfcg-zoo-board-shake-light{to{transform:translate(.5px,-.35px)}}@keyframes nfcg-zoo-board-shake-normal{to{transform:translate(1px,-.7px)}}@keyframes nfcg-zoo-board-shake-violent{to{transform:translate(1.7px,-1.2px)}}
.nfcg-reduced-motion .nfcg-node.is-zoo-locked>.nfcg-cosmos-fallback,.nfcg-reduced-motion .nfcg-pinwheel-fallback,.nfcg-reduced-motion .nfcg-mad-zoo-overlay{animation:none!important}

/* v3.2.29 · All child portraits and figurines share one fitted helmet composite. */
.nfcg-character-photo{--helmet-x:50%;--helmet-y:4%;--helmet-w:38%;position:relative;display:block;width:100%;height:100%;overflow:visible}
.nfcg-character-photo>.nfcg-character-photo-base{position:relative;z-index:1;display:block;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important}
.nfcg-character-photo>.nfcg-character-photo-helmet{position:absolute!important;z-index:7!important;left:var(--helmet-x)!important;top:var(--helmet-y)!important;width:var(--helmet-w)!important;height:auto!important;max-height:38%!important;object-fit:contain!important;object-position:center!important;transform:translate(-50%,-4%)!important;transform-origin:50% 55%!important;filter:drop-shadow(0 7px 7px rgba(0,0,0,.9)) drop-shadow(0 0 13px rgba(255,218,86,.56))!important;mask-image:none!important;-webkit-mask-image:none!important;animation:nfcg-worn-helmet-settle 1.25s ease-in-out infinite alternate}
.nfcg-character-photo.is-brick-helmeted>.nfcg-character-photo-base{filter:drop-shadow(0 24px 17px rgba(0,0,0,.9)) contrast(1.06) saturate(.96)!important}
.nfcg-capture-hunter .nfcg-character-photo,.nfcg-capture-victim .nfcg-character-photo{height:100%;width:100%}.nfcg-capture-hunter .nfcg-character-photo>.nfcg-character-photo-helmet,.nfcg-capture-victim .nfcg-character-photo>.nfcg-character-photo-helmet{height:auto!important}
.nfcg-character-photo.archetype-pochi,.nfcg-character-photo.archetype-chonky_ginger,.nfcg-character-photo.archetype-bark_beaver{--helmet-y:8%;--helmet-w:47%}
.nfcg-character-photo.archetype-ponyo{--helmet-y:2%;--helmet-w:49%}.nfcg-character-photo.archetype-moe_paperbag{--helmet-y:3%;--helmet-w:43%}.nfcg-character-photo.archetype-lulu,.nfcg-character-photo.archetype-pip_rooftop,.nfcg-character-photo.archetype-ren_skater{--helmet-y:5%;--helmet-w:39%}
.nfcg-token.is-brick-helmeted .nfcg-token-brick-helmet{top:2%!important;width:74%!important;height:66%!important;transform:translate(-50%,-68%)!important}.nfcg-token.is-brick-helmeted.archetype-pochi .nfcg-token-brick-helmet,.nfcg-token.is-brick-helmeted.archetype-chonky_ginger .nfcg-token-brick-helmet,.nfcg-token.is-brick-helmeted.archetype-bark_beaver .nfcg-token-brick-helmet{width:86%!important;top:7%!important}
.nfcg-brick-helmet-status.archetype-pochi>img,.nfcg-brick-helmet-status.archetype-chonky_ginger>img,.nfcg-brick-helmet-status.archetype-bark_beaver>img{left:5%;top:-106%;width:90%!important;height:90%!important}.nfcg-brick-helmet-status.archetype-ponyo>img{left:4%;top:-108%;width:92%!important}
@keyframes nfcg-worn-helmet-settle{from{translate:0 0}to{translate:0 -2px}}
.nfcg-reduced-motion .nfcg-character-photo>.nfcg-character-photo-helmet{animation:none!important}

/* v3.2.30 · Helmet art is genuinely re-rendered per child; Moe uses one replacement sprite. */
.nfcg-character-photo>.nfcg-character-photo-helmet,
.nfcg-token-brick-helmet,
.nfcg-brick-helmet-status,
.nfcg-moe-paperbag-status{display:none!important}
.nfcg-token.is-moe-isolated{z-index:50000!important}
.nfcg-token.is-moe-isolated>img.nfcg-token-moe-paperbag{left:50%!important;bottom:0!important;width:82%!important;height:118%!important;max-width:82%!important;max-height:118%!important;object-fit:contain!important;object-position:center bottom!important;transform:translateX(-50%)!important;filter:drop-shadow(0 7px 6px rgba(0,0,0,.88))!important;animation:nfcg-paperbag-tremble-fallback .33s steps(2,end) infinite!important}
.nfcg-token.is-moe-isolated.is-active{z-index:51000!important}
.nfcg-critical-board-markers,.nfcg-critical-marker{z-index:61700!important}
.nfcg-reduced-motion .nfcg-token.is-moe-isolated>img.nfcg-token-moe-paperbag{animation:none!important}

/* v3.2.31 · Helmet dialogue renders fade into the stage instead of reading as pasted rectangles. */
.nfcg-dialogue-portrait .nfcg-character-photo.is-brick-helmeted{inset:-2% -4% -1%;width:108%;height:103%;overflow:visible;background:transparent}
.nfcg-dialogue-portrait .nfcg-character-photo.is-brick-helmeted>.nfcg-character-photo-base{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 48%!important;mask-image:radial-gradient(ellipse 79% 94% at 52% 50%,#000 0 55%,rgba(0,0,0,.96) 66%,rgba(0,0,0,.55) 78%,transparent 100%)!important;-webkit-mask-image:radial-gradient(ellipse 79% 94% at 52% 50%,#000 0 55%,rgba(0,0,0,.96) 66%,rgba(0,0,0,.55) 78%,transparent 100%)!important;filter:contrast(1.08) saturate(.92) brightness(.9) drop-shadow(0 25px 19px rgba(0,0,0,.94))!important}
.nfcg-dialogue-portrait .nfcg-character-photo.is-brick-helmeted::after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(ellipse 72% 84% at 52% 49%,transparent 52%,rgba(18,5,15,.14) 72%,rgba(5,2,7,.72) 100%);mix-blend-mode:multiply;pointer-events:none}

/* v3.2.36 · Encrypted members and independently rendered manuscript cosmetics. */
.nfcg-title-menu{width:min(1760px,calc(100vw - 54px));grid-template-columns:repeat(10,minmax(0,1fr))}
.nfcg-title-menu>button.is-member-locked{color:#81766b;background:repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 5px,transparent 5px 10px)}
.nfcg-title-menu>button.is-member-locked i{color:#69565c}.nfcg-title-menu>button.is-member-locked small{color:#9a6871}
.nfcg-title-support{position:absolute;z-index:12;left:31px;top:28px;margin:0;padding:7px 12px;color:#8d806c;border:1px solid rgba(174,130,67,.28);border-radius:99px;background:rgba(4,3,6,.72);backdrop-filter:blur(8px);font-size:8px;letter-spacing:.06em}
.nfcg-title-support a{color:#d2b274;text-decoration:none}.nfcg-title-support a:hover{text-decoration:underline;color:#f1d99f}

/* v3.2.39 · Anonymous active-browser presence shown on the title screen. */
.nfcg-online-presence{position:absolute;z-index:12;top:70px;right:31px;display:grid;min-width:154px;padding:9px 13px 9px 38px;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 10px;color:#b8aa91;border:1px solid rgba(178,133,70,.4);border-radius:5px 15px 5px 15px;background:linear-gradient(135deg,rgba(28,20,19,.89),rgba(5,5,8,.91));box-shadow:inset 0 1px rgba(255,229,173,.1),0 10px 28px rgba(0,0,0,.55);backdrop-filter:blur(10px);pointer-events:none}.nfcg-online-presence>i{position:absolute;left:15px;top:50%;width:10px;height:10px;border:2px solid rgba(134,222,158,.38);border-radius:50%;background:#74c58a;box-shadow:0 0 0 4px rgba(87,173,111,.09),0 0 15px rgba(98,216,131,.72);transform:translateY(-50%);animation:nfcg-presence-pulse 2.4s ease-in-out infinite}.nfcg-online-presence>span{align-self:end;color:#8f806e;font:800 7px/1 ui-monospace,Consolas,monospace;letter-spacing:.22em}.nfcg-online-presence>strong{grid-row:1/3;grid-column:2;align-self:center;color:#f3ddb0;font:800 25px/1 Georgia,"Noto Serif TC",serif;text-shadow:0 0 14px rgba(213,169,89,.24)}.nfcg-online-presence>small{color:#c4b69e;font-size:9px;letter-spacing:.08em}.nfcg-online-presence.is-loading>i{background:#8d806d;border-color:rgba(141,128,109,.3);box-shadow:none;animation:none}.nfcg-online-presence.is-loading>strong{color:#897c68}@keyframes nfcg-presence-pulse{0%,100%{opacity:.72;transform:translateY(-50%) scale(.9)}50%{opacity:1;transform:translateY(-50%) scale(1.08)}}

.nfcg-member-register{display:grid;gap:16px;max-width:680px;margin:auto;padding:6px}.nfcg-member-register>p:not(.nfcg-eyebrow){margin:-8px 0 4px;color:#a99d8d;line-height:1.75}.nfcg-member-register>label{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:14px;color:#d9c49b;font:700 12px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-member-register input{height:48px;padding:0 14px;color:#f5ead3;border:1px solid #5f4a35;border-radius:5px;background:#08070a;box-shadow:inset 0 3px 10px #000;outline:none}.nfcg-member-register input:focus{border-color:#d0a45b;box-shadow:0 0 0 3px rgba(208,164,91,.15),inset 0 3px 10px #000}.nfcg-member-register>small{padding:12px 14px;color:#8d8274;border-left:2px solid #8a5f34;background:rgba(94,58,31,.11);line-height:1.65}

.nfcg-manuscript-library{display:grid;gap:30px}.nfcg-manuscript-library>header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;padding:22px 24px;border:1px solid #785d38;border-radius:16px 3px;background:radial-gradient(circle at 85% 20%,rgba(151,72,74,.23),transparent 38%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 7px),#17100f;box-shadow:inset 0 0 30px #050303,0 13px 28px rgba(0,0,0,.45)}.nfcg-manuscript-library>header .nfcg-eyebrow{grid-column:1/-1;margin:0}.nfcg-manuscript-library>header h2{margin:0}.nfcg-manuscript-library>header>div{display:grid;justify-items:end;gap:4px}.nfcg-manuscript-library>header strong{color:#f2ddae;font:800 20px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-manuscript-library>header span,.nfcg-manuscript-library>header small{color:#a99b84;font-size:10px}.nfcg-manuscript-library>section>h3{margin:0 0 7px;color:#e7d1a5;font:800 21px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-manuscript-library>section>p{margin:0 0 15px;color:#968b7b;line-height:1.65}
.nfcg-manuscript-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.nfcg-manuscript-card{--tier-color:#88744d;position:relative;isolation:isolate;display:grid;grid-template-columns:122px minmax(0,1fr);min-height:176px;gap:17px;padding:14px;overflow:hidden;border:1px solid var(--tier-color);border-radius:4px 18px 4px 18px;background:linear-gradient(135deg,rgba(107,80,40,.17),rgba(15,10,12,.98) 55%);box-shadow:inset 0 0 0 4px rgba(4,2,3,.75),inset 0 0 23px rgba(0,0,0,.66),0 8px 22px rgba(0,0,0,.42)}.nfcg-manuscript-card::before{content:"";position:absolute;z-index:-1;inset:5px;border:1px solid color-mix(in srgb,var(--tier-color) 45%,transparent);border-radius:2px 13px;pointer-events:none}.nfcg-manuscript-card::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 13% 14%,color-mix(in srgb,var(--tier-color) 21%,transparent),transparent 35%);pointer-events:none}.nfcg-manuscript-art{overflow:hidden;border:1px solid color-mix(in srgb,var(--tier-color) 75%,#33251d);border-radius:3px 12px 3px 12px;background:#030305;box-shadow:0 8px 15px rgba(0,0,0,.65)}.nfcg-manuscript-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:contrast(1.04) saturate(.96)}.nfcg-manuscript-card>div:last-child{display:flex;min-width:0;flex-direction:column;align-items:flex-start}.nfcg-manuscript-card small{color:var(--tier-color);font:800 9px/1.4 ui-monospace,monospace;letter-spacing:.08em}.nfcg-manuscript-card h3{margin:7px 0 5px;color:#f0e0c5;font:800 17px/1.3 Georgia,"Noto Serif TC",serif}.nfcg-manuscript-card p{margin:0 0 14px;color:#9b9184;font-size:10px}.nfcg-manuscript-card button{width:100%;min-height:38px;margin-top:auto;padding:7px 10px}.nfcg-manuscript-card.tier-5{--tier-color:#9a7a42;background-color:#211a10}.nfcg-manuscript-card.tier-4{--tier-color:#b57b5c;background-image:repeating-linear-gradient(90deg,rgba(169,98,75,.08) 0 2px,transparent 2px 13px),linear-gradient(135deg,rgba(107,80,40,.17),rgba(15,10,12,.98) 55%)}.nfcg-manuscript-card.tier-3{--tier-color:#67a3ca;box-shadow:inset 0 0 0 4px rgba(4,2,3,.75),0 0 24px rgba(62,140,202,.23)}.nfcg-manuscript-card.tier-2{--tier-color:#ba78e4;box-shadow:inset 0 0 0 4px rgba(4,2,3,.75),0 0 28px rgba(168,73,221,.32)}.nfcg-manuscript-card.tier-1{--tier-color:#f1c960;box-shadow:inset 0 0 0 4px rgba(4,2,3,.75),0 0 34px rgba(245,195,67,.42)}
.nfcg-manuscript-empty{grid-column:1/-1;margin:0;padding:28px;color:#a99b85;border:1px dashed #665238;text-align:center;background:rgba(65,43,28,.13)}
.nfcg-member-match-table{overflow:auto;border:1px solid #463a31;border-radius:7px;background:#08070a}.nfcg-member-match-table table{width:100%;min-width:760px;border-collapse:collapse}.nfcg-member-match-table th,.nfcg-member-match-table td{padding:11px 12px;border-bottom:1px solid #2e2824;text-align:left;font-size:10px}.nfcg-member-match-table th{color:#d8bb7a;background:#17100f;letter-spacing:.08em}.nfcg-member-match-table td{color:#ada396}.nfcg-member-match-table tr:last-child td{border-bottom:0}
.nfcg-finish-reward{--tier-color:#d2a64b;display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;width:min(460px,100%);margin-top:20px;padding:11px;border:1px solid var(--tier-color);border-radius:4px 14px;background:rgba(10,7,9,.83);box-shadow:0 0 28px color-mix(in srgb,var(--tier-color) 32%,transparent);text-shadow:none}.nfcg-finish-reward img{width:92px;height:116px;border-radius:3px 9px;object-fit:cover}.nfcg-finish-reward small{color:var(--tier-color);font-weight:800}.nfcg-finish-reward h3{margin:6px 0;color:#f3e5c9;font:800 18px/1.2 Georgia,"Noto Serif TC",serif}.nfcg-finish-reward p{margin:0!important;color:#aaa093!important}.nfcg-finish-reward.tier-2{--tier-color:#ba78e4}.nfcg-finish-reward.tier-3{--tier-color:#67a3ca}.nfcg-finish-reward.tier-4{--tier-color:#b57b5c}.nfcg-finish-reward.tier-5{--tier-color:#9a7a42}.nfcg-finish-no-reward{margin:16px 0 0!important;padding:9px 12px;color:#a99e8f!important;border-left:2px solid #806b4a;background:rgba(8,7,9,.65)}

/* Dialogue scenes ship with their own RGBA feathered perimeter; no CSS crop or
   synthetic mask is needed to hide a rectangular source image. */
.nfcg-dialogue-portrait .nfcg-character-photo.has-manuscript-cosmetic{inset:-3% -6% -4%;width:112%;height:107%;overflow:visible;background:transparent}
.nfcg-dialogue-portrait .nfcg-character-photo.has-manuscript-cosmetic>.nfcg-character-photo-base{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;mask-image:none!important;-webkit-mask-image:none!important;filter:contrast(1.045) saturate(.96) brightness(.94) drop-shadow(0 26px 20px rgba(0,0,0,.9))!important}
.nfcg-dialogue-portrait .nfcg-character-photo.has-manuscript-cosmetic::after{content:"";position:absolute;z-index:2;inset:-1%;background:radial-gradient(ellipse 78% 88% at 50% 48%,transparent 58%,rgba(17,6,14,.07) 76%,rgba(5,2,7,.42) 100%);mix-blend-mode:multiply;pointer-events:none}

@media (max-width:1200px){.nfcg-title-menu{overflow-x:auto;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(145px,1fr);scrollbar-width:thin}.nfcg-manuscript-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}}
@media (max-width:700px){.nfcg-title-support{left:15px;top:15px;max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nfcg-online-presence{top:58px;right:15px;min-width:130px;padding:7px 10px 7px 31px}.nfcg-online-presence>i{left:12px;width:8px;height:8px}.nfcg-online-presence>strong{font-size:20px}.nfcg-member-register>label{grid-template-columns:1fr;gap:6px}.nfcg-manuscript-library>header{grid-template-columns:1fr}.nfcg-manuscript-library>header>div{justify-items:start}.nfcg-manuscript-grid{grid-template-columns:1fr}.nfcg-manuscript-card{grid-template-columns:105px minmax(0,1fr)}}

/* v3.2.42 · Persistent Traditional Chinese / Japanese / English interface. */
@media (max-width:900px){.nfcg-language-switch{top:14px;left:50%;max-width:46vw}.nfcg-language-switch button{padding-inline:8px;font-size:7px}.nfcg-app[data-locale="en"] .nfcg-title-identity h1{font-size:clamp(34px,7.6vw,61px);line-height:1.05}.nfcg-app[data-locale="ja"] .nfcg-title-identity h1{font-size:clamp(40px,9vw,72px)}}
@media (max-width:560px){.nfcg-language-switch{top:50px;left:15px;max-width:72vw;transform:none}.nfcg-language-switch button{padding:4px 7px}.nfcg-app[data-locale="en"] .nfcg-title-identity,.nfcg-app[data-locale="ja"] .nfcg-title-identity{top:86px}.nfcg-app[data-locale="en"] .nfcg-title-identity h1{font-size:clamp(28px,9.3vw,43px)}.nfcg-app[data-locale="ja"] .nfcg-title-identity h1{font-size:clamp(34px,10vw,50px)}}
