/* ============ Lantern · פנס · style.css ============ */

:root{
  --bg-1:#0A0E1A;
  --bg-2:#131829;
  --bg-3:#1A2138;
  --surface:rgba(244,236,216,0.038);
  --surface-2:rgba(244,236,216,0.06);
  --surface-3:rgba(244,236,216,0.10);
  --border:rgba(244,236,216,0.10);
  --border-strong:rgba(244,236,216,0.22);

  --amber:#F5C76A;
  --amber-deep:#E8A95C;
  --amber-soft:#FFE3A8;
  --rose:#E89E7C;
  --plum:#7B5A86;
  --cream:#F4ECD8;
  --cream-2:#E0D6BC;
  --warm-grey:#B8AE96;
  --warm-muted:#8A8268;

  --ok:#A8D8B9;
  --danger:#E56A6A;

  --r-sm:10px;
  --r-md:14px;
  --r-lg:20px;
  --r-xl:28px;

  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-out:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg-1);color:var(--cream);font-family:'Heebo',system-ui,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden}
body{padding-bottom:140px;line-height:1.6}

a{color:var(--amber);text-decoration:none;transition:color .2s var(--ease-out)}
a:hover{color:var(--amber-soft)}
button{font-family:inherit;cursor:pointer;border:0;background:transparent;color:inherit}
input,select,textarea{font-family:inherit;color:var(--cream);background:transparent;border:0;outline:0}

h1,h2,h3,h4{font-family:'Frank Ruhl Libre',serif;font-weight:700;letter-spacing:-0.01em;margin:0}
em{font-family:'Instrument Serif',serif;font-style:italic;color:var(--amber);font-weight:400}
.num{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums}

