/* Thoughts graph */
.tg{position:relative;width:100%;height:min(72svh,640px);margin:8px 0 0}
.tg-svg{display:block;width:100%;height:100%;overflow:visible;touch-action:pan-y}
.tg-l{stroke:var(--line);stroke-width:1;transition:stroke .3s,opacity .3s}
.tg-l.on{stroke:var(--ink)}
.tg-n{cursor:pointer;outline:none;opacity:0;transition:opacity .6s ease}
.tg.in .tg-n{opacity:1}
.tg-hit{fill:transparent}
.tg-s{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.t-business .tg-s>*{fill:#CE3A20}
.t-tech .tg-s>*{fill:var(--paper);stroke:#CE3A20;stroke-width:2.5}
.t-people .tg-s>*{fill:#DE6034}
.k-soon .tg-s>*{fill:var(--paper);stroke:#b9b8b2;stroke-width:1.4;stroke-dasharray:3 3}
.tg-t{font:600 14px "Inter Tight",sans-serif;fill:var(--ink);pointer-events:none;transition:fill .3s,opacity .3s}
.tg-t.big{font:700 15px "Inter Tight",sans-serif;fill:var(--ink)}
.k-soon .tg-t{font-family:Caveat,cursive;font-size:17px;font-weight:600;fill:#a3a29c}
@keyframes tgPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.tg-svg.hl .tg-n{opacity:.25}
.tg-svg.hl .tg-n.on{opacity:1}
.tg-svg.hl .tg-l{opacity:.25}
.tg-svg.hl .tg-l.on{opacity:1}
.tg-n:hover .tg-s,.tg-n:focus .tg-s{transform:scale(1.35)}
.tg-n:focus-visible .tg-hit{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 3}
.tg-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--muted)}
.tg-legend li{display:flex;align-items:center;gap:8px}
.tg-dot{display:inline-block;width:10px;height:10px;flex:none;border-radius:50%;background:#CE3A20}
.tg-dot.t-tech{background:transparent;border:2px solid #CE3A20;box-sizing:border-box}
.tg-dot.t-people{border-radius:0;background:#DE6034;transform:rotate(45deg);width:8px;height:8px}
.tg-dot.k-soon{background:transparent;border:1.4px dashed #a3a29c}
.tg-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.tg-list li{border-top:1px solid var(--line)}
.tg-list button{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:10px 0;background:none;border:0;cursor:pointer;text-align:left;font:600 clamp(18px,1.6vw,22px)/1.2 "Inter Tight",sans-serif;color:var(--ink)}
.tg-list button span{flex:1}
.tg-list em{font:600 17px Caveat,cursive;color:var(--muted);font-style:normal}
.tg-list button:hover span{text-decoration:underline;text-underline-offset:4px}
/* reading panel */
.tg-panel{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:var(--paper);color:var(--ink);z-index:60;box-shadow:-20px 0 60px rgba(0,0,0,.18);transform:translateX(105%);transition:transform .5s cubic-bezier(.2,.7,.2,1);overflow-y:auto;padding:72px 32px 40px}
.tg-panel.open{transform:none}
.tg-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border:0;background:none;font-size:30px;line-height:1;cursor:pointer;color:var(--ink)}
.tg-meta{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.tg-panel h3{font-size:clamp(30px,3vw,40px);margin:14px 0 20px;line-height:1.05}
.tg-panel p{font-size:17px;line-height:1.6;margin:0 0 1em}
.tg-rel-h{margin-top:32px!important;font:600 20px Caveat,cursive!important;color:var(--muted)}
.tg-rel{list-style:none;margin:0;padding:0}
.tg-rel button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line);background:none;cursor:pointer;text-align:left;font:600 16px "Inter Tight",sans-serif;color:var(--ink)}
@media (max-width:820px){
 .tg{height:min(62svh,520px)}
 .tg-t{display:none}
 .k-soon .tg-t{font-size:14px}
 .tg-panel{top:auto;width:100%;max-height:82svh;border-radius:18px 18px 0 0;transform:translateY(105%);padding:56px 20px 32px;box-shadow:0 -20px 60px rgba(0,0,0,.2)}
 .tg-panel.open{transform:none}
}
@media (prefers-reduced-motion:reduce){.k-post .tg-s{animation:none}.tg-panel{transition:none}}
.tg.rv .tg-n{opacity:0;transition:opacity .5s ease}
.tg.rv .tg-n.show{opacity:1}
.tg.rv .tg-l{opacity:0;transition:opacity .5s ease,stroke .3s}
.tg.rv .tg-l.show{opacity:1}
.tg.rv .tg-svg.hl .tg-n.show{opacity:.25}.tg.rv .tg-svg.hl .tg-n.show.on{opacity:1}
.tg.zoomable{overflow:hidden}.tg.zoomable .tg-svg{cursor:grab;overflow:hidden}.tg.zoomable.panning .tg-svg{cursor:grabbing}
.tg-hint{margin:8px 0 0;font:600 18px Caveat,cursive;color:var(--muted)}
@media (max-width:820px){.tg-hint{display:none}}
.tg-full{display:inline-block;margin:6px 0 4px;font:600 12px/1 Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:12px 0;border-top:1px solid #CE3A20}
.tg-full:hover{color:#CE3A20}
.tg.local .tg-t{font-size:12px}
.tg.local .is-center .tg-t{font:800 15px "Inter Tight",sans-serif}
.tg.local .is-center{cursor:default}
.tg.local .far{opacity:.45}
.tg.local .far .tg-t{display:none}
.tg.local .far.show,.tg.local.in .far{opacity:.45}
@media (max-width:820px){.tg.local .tg-t{display:block;font-size:10px}.tg.local .far .tg-t{display:none}}
.tg-zoom{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:4px;z-index:2}
.tg-zoom button{width:36px;height:36px;border:1px solid var(--line);background:var(--paper);font:500 18px/1 Inter,sans-serif;color:var(--ink);cursor:pointer}
.tg-zoom button:hover{border-color:var(--ink)}
.tg-ripple{fill:none;stroke:#CE3A20;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:tgRipple 2.6s ease-out infinite;pointer-events:none}
@keyframes tgRipple{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(2.6);opacity:0}}
.tg-n:hover .tg-t,.tg-n:focus .tg-t{text-decoration:underline;text-underline-offset:3px}
.tg-tap{display:flex;align-items:center;gap:10px;margin:12px 0 0;font:600 clamp(26px,2.4vw,34px)/1 Caveat,cursive;color:#CE3A20;transition:opacity .5s ease,transform .5s ease}
.tg-seen .tg-tap{opacity:0;transform:translateY(-6px);pointer-events:none}
.tg-tap svg{width:64px;height:30px;fill:none;stroke:#CE3A20;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:reduce){.tg-ripple{animation:none;opacity:.5}}
.tg-cap{display:none}
@media (max-width:820px){
 .tg-cap{display:block;margin:10px 0 0;border-bottom:1px solid var(--line);padding-bottom:12px}
 .tg-tap{display:none}
 .tg-cap-t{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink);font:700 24px/1.15 "Inter Tight",sans-serif;letter-spacing:-.01em}
 .tg-cap-t span{flex:1}
 .tg-cap-t b{font-weight:400;color:#CE3A20}
 .tg-cap-t.in{animation:tgCap .5s ease}
 @keyframes tgCap{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
 .tg-cap-dots{display:flex;gap:6px;margin-top:10px}
 .tg-cap-dots i{width:16px;height:2px;background:var(--line)}
 .tg-cap-dots i.on{background:#CE3A20}
 .th-pin .tg{flex:1 1 auto;min-height:220px}
}
.tg-n.lbl-hide .tg-t{opacity:0;transition:opacity .25s}
.tg-n.lbl-hide:hover .tg-t,.tg-n.lbl-hide.on .tg-t,.tg-n.lbl-hide:focus .tg-t{opacity:1}
.tg-bar{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;margin:10px 0 0}
.tg-bar .tg-legend{font-size:13px}
.tg-bar .tg-zoom{position:static;flex-direction:row;gap:2px}
.tg-bar .tg-zoom button{width:auto;min-width:36px;height:32px;padding:0 8px;border:0;background:none;font:500 15px/1 Inter,sans-serif;color:var(--muted)}
.tg-bar .tg-zoom button:hover{color:var(--ink)}
.tg-index{columns:2;column-gap:clamp(24px,5vw,72px);border:0;margin:clamp(40px,6vw,72px) 0 0}
.tg-index li{border:0;break-inside:avoid}
.tg-index button{min-height:40px;padding:6px 0;font:600 clamp(16px,1.3vw,19px)/1.3 "Inter Tight",sans-serif}
@media (max-width:820px){.tg-index{columns:1}.tg-bar .tg-zoom{display:none}}
