/* Khu vườn Nội tâm V13 — Nocturne Garden design system
   Một bảng màu duy nhất cho toàn bộ trải nghiệm: nền đêm xanh mực,
   chữ ánh trăng, một điểm nhấn duy nhất là ánh đèn lồng. */
@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-garamond/CormorantGaramond-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-garamond/CormorantGaramond-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/cormorant-garamond/CormorantGaramond-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/cormorant-garamond/CormorantGaramond-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:BeVietnam;src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:BeVietnam;src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-SemiBold.ttf');font-weight:600;font-display:swap}
@font-face{font-family:BeVietnam;src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-SemiBold.ttf');font-weight:600;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('assets/fonts/be-vietnam-pro/BeVietnamPro-Bold.ttf');font-weight:700;font-display:swap}

:root{
  /* Nền đêm — đẩy sáng hơn v13.5 cho tone mực lung linh */
  --ink-0:#0c1a20;--ink-1:#122630;--ink-2:#1a3540;--ink-3:#25464f;--ink-4:#345c66;
  /* Chữ */
  --moon:#f2ede2;--mist:#c4d3ce;--fog:#96a8a2;
  /* Điểm nhấn chính: đèn lồng ấm */
  --lantern:#f0b478;--lantern-strong:#ffd29c;--lantern-soft:rgba(240,180,120,.16);--lantern-line:rgba(240,180,120,.5);
  /* Sắc phụ: tím-hồng phớt cho hoa và bầu trời */
  --bloom:#e08fbe;--bloom-soft:rgba(224,143,190,.18);--violet:#9877d6;--violet-soft:rgba(152,119,214,.16);
  /* Ngữ nghĩa (chỉ dùng cho trạng thái) */
  --jade:#8fd6b8;--danger:#e58a7b;
  --line:rgba(215,235,228,.16);--line-strong:rgba(215,235,228,.28);
  --panel-bg:rgba(14,28,34,.82);
  --serif:Cormorant,"Cormorant Garamond",Georgia,serif;
  --sans:BeVietnam,"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);
  --hud-top:72px;--hud-bottom:72px;--gutter:28px;
  --active-card-back:url('assets/decks/andrew-mcnutt/card-back.webp');
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
html{background:var(--ink-0);-webkit-text-size-adjust:100%}
body{margin:0;overflow:hidden;background:var(--ink-0);color:var(--moon);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--lantern);outline-offset:3px;border-radius:6px}
.hidden,[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:-60px;z-index:100;background:var(--lantern);color:var(--ink-0);padding:10px 14px;border-radius:8px;font-weight:600;text-decoration:none}
.skip-link:focus{top:12px}
html.world-live .only-2d{display:none!important}
html:not(.world-live) .only-3d{display:none!important}

/* ---------- Thế giới 3D ---------- */
.world{position:fixed;inset:0;z-index:0;overflow:hidden}
.world canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;opacity:0;transition:opacity .9s var(--ease-out)}
html.world-live .world canvas{opacity:1}
html.world-live .world canvas.is-pointer{cursor:pointer}
html.world-live .world canvas.is-grabbing{cursor:grabbing}
.world-backdrop{position:absolute;inset:0;background:
  radial-gradient(120% 70% at 50% 108%,#1c3d3e 0 30%,transparent 62%),
  radial-gradient(50% 34% at 22% 18%,rgba(224,143,190,.14),transparent 70%),
  radial-gradient(60% 40% at 72% 22%,rgba(255,220,180,.16),transparent 70%),
  radial-gradient(48% 30% at 78% 78%,rgba(152,119,214,.10),transparent 70%),
  linear-gradient(180deg,#0a1a24 0%,#12283a 42%,#1e3a48 74%,#122630 100%)}
.backdrop-moon{position:absolute;right:18%;top:12%;width:clamp(90px,11vw,150px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 38%,#f7efdc,#e7dcc3 62%,#d9ccb0);box-shadow:0 0 60px 18px rgba(241,232,212,.16),0 0 180px 60px rgba(241,232,212,.06)}
.backdrop-hill{position:absolute;left:-10%;right:-10%;bottom:-6%;height:42%;background:
  radial-gradient(60% 70% at 24% 100%,#10231f 0 60%,transparent 61%),
  radial-gradient(55% 60% at 78% 100%,#0c1b19 0 60%,transparent 61%),
  linear-gradient(180deg,transparent 40%,#0a1513 100%)}
.world-tooltip{position:fixed;left:0;top:0;z-index:40;pointer-events:none;max-width:260px;padding:7px 11px;border-radius:8px;background:rgba(8,16,20,.92);border:1px solid var(--line-strong);color:var(--moon);font:600 13px/1.35 var(--sans);opacity:0;transform:translate3d(-50%,-50%,0);transition:opacity .14s var(--ease-out)}
.world-tooltip small{display:block;font-weight:400;color:var(--mist);font-size:12px}
.world-tooltip.is-on{opacity:1}
.world-veil{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:var(--ink-0);color:var(--mist);font:400 22px var(--serif);letter-spacing:.02em;pointer-events:none;animation:veilSafety .6s 5s forwards}
.world-veil span{animation:breathe 2.4s var(--ease-io) infinite alternate}
html.world-ready .world-veil,html.world-static .world-veil{opacity:0;transition:opacity .9s var(--ease-out);animation:none}
@keyframes veilSafety{to{opacity:0}}
@keyframes breathe{from{opacity:.45}to{opacity:1}}

/* ---------- HUD ---------- */
.hud-top{position:fixed;inset:0 0 auto 0;height:var(--hud-top);z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 var(--gutter);background:linear-gradient(180deg,rgba(8,15,19,.78),rgba(8,15,19,0));pointer-events:none}
.hud-top>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;justify-self:start}
.brand-mark svg{width:34px;height:34px;fill:none;stroke:var(--lantern);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.brand-name{display:block;font:600 21px/1 var(--serif);letter-spacing:.01em}
.brand-copy small{display:block;margin-top:3px;font-size:12px;color:var(--fog);letter-spacing:.04em}
.station-nav{display:flex;gap:6px;padding:5px;border-radius:12px;background:rgba(10,20,24,.55);border:1px solid var(--line);backdrop-filter:blur(14px)}
.station-nav a{position:relative;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:8px;text-decoration:none;color:var(--mist);font-size:14px;transition:color .18s var(--ease-out),background-color .18s var(--ease-out)}
.station-nav a b{font:600 11px/1 var(--sans);color:var(--fog);letter-spacing:.06em}
.station-nav a[aria-current]{color:var(--moon);background:var(--lantern-soft)}
.station-nav a[aria-current] b{color:var(--lantern)}
@media(hover:hover) and (pointer:fine){.station-nav a:hover{color:var(--moon);background:rgba(255,255,255,.04)}}
.hud-actions{display:flex;gap:8px;justify-self:end;align-items:center}
.chip-button{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:rgba(10,20,24,.55);backdrop-filter:blur(14px);font-size:13px;color:var(--mist);transition:border-color .18s var(--ease-out),color .18s}
.sound-dot{width:8px;height:8px;border-radius:50%;background:var(--fog);box-shadow:0 0 0 3px rgba(138,156,150,.18)}
.chip-button[aria-pressed="true"]{color:var(--moon)}
.chip-button[aria-pressed="true"] .sound-dot{background:var(--lantern);box-shadow:0 0 0 3px var(--lantern-soft),0 0 10px var(--lantern)}
.icon-button{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:rgba(10,20,24,.55);backdrop-filter:blur(14px);color:var(--mist);transition:border-color .18s var(--ease-out),color .18s,transform .16s var(--ease-out)}
.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.icon-button:active{transform:scale(.96)}
@media(hover:hover) and (pointer:fine){.icon-button:hover,.chip-button:hover{border-color:var(--lantern-line);color:var(--moon)}}
.hud-bottom{position:fixed;inset:auto 0 0 0;height:var(--hud-bottom);z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);pointer-events:none;background:linear-gradient(0deg,rgba(8,15,19,.6),rgba(8,15,19,0))}
.hud-bottom>*{pointer-events:auto}
.hud-where{margin:0;display:flex;align-items:baseline;gap:12px;color:var(--mist);font-size:14px}
.hud-where b{font:600 28px/1 var(--serif);color:var(--lantern);font-variant-numeric:tabular-nums}
.hud-steps{display:flex;gap:8px}

/* ---------- Trạm & bảng ---------- */
main{outline:none}
.station{display:none}
.station.is-active{display:flex}
.station-panel{position:fixed;z-index:20;top:calc(var(--hud-top) + 8px);bottom:calc(var(--hud-bottom) + 4px);right:var(--gutter);width:min(460px,calc(100vw - 2 * var(--gutter)));align-items:flex-start}
.station-panel[data-side="left"]{right:auto;left:var(--gutter)}
.station-panel.is-wide{width:min(580px,calc(100vw - 2 * var(--gutter)))}
.station-panel.is-active .panel{animation:panelIn .5s var(--ease-out) both}
@keyframes panelIn{from{opacity:0;transform:translate3d(0,14px,0) scale(.985)}to{opacity:1;transform:none}}
.panel{display:flex;flex-direction:column;width:100%;max-height:100%;background:var(--panel-bg);-webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 40px 90px -30px rgba(0,0,0,.7);overflow:hidden}
@media(prefers-reduced-transparency:reduce){.panel{background:var(--ink-2);backdrop-filter:none}}
.panel-head{padding:24px 28px 14px}
.panel-head h2{margin:0;font:400 clamp(28px,2.6vw,36px)/1.08 var(--serif);letter-spacing:-.01em;color:var(--moon);outline:none;text-wrap:balance}
.panel-head p:not(.eyebrow){margin:10px 0 0;color:var(--mist);font-size:15px}
.panel-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:6px 28px 24px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent}
.panel-scroll::-webkit-scrollbar{width:8px}.panel-scroll::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:8px}
.panel-foot{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 28px 20px;border-top:1px solid var(--line);background:rgba(8,16,20,.35)}
.eyebrow{margin:0 0 10px;font:600 12px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--lantern)}
.eyebrow-dot{display:inline-block;width:6px;height:6px;margin-right:10px;border-radius:50%;background:var(--lantern);box-shadow:0 0 10px var(--lantern);vertical-align:middle}

/* Cổng vườn (hero) */
.station-gate{position:fixed;inset:0;z-index:10;pointer-events:none}
.station-gate::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 80% at 8% 78%,rgba(8,15,19,.78),rgba(8,15,19,0) 70%)}
.gate-copy{position:absolute;left:max(var(--gutter),6vw);bottom:calc(var(--hud-bottom) + 6vh);width:min(600px,calc(100vw - 2 * var(--gutter)));pointer-events:auto;animation:panelIn .8s var(--ease-out) both}
.gate-copy h1{margin:0 0 20px;font:400 clamp(50px,6.6vw,96px)/.98 var(--serif);letter-spacing:-.025em;color:var(--moon);outline:none;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.accent{color:var(--lantern)}
.lede{max-width:48ch;margin:0 0 28px;color:var(--mist);font-size:17px;line-height:1.65}
.gate-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.gate-route{display:flex;flex-wrap:wrap;gap:8px 22px;margin:34px 0 0;padding:18px 0 0;border-top:1px solid var(--line);list-style:none;counter-reset:route;color:var(--fog);font-size:14px}
.gate-route li{counter-increment:route}
.gate-route li::before{content:"0" counter(route);margin-right:8px;font:600 12px var(--sans);color:var(--lantern)}
.gate-route b{color:var(--moon);font-weight:600}
.gate-hint{position:absolute;right:var(--gutter);bottom:calc(var(--hud-bottom) + 10px);margin:0;color:var(--fog);font-size:13px;pointer-events:none}

/* ---------- Nút ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:10px;border:1px solid transparent;background:var(--lantern);color:var(--ink-0);font:600 15px/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background-color .18s var(--ease-out),border-color .18s var(--ease-out),color .18s,transform .16s var(--ease-out),box-shadow .2s}
.button:active{transform:scale(.97)}
.button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.button-primary{background:var(--lantern);color:var(--ink-0);box-shadow:0 8px 24px -10px rgba(232,168,101,.6)}
@media(hover:hover) and (pointer:fine){.button:not(:disabled):hover{background:var(--lantern-strong)}}
.button-ghost,.button-secondary{background:transparent;color:var(--moon);border-color:var(--line-strong);box-shadow:none}
@media(hover:hover) and (pointer:fine){.button-ghost:not(:disabled):hover,.button-secondary:not(:disabled):hover{background:var(--lantern-soft);border-color:var(--lantern-line);color:var(--moon)}}
.button-danger{background:var(--danger);color:var(--ink-0)}
.button-danger-ghost{background:transparent;color:var(--danger);border-color:rgba(229,138,123,.4)}
.text-button,.link-button{border:0;background:none;padding:6px 0;color:var(--mist);font-size:14px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-strong)}
@media(hover:hover) and (pointer:fine){.text-button:hover,.link-button:hover{color:var(--lantern)}}

/* ---------- Biểu mẫu ---------- */
.field{margin:0 0 22px;border:0;padding:0;min-width:0}
.field-label{display:block;margin:0 0 8px;padding:0;font:600 14px/1.3 var(--sans);color:var(--moon)}
.field-label span{font-weight:400;color:var(--fog)}
select,textarea,input[type="search"]{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:rgba(6,13,16,.55);color:var(--moon);font-size:16px;transition:border-color .18s var(--ease-out),box-shadow .18s}
select{appearance:none;min-height:48px;padding:0 42px 0 14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b4c3be' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
select option{background:var(--ink-2);color:var(--moon)}
textarea{padding:13px 14px;resize:vertical;line-height:1.55;min-height:92px}
textarea::placeholder,input::placeholder{color:var(--fog)}
select:focus,textarea:focus,input:focus{outline:none;border-color:var(--lantern-line);box-shadow:0 0 0 3px var(--lantern-soft)}
.deck-profile{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;margin-top:10px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}
.deck-profile h3{margin:0 0 4px;font:600 21px/1.15 var(--serif)}
.deck-profile p{margin:0;color:var(--mist);font-size:14px}
.deck-profile .deck-kicker{font:600 11px var(--sans);letter-spacing:.14em;color:var(--fog);margin-bottom:4px}
.license-chip{flex:none;padding:4px 10px;border-radius:999px;border:1px solid var(--line-strong);color:var(--mist);font-size:12px}
.spread-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.spread-option{display:grid;gap:6px;align-content:start;text-align:left;min-height:44px;padding:12px;border-radius:10px;border:1px solid var(--line);background:transparent;transition:border-color .18s var(--ease-out),background-color .18s}
.spread-option-mark{font:400 34px/1 var(--serif);color:var(--fog)}
.spread-option strong{display:block;font-size:14px;font-weight:600}
.spread-option small{display:block;margin-top:2px;color:var(--fog);font-size:12.5px;line-height:1.4}
.spread-option.is-selected{border-color:var(--lantern-line);background:var(--lantern-soft)}
.spread-option.is-selected .spread-option-mark{color:var(--lantern)}
@media(hover:hover) and (pointer:fine){.spread-option:hover{border-color:var(--line-strong)}}
.topic-browser #topicSelect{margin-bottom:10px}
.question-suggestions{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.question-suggestions button{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:baseline;min-height:44px;padding:10px 14px;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;color:var(--mist);font-size:14.5px;line-height:1.45;transition:background-color .16s var(--ease-out),color .16s}
.question-suggestions button:first-child{border-top:0}
.question-suggestions button span{font:600 12px var(--sans);color:var(--fog)}
.question-suggestions button.is-selected{background:var(--lantern-soft);color:var(--moon);box-shadow:inset 3px 0 0 var(--lantern)}
.question-suggestions button.is-selected span{color:var(--lantern)}
.question-suggestions .write-own{color:var(--lantern)}
.question-suggestions .write-own span{color:var(--lantern)}
@media(hover:hover) and (pointer:fine){.question-suggestions button:hover{background:rgba(255,255,255,.03);color:var(--moon)}}
.privacy-hint{margin:0;flex:1 1 200px;color:var(--fog);font-size:13px;line-height:1.45}

/* ---------- Bàn trải ---------- */
.ritual-state{padding:6px 0 10px}
.state-idle p{margin:0 0 6px;font:400 28px/1.15 var(--serif)}
.state-idle small,.state-ready small{display:block;margin:0 0 18px;color:var(--mist);font-size:14px}
.state-ready small{margin:14px 0 0}
.state-kicker{margin:0 0 8px;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fog)}
.state-intention{margin:0 0 22px;font:400 28px/1.2 var(--serif);color:var(--moon)}
.reframe-note{display:block;margin-top:10px;font:400 14px/1.5 var(--sans);color:var(--mist)}
.safety-panel{padding:18px;border-radius:12px;border:1px solid rgba(229,138,123,.35);background:rgba(229,138,123,.07)}
.safety-panel .eyebrow{color:var(--danger)}
.safety-panel h3{margin:0 0 8px;font:600 24px/1.2 var(--serif)}
.safety-panel p{color:var(--mist)}
.shuffle-ritual{padding:18px 0;color:var(--mist)}
.shuffle-ritual p{margin:12px 0 2px;font:400 26px var(--serif);color:var(--moon)}
.shuffle-ritual small{color:var(--fog)}
.shuffle-stack{position:relative;width:64px;height:92px}
.shuffle-stack i{position:absolute;inset:0;border-radius:6px;background:var(--active-card-back) center/cover,var(--ink-3);border:1px solid var(--line-strong);animation:riffle 1.2s var(--ease-io) infinite alternate}
.shuffle-stack i:nth-child(2){animation-delay:.12s}.shuffle-stack i:nth-child(3){animation-delay:.24s}
@keyframes riffle{from{transform:translateX(-10px) rotate(-6deg)}to{transform:translateX(10px) rotate(6deg)}}
html.world-live .shuffle-stack{display:none}
.selection-progress h3{margin:0 0 6px;font:400 28px/1.15 var(--serif)}
.selection-progress p:not(.eyebrow){margin:0 0 16px;color:var(--mist);font-size:14.5px}
.selected-slots{display:grid;gap:10px;margin:0 0 18px}
.selected-slots.is-one{grid-template-columns:minmax(0,132px)}
.selected-slots.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.selected-slots.is-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.selection-slot{position:relative;min-width:0}
.selection-slot>span{position:absolute;top:6px;left:6px;z-index:1;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(8,16,20,.8);border:1px solid var(--line-strong);font:600 11px var(--sans);color:var(--mist)}
.slot-empty{display:grid;place-items:end start;aspect-ratio:9/15.5;padding:10px;border-radius:8px;border:1px dashed var(--line-strong);color:var(--fog);font-size:12px;line-height:1.35;background:rgba(255,255,255,.015)}
.slot-card img{display:block;width:100%;aspect-ratio:9/15.5;object-fit:contain;background:rgba(0,0,0,.5);border-radius:8px;border:1px solid var(--line-strong)}
.selection-slot.is-filled>span{background:var(--lantern);border-color:var(--lantern);color:var(--ink-0)}
.selection-slot p{margin:6px 0 0;font-size:12.5px;line-height:1.35;text-align:center}
.selection-slot p b{display:block;font:600 15px/1.2 var(--serif);color:var(--moon)}
.selection-slot p small{color:var(--fog);display:block}
.selected-slots.is-five .selection-slot p b{font-size:12.5px;line-height:1.2;text-align:center;word-break:break-word}
.selected-slots.is-five .selection-slot p small{font-size:10px;text-align:center}
html.world-live .selected-slots.is-three,html.world-live .selected-slots.is-five{gap:8px}
html.world-live .slot-empty,html.world-live .slot-card img{aspect-ratio:9/15.5}
.ribbon-wrap{margin-top:4px}
html.world-live .ribbon-wrap{padding-top:12px;border-top:1px solid var(--line)}
.stacked-ribbon{display:flex;overflow-x:auto;overflow-y:visible;padding:14px 8px 10px;scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent;scroll-snap-type:x proximity}
.ribbon-card{flex:none;width:46px;height:80px;margin-left:-30px;padding:0;border:1px solid var(--line-strong);border-radius:6px;background:var(--ink-3);overflow:hidden;box-shadow:-6px 0 12px -6px rgba(0,0,0,.6);transition:transform .2s var(--ease-out),border-color .2s}
.ribbon-card:first-child{margin-left:0}
.ribbon-card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ribbon-card:focus-visible{transform:translateY(-10px);border-color:var(--lantern);outline-offset:1px}
@media(hover:hover) and (pointer:fine){.ribbon-card:hover{transform:translateY(-10px);border-color:var(--lantern-line)}}
.ribbon-help{margin:4px 0 0;color:var(--fog);font-size:13px}
.flying-card{border-radius:6px;overflow:hidden;pointer-events:none}
.flying-card img{width:100%;height:100%;object-fit:cover}

/* Luận giải */
.reading-copy{outline:none;margin-top:8px}
.context-reading{margin-top:6px}
.context-answer{padding-bottom:18px;border-bottom:1px solid var(--line)}
.context-answer h3{margin:4px 0 10px;font:400 30px/1.15 var(--serif);text-wrap:balance}
.answer-question-echo{margin:0;color:var(--fog);font-size:14px}
.direct-answer,.context-answer>p:not(.eyebrow):not(.answer-question-echo){margin:0;color:var(--mist);font-size:16px}
.v11-awaiting{padding:0;border:0}
.v11-preliminary-overview{margin:14px 0 16px;padding:16px 18px;border-radius:14px;background:linear-gradient(180deg,rgba(240,180,120,.09),rgba(20,40,48,.6));border:1px solid rgba(240,180,120,.28);box-shadow:0 10px 24px -12px rgba(0,0,0,.5)}
.v11-overview-badge{display:inline-block;font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--lantern,#f0b478);padding:4px 8px;border-radius:6px;background:rgba(240,180,120,.14);margin-bottom:8px}
.v11-overview-headline{margin:0 0 6px!important;font:600 22px/1.25 var(--serif)!important;color:var(--moon,#f2ede2)!important}
.v11-overview-lead{margin:0!important;font:400 14.5px/1.6 var(--sans)!important;color:var(--mist,#c4d3ce)!important}
.v11-awaiting-hint{margin:12px 0 0!important;font:400 13px/1.55 var(--sans)!important;color:var(--fog,#96a8a2)!important;font-style:italic}
.v11-card-strip{display:grid;gap:0;margin:14px 0 0}
.v11-card-strip article{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.v11-card-strip article:first-child{border-top:0}
.v11-card-strip span{font:600 20px var(--serif);color:var(--lantern);min-width:28px;padding-top:1px}
.v11-card-strip small{display:block;color:var(--fog);font-size:12.5px;line-height:1.35;margin-bottom:2px;letter-spacing:.02em;word-break:normal}
.v11-card-strip strong{display:block;font:600 20px/1.25 var(--serif);color:var(--moon);letter-spacing:.01em}
.v11-card-strip .v11-strip-essence{margin:5px 0 0 0;font:400 13.5px/1.55 var(--sans);color:var(--mist);letter-spacing:.01em;opacity:.9}
.v11-narrative{margin:20px 0;color:var(--mist);font-size:16px;line-height:1.75}
.context-section-heading{margin:22px 0 4px}
.context-card-reading{padding:16px 0;border-top:1px solid var(--line)}
.context-card-heading{display:flex;gap:12px;align-items:baseline;margin-bottom:6px}
.context-number{font:600 22px var(--serif);color:var(--lantern)}
.context-card-heading p{margin:0;color:var(--fog);font-size:12.5px;letter-spacing:.04em}
.context-card-heading h4{margin:0;font:600 21px/1.2 var(--serif)}
.context-card-copy p{margin:0;color:var(--mist)}
.context-synthesis,.context-note{margin:16px 0;padding:16px 18px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid var(--line)}
.context-synthesis p,.context-note p{margin:6px 0 0;color:var(--mist)}
.context-note strong{font:600 18px var(--serif)}
.context-actions{display:grid;gap:14px;margin:16px 0}
.answer-label{margin:0 0 4px;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lantern)}
.context-actions p:not(.answer-label){margin:4px 0;color:var(--mist)}
.answer-boundary{margin:16px 0;padding:4px 0 4px 14px;border-left:2px solid var(--line-strong);color:var(--mist);font-size:14.5px}
.answer-question{margin:16px 0;padding:14px 16px;border-radius:12px;background:var(--lantern-soft);border:1px solid var(--lantern-line)}
.answer-question span{display:block;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lantern)}
.answer-question p{margin:6px 0 0;font:400 22px/1.3 var(--serif)}
.safety-note{margin:16px 0 0;color:var(--fog);font-size:13px}
.reading-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.v93-offer{margin:22px 0 4px;padding:18px;border-radius:14px;border:1px solid var(--line-strong);background:linear-gradient(160deg,rgba(232,168,101,.09),rgba(232,168,101,.02) 60%)}
.v93-offer h3{margin:0 0 6px;font:400 24px/1.2 var(--serif)}
.v93-offer>p:not(.eyebrow){margin:0;color:var(--mist);font-size:14.5px}
.report-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.report-actions .button{min-height:42px;padding:0 14px;font-size:14px}
.v11-ai-status{min-height:1.4em;margin:12px 0 0;color:var(--fog);font-size:13.5px}
.report-preview{margin-top:16px;max-height:560px;overflow:auto;border-radius:12px;border:1px solid var(--line);background:var(--ink-1);padding:12px}
.branded-report{margin:auto;padding:36px;border-radius:8px;background:#eef0ec;color:#1b2b30;font:15px/1.65 var(--sans)}
.branded-report header{display:grid;grid-template-columns:1fr auto;gap:4px;padding-bottom:16px;margin-bottom:28px;border-bottom:1px solid #c9d2cf;color:#1f3a40}
.branded-report header span{font:600 24px var(--serif)}
.branded-report header b{color:#b87640}
.branded-report header small{grid-column:1/-1;letter-spacing:.13em;font-size:11px;color:#5f7a76}
.branded-report h1{margin:0;font:600 34px/1.1 var(--serif);color:#13262b}
.branded-report h2{margin:0 0 12px;font:600 28px/1.15 var(--serif);color:#1f3a40}
.report-label{margin:0 0 8px;font-size:11px;letter-spacing:.15em;font-weight:700;color:#b87640}
.report-date{color:#5f7a76}
.report-lead{margin:26px 0;padding:22px;border-radius:8px;background:#dfe6e3}
.report-card-list{display:grid;gap:10px}
.report-card-list>div{display:grid;grid-template-columns:48px 28px 1fr;gap:10px;align-items:center;padding-top:10px;border-top:1px solid #c9d2cf}
.report-card-list img{width:48px;height:84px;object-fit:cover;border-radius:5px}
.report-card-list span{color:#b87640;font-weight:700}
.report-reading-list{margin:26px 0}
.report-reading-list>article{padding:18px 0;border-top:1px solid #c9d2cf}
.report-reading-list h3{margin:0 0 10px;font:600 22px/1.2 var(--serif);color:#1f3a40}
.report-reading-list h3 small{display:block;margin-top:4px;font:600 12px var(--sans);color:#5f7a76}
.report-reading-list strong{display:block;margin-top:10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#b87640}
.report-reading-list p{margin:4px 0}
.report-reflection{padding:4px 0 4px 18px;border-left:3px solid #b87640}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}
.report-grid section{padding:16px;border:1px solid #c9d2cf;border-radius:8px}
.branded-report footer{margin-top:28px;padding-top:14px;border-top:1px solid #c9d2cf;font-size:12px;color:#5f7a76}

/* ---------- Bàn viết ---------- */
.journal-card{border:1px solid var(--line-strong);border-radius:12px;background:rgba(6,13,16,.5);overflow:hidden}
.journal-card textarea{display:block;min-height:220px;border:0;border-radius:0;background:transparent;font:400 22px/1.5 var(--serif);box-shadow:none}
.journal-card textarea:focus{box-shadow:none}
.journal-card:focus-within{border-color:var(--lantern-line);box-shadow:0 0 0 3px var(--lantern-soft)}
.journal-toolbar{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--line);color:var(--fog);font-size:13px}
.closing-note{margin-top:18px;padding:16px 18px;border-left:2px solid var(--lantern)}
.closing-note p:not(.eyebrow){margin:0;font:400 22px/1.3 var(--serif)}

/* ---------- Vườn đèn ---------- */
.garden-empty{padding:26px 0 8px}
.garden-empty p{margin:0 0 4px;font:400 28px var(--serif)}
.garden-empty small{color:var(--mist);font-size:14.5px}
.garden-list{display:grid}
.garden-entry{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:16px 0;border-top:1px solid var(--line)}
.garden-entry:first-child{border-top:0}
.garden-entry time{color:var(--fog);font-size:13px}
.spread-badge{justify-self:end;color:var(--lantern);font-size:12.5px}
.garden-entry h3{grid-column:1/-1;margin:2px 0;font:600 21px/1.2 var(--serif)}
.garden-entry p{grid-column:1/-1;margin:0;color:var(--mist);font-size:14.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.entry-actions{grid-column:1/-1;display:flex;gap:18px;margin-top:6px}
.entry-actions button{min-height:36px;padding:0;border:0;background:none;color:var(--lantern);font-size:14px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--lantern-line)}
.entry-actions button+button{color:var(--fog);text-decoration-color:var(--line-strong)}

/* ---------- Thư viện ---------- */
.deck-tabs{display:flex;gap:8px;padding:0 28px 12px;overflow-x:auto;scrollbar-width:thin}
.deck-tab{min-height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--mist);font-size:13px;white-space:nowrap;transition:border-color .18s,background-color .18s,color .18s;cursor:pointer}
.deck-tab:hover{border-color:var(--line-strong);color:var(--moon)}
.deck-tab.is-active{border-color:var(--lantern-line);background:var(--lantern-soft);color:var(--moon);font-weight:600}
.library-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 28px 14px}
.search-box{position:relative;flex:1 1 220px;display:block}
.search-box svg{position:absolute;left:13px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:var(--fog);stroke-width:1.8;stroke-linecap:round}
.search-box input{min-height:44px;padding:0 14px 0 40px}
.filter-group{display:flex;gap:6px}
.filter-button{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--mist);font-size:13.5px;transition:border-color .18s,background-color .18s,color .18s}
.filter-button.is-active{border-color:var(--lantern-line);background:var(--lantern-soft);color:var(--moon)}
.card-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 10px}
.library-card{display:block;min-width:0;padding:0;border:0;background:none;text-align:left}
.library-face{display:block;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:var(--ink-3);aspect-ratio:9/16;transition:transform .22s var(--ease-out),border-color .22s}
.library-face img{display:block;width:100%;height:100%;object-fit:cover}
.library-card strong{display:block;margin-top:7px;font:600 15.5px/1.2 var(--serif)}
.library-card small{display:block;margin-top:2px;color:var(--fog);font-size:12px;line-height:1.3;overflow-wrap:anywhere}
@media(hover:hover) and (pointer:fine){.library-card:hover .library-face{transform:translateY(-4px);border-color:var(--lantern-line)}}
.library-footnote{margin:18px 0 6px;color:var(--fog);font-size:13px}
.asset-warning{margin:0;color:var(--fog);font-size:13px}

/* ---------- Tĩnh tại ---------- */
#about .panel-scroll>p{margin:0 0 18px;color:var(--mist)}
.care-list h3{margin:8px 0 10px;font:400 24px/1.2 var(--serif)}
.care-list dl{margin:0}
.care-list dt{margin-top:12px;font-weight:600;font-size:15px}
.care-list dd{margin:2px 0 0;color:var(--mist);font-size:14.5px}
.privacy-card{margin:22px 0;padding:16px 18px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.privacy-card strong{font:600 19px var(--serif)}
.privacy-card p{margin:4px 0 12px;color:var(--mist);font-size:14.5px}
.footer-links{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.footer-links a,.footer-links .link-button{color:var(--mist);font-size:14px;text-underline-offset:4px;text-decoration-color:var(--line-strong)}
.copyright{display:block;margin-top:14px;color:var(--fog);font-size:12.5px}

/* ---------- Hộp thoại ---------- */
.sheet-dialog{width:min(620px,calc(100% - 28px));max-height:86dvh;overflow:auto;padding:32px;border:1px solid var(--line-strong);border-radius:16px;background:var(--ink-2);color:var(--moon);box-shadow:0 40px 100px -20px rgba(0,0,0,.8)}
.sheet-dialog[open]{animation:panelIn .32s var(--ease-out)}
.sheet-dialog::backdrop{background:rgba(4,9,11,.62);backdrop-filter:blur(4px)}
.sheet-dialog > form[method="dialog"]{position:absolute;right:14px;top:14px}
.dialog-close{width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--mist);font-size:28px;line-height:1}
@media(hover:hover) and (pointer:fine){.dialog-close:hover{background:rgba(255,255,255,.05);color:var(--moon)}}
.sheet-dialog h2{margin:0 0 8px;padding-right:40px;font:400 36px/1.08 var(--serif)}
.sheet-dialog p{color:var(--mist)}
.card-original{margin:0 0 16px;color:var(--fog);font-size:13px;letter-spacing:.08em}
.detail-card-image{display:block;width:auto;max-width:min(260px,70%);max-height:48dvh;margin:6px 0 18px;border-radius:10px;border:1px solid var(--line-strong)}
.prompt-box{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:var(--lantern-soft);border:1px solid var(--lantern-line)}
.prompt-label{margin:0 0 4px!important;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lantern)!important}
.prompt-box p:last-child{margin:0;font:400 21px/1.3 var(--serif);color:var(--moon)}
.entry-card-grid{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.entry-card-grid figure{margin:0;padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:13.5px;color:var(--mist)}
.journal-recall{padding:14px 16px;border-left:2px solid var(--lantern);font:400 20px/1.45 var(--serif);white-space:pre-wrap}
.credit-list p{margin:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.credit-list code{font-size:13px;color:var(--moon)}
.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}
.setting-row strong{display:block;font:600 19px var(--serif)}
.setting-row small{display:block;color:var(--fog);font-size:13px}
.setting-row input{width:22px;height:22px;accent-color:var(--lantern);flex:none}
.volume-setting{display:grid;gap:6px;padding:10px 0 12px;border-bottom:1px solid var(--line);font-size:14px;color:var(--mist)}
.volume-setting span{display:flex;justify-content:space-between}
.volume-setting input{width:100%;accent-color:var(--lantern)}
.audio-resume{margin:14px 0 6px}
.danger-zone,.v93-privacy-setting{margin-top:20px;padding:16px;border-radius:12px;border:1px solid var(--line)}
.danger-zone{border-color:rgba(229,138,123,.32);background:rgba(229,138,123,.05)}
.danger-zone strong,.v93-privacy-setting strong{font:600 19px var(--serif)}
.danger-zone p,.v93-privacy-setting p,.v93-privacy-setting span{font-size:13.5px;color:var(--mist)}
.toast{position:fixed;left:50%;bottom:calc(var(--hud-bottom) + 12px);z-index:70;max-width:min(420px,calc(100% - 32px));padding:12px 16px;border-radius:10px;background:var(--ink-3);border:1px solid var(--line-strong);box-shadow:inset 3px 0 0 var(--lantern),0 20px 50px -20px rgba(0,0,0,.8);color:var(--moon);font-size:14px;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Tour ---------- */
body.is-touring .station-panel .panel{opacity:.9}

/* ---------- Mobile: bảng thành bottom sheet, điều hướng thành tab bar ---------- */
@media (max-width:760px){
  :root{--hud-top:60px;--tabbar:64px;--gutter:16px}
  .hud-top{grid-template-columns:1fr auto;padding:0 14px}
  .brand-copy small{display:none}
  .brand-name{font-size:19px}
  .brand-mark svg{width:28px;height:28px}
  #soundLabel{display:none}
  .chip-button{width:42px;padding:0;justify-content:center;backdrop-filter:none;-webkit-backdrop-filter:none}
  .icon-button{backdrop-filter:none;-webkit-backdrop-filter:none}
  .station-nav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(5,1fr);gap:0;height:calc(var(--tabbar) + env(safe-area-inset-bottom,0px));padding:0 2px env(safe-area-inset-bottom,0px);border-radius:0;border:0;border-top:1px solid var(--line);background:rgba(8,15,19,.98);backdrop-filter:none;-webkit-backdrop-filter:none}
  .station-nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px 1px;border-radius:0;font-size:clamp(10px,2.7vw,11.5px);min-height:var(--tabbar);text-align:center;white-space:nowrap}
  .station-nav a b{font:600 10px/1 var(--sans);letter-spacing:.06em;opacity:.75;color:var(--lantern)}
  .station-nav a span{display:block;line-height:1.2;letter-spacing:-0.02em}
  .station-nav a[aria-current]{background:transparent}
  .station-nav a[aria-current]::after{content:"";position:absolute;top:0;left:24%;right:24%;height:2px;border-radius:2px;background:var(--lantern)}
  .hud-bottom{display:none}
  .station-panel,.station-panel[data-side="left"],.station-panel.is-wide{top:auto;left:0;right:0;bottom:calc(var(--tabbar) + env(safe-area-inset-bottom,0px));width:100%;height:auto;max-height:calc(84dvh - var(--tabbar));align-items:flex-end}
  .station-panel .panel{border-radius:20px 20px 0 0;border-bottom:0;max-height:calc(84dvh - var(--tabbar));display:flex;flex-direction:column;box-shadow:0 -10px 40px rgba(0,0,0,.7);background:rgba(12,23,29,.98);backdrop-filter:none;-webkit-backdrop-filter:none}
  .station-panel .panel::before{content:"";display:block;width:38px;height:4px;margin:8px auto 2px;border-radius:4px;background:var(--line-strong);flex:none}
  #reading.station-panel,#reading .panel,#library.station-panel,#library .panel{max-height:calc(86dvh - var(--tabbar))}
  .panel-head{padding:10px 16px 6px}
  .panel-head h2{font-size:clamp(20px,5.2vw,24px);line-height:1.2}
  .panel-head p:not(.eyebrow){font-size:13px;margin-top:4px;line-height:1.4}
  .panel-scroll{padding:4px 16px 20px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .panel-foot{padding:10px 16px 12px}
  .panel-foot .button{flex:1 1 auto;min-height:42px;font-size:14px}
  #ritual .spread-options{grid-template-columns:repeat(3,1fr);gap:6px}
  #ritual .spread-option{padding:8px 6px;text-align:center;min-height:auto}
  #ritual .spread-option .spread-option-mark{font-size:20px;line-height:1}
  #ritual .spread-option strong{font-size:12.5px;margin-top:2px}
  #ritual .spread-option small,#ritual .spread-option .spread-detail{display:none!important}
  #ritual .panel-foot{padding:10px 16px 12px;gap:6px}
  #ritual .privacy-hint{font-size:11.5px;line-height:1.35;flex:1 1 100%;text-align:center}
  #ritual #prepareButton{width:100%;min-height:42px;font-size:14px}
  #reading .selected-slots.is-three{gap:6px}
  #reading .slot-card img,#reading .slot-empty{max-height:150px;width:auto;margin:0 auto}
  #reading .selection-slot p b{font-size:12.5px;line-height:1.2;word-break:break-word}
  #reading .selection-slot p{margin:4px 0 0}
  #reading .reading-actions{display:flex;gap:8px;margin-top:14px}
  #reading .reading-actions .button{flex:1 1 auto;min-height:42px;font-size:13.5px;padding:0 12px}
  #journal .panel-scroll{padding:4px 16px 12px}
  #journal .journal-card textarea{min-height:140px;font-size:15px;line-height:1.5}
  #journal .panel-foot{display:flex;flex-direction:column;gap:8px;padding:10px 16px 12px}
  #journal #saveSession{width:100%;min-height:44px;order:1;font-size:15px}
  #journal #skipJournal{order:2;width:auto;border:none;background:transparent;color:var(--fog);font-size:12.5px;min-height:28px;padding:4px 8px;text-decoration:underline;text-underline-offset:3px;align-self:center}
  #journal .closing-note{padding:8px 12px;margin-top:8px;font-size:12px}
  .library-tools{padding:0 16px 8px}
  .station-gate::before{background:linear-gradient(0deg,rgba(8,15,19,.9) 0%,rgba(8,15,19,.55) 45%,rgba(8,15,19,0) 70%)}
  .gate-copy{left:16px;right:16px;width:auto;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom,0px))}
  .gate-copy h1{font-size:clamp(38px,11vw,50px);margin-bottom:12px}
  .lede{font-size:14.5px;margin-bottom:18px}
  .gate-route{display:none}
  .gate-hint{display:none}
  .selected-slots.is-five{gap:4px}
  .selection-slot p small{display:none}
  .toast{bottom:calc(var(--tabbar) + 14px)}
  .sheet-dialog{padding:22px 18px;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(12,23,29,.98)}
  .sheet-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(4,9,11,.8)}
  .preliminary-card{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(12,23,29,.98)}
  .report-grid{grid-template-columns:1fr}
  .branded-report{padding:20px}
}
@media (max-width:380px){.station-nav a b{font-size:9px}}

/* ---------- Giảm chuyển động ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
body.user-reduced-motion *,body.user-reduced-motion *::before,body.user-reduced-motion *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}

/* ── Con trỏ đom đóm (V13.5) ─────────────────────────────────────────────
   Lớp vẽ nằm trên khu vườn nhưng dưới mọi thứ bấm được, và không bao giờ
   nhận sự kiện chuột. */
.firefly-layer{position:fixed;inset:0;z-index:35;pointer-events:none;mix-blend-mode:screen}
@media (hover:none),(pointer:coarse){.firefly-layer{display:none}}

/* Khi WebGL mất ngữ cảnh, giữ khung hình cuối và báo cho người dùng */
html.world-recovering .world canvas{opacity:.35;transition:opacity .3s var(--ease-out)}

/* ── Hoạt hình lá bài: xáo & lật ─────────────────────────────────────────
   Bổ sung cho V13.6. Bài xuất hiện qua bước xáo → dàn quạt → bay tới ô → lật.
   Mỗi bước có class riêng để app.js chỉ cần add/remove. */
@keyframes shuffleTumble{
  0%  {transform:translate3d(0,0,0) rotate(0deg);opacity:.0}
  15% {opacity:1}
  50% {transform:translate3d(var(--sx,20px),var(--sy,-6px),0) rotate(var(--sr,10deg))}
  100%{transform:translate3d(0,0,0) rotate(0deg);opacity:1}
}
@keyframes fanDealIn{
  0%  {transform:translate3d(0,-40px,0) rotate(-14deg) scale(.85);opacity:0;filter:blur(4px)}
  60% {opacity:1;filter:blur(0)}
  100%{transform:translate3d(0,0,0) rotate(0) scale(1);opacity:1;filter:blur(0)}
}
@keyframes flyToSlot{
  0%  {transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(var(--tx,0),var(--ty,-120px),0) scale(1.02)}
}
@keyframes cardFlipReveal{
  0%  {transform:perspective(900px) rotateY(0)   scale(.96);box-shadow:0 0 0 0 rgba(240,180,120,0)}
  40% {transform:perspective(900px) rotateY(90deg) scale(1);  box-shadow:0 0 24px 6px rgba(255,236,190,.55)}
  55% {transform:perspective(900px) rotateY(90deg) scale(1);  box-shadow:0 0 44px 12px rgba(255,236,190,.75)}
  100%{transform:perspective(900px) rotateY(180deg) scale(1); box-shadow:0 0 0 0 rgba(240,180,120,0)}
}
@keyframes revealStagger{
  0%  {opacity:0;transform:translate3d(0,10px,0);filter:blur(3px)}
  100%{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}
}
.card-shuffling{animation:shuffleTumble .55s var(--ease-out) both}
.card-dealing  {animation:fanDealIn .65s var(--ease-out) both}
.card-flying   {animation:flyToSlot .55s var(--ease-out) both}
.card-flipping {animation:cardFlipReveal .85s var(--ease-io) both;transform-style:preserve-3d}
.reveal-line   {opacity:0;animation:revealStagger .55s var(--ease-out) both}
.reveal-line[data-i="0"]{animation-delay:.05s}
.reveal-line[data-i="1"]{animation-delay:.20s}
.reveal-line[data-i="2"]{animation-delay:.35s}
.reveal-line[data-i="3"]{animation-delay:.50s}
.reveal-line[data-i="4"]{animation-delay:.65s}
.reveal-line[data-i="5"]{animation-delay:.80s}
.reveal-line[data-i="6"]{animation-delay:.95s}
.reveal-line[data-i="7"]{animation-delay:1.10s}
@media (prefers-reduced-motion:reduce){
  .card-shuffling,.card-dealing,.card-flying,.card-flipping,.reveal-line{animation:none;opacity:1;transform:none}
}

/* ------------------------------------------------------------------
   V13.6 · Luận giải sơ bộ + mô tả spread mở rộng
   ------------------------------------------------------------------ */
.spread-option .spread-detail{
  margin:8px 0 0;
  padding:8px 10px 0;
  border-top:1px dashed var(--line);
  font:400 12.5px/1.55 var(--sans);
  color:var(--mist,rgba(237,232,221,.72));
  letter-spacing:.005em;
  display:none;
}
.spread-option.is-selected .spread-detail,
.spread-option:hover .spread-detail,
.spread-option:focus-visible .spread-detail{ display:block; }
@media (max-width:640px){
  .spread-option .spread-detail{ display:none!important; }
}


.preliminary-reading .preliminary-list{
  display:grid;gap:14px;margin-top:16px;
}
.preliminary-card{
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 12px !important;
  position:relative;
  padding:16px 18px 16px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(16,32,38,.92),rgba(11,22,26,.96));
  border:1px solid var(--line,rgba(215,235,228,.16));
  backdrop-filter:blur(12px) saturate(1.05);
  -webkit-backdrop-filter:blur(12px) saturate(1.05);
  box-shadow:0 12px 30px -18px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,220,180,.04);
  color:var(--moon);
  transition:border-color .3s var(--ease-out,ease),transform .3s var(--ease-out,ease);
}
.preliminary-card:hover{
  border-color:var(--line-strong,rgba(215,235,228,.28));
  transform:translateY(-1px);
}
.preliminary-head{
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  width: 100% !important;
}
.preliminary-head-info{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  flex: 1 1 220px;
}
.preliminary-index{
  font:600 12px/1 var(--sans);
  color:var(--lantern,#e8a865);
  letter-spacing:.14em;
  padding-top:4px;
  flex-shrink: 0;
}
.preliminary-head h4{
  margin:0 0 2px;
  font:600 17px/1.25 var(--serif,"Cormorant Garamond",Georgia,serif);
  color:var(--moon);
}
.preliminary-role{
  margin:0 0 2px;
  font:600 11.5px/1.2 var(--sans);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:rgba(237,232,221,.55);
}
.preliminary-original{
  display:block;
  font:400 12px/1.3 var(--sans);
  color:rgba(237,232,221,.5);
  font-style:italic;
}
.preliminary-card .signal-badge{
  flex-shrink: 0;
  margin-left: auto;
}
.preliminary-meaning{
  margin:0 !important;
  font:400 14px/1.65 var(--sans);
  color:rgba(237,232,221,.88);
  width: 100%;
}
.signal-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 10px 5px 8px;
  border-radius:999px;
  font:600 11.5px/1 var(--sans);
  letter-spacing:.02em;
  white-space:nowrap;
  border:1px solid transparent;
}
.signal-badge .signal-dot{
  width:7px;height:7px;border-radius:50%;
  box-shadow:0 0 8px 1px currentColor;
}
.signal-badge.signal-light{
  color:#f7d9a5;
  background:rgba(232,168,101,.12);
  border-color:rgba(232,168,101,.35);
}
.signal-badge.signal-quiet{
  color:#a8c9d3;
  background:rgba(127,193,214,.08);
  border-color:rgba(127,193,214,.28);
}
.preliminary-hint{
  margin:18px 0 0;
  font:400 13px/1.55 var(--sans);
  color:rgba(237,232,221,.6);
  text-align:center;
  font-style:italic;
}
@media (max-width:520px){
  .preliminary-card{ padding: 14px 14px 12px; }
  .preliminary-head{ flex-direction: column; align-items: flex-start; gap: 8px; }
  .signal-badge{ margin-left: 0; align-self: flex-start; }
}

/* ------------------------------------------------------------------
   V14.3 · Modal Xuất ảnh Story 9:16 & Nút chia sẻ viral
   ------------------------------------------------------------------ */
.button-story{
  border-color:rgba(232,168,101,.45);
  color:var(--moon);
  background:rgba(232,168,101,.08);
  transition:all .2s var(--ease-out);
}
.button-story:hover{
  border-color:var(--lantern);
  background:rgba(232,168,101,.18);
  color:#fff;
  box-shadow:0 0 16px rgba(232,168,101,.35);
}
.story-sparkle{
  color:var(--lantern);
  margin-right:3px;
  animation:storySparklePulse 2s infinite ease-in-out;
}
@keyframes storySparklePulse{
  0%,100%{opacity:.6;transform:scale(.95)}
  50%{opacity:1;transform:scale(1.2);filter:drop-shadow(0 0 6px var(--lantern))}
}

.story-modal{
  width:min(480px,calc(100% - 24px));
  max-height:min(92dvh,820px);
  padding:24px 20px;
  border-radius:18px;
  background:rgba(10,22,27,.98);
  border:1px solid rgba(232,168,101,.35);
  box-shadow:0 24px 70px -15px rgba(0,0,0,.85);
  color:var(--moon);
  overflow-y:auto;
}
.story-modal-inner{display:flex;flex-direction:column;gap:14px}
.story-modal-head h2{margin:0 0 6px;font:500 26px/1.2 var(--serif);color:var(--moon)}
.story-modal-head p{margin:0;font-size:13px;color:var(--mist);line-height:1.45}
.story-preview-container{
  display:flex;justify-content:center;align-items:center;
  padding:12px;background:rgba(4,9,12,.75);border-radius:14px;
  border:1px solid rgba(215,235,228,.1);
}
.story-preview-frame{
  position:relative;width:220px;height:391px;
  border-radius:12px;overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.7);
  border:1px solid rgba(232,168,101,.35);
  background:#071217;
  display:flex;align-items:center;justify-content:center;
}
.story-preview-img{width:100%;height:100%;object-fit:cover;display:block}
.story-loading{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12.5px;color:var(--mist);padding:14px;text-align:center}
.story-spinner{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--lantern);animation:storySpin .8s linear infinite}
@keyframes storySpin{to{transform:rotate(360deg)}}

.story-options{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.story-option-toggle{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mist);cursor:pointer;user-select:none}
.story-option-toggle input{width:18px;height:18px;accent-color:var(--lantern);flex:none;cursor:pointer}
.story-modal-actions{display:flex;gap:10px;flex-wrap:wrap}
.story-modal-actions .button{flex:1 1 140px;min-height:42px;font-size:14px;padding:0 14px}

@media (max-width:640px){
  .story-modal{padding:18px 14px;width:calc(100% - 16px);backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .story-preview-frame{width:180px;height:320px}
  .story-modal-actions{flex-direction:column;gap:8px}
  .story-modal-actions .button{width:100%}
}

/* ========================================================
   TRUNG TÂM HỖ TRỢ & KHIẾU NẠI KHÁCH HÀNG (SUPPORT MODAL)
   ======================================================== */
.support-modal {
  width: min(560px, calc(100% - 24px));
  max-height: min(92dvh, 840px);
  padding: 24px 22px;
  border-radius: 18px;
  background: rgba(10, 22, 27, 0.98);
  border: 1px solid rgba(232, 168, 101, 0.35);
  box-shadow: 0 24px 70px -15px rgba(0, 0, 0, 0.85);
  color: var(--moon, #ecf4f1);
  overflow-y: auto;
}
.support-modal-inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.support-modal-head h2 {
  margin: 0 0 6px;
  font: 500 24px/1.2 var(--serif);
  color: var(--moon, #ecf4f1);
}
.support-modal-head p {
  margin: 0;
  font-size: 13px;
  color: var(--mist, #9bb0a8);
  line-height: 1.45;
}

.support-tabs {
  display: flex;
  gap: 8px;
  border-bottom: 1px solid rgba(215, 235, 228, 0.12);
  padding-bottom: 8px;
}
.support-tab {
  background: none;
  border: none;
  color: var(--mist, #9bb0a8);
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13.5px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.support-tab:hover {
  color: var(--moon, #ecf4f1);
  background: rgba(255, 255, 255, 0.04);
}
.support-tab.is-active {
  color: var(--lantern, #e8a865);
  background: rgba(232, 168, 101, 0.12);
  font-weight: 600;
}

.support-tab-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.support-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.support-field label {
  font-size: 13px;
  color: var(--moon, #ecf4f1);
  font-weight: 500;
}
.support-field .required {
  color: #ff6b6b;
}
.support-field input,
.support-field select,
.support-field textarea {
  background: rgba(5, 12, 15, 0.85);
  border: 1px solid rgba(215, 235, 228, 0.18);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13.5px;
  color: var(--moon, #ecf4f1);
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s ease;
}
.support-field input:focus,
.support-field select:focus,
.support-field textarea:focus {
  border-color: var(--lantern, #e8a865);
  box-shadow: 0 0 0 2px rgba(232, 168, 101, 0.2);
}
.support-field .field-hint {
  font-size: 12px;
  color: var(--mist, #9bb0a8);
  line-height: 1.35;
}

.support-form-status {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.4;
}
.support-form-status.status-success {
  background: rgba(46, 204, 113, 0.12);
  border: 1px solid rgba(46, 204, 113, 0.35);
  color: #a8f5cc;
}
.support-form-status.status-error {
  background: rgba(231, 76, 60, 0.12);
  border: 1px solid rgba(231, 76, 60, 0.35);
  color: #ffadad;
}

.support-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}
.support-actions .button {
  min-height: 42px;
  padding: 0 20px;
  font-size: 14px;
  font-weight: 500;
}

/* Danh sách tickets của khách */
.tickets-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 380px;
  overflow-y: auto;
  padding-right: 4px;
}
.tickets-empty, .tickets-loading {
  font-size: 13px;
  color: var(--mist, #9bb0a8);
  text-align: center;
  padding: 24px 12px;
}
.ticket-card {
  background: rgba(6, 15, 19, 0.7);
  border: 1px solid rgba(215, 235, 228, 0.12);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ticket-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.ticket-type {
  font-size: 13px;
  font-weight: 600;
  color: var(--lantern, #e8a865);
}
.ticket-status-badge {
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  font-weight: 500;
  letter-spacing: 0.3px;
}
.ticket-status-badge.status-pending {
  background: rgba(241, 196, 15, 0.15);
  color: #f1c40f;
  border: 1px solid rgba(241, 196, 15, 0.3);
}
.ticket-status-badge.status-progress {
  background: rgba(52, 152, 219, 0.15);
  color: #5dade2;
  border: 1px solid rgba(52, 152, 219, 0.3);
}
.ticket-status-badge.status-resolved {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, 0.3);
}
.ticket-status-badge.status-refunded {
  background: rgba(155, 89, 182, 0.15);
  color: #bb8fce;
  border: 1px solid rgba(155, 89, 182, 0.3);
}
.ticket-msg {
  font-size: 13px;
  color: var(--moon, #ecf4f1);
  margin: 0;
  line-height: 1.45;
}
.ticket-meta {
  font-size: 11.5px;
  color: var(--mist, #9bb0a8);
}
.ticket-admin-reply {
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(232, 168, 101, 0.08);
  border-left: 3px solid var(--lantern, #e8a865);
}
.ticket-admin-reply .reply-badge {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--lantern, #e8a865);
  display: block;
  margin-bottom: 4px;
}
.ticket-admin-reply p {
  margin: 0;
  font-size: 12.5px;
  color: var(--moon, #ecf4f1);
  line-height: 1.4;
}

/* Nút hỗ trợ nổi bật ở footer */
.button-support-highlight {
  color: #f2ba63 !important;
  border-bottom: 1px dashed rgba(242, 186, 99, 0.4);
}
.button-support-highlight:hover {
  color: #ffd88a !important;
  border-bottom-color: #ffd88a;
}

