/* Ryuga web, Webtoon-style layout (plan: design/web-webtoon/KE-HOACH.md). Brand tokens come from brand.css.
   Every class is prefixed wt- so this file never fights style.css (play.html / story.html keep their own look). */
:root{color-scheme:dark;--bg:#121212;--bg2:#1e1e1e;--card:#272727;--line:#3a3a3a;--ink:#ececec;--mute:#9a9a9a;--on-green:#121212;
  --wt-green:#00DC64;--wt-green-t:#00DC64;--wt-ink:var(--ink);--wt-mute:var(--mute);--wt-chip:var(--card);--wt-foot:var(--bg2);--wt-line:var(--line);
  --wt-head:'Sora',system-ui,sans-serif;--wt-body:'Manrope',system-ui,sans-serif;--wt-wrap:1200px;--wt-gap:10px}
:root[data-theme="light"]{color-scheme:light;--bg:#ffffff;--bg2:#F5F5F5;--card:#F3F3F3;--line:#E6E6E6;--ink:#121212;--mute:#6B6B6B;--on-green:#121212;--wt-green-t:#007A37} /* light = pre-dark values (0b522ae9^) */
.wt *{box-sizing:border-box}
body.wt{margin:0;background:var(--bg);color:var(--wt-ink);font-family:var(--wt-body);-webkit-font-smoothing:antialiased}
.wt a{color:inherit;text-decoration:none}
.wt-wrap{width:var(--wt-wrap);max-width:100%;margin:0 auto}

/* header (header.js) — Hieu 06/10 "gom gon nhu OOC": 64px, 3 items sentence case, one tight right group */
.wt-header{height:64px;border-bottom:1px solid var(--wt-line);background:var(--bg);position:relative;box-sizing:border-box}
.wt-header .wt-wrap{height:100%;display:flex;align-items:center;gap:28px}
.wt-logo{display:flex;align-items:center;gap:8px;flex:none}
.wt-logo img,.wf-brand img{width:36px;height:36px;border-radius:9px;display:block;box-shadow:0 0 0 1px var(--line)} /* dark M2: logo tile is #121212, ring keeps it visible on the dark page */
.wt-logo b{font-family:var(--wt-head);font-weight:800;font-size:21px;letter-spacing:-.02em}
.wt-logo b i{font-style:normal;color:var(--wt-green)}
.wt-nav{display:flex;gap:4px;align-items:center}
.wt-nav a{font-family:var(--wt-head);font-size:15px;line-height:36px;height:36px;padding:0 14px;border-radius:18px;font-weight:600;color:var(--mute);transition:background .15s,color .15s}
.wt-nav a:hover{color:var(--ink);background:var(--card)}
.wt-nav a.on{color:var(--ink);background:var(--card)}
.wt-right{margin-left:auto;display:flex;gap:6px;align-items:center}
.wt-search{display:none;align-items:center;height:36px;border-radius:18px;background:var(--card);padding:0 14px}
.wt-search.open{display:flex}
.wt-search input{border:0;background:transparent;outline:0;font:500 13px var(--wt-body);width:170px;color:var(--wt-ink)}
.wt-sbtn{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex:none}
.wt-sbtn:hover{background:var(--card)}
.wt-create{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 14px 0 11px;border-radius:18px;border:1px solid var(--wt-line);font:700 13px var(--wt-body);color:var(--wt-ink);white-space:nowrap;flex:none;margin-right:2px}
.wt-create:hover{border-color:var(--line);background:var(--bg2)}
.wt-login{height:36px;padding:0 16px;border-radius:18px;background:var(--wt-ink);color:var(--bg)!important;font:700 13px var(--wt-body);display:inline-flex;align-items:center;white-space:nowrap}
/* account menu (avatar) */
.wt-acct-w{position:relative;display:inline-flex}
/* 31/10: grouped menu (head | Profile·Settings | Creator·Affiliate in brand green | Admin·theme switch | Log out), light + dark via theme vars */
.wt-menu{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 16px);background:var(--bg2);border:1px solid var(--wt-line);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.28);padding:6px;z-index:60;display:flex;flex-direction:column;box-sizing:border-box}
:root[data-theme="light"] .wt-menu{box-shadow:0 12px 32px rgba(0,0,0,.12)}
.wt-menu[hidden]{display:none}
.wt-menu-h{padding:10px 10px 12px;display:flex;align-items:center;gap:12px;min-width:0}
.wt-menu-h .wt-menu-av{width:40px;height:40px;flex:none;font-size:16px}
.wt-menu-id{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.wt-menu-id b{font:700 14px var(--wt-head);color:var(--wt-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-menu-id>span{font-size:12px;color:var(--wt-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wt-menu-id>.wt-menu-free{align-self:flex-start;margin-top:4px;padding:2px 8px;border-radius:64px;font:700 11px var(--wt-body);color:var(--wt-green-t);background:color-mix(in srgb,var(--wt-green) 14%,transparent);border:1px solid color-mix(in srgb,var(--wt-green) 40%,transparent)}
.wt-menu-sep{height:1px;background:var(--wt-line);margin:6px 4px}
.wt-menu a,.wt-menu button{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 10px;border-radius:9px;font:600 14px var(--wt-body);color:var(--wt-ink);background:none;border:0;text-align:left;cursor:pointer;width:100%;box-sizing:border-box;text-decoration:none}
.wt-menu .wt-mi-i{flex:none;color:var(--wt-mute)}
.wt-menu a:hover,.wt-menu button:hover,.wt-menu a:focus-visible,.wt-menu button:focus-visible,.wt-menu a:focus,.wt-menu button:focus{background:var(--card);outline:0}
.wt-menu a:focus-visible,.wt-menu button:focus-visible{box-shadow:inset 0 0 0 2px var(--wt-green)}
.wt-menu .wt-mi-hl{min-height:48px}
.wt-menu .wt-mi-hl .wt-mi-i{color:var(--wt-green-t)}
.wt-mi-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.wt-mi-t small{font:500 12px var(--wt-body);color:var(--wt-green-t)}
.wt-menu .wt-theme-mi>span:not(.wt-sw){flex:1}
.wt-sw{position:relative;flex:none;width:36px;height:20px;border-radius:10px;background:var(--wt-green);transition:background .15s}
.wt-sw::after{content:"";position:absolute;top:2px;left:18px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .15s}
:root[data-theme="light"] .wt-sw{background:var(--line)}
:root[data-theme="light"] .wt-sw::after{left:2px}
.wt-menu .wt-out{color:var(--wt-mute)}
@media (max-width:480px){
  .wt-menu{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;max-height:85vh;overflow-y:auto;overflow-x:hidden;border-radius:16px 16px 0 0;border-width:1px 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(0,0,0,.35);z-index:100}
  .wt-menu a,.wt-menu button{min-height:46px}
}
.wt-btn{height:38px;padding:0 18px;border-radius:64px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;border:0;cursor:pointer;font-family:var(--wt-body);white-space:nowrap}
.wt-btn.dark{background:var(--wt-ink);color:var(--bg)}.wt-btn.soft{background:var(--wt-chip);color:var(--wt-ink)}
.wt-btn.go{background:var(--wt-green);color:var(--on-green)}
/* sub tab bar under the header on Genres / Ranking: UPPERCASE 16/600, 60px */
.wt-snb{border-bottom:1px solid var(--wt-line);background:var(--bg)}
.wt-snb .wt-wrap{display:flex;gap:28px;height:60px;align-items:stretch;overflow-x:auto;scrollbar-width:none}
.wt-snb .wt-wrap::-webkit-scrollbar{display:none}
.wt-snb a{flex:none;display:flex;align-items:center;height:60px;font:600 16px var(--wt-body);text-transform:uppercase;color:var(--ink);border-bottom:3px solid transparent;box-sizing:border-box;padding-top:3px;white-space:nowrap}
.wt-snb a.on{color:var(--ink);border-bottom-color:var(--ink)}
.wt-mode{display:flex;gap:20px;flex:none;padding-right:24px;margin-right:-4px;border-right:1px solid var(--wt-line);align-self:center;height:28px;align-items:center}
.wt-snb .wt-mode a{height:28px;padding:0;border:0;text-transform:none;font:700 16px var(--wt-head);color:var(--mute)}
.wt-snb .wt-mode a.on{color:var(--ink)}
.wt-sub{display:flex;gap:6px;margin-bottom:16px}
.wt-rk .wt-info{align-items:flex-start}
.wt-chg{font-size:14px;font-weight:600;color:var(--mute);margin-top:3px;white-space:nowrap}
.wt-chg.up{color:var(--green)}
.wt-note{color:var(--wt-mute);font-size:13px;margin:-6px 0 14px}
#authSlot:empty{display:none}

/* featured banner */
.wt-hero{margin:24px auto 0;position:relative;background:var(--bg2);color:#fff;border-radius:6px;padding:0;overflow:hidden;touch-action:pan-y;outline:0}
.wt-hero:focus-visible{box-shadow:0 0 0 3px var(--wt-green)}
/* carousel (Hieu 06/10): every slide sits in the same grid cell => hero height = tallest slide, fixed at build (CLS 0); JS moves them with transform */
.wt-htr{display:grid}
.wt-hsl{grid-area:1/1;display:grid;grid-template-columns:190px minmax(0,1fr);gap:32px;align-items:center;padding:24px;background:var(--bg2);background:color-mix(in srgb,var(--hc,#121212) 34%,#0b0b0b);
  transform:translateX(100%);transition:transform .6s cubic-bezier(.22,.61,.36,1);will-change:transform;-webkit-user-select:none;user-select:none;backface-visibility:hidden}
.wt-hsl.on{transform:none}
.wt-hero.drag .wt-hsl{transition:none;cursor:grabbing}
/* height:auto beats the img height="701" attribute; without it the box was 232x701 and object-fit cropped the title off the cover */
.wt-hero img{width:190px;height:auto;aspect-ratio:640/935;object-fit:cover;border-radius:4px;display:block;-webkit-user-drag:none}
.wt-hero .k{font-size:13px;color:var(--wt-green);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.wt-hero .ht{font-family:var(--wt-head);font-size:40px;font-weight:800;line-height:1.1;margin:8px 0 10px}
.wt-hero p{color:#d4d4d4;font-size:15px;line-height:1.5;max-width:560px;margin:0}
.wt-hero .row{display:flex;gap:10px;margin-top:18px;align-items:center}
.wt-harr{position:absolute;top:50%;width:40px;height:40px;margin-top:-20px;border-radius:50%;border:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s,background .2s;z-index:2}
.wt-harr.pv{left:10px}.wt-harr.nx{right:12px}
.wt-hero:hover .wt-harr,.wt-harr:focus-visible{opacity:1}
.wt-harr:hover{background:rgba(255,255,255,.26)}
.wt-harr:focus-visible,.wt-hdot:focus-visible{outline:2px solid var(--wt-green);outline-offset:2px}
.wt-hdots{position:absolute;left:246px;bottom:22px;display:flex;gap:6px;z-index:2}
.wt-hdot{width:8px;height:8px;padding:0;border:0;border-radius:4px;background:rgba(255,255,255,.32);cursor:pointer;overflow:hidden;position:relative;transition:width .3s,background .3s}
.wt-hdot::before{content:"";position:absolute;inset:-10px -4px}
.wt-hdot.on{width:28px;background:rgba(255,255,255,.28)}
.wt-hdot i{position:absolute;inset:0;border-radius:4px;background:var(--ink);transform:scaleX(0);transform-origin:left}
.wt-hdot.on i{animation:wtHp 6s linear forwards}
.wt-hero.paused .wt-hdot.on i,.wt-hero.drag .wt-hdot.on i{animation-play-state:paused}
@keyframes wtHp{to{transform:scaleX(1)}}
@media (hover:none){.wt-harr{display:none}}
@media (prefers-reduced-motion:reduce){.wt-hsl{transition:none}.wt-hdot{transition:none}.wt-hdot.on i{animation:none;transform:scaleX(1)}}
.wt-age{display:inline-block;border:1px solid var(--mute);border-radius:3px;padding:1px 6px;font-size:12px;font-weight:700}

/* blocks */
.wt-blk{margin:34px auto 0}
.wt-hd{height:68px;display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:16px}
.wt-hd h2{font-family:var(--wt-head);font-size:22px;font-weight:700;line-height:26px;margin:0}
.wt-hd a{font-size:13px;color:var(--wt-mute)}
.wt-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}.wt-tabs::-webkit-scrollbar{display:none}
/* 1 dòng như kệ Webtoon: cuộn ngang + nút mũi tên tròn 38px ở mép phải (chỉ hiện khi còn tab bị che) */
.wt-tabwrap{position:relative}
.wt-tabnx{position:absolute;right:0;top:5px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg2);color:var(--ink);font:600 22px/1 var(--wt-body);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:-14px 0 14px 4px var(--bg);z-index:2}
.wt-tabnx[hidden]{display:none}
@media (max-width:600px){.wt-tabnx{display:none!important}}
.wt-tab{flex:none;height:48px;padding:0 20px;border-radius:70px;background:var(--card);font:600 14px var(--wt-body);display:inline-flex;align-items:center;border:0;cursor:pointer;color:var(--ink);white-space:nowrap}
.wt-tab.on{background:var(--ink);color:var(--bg)}
.wt-soon{text-align:center;font-weight:600}
.wt-grid{display:grid;gap:var(--wt-gap)}
.wt-g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.wt-g6{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:22px}
.wt-empty{color:var(--wt-mute);font-size:14px;padding:30px 0}

/* card: cover, then text under it. Play label = top-right corner of the cover, never over the title text.
   Rank number sits OUTSIDE the cover, left of the title. */
.wt-card{display:block;min-width:0}
.wt-cv{position:relative;overflow:hidden;aspect-ratio:640/935;background:var(--wt-chip);border-radius:4px}
.wt-cv img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s cubic-bezier(.15,0,.2,1)}
.wt-card:hover .wt-cv img{transform:scale(1.04)}
.wt-play{position:absolute;right:6px;top:6px;background:var(--wt-green);color:var(--on-green);font-size:11px;font-weight:800;padding:4px 8px;border-radius:64px;line-height:1}
.wt-badge{position:absolute;left:0;top:0;background:var(--bg);color:var(--wt-green-t);font-size:10px;font-weight:800;padding:3px 6px;text-transform:uppercase}
.wt-info{display:flex;gap:10px;align-items:flex-start;margin-top:8px;min-width:0}
.wt-info .tx{min-width:0;flex:1}
.wt-rank{flex:none;font-family:var(--wt-head);font-weight:800;font-size:40px;line-height:1;color:var(--wt-ink);min-width:24px}
.wt-card .g{font-size:13px;color:var(--wt-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt-card span.g{display:block}.wt-card .g[data-g]{cursor:pointer}.wt-card .g[data-g]:hover{text-decoration:underline}
.wt-card .t{font-size:15px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt-card .m{font-size:13px;font-weight:700;color:var(--wt-green-t);margin-top:3px}
.wt-big .t{font-size:15px}

/* footer */
.wt-foot{margin-top:48px;background:var(--wt-foot);padding:36px 0 28px}
.wt-foot .wt-wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.wt-foot .links{display:flex;gap:18px;font-size:14px;color:var(--ink)}
.wt-foot small{color:var(--wt-mute);font-size:12px}
.wt-foot .wt-logo img{width:40px;height:40px;border-radius:10px}

@media (max-width:1240px){.wt-wrap{padding:0 20px}.wt-hero.wt-wrap{padding:0}}
@media (max-width:1000px){.wt-search input{width:110px}.wt-nav a{padding:0 10px}.wt-header .wt-wrap{gap:16px}.wt-create span{display:none}.wt-create{padding:0 11px}}
/* phones + small tablets (tab bar shows <=760): 56px = logo | search + Mana pill + Log in. Menu and Create live in the tab bar. */
@media (max-width:760px){
  .wt-header{height:56px}
  .wt-header .wt-wrap{gap:8px}
  .wt-logo img{width:30px;height:30px;border-radius:8px}.wt-logo b{font-size:19px}
  .wt-nav,.wt-create{display:none}
  .wt-right .wt-login{height:34px;padding:0 12px;font-size:12px} /* 15/10: Log in stays in the phone header */
  .wt-right{gap:4px}
  .wt-sbtn{width:40px;height:40px}
  .wt-search.open{position:absolute;left:16px;right:16px;top:62px;z-index:5;height:40px;box-shadow:0 6px 20px rgba(0,0,0,.08)}
  .wt-search input{width:100%}
}
/* 390: 3 columns, gap 6, side margin 16 */
@media (max-width:600px){
  :root{--wt-gap:6px}
  .wt-wrap{padding:0 16px}
  .wt-snb .wt-wrap{gap:22px}
  .wt-hero,.wt-hero.wt-wrap{padding:0;margin:16px 16px 0;width:auto}
  /* phone = small 120px cover beside the text (hero 05/10 16:24, 1c212ea; Hieu 06/10: "anh web can be lai, giong may ban dau"). */
  .wt-hsl{grid-template-columns:120px minmax(0,1fr);padding:16px 16px 32px;gap:14px}
  .wt-hero img{width:120px}
  .wt-hdots{left:0;right:0;bottom:12px;justify-content:center}
  .wt-hero .ht{font-size:19px;margin:6px 0 8px}.wt-hero p{font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wt-hero .row{flex-wrap:wrap;gap:8px;margin-top:12px}
  .wt-hero .row .wt-btn.go{flex:1;justify-content:center;height:44px;border-radius:4px;font-size:14px}
  .wt-blk{margin-top:22px}
  .wt-hd{height:auto;padding:0 0 12px}.wt-hd h2{font-size:18px}
  #cats.wt-tabs{margin:0 -16px 16px;padding:0 16px}
  .wt-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.wt-tabs::-webkit-scrollbar{display:none}
  .wt-tab{height:34px;padding:0 14px;border-radius:17px;font-size:13px;font-weight:500}
  .wt-g5,.wt-g6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wt-g6{row-gap:16px}
  .wt-g5 .wt-card:nth-child(n+4){display:none}
  .wt-card .g{font-size:11px}.wt-card .t,.wt-big .t{font-size:13px;line-height:16px}.wt-card .m{font-size:11px}
  .wt-info{gap:5px;margin-top:6px}
  .wt-rank{font-size:26px;min-width:14px}
  .wt-play{font-size:10px;padding:3px 6px;right:4px;top:4px}
  .wt-foot .links{flex-wrap:wrap;font-size:12px;text-transform:uppercase;color:var(--mute)}
}

/* Cover fallback: colored block + title behind every cover; shown alone if the image fails */
.wt-cv[data-t]::before,.wt-cvh[data-t]::before{content:attr(data-t);position:absolute;left:0;right:0;bottom:0;padding:10px;color:#fff;font-family:var(--wt-head);font-weight:800;font-size:15px;line-height:1.15;text-transform:uppercase;word-break:break-word}
.wt-cv img{position:relative;z-index:1}
.wt-cvh{position:relative;display:block;border-radius:4px;overflow:hidden;background:var(--card)}
.wt-cvh img{position:relative;z-index:1}
.wt-cvh.cv-err{width:190px;aspect-ratio:640/935}
@media (max-width:600px){.wt-cvh.cv-err{width:120px}}
.wt-cv.cv-err img,.wt-cvh.cv-err img{display:none}

/* Get the app (index.html#tai). Store badges are "Coming soon" until app-links.js has real URLs. */
.tai{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;background:var(--wt-chip);border-radius:16px;padding:40px 48px;overflow:hidden;scroll-margin-top:16px}
.tai-tx{padding-bottom:0}
.tai-k{color:var(--wt-green-t);font:800 13px var(--wt-head);text-transform:uppercase;letter-spacing:.06em}
.tai h2{font:800 34px/1.15 var(--wt-head);letter-spacing:-.02em;margin:8px 0 12px}
.tai p{margin:0 0 22px;font-size:16px;line-height:1.55;color:var(--mute);max-width:480px}
.tai-badges{display:flex;gap:12px;flex-wrap:wrap}
.tai-b{display:inline-flex;flex-direction:column;justify-content:center;min-width:160px;height:56px;padding:0 20px;border-radius:12px;background:var(--wt-ink);color:var(--bg);font-family:var(--wt-head)}
.tai-b .tai-bk{font-weight:800;font-size:17px;line-height:1.1}
.tai-b .tai-bs{font-size:12px;font-weight:600;opacity:.8}
.tai-b.soon{background:var(--bg2);color:var(--wt-ink);border:1.5px solid var(--wt-line);cursor:default}
.tai-b.soon .tai-bs{color:var(--wt-green-t);opacity:1}
/* Right column = one App Store QR (Hieu 09/10): static SVG, no phone mockup, no ryuga.io QR */
.tai-qr{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.tai-qr img{width:200px;height:200px;background:#fff;padding:12px;border-radius:16px;border:2px solid var(--wt-green);display:block;box-sizing:content-box}
.tai-qr small{display:inline-flex;align-items:center;gap:6px;font:700 14px/1.3 var(--wt-head);color:var(--wt-ink)}
.tai-apple{flex:none;display:block}
@media (max-width:600px){
  .tai{grid-template-columns:1fr;gap:20px;padding:24px 16px;border-radius:0;text-align:center}
  .tai-tx{padding-bottom:0}
  .tai h2{font-size:24px}
  .tai p{font-size:14px;margin:0 auto 16px}
  .tai-badges{justify-content:center;gap:8px}
  .tai-b{min-width:0;flex:1;height:50px;padding:0 12px}
  .tai-b .tai-bk{font-size:15px}
  .tai-qr{justify-self:center}
  .tai-qr img{width:160px;height:160px}
}
@media (min-width:601px) and (max-width:900px){.tai{grid-template-columns:minmax(0,1fr) auto;padding:32px 28px}.tai-qr img{width:150px;height:150px}}
/* QR shown on phones too (Hieu 16/10): white background kept so it scans */

/* Series page (story.html) — BOC.md muc 5: grey page, white 1200px block, episode rows left + side column right; 390 stacks like m.webtoons */
body.sr-page{background:var(--bg)}
.sr-page .wt-header,.sr-page .wt-foot{background:var(--bg)}
.sr-main{padding:24px 0 8px}
.sr-box{background:var(--bg2)}
.sr-top{display:grid;grid-template-columns:300px minmax(0,1fr);gap:40px;padding:32px;border-bottom:1px solid var(--wt-line)}
.sr-cv{width:300px;aspect-ratio:640/935;background:var(--card);overflow:hidden}
.sr-cv img{width:100%;height:100%;object-fit:cover;display:block}
.sr-tx{min-width:0;display:flex;flex-direction:column;justify-content:center}
.sr-g{display:block;text-decoration:none;font-size:20px;color:var(--wt-green-t);font-weight:600}
.sr-tx h1{font-family:var(--wt-head);font-size:42px;font-weight:800;line-height:1.1;margin:8px 0 14px;overflow-wrap:anywhere}
.sr-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.sr-tags span{font-size:12px;background:var(--wt-chip);border-radius:3px;padding:4px 8px;color:var(--ink)}
.sr-desc{font-size:15px;line-height:1.6;color:var(--ink);max-width:620px;margin:0}
.sr-acts{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.sr-cta{height:46px;padding:0 28px;font-size:15px;border-radius:26px}
.sr-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;padding:8px 32px 32px}
.sr-h{font-family:var(--wt-head);font-size:18px;font-weight:700;padding:20px 0 12px}
.sr-h small{color:var(--wt-mute);font-size:14px;font-weight:500;margin-left:4px}
.sr-list ol,.sr-side ul{list-style:none;margin:0;padding:0}
.sr-ep{display:flex;align-items:center;gap:16px;height:73px;border-bottom:1px solid var(--line)}
.sr-ep:hover{background:var(--bg2)}
.sr-th{width:77px;height:73px;flex:none;overflow:hidden;background:var(--wt-chip)}
.sr-th img{width:100%;height:100%;object-fit:cover;display:block}
.sr-et{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sr-et b{font-size:17px;font-weight:400;color:var(--ink)}
.sr-et span{font-size:14px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-no{font-size:14px;color:var(--wt-mute);padding-right:8px}
.sr-side li a{display:flex;gap:12px;align-items:center;padding:8px 0}
.sr-side .wt-cv{width:72px;flex:none;display:block}
.sr-mt{min-width:0;display:flex;flex-direction:column;gap:3px}
.sr-mt small{font-size:13px;color:var(--wt-mute)}
.sr-mt b{font-size:15px;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:900px){.sr-top{grid-template-columns:220px minmax(0,1fr);gap:24px}.sr-cv{width:220px}.sr-body{grid-template-columns:1fr;gap:0}}
@media (max-width:600px){
  .sr-main{padding:0}
  .sr-box.wt-wrap{padding:0}
  .sr-top{grid-template-columns:1fr;gap:16px;padding:0 0 20px}
  .sr-cv{width:min(260px,70vw);aspect-ratio:640/935;margin:16px auto 0}
  .sr-tx{padding:0 16px}
  .sr-g{font-size:14px}
  .sr-tx h1{font-size:22px;font-weight:700;margin:4px 0 10px}
  .sr-desc{font-size:14px}
  .sr-acts{flex-direction:column}
  .sr-cta{width:100%;height:44px;justify-content:center;border-radius:4px;font-size:14px}
  .sr-body{padding:0 16px 20px}
  .sr-ep{height:62px;gap:12px}
  .sr-th{width:62px;height:56px}
  .sr-et b{font-size:14px;font-weight:500;color:var(--ink)}
  .sr-et span{font-size:12px;color:var(--wt-mute)}
}

/* shared footer (header.js, webtoons.com layout, Ryuga light) */
.wt-foot.wf{padding:0;background:var(--wt-foot);text-align:center}
.wt-foot.wf .wt-wrap{display:block}
.wf-main{padding:40px 0 32px}
.wf-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 0;font-size:16px}
.wf-links a{color:var(--ink);padding:0 16px;border-left:1px solid var(--wt-line)}.wf-links a:first-child{border-left:0}
.wf-links a:hover{color:var(--wt-green-t)}
.wf-brand{display:inline-flex;align-items:center;gap:8px;margin:32px auto 8px}
.wf-brand img{width:36px;height:36px;border-radius:9px}.wf-brand b{font:800 22px var(--wt-head)}.wf-brand b i{font-style:normal;color:var(--wt-green)}
.wf-copy{display:block;color:var(--wt-mute);font-size:13px}
.wf-rv{position:fixed;right:0;top:45%;z-index:40;display:flex;align-items:flex-start}
.wf-rv-tab i{font-style:normal;writing-mode:horizontal-tb}
.wf-rv.open .wf-rv-tab i{transform:rotate(180deg)}
.wf-rv-list{list-style:none;margin:0;padding:0}
.wf-rv-tab{order:2;writing-mode:vertical-rl;background:var(--bg2);border:1px solid var(--wt-line);border-right:0;border-radius:10px 0 0 10px;padding:16px 10px;font:600 13px/1 var(--wt-body);letter-spacing:.01em;color:var(--wt-ink);cursor:pointer;display:flex;align-items:center;gap:10px;box-shadow:-2px 2px 8px rgba(0,0,0,.06)}
/* Recently viewed panel (Hieu 07/10): padding 20 every side, rows = grid [cover 56 | title | Continue], button never touches an edge */
.wf-rv-panel{order:1;box-sizing:border-box;width:360px;max-width:calc(100vw - 52px);max-height:60vh;overflow:auto;background:var(--bg2);border:1px solid var(--wt-line);border-radius:16px 0 0 16px;box-shadow:-4px 4px 16px rgba(0,0,0,.08);padding:20px}
.wf-rv-h{font:800 18px/1.2 var(--wt-head);letter-spacing:-.01em;margin:0 0 14px;color:var(--wt-ink)}
.wf-rv-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:56px}
.wf-rv-list li+li{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.wf-rv-it{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:14px;min-width:0;color:var(--wt-ink)}
.wf-rv-it img,.wf-rv-it .ph{display:block;width:56px;height:56px;border-radius:12px;object-fit:cover;background:var(--wt-chip)}
.wf-rv-tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.wf-rv-tx b{font:700 15px/1.3 var(--wt-body);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.wf-rv-tx small{font:500 12px/1.3 var(--wt-body);color:var(--wt-mute)}
.wf-rv-it:hover b{color:var(--wt-green-t)}
.wf-rv-go{flex-shrink:0;white-space:nowrap;box-sizing:border-box;height:36px;padding:0 16px;display:inline-flex;align-items:center;gap:7px;font:700 14px/1 var(--wt-body);color:var(--bg)!important;background:var(--ink);border-radius:18px;transition:background .15s}
.wf-rv-go svg{width:10px;height:10px;fill:currentColor;flex:none}
.wf-rv-go:hover{background:var(--wt-green-t);color:var(--on-green)!important}
.wf-rv-empty{color:var(--wt-mute);font-size:13px}
@media (max-width:600px){.wf-links a{padding:0 10px;font-size:14px}.wf-rv{top:auto;bottom:80px}}
/* M2 16/10 (test MG-01 L4): on the play page at phone width the vertical 'Recently viewed' tab covered the story text: keep only a small arrow tab */
@media (max-width:600px){.op-page .wf-rv:not(.open) .wf-rv-tab{padding:10px 4px;gap:0}.op-page .wf-rv:not(.open) .wf-rv-tab span{display:none}}
/* Footer C (05/10): notice strip, dimmed badges, link row + language, Recently viewed Continue */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wf-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px}
.wf-lang select{height:44px;min-width:170px;padding:0 14px;border:1px solid var(--wt-line);border-radius:4px;background:var(--bg2);font:400 15px var(--wt-body);color:var(--wt-ink)}
/* Info pages (about/help/terms/privacy/contact) */
.wt-doc{max-width:760px;margin:0 auto;padding:40px 20px 8px;line-height:1.65;color:var(--ink)}
.wt-doc h1{font:800 30px var(--wt-head);margin:0 0 16px}.wt-doc h2{font:700 19px var(--wt-head);margin:28px 0 8px}
.wt-doc a{color:var(--wt-green-t);text-decoration:underline}
.wt-doc form{display:grid;gap:12px;max-width:520px}.wt-doc input,.wt-doc textarea,.wt-doc select{font:400 15px var(--wt-body);padding:10px 12px;border:1px solid var(--wt-line);border-radius:6px}
.wt-doc button{justify-self:start;background:var(--wt-ink);color:var(--bg);border:0;border-radius:20px;padding:10px 22px;font:600 15px var(--wt-body);cursor:pointer}

/* ===== Footer theo design/BRAND.md (Hiếu 05/10): token brand.css, Sora tiêu đề + Manrope chữ, một nhấn xanh,
   bo góc nút 14 / khối 16, badge store mực đậm ghi rõ "Coming soon" (không làm mờ), focus xanh thay viền xanh dương mặc định. */
.wt-foot.wf{background:var(--bg2);color:var(--ink);border-top:1px solid var(--line)}
.wf-main{padding:36px 0 32px}
.wf-row{gap:16px 24px}
.wf-links{font:600 15px var(--body)}
.wf-links a{color:var(--mute);border-left-color:var(--line)}
.wf-links a:hover{color:var(--ink)}
.wf-lang select{height:44px;min-width:170px;padding:0 40px 0 16px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--bg2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235f6368' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;-webkit-appearance:none;appearance:none;font:600 15px var(--body);color:var(--ink);cursor:pointer}
.wf-lang select:focus{outline:none}
.wf-lang select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.wf-brand{gap:10px;margin:28px auto 6px;text-decoration:none;color:var(--ink)}
.wf-brand img{width:32px;height:32px;border-radius:8px}
.wf-brand b{font:800 22px var(--head);letter-spacing:-.03em}
.wf-copy{font:500 13px var(--body);color:var(--dim)}
@media (max-width:600px){.wf-links{font-size:14px}}
@media (max-width:420px){.wf-links a{padding:0 8px;font-size:13px}}

/* Store badges with marks + language pill menu (Hiếu 05/10: badge đen giữ, dropdown nhìn chuyên nghiệp hơn). */
.wf-lang{position:relative}
.wf-lang-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg2);font:600 14px var(--body);color:var(--ink);cursor:pointer;transition:border-color .15s}
.wf-lang-btn:hover{border-color:var(--line)}
.wf-lang-btn:focus{outline:none}
.wf-lang-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.wf-lang-btn svg{width:18px;height:18px;fill:none;stroke:var(--mute);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wf-lang-btn .chev{width:10px;height:10px;stroke-width:2;transition:transform .15s}
.wf-lang-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.wf-lang-menu{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:20;min-width:200px;margin:0;padding:6px;list-style:none;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:0 12px 32px rgba(0,0,0,.12);text-align:left;max-height:min(360px,60vh);overflow-y:auto;overscroll-behavior:contain}
.wf-lang-menu[hidden]{display:none}
.wf-lang-menu li{display:flex;align-items:center;justify-content:space-between;gap:12px;height:40px;padding:0 12px;border-radius:10px;font:600 14px var(--body);color:var(--ink);cursor:pointer}
.wf-lang-menu li.on{background:var(--card)}
.wf-lang-menu li:focus{outline:none}.wf-lang-menu li:focus-visible{outline:2px solid var(--green-d);outline-offset:-2px}
.wf-lang-menu li[aria-disabled="true"]{color:var(--dim);cursor:default}
.wf-lang-menu li svg{width:16px;height:16px;fill:none;stroke:var(--green-d);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.wf-lang-menu li em{font:700 10px var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--mute);background:var(--card);padding:3px 8px;border-radius:999px;font-style:normal}
@media (max-width:420px){.wf-links a{padding:0 7px}}

/* 06/10 one-pass page load (Hieu: no empty frame, no jump). header.js/sub tab bar fill in after the list is already drawn:
   reserve their final height while still empty so nothing below moves (CLS ~ 0). Cover title text only when the image failed;
   while loading the card shows the cover's own average colour (list-render.js cvAttr). */
#wtHeader:empty{display:block;height:64px;box-sizing:border-box;border-bottom:1px solid var(--wt-line);background:var(--bg)}
@media (max-width:760px){#wtHeader:empty{height:56px}}
.wt-snb:empty{height:61px}
#wtHeader[data-snb]:empty{height:125px;border:0}
@media (max-width:760px){#wtHeader[data-snb]:empty{height:117px}}
.wt-cv:not(.cv-err)[data-t]::before,.wt-cvh:not(.cv-err)[data-t]::before{visibility:hidden}
#sr:empty{min-height:calc(100vh - 64px)}
/* Home tab Story | Character (characters.js) */
.ch-tabbar{display:flex;gap:24px;margin-top:14px;border-bottom:1px solid var(--wt-line)}
.ch-tb{background:none;border:0;padding:10px 2px 12px;font:700 17px var(--wt-head);color:var(--wt-mute);cursor:pointer;position:relative}
.ch-tb.on{color:var(--wt-ink)}.ch-tb.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:2px;background:var(--wt-green)}
#charPane[hidden],#storyPane[hidden]{display:none}
.ch-row{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.ch-row::-webkit-scrollbar{display:none}
.ch-row .ch-card{flex:none;width:168px}
.ch-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px var(--wt-gap)}
.ch-card{display:block;min-width:0;color:inherit}
.ch-av{position:relative;overflow:hidden;aspect-ratio:4/5;border-radius:8px;background:var(--wt-chip)}
.ch-av img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s cubic-bezier(.15,0,.2,1)}
.ch-card:hover .ch-av img{transform:scale(1.04)}
.ch-av-tx{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:12px;background:linear-gradient(160deg,#2a1f3d 0%,#14121c 70%);color:#fff}
.ch-av-nm{font-weight:800;font-size:17px;line-height:1.15;letter-spacing:-.01em}.ch-av-sr{font-size:12px;opacity:.7}
.ch-rank{position:absolute;left:6px;bottom:4px;font:800 34px/1 var(--wt-head);color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.ch-tx{margin-top:7px;min-width:0}
.ch-nm{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-tl{font-size:13px;color:var(--wt-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.ch-tag{display:inline-block;margin-top:5px;font-size:11px;font-weight:700;color:var(--wt-green-t);background:color-mix(in srgb,var(--green) 16%,transparent);border-radius:64px;padding:3px 8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-msg{color:var(--wt-mute);padding:40px 0;text-align:center}
@media (max-width:1024px){.ch-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.ch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-row .ch-card{width:128px}.ch-tabbar{margin-top:6px}}
/* character.html (character.js) */
.cp{padding-top:18px;padding-bottom:48px;min-height:60vh}
.cp-bc{font-size:14px;margin-bottom:14px}.cp-bc a{color:var(--wt-mute)}.cp-bc a:hover{color:var(--wt-ink)}
.cp-card{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:40px;align-items:start}
.cp-por{overflow:hidden;aspect-ratio:4/5;border-radius:14px;background:var(--wt-chip)}
.cp-por img{width:100%;height:100%;object-fit:cover;display:block}
.cp-rank{display:inline-block;font-size:12px;font-weight:800;color:var(--wt-green-t);background:color-mix(in srgb,var(--green) 16%,transparent);border-radius:64px;padding:4px 10px;margin-bottom:10px}
.cp-nm{font:800 36px/1.15 var(--wt-head);margin:0}
.cp-meta{color:var(--wt-mute);font-size:14px;margin-top:6px}
.cp-tl{font-size:17px;font-weight:600;margin:16px 0 0;line-height:1.45}
.cp-bio{font-size:15px;line-height:1.65;color:var(--ink);margin:12px 0 0;max-width:640px}
.cp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cp-tag{font-size:12px;font-weight:700;color:var(--wt-green-t);background:color-mix(in srgb,var(--green) 16%,transparent);border-radius:64px;padding:5px 11px}
.cp-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.cp-act .wt-btn{height:48px;padding:0 24px;font-size:15px}
.cp-note{color:var(--wt-mute);font-size:13px;margin-top:10px}
/* character.html mobile (09/10): the fixed "Recently viewed" tab (34px, right edge) covered the tagline -> keep text clear of it. Only .cp (this page). */
@media (max-width:600px){.cp .cp-tx{padding-right:26px}}
@media (max-width:760px){.cp-card{grid-template-columns:1fr;gap:18px}.cp-por{max-width:420px;width:100%;margin:0 auto}.cp-nm{font-size:28px}.cp-act .wt-btn{flex:1;justify-content:center}}
.ch-soon{cursor:default}.ch-soon .ch-tag{opacity:.75}

/* 15/10 ban-chot: horizontal top header of 37116443 (2b) is back; the 12/10 left rail is gone. Play column stays 720px on desktop. */
@media (min-width:1200px){.op-page .op-main{grid-template-columns:minmax(0,720px) 300px}}
/* Light/Dark toggle (Hieu 16/10): round icon button next to the Mana pill on desktop; phones use the account menu / Profile */
.wt-theme{width:36px;height:36px;border-radius:50%;border:0;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex:none}
.wt-theme:hover{background:var(--card)}
.wt-theme .i-moon,.wt-theme-mi .i-moon{display:none}:root[data-theme="light"] .wt-theme .i-moon,:root[data-theme="light"] .wt-theme-mi .i-moon{display:block}:root[data-theme="light"] .wt-theme .i-sun,:root[data-theme="light"] .wt-theme-mi .i-sun{display:none}
.wt-theme-row{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:760px;margin:16px auto 0;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg2);color:var(--ink);font:600 14px var(--wt-body);box-sizing:border-box}
.wt-menu .wt-theme-mi{justify-content:space-between}
@media (max-width:760px){.wt-right>.wt-theme{display:none}}

/* Coming soon row (16/10): horizontal scroll of not-yet-released stories, release date under the title. */
.wt-soon-sub{font-size:13px;color:var(--wt-mute)}
.wt-soon-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(140px,170px);gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}
.wt-soon-card{scroll-snap-align:start}
.wt-soon-tag{position:absolute;z-index:2;left:6px;top:6px;background:var(--wt-ink);color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;padding:4px 7px;border-radius:3px}
.wt-soon-ph{width:100%;height:100%;display:flex;align-items:flex-end;padding:12px;color:#fff;font-weight:700;font-size:14px;line-height:1.25}
.wt-soon-d{color:var(--wt-mute)}
.ooc-soon-page{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:28px;align-items:start;margin:24px 0}
.ooc-soon-page .wt-cv{border-radius:8px}
.ooc-soon-page h1{margin:6px 0 10px}
.ooc-soon-date{font-weight:800;font-size:16px;margin:8px 0 14px}
.ooc-soon-hook{line-height:1.55;margin:0 0 16px}
.ooc-soon-ch{list-style:none;padding:0;margin:0 0 18px}
.ooc-soon-ch li{margin:4px 0}
@media (max-width:640px){.ooc-soon-page{grid-template-columns:1fr}.ooc-soon-page .wt-cv{max-width:260px}}

/* M4 01/11 Premium badge (02/11 single plan): brand green pill next to a name (menu, profile, comments). Highlighted comment = soft green card. */
.ry-plus{display:inline-flex;align-items:center;flex:none;vertical-align:middle;margin-left:6px;padding:1px 8px;border-radius:64px;font:800 11px/1.5 var(--wt-body,inherit);letter-spacing:.02em;white-space:nowrap;color:var(--on-green,#121212);background:var(--wt-green,#00DC64)}
.wt-menu-id .wt-menu-nm{display:flex;align-items:center;min-width:0}
.wt-menu-id .wt-menu-nm b{min-width:0}
.ooc-c.ooc-c-plus{padding:12px;margin:8px 0;border:1px solid color-mix(in srgb,var(--wt-green,#00DC64) 45%,transparent);border-radius:12px;background:color-mix(in srgb,var(--wt-green,#00DC64) 7%,transparent)}
/* 07/11 M1: WEBTOON-style top bar (Genres · Popular · Canvas · Publish), 3-column footer, Recently viewed tab rules */
.wt-nav a.wt-nav-pub{margin-left:6px;color:var(--on-green,#06140b);background:var(--wt-green);font-weight:700}
.wt-nav a.wt-nav-pub:hover,.wt-nav a.wt-nav-pub.on{color:var(--on-green,#06140b);background:var(--wt-green);filter:brightness(1.08)}
#homeTabs{display:none} /* lone 'Story' tab (Character tab is hidden) - nothing to switch, so no tab bar */
.wf-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:720px;margin:0 auto 28px;text-align:left}
.wf-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.wf-col h3{margin:0 0 4px;font:800 13px/1.2 var(--wt-head);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.wf-col a{color:var(--mute);font:500 15px/1.35 var(--wt-body);text-decoration:none}
.wf-col a:hover{color:var(--ink)}
.wf-contact{margin:0;color:var(--mute);font:500 15px var(--wt-body)}
.wf-contact a{color:var(--ink);font-weight:700}
.wf-rv.wf-rv-none{display:none}
@media (max-width:767px){.wf-rv:not(.open){display:none}}
@media (max-width:600px){.wf-cols{gap:16px;margin-bottom:22px}.wf-col a{font-size:14px}.wf-col h3{font-size:12px}}
