
.imp-tsm{--bg:#FFFFFF;--ink:#111418;--body:#374151;--muted:#6B7280;--line:#E5E7EB;--panel:#F6F7F9;--green:#1E5640;--green-soft:#E9F1EC;--brass:#B0832B;
  --line-strong:#C3C9D1;--mg-blue:#5073A1;--pop-sage:#DCE9DF;--pop-cool:#D9E5EC;--pop-sand:#F0E4CA;--pop-dots:.12;
  --pop-rest:inset 0 0 0 1px rgba(17,20,24,.06),0 1px 2px rgba(17,20,24,.06),0 16px 32px -20px rgba(17,20,24,.32);
  --pop-active:inset 0 0 0 1px rgba(17,20,24,.08),0 2px 4px rgba(17,20,24,.06),0 28px 48px -24px rgba(17,20,24,.42);
  --f-display:'Newsreader',Georgia,serif;--f-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--f-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  background:var(--bg);color:var(--ink);font-family:var(--f-body)}
.imp-tsm *{box-sizing:border-box}
.imp-tsm{line-height:1.5;text-align:left}
.imp-tsm .sec{padding:56px 0 72px;margin:0;background:transparent}
.imp-tsm .wrap{max-width:1120px;margin:0 auto;padding:0 40px}
.imp-tsm .eyebrow{display:block;font-family:var(--f-body);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0}
.imp-tsm .cm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:40px}
.imp-tsm .cm-head h2{color:var(--ink);margin:12px 0 0;font-family:var(--f-display);font-size:42px;line-height:1.08;letter-spacing:-.02em;font-weight:400;text-wrap:balance}
.imp-tsm .avatar{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--green-soft)}
.imp-tsm .mg-tile{display:inline-flex;align-items:center;justify-content:center;background:var(--mg-blue);padding:10px 14px;border-radius:3px;line-height:0}
.imp-tsm .mg-tile img{height:26px;width:auto;max-width:none}
.imp-tsm .person{display:flex;align-items:center;gap:12px;min-width:0}
.imp-tsm .person .n{font-weight:600;font-size:15px;color:var(--ink);line-height:1.3}
.imp-tsm .person .r{font-size:13px;color:var(--muted);line-height:1.35}
.imp-tsm .person .r a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.imp-tsm .person .r a:hover{color:var(--ink)}
.imp-tsm .wm{font-weight:600;color:var(--ink);white-space:nowrap;line-height:1}
.imp-tsm .wm-repliers{font-family:var(--f-body);font-size:21px;letter-spacing:-.03em}
.imp-tsm .wm-repliers i{font-style:normal;color:var(--green)}
.imp-tsm .wm-oneday{font-family:var(--f-body);font-size:22px;letter-spacing:-.04em;font-weight:600}
.imp-tsm .wm-oneday i{font-style:normal;display:inline-block;width:.42em;height:.42em;border-radius:50%;background:var(--brass);margin-left:.06em;vertical-align:.05em}
.imp-tsm .roundbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;padding:0}
.imp-tsm .roundbtn:hover{border-color:var(--ink)}
.imp-tsm .roundbtn svg{width:18px;height:18px}
.imp-tsm :focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px}
.imp-tsm .cm-card{flex:none;width:min(46%,560px);background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;gap:22px;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease,opacity .5s ease}
.imp-tsm .cm-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.imp-tsm .cm-card h3{color:var(--ink);font-family:var(--f-display);font-weight:600;font-size:clamp(23px,2.3vw,30px);line-height:1.15;letter-spacing:-.01em;margin:18px 0 0;text-wrap:balance}
.imp-tsm .cm-card blockquote{margin:0;padding:0;border:0;font-family:var(--f-body);quotes:none;color:var(--ink);font-size:17px;line-height:1.7}
.imp-tsm .cm-foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--line-strong);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.imp-tsm .cm-nav{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:32px}
.imp-tsm .cm-viewport{overflow:hidden;margin:-24px -12px;padding:24px 12px;touch-action:pan-y}
.imp-tsm .cm-rail{display:flex;gap:20px;transition:transform .85s cubic-bezier(.22,.8,.24,1);will-change:transform}
.imp-tsm .cm-card blockquote,.imp-tsm .cm-card h3{color:var(--ink);transition:transform .7s cubic-bezier(.22,.8,.24,1)}
.imp-tsm .cm-card:not(.is-active) h3,.imp-tsm .cm-card:not(.is-active) blockquote{transform:translateY(6px)}
.imp-tsm .cm-progress{display:flex;gap:4px}
.imp-tsm .cm-progress button{width:46px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;align-items:center}
.imp-tsm .cm-progress span{display:block;height:3px;border-radius:2px;background:var(--line);overflow:hidden}
.imp-tsm .cm-progress i{display:block;height:100%;width:0;background:var(--ink)}
.imp-tsm .cm-progress button.done i{width:100%}
.imp-tsm .cm-progress button.on i{animation:tsm-fill 5.5s linear forwards}
.imp-tsm .cm.paused .cm-progress i,.imp-tsm .cm.offscreen .cm-progress i{animation-play-state:paused}
@keyframes tsm-fill{from{width:0}to{width:100%}}
.imp-tsm .fav{display:inline-block;width:15px;height:15px;padding:1px;border-radius:4px;vertical-align:-3px;margin:0 3px 0 0;background:#fff;box-shadow:0 0 0 1px var(--line);object-fit:contain}
.imp-tsm .cm-dot{flex:none;display:grid;justify-items:end;gap:6px;text-align:right}
.imp-tsm .cm-dot b{font-family:var(--f-mono);font-weight:700;font-size:clamp(54px,6vw,82px);line-height:.86;letter-spacing:-.05em;color:transparent;
  background-image:radial-gradient(circle,var(--ink) 1.3px,transparent 1.7px);background-size:4px 4px;-webkit-background-clip:text;background-clip:text}
.imp-tsm .cm-dot small{font-size:12px;color:var(--body);white-space:nowrap}
.imp-tsm .cm-card.sweep .cm-dot b{animation:tsm-dotprint 1.1s steps(14) both}
@keyframes tsm-dotprint{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.imp-tsm .cm-card{position:relative;overflow:hidden;border:0;border-radius:6px;box-shadow:var(--pop-rest)}
.imp-tsm .cm-card>*{position:relative;z-index:1}
.imp-tsm .cm-card.t-sage{background:var(--pop-sage)}
.imp-tsm .cm-card.t-cool{background:var(--pop-cool)}
.imp-tsm .cm-card.t-sand{background:var(--pop-sand)}
.imp-tsm .cm-card:not(.is-active){opacity:.9}
.imp-tsm .cm-card.is-active{box-shadow:var(--pop-active);transform:translateY(-3px);opacity:1}
.imp-tsm .cm-card:hover{box-shadow:var(--pop-active);transform:translateY(-7px);opacity:1}
.imp-tsm .cm-card::after{content:"";position:absolute;inset:auto 0 0 0;height:62%;pointer-events:none;z-index:0;
  background-image:radial-gradient(currentColor .9px,transparent 1.2px);background-size:9px 9px;color:var(--ink);opacity:var(--pop-dots);
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 100%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 60% 70% at 50% 100%,#000 20%,transparent 75%)}
@media (max-width:820px){.imp-tsm .cm-card{width:88%}.imp-tsm .wrap{padding:0 16px}.imp-tsm .cm-head h2{color:var(--ink);font-size:32px}}
@media (prefers-reduced-motion:reduce){.imp-tsm .cm-rail,.imp-tsm .cm-card,.imp-tsm .cm-card h3,.imp-tsm .cm-card blockquote{transition:none!important}
  .imp-tsm .cm-progress button.on i{animation:none;width:100%}.imp-tsm .cm-card:not(.is-active) h3,.imp-tsm .cm-card:not(.is-active) blockquote{transform:none}.imp-tsm .cm-card.sweep .cm-dot b{animation:none}}