/* ============ ambient bg ============ */
.ambient{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.32;mix-blend-mode:screen;animation:drift 28s ease-in-out infinite}
.orb-a{width:600px;height:600px;background:radial-gradient(circle,#F5C76A 0%,transparent 70%);top:-200px;right:-100px}
.orb-b{width:500px;height:500px;background:radial-gradient(circle,#7B5A86 0%,transparent 70%);bottom:-100px;left:-150px;animation-delay:-10s}
.orb-c{width:420px;height:420px;background:radial-gradient(circle,#E89E7C 0%,transparent 70%);top:40%;left:30%;animation-delay:-18s;opacity:.18}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.05)}66%{transform:translate(-30px,40px) scale(.95)}}

.grain{position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.7'/></svg>");mix-blend-mode:overlay}

/* ============ topbar ============ */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:linear-gradient(180deg,rgba(10,14,26,0.96),rgba(10,14,26,0.78) 70%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:44px;filter:drop-shadow(0 0 18px rgba(245,199,106,0.4))}
.brand h1{font-size:1.55rem;line-height:1;letter-spacing:-0.02em;background:linear-gradient(180deg,var(--cream),var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-sub{font-size:.72rem;color:var(--warm-grey);letter-spacing:.04em;display:block;margin-top:3px}
.top-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--cream-2);display:grid;place-items:center;transition:all .25s var(--ease-spring)}
.icon-btn:hover{background:var(--surface-2);color:var(--amber);transform:translateY(-2px) scale(1.06);border-color:var(--border-strong)}
.icon-btn:active{transform:translateY(0) scale(.96)}

/* ============ shell layout ============ */
.shell{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:24px 24px 80px;display:grid;gap:28px}

/* ============ hero ============ */
.hero{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:440px;display:flex;align-items:flex-end;border:1px solid var(--border-strong);box-shadow:0 30px 80px -30px rgba(0,0,0,0.6)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.05)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,14,26,0.78) 0%,rgba(10,14,26,0.45) 45%,rgba(10,14,26,0.92) 100%)}
.hero-content{position:relative;z-index:2;padding:42px 44px 38px;width:100%}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);background:rgba(245,199,106,0.08);padding:8px 16px;border-radius:99px;border:1px solid rgba(245,199,106,0.25)}
.kicker .dot{width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 12px var(--amber);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}
.hero-title{font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.05;margin-top:18px;max-width:760px}
.hero-sub{color:var(--cream-2);max-width:560px;margin-top:14px;font-size:1.04rem;line-height:1.65}

.today-card{margin-top:26px;display:flex;align-items:center;gap:18px;padding:18px 22px;background:rgba(244,236,216,0.05);border:1px solid var(--border-strong);border-radius:var(--r-lg);backdrop-filter:blur(8px);max-width:640px;flex-wrap:wrap}
.today-card .glow{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle,var(--amber-soft) 0%,var(--amber-deep) 70%,transparent 100%);box-shadow:0 0 32px var(--amber-deep);flex-shrink:0;animation:flicker 4s ease-in-out infinite}
.today-card .glow.dim{background:radial-gradient(circle,rgba(244,236,216,0.15) 0%,transparent 70%);box-shadow:none;animation:none}
@keyframes flicker{0%,100%{opacity:1}45%{opacity:.85}50%{opacity:.95}55%{opacity:.8}}
.today-card .word-wrap{flex:1;min-width:160px}
.today-card .label{font-size:.78rem;color:var(--warm-grey);letter-spacing:.12em;text-transform:uppercase}
.today-card .word{font-family:'Frank Ruhl Libre',serif;font-size:2rem;line-height:1.1;display:block;margin-top:4px}
.today-card .word.empty{color:var(--warm-muted);font-style:italic;font-family:'Instrument Serif',serif}
.today-card .ev-score{font-family:'IBM Plex Mono',monospace;font-size:1.2rem;color:var(--amber);background:rgba(245,199,106,0.1);padding:6px 12px;border-radius:99px;border:1px solid rgba(245,199,106,0.25)}
.today-card .btn-inline{margin-right:auto}

.btn-inline{padding:10px 18px;background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:#1a1208;border-radius:99px;font-weight:700;font-size:.92rem;transition:all .25s var(--ease-spring);box-shadow:0 8px 24px -6px rgba(245,199,106,0.5)}
.btn-inline:hover{transform:translateY(-2px);box-shadow:0 12px 32px -6px rgba(245,199,106,0.7)}
.btn-inline:active{transform:translateY(0) scale(.97)}
.btn-inline.ghost{background:transparent;color:var(--cream);border:1px solid var(--border-strong);box-shadow:none}
.btn-inline.ghost:hover{background:var(--surface-2);border-color:var(--amber)}

/* ============ stats row ============ */
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat-card{position:relative;padding:20px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:all .3s var(--ease-spring)}
.stat-card:hover{background:var(--surface-2);transform:translateY(-3px);border-color:var(--border-strong)}
.stat-label{font-size:.78rem;color:var(--warm-grey);letter-spacing:.08em;text-transform:uppercase;display:block}
.stat-num{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:2.4rem;color:var(--cream);display:block;margin-top:8px;line-height:1;letter-spacing:-0.02em}
.stat-num.word{font-family:'Frank Ruhl Libre',serif;font-size:1.9rem}
.stat-unit{font-size:.82rem;color:var(--warm-grey);margin-top:4px;display:inline-block}
.stat-spark{width:100%;height:30px;margin-top:14px;display:block}
.stat-mini{font-size:.78rem;color:var(--warm-grey);margin-top:14px}

/* ============ panel ============ */
.panel{padding:26px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);backdrop-filter:blur(10px)}
.panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.panel-head h3{font-size:1.4rem}
.panel-sub{font-size:.86rem;color:var(--warm-grey);margin-top:4px}
.panel-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip-btn{padding:8px 14px;background:transparent;border:1px solid var(--border-strong);color:var(--cream-2);border-radius:99px;font-size:.84rem;transition:all .2s var(--ease-out);display:inline-flex;align-items:center;gap:6px}
.chip-btn:hover{background:var(--surface-2);color:var(--amber);border-color:var(--amber)}
.chip-btn.active{background:rgba(245,199,106,0.14);color:var(--amber);border-color:var(--amber)}

/* search input */
#searchLog{padding:8px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:99px;font-size:.85rem;width:200px;transition:all .25s var(--ease-out)}
#searchLog:focus{border-color:var(--amber);background:var(--surface-2)}
#searchLog::placeholder{color:var(--warm-muted)}

/* ============ mosaic ============ */
.mosaic-wrap{display:flex;flex-direction:column;gap:14px}
.mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(16px,1fr));gap:5px;direction:ltr}
.cell{aspect-ratio:1/1;border-radius:4px;background:rgba(244,236,216,0.04);border:1px solid rgba(244,236,216,0.04);transition:all .2s var(--ease-out);cursor:pointer;position:relative}
.cell:hover{transform:scale(1.4);z-index:2;border-color:var(--amber)}
.cell[data-glow="0"]{background:rgba(244,236,216,0.05)}
.cell[data-glow="1"]{background:rgba(245,199,106,0.20)}
.cell[data-glow="2"]{background:rgba(245,199,106,0.40);box-shadow:0 0 6px rgba(245,199,106,0.25)}
.cell[data-glow="3"]{background:rgba(245,199,106,0.65);box-shadow:0 0 10px rgba(245,199,106,0.45)}
.cell[data-glow="4"]{background:rgba(255,227,168,0.95);box-shadow:0 0 14px rgba(255,227,168,0.7)}
.cell.today{outline:2px solid var(--amber);outline-offset:1px}
.cell.future{opacity:.25;cursor:default;pointer-events:none}

