/* Scoped to the list only; article shells and the global cursor stay untouched. */
.tf-page{--tf-header:65px;--tf-accent:#73dfff}
.tf-page .site-header{height:var(--tf-header)}
.tf-page .nav-inner{height:100%;flex-wrap:nowrap}
.tf-page .nav-links{flex-wrap:nowrap}
.tf-page .sf-floating-content>main{max-width:none;padding:0;min-height:0}
.tf-shell{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1600px;margin:auto;height:calc(100dvh - var(--tf-header))}
.tf-rail{border-right:1px solid #243143;min-height:0;display:flex;flex-direction:column}
.tf-rail header{padding:28px 22px 16px}
.tf-rail h1{font-size:25px;margin:6px 0}
.tf-rail header p{font-size:12px;color:#91a4bf;margin:0}
.tf-rail nav{overflow-y:auto;scrollbar-width:thin;padding:0 10px 24px}
.tf-rail nav a,.tf-sheet nav a,.tf-fallback nav a{display:block;padding:16px 14px;text-decoration:none;border-radius:12px;color:#9aaec8;border:1px solid transparent}
.tf-rail nav a[aria-current]{background:#102c3b;border-color:#234d60;color:#eefaff}
.tf-rail time,.tf-sheet time,.tf-fallback time{display:block;font-size:11px;color:#8ba5bd;margin-bottom:5px}
.tf-rail nav span,.tf-sheet nav span{font-size:13px;line-height:1.6;display:block}
.tf-stage{position:relative;min-width:0;min-height:0}
.tf-viewport{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;outline-offset:-3px}
.tf-viewport::-webkit-scrollbar{display:none}
.tf-slide{position:relative;scroll-snap-align:start;scroll-snap-stop:always;height:100%;min-height:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(20px,3vw,48px);padding:40px 88px 64px 40px;box-sizing:border-box}
.tf-visual{aspect-ratio:3/2;min-width:0;border-radius:18px;overflow:hidden;background:radial-gradient(at 30% 20%,#174963,#0c1627 75%);box-shadow:0 20px 70px #0006}
.tf-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.tf-copy{min-width:0;position:relative}
.tf-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#a8bdd4;font-size:12px}
.tf-meta span{color:#8ce6ff;border:1px solid #386278;background:#122f40;padding:4px 9px;border-radius:999px}
.tf-copy h2{font-size:clamp(23px,2.5vw,40px);letter-spacing:-.045em;line-height:1.4;margin:18px 0}
.tf-copy>p{color:#b2c2d6;font-size:15px;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.tf-actions{display:flex;gap:10px;align-items:center;margin-top:28px}
.tf-primary,.tf-page button{font:inherit;display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;cursor:pointer;text-decoration:none;padding:10px 15px;box-sizing:border-box}
.tf-primary{background:#77e0ff;color:#071822!important;font-weight:700;border:1px solid #77e0ff}
.tf-page button{border:1px solid #476079;background:#122236;color:#e5f1ff}
.tf-page a:focus-visible,.tf-page button:focus-visible,.tf-viewport:focus-visible{outline:2px solid #82e6ff;outline-offset:3px}
.tf-controls{position:absolute;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:16px}
.tf-controls button{width:44px;height:44px;border-radius:50%;font-size:20px}
.tf-controls button:disabled{opacity:.3;cursor:default}
.tf-controls output{font-size:11px;white-space:nowrap;color:#c0d1e5;font-variant-numeric:tabular-nums}
.tf-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%) translateY(7px);border:1px solid #566a80;border-radius:999px;padding:10px 18px;background:rgba(7,20,36,.82);backdrop-filter:blur(10px);color:#e5f6ff;font-size:12px;pointer-events:none;z-index:15;opacity:0;transition:opacity .4s ease,transform .4s ease}
.tf-hint.is-visible{opacity:1;transform:translateX(-50%) translateY(0);transition-duration:.3s}
.tf-hint[hidden]{display:none}
.tf-hint-mobile,.tf-mobile-heading{display:none}
.tf-status{position:absolute;bottom:4px;left:24px;font-size:12px;color:#dce9ff;pointer-events:none}
.tf-end{max-width:1000px;margin:auto;padding:54px 24px;text-align:center}
.tf-end h2{font-size:26px}.tf-end p{color:#a7b8d1;line-height:1.9;font-size:14px}
.tf-end>a{margin:12px}
.tf-sheet{padding:16px;width:min(620px,100%);max-height:80dvh;background:#0e192a;color:#eff7ff;border:1px solid #35506c;border-radius:22px 22px 0 0;position:fixed;inset:auto 0 0;margin:0 auto;box-sizing:border-box}
.tf-sheet::backdrop{background:#000a;backdrop-filter:blur(4px)}
.tf-sheet header{display:flex;justify-content:space-between;align-items:center;padding:0 8px 10px}
.tf-sheet header h2{font-size:20px}.tf-sheet small{color:#78d9fa}
.tf-sheet nav{max-height:58dvh;overflow-y:auto}
.tf-fallback{max-width:900px;margin:30px auto;padding:20px}
.tf-page .sf-floating-consultation{width:44px;right:18px;gap:8px}
.tf-page .sf-floating-consultation .sf-floating-btn{width:44px;height:44px;padding:0}
.tf-page .sf-floating-consultation span:not(.sf-floating-shimmer){display:none}
@media(min-width:1024px) and (max-width:1250px){.tf-shell{grid-template-columns:230px minmax(0,1fr)}.tf-slide{grid-template-columns:1fr;padding:24px 86px 48px 32px;gap:16px;align-content:center}.tf-visual{width:min(100%,420px);margin:auto}.tf-copy h2{font-size:25px;margin:12px 0}.tf-copy>p{-webkit-line-clamp:3;margin:8px 0}.tf-actions{margin-top:14px}.tf-page .nav-link{font-size:11px;padding-inline:4px}}
@media(max-width:1023px){
 .tf-page{--tf-header:64px}
 .tf-page .nav-links{display:none}.tf-page .nav-inner{justify-content:space-between}
 .tf-shell{display:block}.tf-rail{display:none}
 .tf-stage{height:100%}
 .tf-slide{display:block;padding:0}
 .tf-visual{position:absolute;inset:0;border-radius:0;aspect-ratio:auto;box-shadow:none}
 .tf-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#020a1680 0%,#020a1608 22%,#020a1640 40%,#020a16dd 68%,#020a16 100%)}
 .tf-copy{position:absolute;bottom:calc(50px + env(safe-area-inset-bottom,0px));left:24px;right:60px}
 .tf-copy h2{font-size:clamp(24px,5.7vw,36px);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:14px 0;line-height:1.42}
 .tf-copy>p{-webkit-line-clamp:2;color:#d2dce9;font-size:14px;line-height:1.75}
 .tf-actions{margin-top:20px;gap:8px}.tf-actions button{padding:10px 12px}.tf-actions button span{display:none}
 .tf-mobile-heading{display:flex;align-items:center;justify-content:space-between;position:absolute;top:14px;left:22px;right:18px;z-index:4;font-weight:700;text-shadow:0 2px 6px #000}
 .tf-mobile-heading button{border-radius:999px;background:#071424a8;font-size:12px}
 .tf-controls{right:14px;top:52%;gap:0}.tf-controls button{display:none}.tf-controls output{writing-mode:vertical-rl;letter-spacing:2px}
 .tf-hint{bottom:auto;top:var(--tf-hint-top,62%);text-align:center;border-color:#7890a4;background:rgba(5,16,31,.78);line-height:1.65;white-space:nowrap;padding:10px 20px}
 .tf-hint-mobile{display:block;font-size:0}.tf-hint-mobile:before{content:"⌃";font-size:23px;line-height:1;display:block;margin-bottom:5px}
 .tf-hint-mobile:after{content:"위로 넘겨 다음 소식";font-size:12px}
 .tf-hint-mobile:before{animation:tf-hint-chevron 1s ease-in-out 2}
 .tf-hint-desktop{display:none}
 .tf-page .sf-floating-content{padding-bottom:0}
 .tf-page .sf-floating-consultation{bottom:auto;top:calc(var(--tf-header) + 74px);right:12px}
 .tf-status{bottom:0;left:24px}
 .tf-end{padding:36px 24px}.tf-end h2{font-size:22px}
}
@keyframes tf-hint-chevron{0%,100%{translate:0 5px;opacity:.5}50%{translate:0 -5px;opacity:1}}
@media(prefers-reduced-motion:reduce){.tf-hint,.tf-hint-mobile:before{transition:none!important;animation:none!important}.tf-viewport{scroll-behavior:auto}}
