/* ============================================================
   ClearRiver — TECHNO EDITORIAL reskin
   Foundation: tokens, reset, type, FX devices, chrome
   ============================================================ */

/* ---- Tokens ---- */
:root{
  --bg:        #07090f;
  --bg-2:      #0c0f18;
  --bg-3:      #11151f;
  --ink:       #f3f5fb;
  --ink-mute:  #98a1b4;
  --ink-faint: rgba(243,245,251,.46);
  --line:      rgba(255,255,255,.12);
  --line-faint:rgba(255,255,255,.06);
  --line-strong:rgba(255,255,255,.22);

  --blue:   #1a6bff;
  --blue-br:#3b8fff;
  --teal:   #00c6ae;
  --magenta:#ff2d6f;
  --violet: #6c4dff;

  /* accent is tweakable */
  --accent: var(--blue);
  --accent-br: var(--blue-br);
  --accent-ink: #ffffff;
  --accent-rgb: 26,107,255;

  --glow-strength: 0.55;
  --grain-opacity: 0.06;

  --font-display:'Archivo', 'Noto Sans JP', sans-serif;
  --font-jp:'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-body:'Inter', 'Noto Sans JP', sans-serif;
  --font-mono:'Space Mono', ui-monospace, monospace;

  --display-wdth: 118;
  --display-wght: 880;

  --maxw: 1400px;
  --pad: clamp(20px, 5vw, 56px);
  --sec-y: clamp(80px, 11vw, 150px);

  --ease: cubic-bezier(.16,1,.3,1);
  --ease-io: cubic-bezier(.76,0,.24,1);
}

/* typemode: editorial swaps display to a serif-ish narrow grotesk look via wght/wdth + tracking */
body[data-typemode="editorial"]{
  --display-wdth: 78;
  --display-wght: 760;
}