.mosaic-legend{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--warm-grey);justify-content:flex-end}
.legend-cells{display:flex;gap:3px}
.legend-cell{width:12px;height:12px;border-radius:3px}
.legend-cell[data-glow="0"]{background:rgba(244,236,216,0.05)}
.legend-cell[data-glow="25"]{background:rgba(245,199,106,0.2)}
.legend-cell[data-glow="50"]{background:rgba(245,199,106,0.4)}
.legend-cell[data-glow="75"]{background:rgba(245,199,106,0.65)}
.legend-cell[data-glow="100"]{background:rgba(255,227,168,0.95)}

/* ============ dual panel ============ */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.panel-half{padding:24px}

/* wordcloud */
.wordcloud{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:8px 0;min-height:140px}
.word-pill{display:inline-flex;align-items:baseline;gap:6px;padding:4px 12px;background:rgba(245,199,106,0.06);border:1px solid rgba(245,199,106,0.15);border-radius:99px;color:var(--cream);font-family:'Frank Ruhl Libre',serif;transition:all .25s var(--ease-spring);cursor:default}
.word-pill .count{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--warm-grey);opacity:.75}
.word-pill:hover{background:rgba(245,199,106,0.16);transform:translateY(-2px) scale(1.04);border-color:var(--amber)}
.word-pill.size-5{font-size:1.85rem;background:rgba(245,199,106,0.14);border-color:rgba(245,199,106,0.32);color:var(--amber-soft)}
.word-pill.size-4{font-size:1.45rem}
.word-pill.size-3{font-size:1.18rem}
.word-pill.size-2{font-size:1rem}
.word-pill.size-1{font-size:.86rem;opacity:.85}

