/* Shared across TARIAN-family sites (COEX1ST, LIMINALsubTEXT).
   1) .ts-suite — the TARIAN-style glass button menu.
   2) .tb-dock  — three floating bubbles (posts / forum / submission) that pop open a panel. */

/* ---------- 1. TARIAN-style button menu ---------- */
.ts-suite{position:relative;width:100%;max-width:1120px;margin:0 auto}
.ts-suite-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}
.ts-btn{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px 16px;border:1px solid #afc8cf36;border-radius:4px;background:linear-gradient(120deg,#d6e1e50c,#cab6e203),#0b0a1199;box-shadow:inset 0 1px 0 #e5eaeb0b,0 6px 25px #0003;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font:500 12px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Arial,sans-serif;letter-spacing:.025em;color:#d8ddd9;text-decoration:none;text-align:left;transition:border-color .22s,background .22s,box-shadow .22s,transform .22s}
.ts-btn>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.ts-btn strong{font-weight:550;color:#e9ece8;font-size:13px;letter-spacing:.02em}
.ts-btn small{font-size:10.5px;color:#93a3a6;letter-spacing:.02em;line-height:1.35}
.ts-arrow{flex:0 0 auto;color:#a4bcbe;font-size:13px;opacity:.7;transition:transform .22s,opacity .22s}
a.ts-btn:hover,a.ts-btn:focus-visible,button.ts-btn:hover,button.ts-btn:focus-visible{border-color:#b7d7d28a;background:linear-gradient(120deg,#8aaeb817,#c7b27a08),#12111bbd;box-shadow:inset 0 1px 0 #f4f0dc14,0 0 25px #80b5be14;transform:translateY(-1px);color:#fff}
a.ts-btn:hover .ts-arrow,button.ts-btn:hover .ts-arrow{opacity:1;transform:translate(1px,-1px)}
.ts-btn:focus-visible{outline:2px solid #8fd3d8;outline-offset:2px}
button.ts-btn{cursor:pointer;width:100%;appearance:none}
.ts-btn.is-soon{opacity:.62;box-shadow:none;cursor:default}
.ts-btn.is-soon .ts-arrow{font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.ts-btn.is-feature{border-color:#c8ad7066;background:linear-gradient(120deg,#c8ad7014,#76d5dd08),#0d0d10cc}
.ts-btn.is-feature small{color:#d9c48f}
.ts-cross{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 26px;margin:16px 0 0;font:500 11px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.ts-cross a{color:#a9bfc2;text-decoration:none;border-bottom:1px solid transparent}
.ts-cross a:hover{color:#e7f3f2;border-bottom-color:#a9bfc266}
.ts-cross span{color:#6f8083}
@media(max-width:900px){.ts-suite-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ts-btn{min-height:54px;padding:11px 12px}.ts-btn strong{font-size:12px}.ts-btn small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ts-btn,.ts-arrow{transition:none}}

/* ---------- 2. Floating bubbles ---------- */
.tb-dock{--dock-top:22px;position:fixed;z-index:9990;top:var(--dock-top);right:18px;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Arial,sans-serif;color:#e8ece9}
body.admin-bar .tb-dock{top:calc(var(--dock-top) + 32px)}
.tb-bubbles{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.tb-bubble{position:relative;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #b7cdd24d;border-radius:50%;background:radial-gradient(circle at 35% 30%,#24323a,#0b1015 70%);color:#dbe8e7;box-shadow:0 8px 24px #000a,inset 0 1px 0 #ffffff14;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s,color .2s}
.tb-bubble:hover,.tb-bubble:focus-visible,.tb-bubble.is-on{transform:translateY(-1px) scale(1.04);border-color:#8fd3d8;color:#fff;box-shadow:0 10px 30px #000c,0 0 0 4px #76d5dd1f}
.tb-bubble:focus-visible{outline:2px solid #8fd3d8;outline-offset:3px}
.tb-bubble svg{width:22px;height:22px}
.tb-tip{position:absolute;right:58px;top:50%;transform:translateY(-50%);white-space:nowrap;padding:5px 10px;border:1px solid #b7cdd233;border-radius:3px;background:#0b1015ee;font-size:11px;letter-spacing:.04em;color:#dfe9e8;opacity:0;pointer-events:none;transition:opacity .15s}
.tb-bubble:hover .tb-tip,.tb-bubble:focus-visible .tb-tip{opacity:1}
.tb-dock.is-open .tb-tip{display:none}
.tb-dot{position:absolute;top:6px;right:7px;width:9px;height:9px;border-radius:50%;background:#e3b85c;box-shadow:0 0 0 2px #0b1015}
.tb-dot[hidden]{display:none}
.tb-panel{position:absolute;top:0;right:62px;width:min(440px,calc(100vw - 100px));max-height:calc(100vh - var(--dock-top) - 24px);display:flex;flex-direction:column;border:1px solid #b7cdd240;border-radius:10px;background:linear-gradient(160deg,#121b21f5,#070b0ef7);box-shadow:0 24px 70px #000d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden;animation:tb-pop .18s ease-out}
.tb-panel[hidden]{display:none}
@keyframes tb-pop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.tb-panel-head{display:flex;align-items:center;gap:12px;padding:15px 16px 13px;border-bottom:1px solid #b7cdd226}
.tb-panel-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;border:1px solid #b7cdd240;color:#cfe3e2}
.tb-panel-icon svg{width:18px;height:18px}
.tb-panel-head>div{flex:1;min-width:0}
.tb-panel-head h2{margin:0;font:400 22px/1.15 Georgia,'Times New Roman',serif;color:#f1ede3;letter-spacing:-.01em}
.tb-panel-head p{margin:2px 0 0;font-size:10.5px;letter-spacing:.06em;color:#93a3a6}
.tb-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:#b9c9ca;cursor:pointer}
.tb-close:hover,.tb-close:focus-visible{background:#ffffff12;color:#fff}
.tb-close svg{width:18px;height:18px}
.tb-panel-body{padding:4px 18px 18px;overflow-y:auto;overscroll-behavior:contain}
.tb-panel .thr,.tb-panel .cmt,.tb-panel-body.thr{--t-ink:#ece8de;--t-muted:#97a3a6;--t-line:#b7cdd21f;--t-gold:#c8ad70;--t-cyan:#76d5dd;--t-panel:#0a1014}
.tb-owner{display:flex;justify-content:flex-end;padding:12px 0 2px}
.tb-panel .thr-post,.tb-panel .cmt-post{padding:16px 0}
.tb-panel .thr-post:after,.tb-panel .cmt-post:after{top:52px}
.tb-panel .thr-post h3,.tb-panel .cmt-post h3{font-size:17px;margin:6px 0}
.tb-panel .thr-text,.tb-panel .cmt-text{font-size:13.5px;line-height:1.65}
.thr-site{margin-left:auto;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#7f9093}
.tb-panel .cmt-head{align-items:center;padding:12px 0;border-bottom:1px solid var(--t-line)}
.tb-panel .cmt-intro{margin:0;font-size:12px}
/* letter form */
.tb-letter{padding-top:12px}
.tb-letter-intro{margin:0 0 6px;font-size:13px;line-height:1.6;color:#c3cbcb}
.tb-letter label{display:block;margin:12px 0 5px;font-size:11px;color:#97a3a6}
.tb-letter label span{color:#6f7d80}
.tb-letter input[type=text],.tb-letter textarea{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #2f3940;border-radius:3px;background:#05080a;color:#ece8de;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
.tb-letter textarea{resize:vertical;min-height:130px}
.tb-letter input:focus,.tb-letter textarea:focus{outline:2px solid #3f7d82;outline-offset:1px}
.tb-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tb-letter .cmt-check{margin-top:14px;color:#c3cbcb;font-size:12px}
.tb-letter button[type=submit]{margin-top:14px;padding:10px 18px;border:1px solid #76d5dd;border-radius:3px;background:#10272a;color:#dff6f4;font:600 12px/1 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;cursor:pointer}
.tb-letter button:disabled{opacity:.5}
.tb-letter-status{margin:10px 0 0;font-size:12px;color:#76d5dd;min-height:1em}
/* phones: bubbles in a row, panel becomes a bottom sheet */
@media(max-width:700px){
  .tb-dock{--dock-top:12px;right:10px}
  body.admin-bar .tb-dock{top:calc(var(--dock-top) + 46px)}
  .tb-bubbles{flex-direction:row;gap:8px}
  .tb-bubble{width:40px;height:40px}
  .tb-bubble svg{width:19px;height:19px}
  .tb-tip{display:none}
  .tb-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;max-height:86vh;border-radius:14px 14px 0 0;animation:tb-up .2s ease-out}
  .tb-two{grid-template-columns:1fr}
  @keyframes tb-up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
}
@media(prefers-reduced-motion:reduce){.tb-panel{animation:none}.tb-bubble{transition:none}}
@media print{.tb-dock{display:none}}