/* accent variants */
body[data-accent="blue"]   { --accent:#1a6bff; --accent-br:#3b8fff; --accent-rgb:26,107,255; }
body[data-accent="teal"]   { --accent:#00c6ae; --accent-br:#2ee6cd; --accent-rgb:0,198,174; --accent-ink:#04130f; }
body[data-accent="orange"] { --accent:#ff6a1a; --accent-br:#ff8a44; --accent-rgb:255,106,26; --accent-ink:#160a02; }
body[data-accent="violet"] { --accent:#6c4dff; --accent-br:#9078ff; --accent-rgb:108,77,255; }
body[data-accent="magenta"]{ --accent:#ff2d6f; --accent-br:#ff5c8e; --accent-rgb:255,45,111; }

body[data-glow="off"] { --glow-strength: 0; }
body[data-glow="low"] { --glow-strength: 0.32; }
body[data-glow="med"] { --glow-strength: 0.55; }
body[data-glow="high"]{ --glow-strength: 0.9; }

body[data-grain="off"]{ --grain-opacity: 0; }

/* ---- Light theme ---- */
body[data-theme="light"]{
  --bg:#f5f6fa;
  --bg-2:#eceff5;
  --bg-3:#e2e7f0;
  --ink:#0c0f17;
  --ink-mute:#586074;
  --ink-faint:rgba(12,15,23,.5);
  --line:rgba(10,15,30,.14);
  --line-faint:rgba(10,15,30,.075);
  --line-strong:rgba(10,15,30,.24);
}
body[data-theme="light"] .l-header.is-scrolled{ background:rgba(245,246,250,.82); border-bottom-color:var(--line); }
body[data-theme="light"] .fx-grain{ mix-blend-mode:multiply; }
body[data-theme="light"] .fx-glow{ opacity:calc(var(--glow-strength) * .45); }
body[data-theme="light"] .c-sphere::after{ opacity:calc(var(--glow-strength) * .55); }
body[data-theme="light"] .p-fv__watermark,
body[data-theme="light"] .p-pain__watermark{ -webkit-text-stroke-color:rgba(10,15,30,.07); }
body[data-theme="light"] .c-works-card__thumb,
body[data-theme="light"] .c-blog-card__thumb,
body[data-theme="light"] .p-about__photo{ background:linear-gradient(150deg,#e7ebf3,#f4f6fb); }
body[data-theme="light"] .p-price__price-panel{ background:linear-gradient(160deg,#edf0f6,#f8f9fc); }
body[data-theme="light"] .c-button--white{ background:#0c0f17; color:#fff; }
body[data-theme="light"] .c-button--white:hover{ box-shadow:0 10px 34px rgba(12,15,23,.26); }
body[data-theme="light"] .l-sp-nav{ background:rgba(18,22,32,.4); }
body[data-theme="light"] .p-voice .swiper-button-prev,
body[data-theme="light"] .p-voice .swiper-button-next{ background:rgba(255,255,255,.74); }
body[data-theme="light"] .p-fv__badge{ background:rgba(255,255,255,.92); border-color:var(--line); box-shadow:0 24px 60px rgba(14,22,48,.16); backdrop-filter:blur(8px); }

/* ---- Reset ---- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.85;
  font-feature-settings:"palt"; letter-spacing:.01em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,p{ margin:0; }
button{ font:inherit; }
::selection{ background:var(--accent); color:var(--accent-ink); }

.skip-link{
  position:fixed; top:-60px; left:12px; z-index:1000; background:var(--accent);
  color:var(--accent-ink); padding:10px 16px; border-radius:2px; font-weight:700;
  transition:top .2s;
}
.skip-link:focus{ top:12px; }

.u-pc-only{ display:inline; }
@media (max-width:768px){ .u-pc-only{ display:none; } }

/* ============================================================
   FX layers
   ============================================================ */
.fx-grain{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:var(--grain-opacity);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.fx-cursor-glow{
  position:fixed; top:0; left:0; width:520px; height:520px; z-index:0;
  margin:-260px 0 0 -260px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--accent-rgb),.16), transparent 62%);
  opacity:0; transition:opacity .5s; will-change:transform;
}
body.has-cursor .fx-cursor-glow{ opacity:calc(var(--glow-strength) * .8); }

/* soft glow blobs */
.fx-glow{
  position:absolute; border-radius:50%; pointer-events:none;
  filter:blur(70px); opacity:var(--glow-strength); z-index:0;
}
.fx-glow--blue{ background:radial-gradient(circle, rgba(var(--accent-rgb),.85), transparent 65%); }
.fx-glow--teal{ background:radial-gradient(circle, rgba(0,198,174,.6), transparent 65%); }

/* page grid texture */
.fx-grid{
  position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(var(--line-faint) 1px, transparent 1px),
                   linear-gradient(90deg, var(--line-faint) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000, transparent 80%);
          mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, #000, transparent 80%);
}

/* registration corner marks */
.fx-corner{ position:absolute; width:18px; height:18px; z-index:3; pointer-events:none; opacity:.55; }
.fx-corner::before,.fx-corner::after{ content:""; position:absolute; background:var(--accent); }
.fx-corner::before{ width:100%; height:1.5px; top:0; }
.fx-corner::after{ width:1.5px; height:100%; left:0; }
.fx-corner--tl{ top:calc(var(--pad) - 4px); left:calc(var(--pad) - 4px); }
.fx-corner--tr{ top:calc(var(--pad) - 4px); right:calc(var(--pad) - 4px); transform:scaleX(-1); }

/* crosshair */
.fx-crosshair{ position:absolute; width:26px; height:26px; pointer-events:none; }
.fx-crosshair::before,.fx-crosshair::after{ content:""; position:absolute; background:var(--accent); opacity:.85; }
.fx-crosshair::before{ left:50%; top:0; width:1.5px; height:100%; transform:translateX(-50%); }
.fx-crosshair::after{ top:50%; left:0; height:1.5px; width:100%; transform:translateY(-50%); }

/* tiny tick before eyebrow */
.fx-tick{
  display:inline-block; width:22px; height:2px; background:var(--accent);
  vertical-align:middle; margin-right:10px; transform:translateY(-2px);
}

/* ============================================================
   Glossy spheres
   ============================================================ */
.c-sphere{ position:absolute; width:var(--d,300px); height:var(--d,300px); pointer-events:none; }
.c-sphere__core{
  position:absolute; inset:0; border-radius:50%;
  background:
    radial-gradient(circle at 32% 26%, #4a536b 0%, #232a3b 26%, #11141d 55%, #060810 100%);
  box-shadow: inset 0 -22px 50px rgba(0,0,0,.7),
              inset 8px 10px 26px rgba(255,255,255,.06);
}
.c-sphere__spec{
  position:absolute; left:18%; top:12%; width:42%; height:34%; border-radius:50%;
  background:radial-gradient(circle at 35% 32%, rgba(255,255,255,.95), rgba(255,255,255,.18) 38%, transparent 62%);
  filter:blur(2px); opacity:.85;
}
.c-sphere__rim{
  position:absolute; inset:-2px; border-radius:50%;
  box-shadow: inset 0 0 22px 2px rgba(var(--accent-rgb),.0);
  background:
    radial-gradient(120% 120% at 78% 86%, rgba(var(--accent-rgb),.55), transparent 42%),
    radial-gradient(120% 120% at 16% 88%, rgba(0,198,174,.3), transparent 40%);
  mix-blend-mode:screen; opacity:calc(.5 + var(--glow-strength)*.6);
}
.c-sphere::after{ /* drop glow */
  content:""; position:absolute; inset:-14%; border-radius:50%; z-index:-1;
  background:radial-gradient(circle, rgba(var(--accent-rgb),.4), transparent 60%);
  filter:blur(34px); opacity:var(--glow-strength);
}
body[data-spheres="off"] .c-sphere{ display:none; }

.js-float{ animation:floaty 9s var(--ease) infinite; animation-delay:var(--float-delay,0s); }
@keyframes floaty{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-26px) } }
@media (prefers-reduced-motion:reduce){ .js-float{ animation:none; } }

/* ============================================================
   Marquee
   ============================================================ */
.c-marquee{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--bg-2); overflow:hidden; padding:18px 0;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.c-marquee__track{
  display:flex; align-items:center; gap:34px; width:max-content;
  animation:marq 28s linear infinite;
  font-family:var(--font-display); font-weight:800;
  font-variation-settings:"wght" 800,"wdth" 110;
  text-transform:uppercase; letter-spacing:.04em;
  font-size:clamp(20px, 3vw, 34px); color:var(--ink);
}
.c-marquee__track span:not(.c-marquee__dot){ white-space:nowrap; }
.c-marquee__dot{ color:var(--accent); font-size:.6em; }
@keyframes marq{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .c-marquee__track{ animation:none; } }

/* ============================================================
   Buttons
   ============================================================ */
.c-button{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:15px 26px; border-radius:2px; font-weight:700; letter-spacing:.02em;
  font-family:var(--font-body); cursor:pointer; border:1px solid transparent;
  transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .25s;
  line-height:1.3; text-align:center;
}
.c-button__arrow{ display:inline-flex; transition:transform .3s var(--ease); }
.c-button:hover .c-button__arrow{ transform:translateX(4px); }
.c-button:active{ transform:scale(.98); }

.c-button--primary{
  background:var(--accent); color:var(--accent-ink);
  box-shadow:0 0 0 rgba(var(--accent-rgb),0);
}
.c-button--primary:hover{ box-shadow:0 10px 34px rgba(var(--accent-rgb),.45); }
.c-button--secondary{
  background:transparent; color:var(--ink); border-color:var(--line-strong);
}
.c-button--secondary:hover{ border-color:var(--accent); color:var(--accent-br); }
.c-button--white{ background:var(--ink); color:#0a0d14; }
.c-button--white:hover{ box-shadow:0 10px 34px rgba(255,255,255,.2); }
.c-button--line{ background:#06c755; color:#fff; }
.c-button--line svg{ width:20px; height:20px; }
.c-button--line:hover{ box-shadow:0 10px 34px rgba(6,199,85,.35); }
.c-button--sm{ padding:10px 18px; font-size:14px; }
.c-button--lg{ padding:19px 34px; font-size:17px; }
.c-button--full{ width:100%; justify-content:center; }

/* ============================================================
   Heading component
   ============================================================ */
.c-heading__eyebrow{
  font-family:var(--font-mono); font-size:13px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent-br);
  display:flex; align-items:center; margin-bottom:22px;
}
.c-heading--center .c-heading__eyebrow{ justify-content:center; }
.c-heading__title{
  font-family:var(--font-jp); font-weight:900; color:var(--ink);
  font-size:clamp(28px, 4.2vw, 52px); line-height:1.28; letter-spacing:.01em;
  text-wrap:balance;
}
.c-heading__lead{
  margin-top:24px; color:var(--ink-mute); font-size:16px; line-height:2;
  max-width:46ch;
}
.c-heading--center{ text-align:center; }
.c-heading--center .c-heading__lead{ margin-left:auto; margin-right:auto; }
.c-heading--mb-lg{ margin-bottom:clamp(48px,6vw,80px); }
.c-heading--mb-sm{ margin-bottom:0; }

/* ============================================================
   Header
   ============================================================ */
.l-header{
  position:fixed; top:0; left:0; width:100%; z-index:100;
  transition:background .3s, border-color .3s, backdrop-filter .3s;
  border-bottom:1px solid transparent;
}
.l-header.is-scrolled{
  background:rgba(7,9,15,.72); backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--line);
}
.l-header__inner{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); height:74px;
  display:flex; align-items:center; gap:28px;
}
.l-header__logo{ display:flex; align-items:center; gap:12px; }
.l-header__logo-mark{ width:38px; height:38px; }
.l-header__logo-en{
  font-family:var(--font-display); font-weight:800; font-size:21px; line-height:1;
  font-variation-settings:"wght" 800,"wdth" 110; letter-spacing:-.01em;
}
.l-header__logo-en span{ color:var(--accent-br); }
.l-header__logo-jp{ font-size:10px; color:var(--ink-mute); letter-spacing:.14em; margin-top:4px; }
.l-header__nav{ margin-left:auto; }
.l-header__nav-list{ display:flex; gap:24px; }
.l-header__nav-item a{
  position:relative; font-size:13.5px; font-weight:600; color:var(--ink-mute);
  transition:color .25s; padding:4px 0;
}
.l-header__nav-item a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--accent); transition:width .3s var(--ease);
}
.l-header__nav-item a:hover{ color:var(--ink); }
.l-header__nav-item a:hover::after{ width:100%; }
.l-header__hamburger{ display:none; }

@media (max-width:1080px){
  .l-header__nav{ display:none; }
  .l-header__cta{ display:none; }
  .l-header__hamburger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    margin-left:auto; width:44px; height:44px; background:none; border:1px solid var(--line);
    border-radius:2px; cursor:pointer; padding:0 11px;
  }
  .l-header__hamburger span{ height:2px; background:var(--ink); transition:.3s var(--ease); }
  body.is-nav-open .l-header__hamburger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  body.is-nav-open .l-header__hamburger span:nth-child(2){ opacity:0; }
  body.is-nav-open .l-header__hamburger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

/* SP nav */
.l-sp-nav{
  position:fixed; inset:0; z-index:99; background:rgba(7,9,15,.6);
  backdrop-filter:blur(6px); opacity:0; visibility:hidden; transition:.3s;
}
body.is-nav-open .l-sp-nav{ opacity:1; visibility:visible; }
.l-sp-nav__drawer{
  position:absolute; top:0; right:0; width:min(86vw,380px); height:100%;
  background:var(--bg-2); border-left:1px solid var(--line);
  padding:96px 28px 32px; overflow-y:auto; transform:translateX(100%);
  transition:transform .4s var(--ease); display:flex; flex-direction:column; gap:28px;
}
body.is-nav-open .l-sp-nav__drawer{ transform:translateX(0); }
.l-sp-nav__list{ display:flex; flex-direction:column; }
.l-sp-nav__item a{
  display:block; padding:15px 0; font-size:16px; font-weight:600;
  border-bottom:1px solid var(--line-faint); color:var(--ink);
}
.l-sp-nav__item a:hover{ color:var(--accent-br); }
.l-sp-nav__footer{ display:flex; flex-direction:column; gap:12px; }
.l-sp-nav__tel{ text-align:center; color:var(--ink-mute); font-size:12px; }
.l-sp-nav__tel a{ display:block; font-family:var(--font-display); font-weight:800; font-size:22px; color:var(--ink); margin-top:6px; }

/* ============================================================
   Footer
   ============================================================ */
.l-footer{ background:var(--bg-2); border-top:1px solid var(--line); padding:clamp(56px,7vw,88px) 0 32px; position:relative; z-index:2; }
.l-footer__inner{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }
.l-footer__top{ display:grid; grid-template-columns:1.2fr 2fr; gap:48px; padding-bottom:48px; border-bottom:1px solid var(--line); }
.l-footer__logo{ display:flex; align-items:center; gap:10px; }
.l-footer__logo-mark{ width:34px; height:34px; }
.l-footer__logo-en{ font-family:var(--font-display); font-weight:800; font-size:19px; font-variation-settings:"wght" 800,"wdth" 110; }
.l-footer__logo-en span{ color:var(--accent-br); }
.l-footer__tagline{ margin-top:18px; color:var(--ink-mute); font-size:14px; line-height:1.9; }
.l-footer__contact{ margin-top:24px; display:flex; flex-direction:column; gap:10px; }
.l-footer__contact-row{ display:flex; gap:14px; align-items:baseline; }
.l-footer__contact-row dt{ font-family:var(--font-mono); font-size:11px; color:var(--ink-faint); letter-spacing:.1em; width:48px; }
.l-footer__contact-row dd{ margin:0; font-weight:600; }
.l-footer__contact-row dd a:hover{ color:var(--accent-br); }
.l-footer__nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.l-footer__nav-label{ font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; color:var(--accent-br); text-transform:uppercase; margin-bottom:18px; }
.l-footer__nav-list{ display:flex; flex-direction:column; gap:12px; }
.l-footer__nav-item a{ font-size:13.5px; color:var(--ink-mute); transition:color .2s; }
.l-footer__nav-item a:hover{ color:var(--ink); }
.l-footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:28px; flex-wrap:wrap; }
.l-footer__legal{ display:flex; gap:24px; }
.l-footer__legal a{ font-size:12.5px; color:var(--ink-mute); }
.l-footer__legal a:hover{ color:var(--ink); }
.l-footer__copy{ font-family:var(--font-mono); font-size:11.5px; color:var(--ink-faint); letter-spacing:.04em; }
@media (max-width:768px){
  .l-footer__top{ grid-template-columns:1fr; gap:40px; }
  .l-footer__nav{ grid-template-columns:repeat(2,1fr); gap:28px; }
}

/* ============================================================
   Fixed / float CTA
   ============================================================ */
.c-fixed-cta{
  position:fixed; bottom:0; left:0; width:100%; z-index:90; display:none;
  grid-template-columns:1fr 1fr; gap:1px; transform:translateY(100%);
  transition:transform .4s var(--ease); background:var(--line);
}
@media (max-width:768px){ .c-fixed-cta{ display:grid; } }
.c-fixed-cta.is-visible{ transform:translateY(0); }
.c-fixed-cta__btn{ padding:16px; text-align:center; font-weight:700; font-size:14px; }
.c-fixed-cta__btn--primary{ background:var(--accent); color:var(--accent-ink); }
.c-fixed-cta__btn--line{ background:#06c755; color:#fff; display:flex; align-items:center; justify-content:center; gap:8px; }
.c-fixed-cta__btn--line svg{ width:18px; height:18px; }

.c-float-cta{
  position:fixed; right:20px; bottom:24px; z-index:88; display:none; flex-direction:column; gap:10px;
  opacity:0; transform:translateY(16px); transition:.4s var(--ease);
}
@media (min-width:769px){ .c-float-cta{ display:flex; } }
.c-float-cta.is-visible{ opacity:1; transform:translateY(0); }
.c-float-cta__item{
  display:flex; align-items:center; gap:9px; padding:13px 20px; border-radius:2px;
  font-weight:700; font-size:14px; box-shadow:0 10px 30px rgba(0,0,0,.4);
  transition:transform .25s var(--ease), box-shadow .25s;
}
.c-float-cta__item svg{ width:18px; height:18px; }
.c-float-cta__item:hover{ transform:translateY(-3px); }
.c-float-cta__item--consult{ background:var(--accent); color:var(--accent-ink); }
.c-float-cta__item--line{ background:#06c755; color:#fff; }

/* ============================================================
   Reveal / fade utilities
   ============================================================ */
.js-fade{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--delay,0s); }
.js-fade.is-visible{ opacity:1; transform:none; }
.js-scale{ opacity:0; transform:scale(.96) translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js-scale.is-visible{ opacity:1; transform:none; }
[data-stagger]{ transition-delay:calc(var(--stagger,0) * .09s); }

.js-reveal{ display:block; overflow:hidden; }
.js-reveal > span{ display:block; transform:translateY(110%); transition:transform .9s var(--ease); transition-delay:var(--delay,0s); }
.js-reveal.is-visible > span{ transform:none; }
@media (prefers-reduced-motion:reduce){
  .js-fade,.js-scale,.js-reveal>span{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   Tweaks panel (vanilla)
   ============================================================ */
.twk{
  position:fixed; right:16px; bottom:16px; z-index:2147483646; width:264px;
  max-height:calc(100vh - 32px); display:flex; flex-direction:column;
  background:rgba(12,15,24,.86); color:var(--ink);
  -webkit-backdrop-filter:blur(20px) saturate(150%); backdrop-filter:blur(20px) saturate(150%);
  border:1px solid var(--line-strong); border-radius:10px;
  box-shadow:0 18px 50px rgba(0,0,0,.5); font-family:var(--font-body); font-size:12px;
}
.twk[hidden]{ display:none; }
.twk__hd{ display:flex; align-items:center; justify-content:space-between; padding:12px 10px 12px 16px; cursor:move; user-select:none; border-bottom:1px solid var(--line); }
.twk__hd b{ font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.twk__x{ border:0; background:transparent; color:var(--ink-mute); width:24px; height:24px; border-radius:5px; cursor:pointer; }
.twk__x:hover{ background:rgba(255,255,255,.08); color:var(--ink); }
.twk__body{ padding:14px 16px 18px; display:flex; flex-direction:column; gap:14px; overflow-y:auto; }
.twk-sect{ font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.twk-row{ display:flex; flex-direction:column; gap:8px; }
.twk-row__lbl{ color:var(--ink-mute); font-weight:600; }
.twk-seg{ display:flex; gap:4px; flex-wrap:wrap; }
.twk-seg button{ flex:1; min-width:fit-content; border:1px solid var(--line); background:transparent; color:var(--ink-mute); padding:7px 8px; border-radius:5px; cursor:pointer; font-size:11px; font-weight:600; transition:.2s; }
.twk-seg button:hover{ border-color:var(--line-strong); color:var(--ink); }
.twk-seg button[aria-pressed="true"]{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.twk-swatches{ display:flex; gap:8px; }
.twk-swatch{ width:30px; height:30px; border-radius:50%; border:2px solid transparent; cursor:pointer; transition:transform .15s; }
.twk-swatch:hover{ transform:scale(1.1); }
.twk-swatch[aria-pressed="true"]{ border-color:var(--ink); }