/* recent list */
.recent-list{display:flex;flex-direction:column;gap:10px}
.recent-row{display:flex;align-items:center;gap:14px;padding:12px 14px;background:rgba(244,236,216,0.03);border:1px solid var(--border);border-radius:var(--r-md);transition:all .2s var(--ease-out);cursor:pointer}
.recent-row:hover{background:var(--surface-2);border-color:var(--border-strong);transform:translateX(-3px)}
.recent-glow{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:radial-gradient(circle,var(--amber-soft) 0%,transparent 75%)}
.recent-glow.dim{background:rgba(244,236,216,0.08)}
.recent-meta{flex:1;min-width:0}
.recent-day{font-size:.74rem;color:var(--warm-grey);letter-spacing:.08em;text-transform:uppercase}
.recent-word{font-family:'Frank Ruhl Libre',serif;font-size:1.1rem;line-height:1.2;margin-top:2px;color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recent-score{font-family:'IBM Plex Mono',monospace;font-size:.9rem;color:var(--amber);background:rgba(245,199,106,0.08);padding:3px 9px;border-radius:99px;border:1px solid rgba(245,199,106,0.2);flex-shrink:0}
.recent-score.empty{color:var(--warm-muted);background:transparent;border-color:var(--border)}

/* ============ trend chart ============ */
.chart-wrap{width:100%;overflow-x:auto;border-radius:var(--r-md);background:rgba(0,0,0,0.18);padding:16px 8px}
#trendChart{width:100%;height:260px;min-height:200px}
.legend-inline{display:flex;gap:14px;font-size:.78rem;color:var(--warm-grey);align-items:center}
.legend-inline .dot-line{display:inline-block;width:18px;height:2px;background:var(--amber);margin-left:4px;vertical-align:middle;opacity:.5}
.legend-inline .dot-line.solid{opacity:1}

/* ============ log table ============ */
.log-table{display:flex;flex-direction:column;gap:8px;max-height:520px;overflow-y:auto;padding-left:6px}
.log-table::-webkit-scrollbar{width:8px}
.log-table::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}
.log-row{display:grid;grid-template-columns:120px 1fr 80px 60px;gap:14px;padding:12px 16px;background:rgba(244,236,216,0.025);border:1px solid var(--border);border-radius:var(--r-md);align-items:center;transition:all .2s var(--ease-out)}
.log-row:hover{background:var(--surface-2);border-color:var(--border-strong)}
.log-date{font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--warm-grey)}
.log-word-cell{display:flex;align-items:center;gap:10px;min-width:0}
.log-word-cell .mini-glow{width:14px;height:14px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle,var(--amber-soft) 0%,transparent 75%)}
.log-word-cell .word-text{font-family:'Frank Ruhl Libre',serif;font-size:1.05rem;color:var(--cream);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log-score-cell{font-family:'IBM Plex Mono',monospace;color:var(--amber);font-size:.92rem;text-align:left}
.log-score-cell.empty{color:var(--warm-muted)}
.log-action{display:flex;justify-content:flex-end;gap:6px}
.icon-mini{width:28px;height:28px;border-radius:50%;background:transparent;display:grid;place-items:center;color:var(--warm-grey);transition:all .2s var(--ease-out)}
.icon-mini:hover{background:var(--surface-2);color:var(--amber)}

/* ============ FAB ============ */
.fab{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;background:linear-gradient(180deg,var(--amber-soft),var(--amber-deep));color:#1a1208;display:grid;place-items:center;box-shadow:0 18px 48px -10px rgba(245,199,106,0.65),0 0 0 6px rgba(245,199,106,0.12);z-index:40;transition:all .35s var(--ease-spring)}
.fab:hover{transform:translateX(-50%) scale(1.08) translateY(-4px);box-shadow:0 24px 60px -8px rgba(245,199,106,0.85),0 0 0 8px rgba(245,199,106,0.18)}
.fab:active{transform:translateX(-50%) scale(.94)}
.fab-glow{position:absolute;inset:-12px;border-radius:50%;background:radial-gradient(circle,rgba(255,227,168,0.4) 0%,transparent 70%);animation:fab-pulse 3s ease-in-out infinite;pointer-events:none}
@keyframes fab-pulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.18);opacity:.3}}

/* ============ modals ============ */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .25s var(--ease-out)}
.modal[hidden]{display:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-bg{position:absolute;inset:0;background:rgba(10,14,26,0.85);backdrop-filter:blur(12px)}
.modal-card{position:relative;background:linear-gradient(180deg,var(--bg-2),var(--bg-1));border:1px solid var(--border-strong);border-radius:var(--r-xl);padding:32px 32px 26px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px -20px rgba(0,0,0,0.7),0 0 80px -20px rgba(245,199,106,0.15);animation:slideUp .35s var(--ease-spring)}
.modal-card.stats-wide{max-width:780px}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}
.close-btn{position:absolute;top:14px;left:14px;width:34px;height:34px;border-radius:50%;background:var(--surface);color:var(--cream-2);font-size:1.4rem;line-height:1;display:grid;place-items:center;transition:all .2s var(--ease-out)}
.close-btn:hover{background:var(--surface-2);color:var(--amber);transform:rotate(90deg)}
.modal-head{margin-bottom:20px}
.modal-head h3{font-size:1.65rem;margin-bottom:6px}
.modal-head p{color:var(--cream-2);font-size:.96rem}
.modal-head em{font-size:1.15em}

.ml-label{display:block;font-size:.82rem;letter-spacing:.06em;color:var(--warm-grey);margin:18px 0 8px;text-transform:uppercase}
.muted{color:var(--warm-grey)}
.small{font-size:.82rem}

.big-input{display:block;width:100%;padding:12px 16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:1rem;color:var(--cream);transition:all .2s var(--ease-out)}
.big-input:focus{border-color:var(--amber);background:var(--surface-2)}
select.big-input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23F5C76A' stroke-width='1.5' fill='none'/></svg>");background-repeat:no-repeat;background-position:16px center}
textarea{display:block;width:100%;padding:12px 16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:.95rem;color:var(--cream);font-family:inherit;resize:vertical;line-height:1.6}
textarea:focus{border-color:var(--amber);background:var(--surface-2)}

.suggested-words{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.sg-word{padding:8px 16px;background:rgba(244,236,216,0.04);border:1px solid var(--border-strong);border-radius:99px;font-family:'Frank Ruhl Libre',serif;font-size:1.05rem;color:var(--cream-2);transition:all .25s var(--ease-spring)}
.sg-word:hover{background:rgba(245,199,106,0.1);border-color:var(--amber);color:var(--amber);transform:translateY(-2px)}
.sg-word.selected{background:rgba(245,199,106,0.18);border-color:var(--amber);color:var(--amber-soft)}

.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;align-items:center}
.modal-actions.row-between{justify-content:space-between}
.modal-actions.row-between > div{display:flex;gap:10px}
.btn-primary{padding:11px 22px;background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:#1a1208;font-weight:700;font-size:.95rem;border-radius:99px;transition:all .25s var(--ease-spring);box-shadow:0 8px 24px -6px rgba(245,199,106,0.5)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px -6px rgba(245,199,106,0.7)}
.btn-primary:active{transform:translateY(0) scale(.97)}
.btn-ghost{padding:10px 20px;background:transparent;color:var(--cream-2);border:1px solid var(--border-strong);font-size:.92rem;border-radius:99px;transition:all .2s var(--ease-out)}
.btn-ghost:hover{background:var(--surface-2);border-color:var(--amber);color:var(--amber)}
.btn-danger{padding:10px 18px;background:transparent;color:var(--danger);border:1px solid rgba(229,106,106,0.4);font-size:.88rem;border-radius:99px;transition:all .2s var(--ease-out)}
.btn-danger:hover{background:rgba(229,106,106,0.1);border-color:var(--danger)}

.score-vis{position:relative;display:flex;justify-content:center;align-items:center;margin:18px 0 10px;min-height:180px}
.lantern-glow-vis{width:160px;height:160px;filter:drop-shadow(0 0 24px var(--amber-deep))}
.score-display{position:absolute;font-family:'IBM Plex Mono',monospace;font-size:2.2rem;color:#1a1208;font-weight:500;mix-blend-mode:multiply}

.big-slider{appearance:none;-webkit-appearance:none;width:100%;height:6px;background:linear-gradient(90deg,var(--bg-3) 0%,var(--amber) var(--val,75%),var(--bg-3) var(--val,75%));border-radius:99px;outline:0;direction:ltr}
.big-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,var(--amber-soft) 0%,var(--amber-deep) 80%);box-shadow:0 0 18px var(--amber-deep);cursor:grab;border:0}
.big-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,var(--amber-soft) 0%,var(--amber-deep) 80%);box-shadow:0 0 18px var(--amber-deep);cursor:grab;border:0}
.score-labels{display:flex;justify-content:space-between;font-size:.76rem;color:var(--warm-grey);margin-top:8px;padding:0 4px}
.score-readout{font-family:'IBM Plex Mono',monospace;font-size:.86rem;margin-top:6px;text-align:center}

.about-img{display:block;width:100%;max-width:380px;margin:0 auto 18px;border-radius:var(--r-md);opacity:.85}
.about-list{padding-right:18px;margin:8px 0 14px;line-height:1.9}
.about-list li{margin-bottom:6px}

.sub-h{font-family:'Frank Ruhl Libre',serif;font-size:1.08rem;margin-top:22px;margin-bottom:12px;color:var(--cream)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stats-grid .stat-card-mini{padding:14px 16px;background:rgba(244,236,216,0.04);border:1px solid var(--border);border-radius:var(--r-md)}
.stats-grid .stat-card-mini .lbl{font-size:.74rem;color:var(--warm-grey);letter-spacing:.05em;text-transform:uppercase}
.stats-grid .stat-card-mini .val{font-family:'IBM Plex Mono',monospace;font-size:1.5rem;color:var(--amber);margin-top:4px;display:block}
.weekday-chart{background:rgba(0,0,0,0.18);padding:14px;border-radius:var(--r-md)}
.top-words{display:flex;flex-direction:column;gap:6px}
.top-word-row{display:grid;grid-template-columns:120px 1fr 40px;gap:12px;align-items:center;padding:6px 0}
.top-word-row .tw-word{font-family:'Frank Ruhl Libre',serif;color:var(--cream)}
.top-word-row .tw-bar{height:8px;background:rgba(244,236,216,0.05);border-radius:99px;overflow:hidden}
.top-word-row .tw-bar .fill{height:100%;background:linear-gradient(90deg,var(--amber-deep),var(--amber-soft));border-radius:99px}
.top-word-row .tw-count{font-family:'IBM Plex Mono',monospace;color:var(--warm-grey);font-size:.85rem;text-align:left}

/* ============ foot ============ */
.foot{text-align:center;padding:20px;color:var(--warm-grey);font-size:.85rem}

/* ============ toast ============ */
.toast{position:fixed;bottom:120px;left:50%;transform:translateX(-50%);padding:12px 22px;background:rgba(10,14,26,0.95);border:1px solid var(--amber);color:var(--amber-soft);border-radius:99px;font-size:.9rem;z-index:200;box-shadow:0 14px 38px -8px rgba(245,199,106,0.4);backdrop-filter:blur(8px);animation:toastIn .35s var(--ease-spring)}
@keyframes toastIn{from{transform:translate(-50%,20px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

/* ============ responsive ============ */
@media (max-width:880px){
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .dual{grid-template-columns:1fr}
  .hero-content{padding:32px 28px 28px}
  .panel{padding:22px}
  .log-row{grid-template-columns:90px 1fr 60px 50px;gap:10px;padding:10px 12px}
}
@media (max-width:540px){
  .topbar{padding:12px 16px}
  .brand-sub{display:none}
  .shell{padding:18px 14px 60px}
  .hero{min-height:380px}
  .hero-content{padding:26px 22px 22px}
  .hero-title{font-size:2.1rem}
  .panel{padding:18px;border-radius:var(--r-lg)}
  .panel-head{margin-bottom:16px}
  #searchLog{width:100%}
  .modal-card{padding:24px 22px 20px}
}
@media (max-width:380px){
  .stats-row{grid-template-columns:1fr 1fr;gap:10px}
  .stat-card{padding:14px}
  .stat-num{font-size:1.8rem}
}
