Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Join the Playtest on Steam Now: SpiritVale

Module:GameInfo/styles.css: Difference between revisions

From SpiritVale Wiki
No edit summary
Tags: Mobile edit Mobile web edit
No edit summary
Tags: Mobile edit Mobile web edit
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Module:GameInfo/styles.css */
/* SpiritVale Wiki — Module:GameInfo/styles.css */
/* GameInfo Box v1 — TemplateStyles-safe (no CSS vars / no var()) */
/* GameInfo-family layout and skill-specific presentation.
/* Phase 4.1 — Unified + Reusable (Layout restored, scoped) */
  Surface hierarchy:
  - bg1 = outer card / inactive neutral base
  - bg2 = grouped section surface
  - bg3 = inner framed block / pill surface
*/
/* -------------------------------------------------------------------------- */
/* Canonical ownership map                                                    */
/* -------------------------------------------------------------------------- */
/* This sheet owns GameInfo-family presentation only. That includes:          */
/* - GameInfo card shells and internal layout                                  */
/* - skill card presentation and module-local responsive changes              */
/* - module-local pills, panels, tabs, metadata blocks, and reference blocks  */
/*                                                                            */
/* It does NOT own:                                                            */
/* - shared site tokens / utilities / slider anatomy (Common.css)              */
/* - skin and chrome theme logic (Citizen.css)                                 */
/* - definitions-only token styling (Definitions stylesheet)                   */
/*                                                                            */
/* Responsive cleanup note: GameInfo now maps its legacy mobile cutoffs into  */
/* the canonical six-viewpoint ladder. The module still uses descending range  */
/* queries for parity, but the breakpoints themselves are now canonical.      */
/* -------------------------------------------------------------------------- */
/* Canonical ladder                                                            */
/* -------------------------------------------------------------------------- */
/* - default: <640px                                                          */
/* - sm:      >=640px                                                          */
/* - md:      >=768px                                                          */
/* - lg:      >=1024px                                                        */
/* - xl:      >=1280px                                                        */
/* - 2xl:    >=1536px                                                        */
/* -------------------------------------------------------------------------- */


/* NOTE (ownership)
  --------------------------------------------------------------------------
  Common.css owns shared components and tokens:
  - slider anatomy
  - tabs
  - tips / discloses / popups


  This file owns GameInfo-family presentation only:
/* -------------------------------------------------------------------------- */
  - card shell
/* 1) Base card and safety                                                    */
  - section layout
/* -------------------------------------------------------------------------- */
  - skill-specific display blocks


  Transitional fallbacks remain in place so Common.css can take over as
.sv-gi-card,
  Lua / JS progressively emit more neutral attributes and hooks.
.sv-skill-card{
*/
  max-width:600px;
  margin:18px auto;
  border-radius:22px;
  overflow:visible;


/* ==========================================================================
  background:var(--sv-ui-bg1);
  1) BASE CARD + SAFETY
  background-image:none;
  ========================================================================== */


.sv-gi-card,
  color:var(--sv-ui-text2);
.sv-skill-card {
  font-size:15px;
    max-width: 600px;
  line-height:1.35;
    margin: 18px auto;
    border-radius: 22px;
    border: 1px solid rgba(75,99,136,0.55);
    background-color: #0f172a;
    background-image: radial-gradient(900px 360px at 40% -10%, rgba(106,166,255,0.18), rgba(0,0,0,0) 60%), linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)), linear-gradient(180deg, #0f172a, #0b1324);
    box-shadow: 0 16px 38px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.05);
    overflow: visible;
    color: rgba(245,249,255,0.94);
    font-size: 15px;
    line-height: 1.35;
}
}


/* Fixed top / bottom content zones */
.sv-gi-top,
.sv-gi-top,
.sv-skill-top {
.sv-skill-top{ padding:14px 18px 4px; }
    padding: 14px 18px 4px;
}


.sv-gi-bottom,
.sv-gi-bottom,
.sv-skill-bottom {
.sv-skill-bottom{ padding:10px 18px 12px; }
    padding: 10px 18px 12px;
}


/* Predictable sizing inside the card */
.sv-gi-card,
.sv-gi-card,
.sv-gi-card *,
.sv-gi-card *,
.sv-skill-card,
.sv-skill-card,
.sv-skill-card * {
.sv-skill-card *{ box-sizing:border-box; }
    box-sizing: border-box;
 
.sv-gi-error{
  max-width:600px;
  margin:18px auto;
  padding:10px 12px;
 
  overflow-wrap:anywhere;
  word-break:break-word;
}
}


/* Inline error shell */
.sv-gi-card summary,
.sv-gi-error {
.sv-skill-card summary{ list-style:none; }
    max-width: 600px;
 
    margin: 18px auto;
/* -------------------------------------------------------------------------- */
    padding: 10px 12px;
/* 2) Icons and fallback badges                                                */
    border-radius: 14px;
/* -------------------------------------------------------------------------- */
    border: 1px solid rgba(75,99,136,0.55);
 
    background: #1f2937;
.sv-skill-icon,
    color: rgba(245,249,255,0.92);
.sv-meta-icon,
.sv-ref-ico,
.sv_skill_scaling__stat-icon{
  font-size:0;
  line-height:0;
}
}


/* Hide source popup payload nodes even if sitewide .sv-hidden is unavailable */
.sv-skill-icon a,
.sv-gi-card .sv-hidden,
.sv-meta-icon a,
.sv-skill-card .sv-hidden {
.sv-ref-ico a,
    display: none;
.sv_skill_scaling__stat-icon a{ text-decoration:none; }
 
.sv-skill-icon .sv-miss{
  width:22px;
  height:22px;
  font-size:13px;
  line-height:1;
}
}


/* Remove default browser marker from summary elements */
.sv-meta-icon .sv-miss,
.sv-gi-card summary,
.sv-ref-ico .sv-miss{
.sv-skill-card summary {
  width:18px;
    list-style: none;
  height:18px;
  font-size:12px;
  line-height:1;
}
}


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  2) ICONS, IMAGES, AND FALLBACK BADGES
/* 2b) Interactive link treatment                                              */
  ========================================================================== */
/* -------------------------------------------------------------------------- */


.sv-skill-icon,
.sv-disclose-pop a,
.sv-meta-icon,
.sv-disclose-pop-title a,
.sv-ref-ico {
.sv-tip-pop a,
    font-size: 0;
.sv-tip-pop-title a,
    line-height: 0;
.sv-def-pop a,
.sv-def-pop-title a,
.sv-pop a,
.sv-pop-title a,
.sv-gi-card .sv-ref-title a,
.sv-skill-card .sv-ref-title a{
  color:var(--sv-ui-link, #8fc7ff);
  text-decoration-line:underline;
  text-decoration-color:currentColor;
}
}


    .sv-skill-icon a,
.sv-disclose-pop a:hover,
    .sv-meta-icon a,
.sv-disclose-pop-title a:hover,
    .sv-ref-ico a {
.sv-tip-pop a:hover,
        text-decoration: none;
.sv-tip-pop-title a:hover,
    }
.sv-def-pop a:hover,
.sv-def-pop-title a:hover,
.sv-pop a:hover,
.sv-pop-title a:hover,
.sv-gi-card .sv-ref-title a:hover,
.sv-skill-card .sv-ref-title a:hover,
.sv-disclose-pop a:focus,
.sv-disclose-pop-title a:focus,
.sv-tip-pop a:focus,
.sv-tip-pop-title a:focus,
.sv-def-pop a:focus,
.sv-def-pop-title a:focus,
.sv-pop a:focus,
.sv-pop-title a:focus,
.sv-gi-card .sv-ref-title a:focus,
.sv-skill-card .sv-ref-title a:focus{
  color:var(--sv-ui-link-hover, #b8ddff);
}


    /* Fallback “?” badge sizing inside icon boxes */
.sv-disclose-pop-title a,
    .sv-skill-icon .sv-miss {
.sv-tip-pop-title a,
        width: 22px;
.sv-def-pop-title a,
        height: 22px;
.sv-pop-title a{
        font-size: 13px;
  font:inherit;
        line-height: 1;
}
    }


    .sv-meta-icon .sv-miss,
/* -------------------------------------------------------------------------- */
    .sv-ref-ico .sv-miss {
/* 3) Skill header                                                            */
        width: 18px;
/* -------------------------------------------------------------------------- */
        height: 18px;
        font-size: 12px;
        line-height: 1;
    }


/* Image enhancement; global .sv-img still owns rounding behavior */
.sv-skill-head{
.sv-gi-card .sv-img img,
  display:flex;
.sv-skill-card .sv-img img {
  align-items:flex-start;
    box-shadow: 0 10px 18px rgba(0,0,0,0.30);
  gap:12px;
  padding:2px 0 10px;
}
}


/* ==========================================================================
.sv-skill-icon{
  3) SKILL HEADER
  flex:0 0 auto;
  ========================================================================== */
  width:64px;
  height:64px;


.sv-skill-head {
  display:flex;
    display: flex;
  align-items:center;
    align-items: flex-start;
  justify-content:center;
    gap: 12px;
  overflow:hidden;
    padding: 2px 0 10px;
 
  border-radius:16px;
}
}


.sv-skill-icon {
.sv-skill-headtext{
    flex: 0 0 auto;
  min-width:0;
    width: 64px;
  flex:0 1 auto;
    height: 64px;
    border-radius: 16px;
    border: 1px solid rgba(75,99,136,0.55);
    background: #1f2937;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
}


.sv-skill-headtext {
.sv-skill-title-row{
    min-width: 0;
  display:flex;
    flex: 0 1 auto;
  align-items:center;
  gap:10px;
}
}


.sv-skill-title-row {
.sv-skill-title{
    display: flex;
  min-width:0;
    align-items: center;
  word-wrap:break-word;
    gap: 10px;
 
  font-weight:900;
  font-size:22px;
  line-height:1.10;
  letter-spacing:0.2px;
  color:var(--sv-ui-text1);
}
 
.sv-skill-desc{
  margin-top:6px;
  word-wrap:break-word;
 
  font-size:14px;
  line-height:1.35;
  color:var(--sv-ui-text2);
}
}


.sv-skill-title {
/* -------------------------------------------------------------------------- */
    min-width: 0;
/* 4) Meta and requirements block                                              */
    word-wrap: break-word;
/* -------------------------------------------------------------------------- */
    font-weight: 900;
 
    font-size: 22px;
.sv-skill-meta-block{
    line-height: 1.10;
  margin:8px 0 10px;
    letter-spacing: 0.2px;
 
    color: rgba(245,249,255,0.98);
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  align-items:stretch;
  gap:10px;
}
}


.sv-skill-desc {
.sv-skill-meta-block--single{
    margin-top: 6px;
  grid-template-columns:minmax(0, 1fr);
    word-wrap: break-word;
    font-size: 14px;
    line-height: 1.35;
    color: rgba(215,226,244,0.92);
}
}


/* ==========================================================================
.sv-skill-meta-block__bubble{
  4) META ROW
  min-width:0;
  ========================================================================== */
  min-height:108px;
  max-height:108px;
  padding:10px 12px;
 
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
 
  border-radius:16px;
  background:var(--sv-ui-bg2);
  background-image:none;
  box-shadow:none;
}


.sv-skill-meta {
.sv-skill-meta-block__bubble--meta .sv-skill-meta,
    display: grid;
.sv-skill-meta-block__bubble--req .sv-reqrow{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  width:100%;
    gap: 6px;
  margin:0;
    margin: 8px 0 10px;
}
}


/* Meta row fallback if global .sv-pill is used */
/* -------------------------------------------------------------------------- */
.sv-skill-card .sv-skill-meta .sv-pill,
/* 5) Meta row                                                                 */
.sv-gi-card .sv-skill-meta .sv-pill {
/* -------------------------------------------------------------------------- */
    width: 100%;
 
    min-height: 34px;
.sv-skill-meta{
    padding: 0;
  display:grid;
    display: flex;
  grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items: center;
  justify-items:center;
    justify-content: center;
  align-items:center;
    gap: 6px;
  gap:8px;
    text-align: center;
    border-radius: 999px;
    border: 1px solid rgba(59,75,99,0.85);
    background: #273449;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    font-weight: 900;
    font-size: 12px;
    line-height: 1.02;
    letter-spacing: 0.08px;
    text-transform: none;
    color: rgba(245,249,255,0.96);
}
}


/* Preferred meta-card rendering */
.sv-gi-card .sv-meta-card,
.sv-gi-card .sv-meta-card,
.sv-skill-card .sv-meta-card {
.sv-skill-card .sv-meta-card{
    position: relative;
  position:relative;
    display: flex;
 
    align-items: center;
  display:flex;
    justify-content: center;
  align-items:center;
    gap: 6px;
  justify-content:center;
    min-height: 34px;
  gap:6px;
    padding: 0;
 
    border-radius: 999px;
  width:100%;
    border: 1px solid rgba(59,75,99,0.85);
  min-height:36px;
    background: #273449;
  padding:0 8px;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
 
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
  border-radius:14px;
  border:1px solid var(--sv-ui-line2);
  background:var(--sv-ui-bg3);
  background-image:none;
  color:var(--sv-ui-text1);
}
}


    .sv-gi-card .sv-meta-card:hover,
.sv-gi-card .sv-meta-card:hover,
    .sv-skill-card .sv-meta-card:hover {
.sv-skill-card .sv-meta-card:hover{ background:var(--sv-ui-bg3); }
        background: #2e3f59;
    }


.sv-gi-card .sv-meta-icon,
.sv-gi-card .sv-meta-icon,
.sv-skill-card .sv-meta-icon {
.sv-skill-card .sv-meta-icon{
    flex: 0 0 auto;
  flex:0 0 auto;
    width: 20px;
  width:20px;
    height: 20px;
  height:20px;
    display: flex;
 
    align-items: center;
  display:flex;
    justify-content: center;
  align-items:center;
    overflow: hidden;
  justify-content:center;
    border-radius: 999px;
  overflow:hidden;
    border: 1px solid rgba(75,99,136,0.55);
 
    background: #0f172a;
  border-radius:14px;
  background:var(--sv-ui-bg3);
  background-image:none;
}
}


.sv-gi-card .sv-meta-textwrap,
.sv-gi-card .sv-meta-textwrap,
.sv-skill-card .sv-meta-textwrap {
.sv-skill-card .sv-meta-textwrap{
    min-width: 0;
  min-width:0;
    flex: 0 1 auto;
  flex:0 1 auto;
}
}


.sv-gi-card .sv-meta-text,
.sv-gi-card .sv-meta-text,
.sv-skill-card .sv-meta-text {
.sv-skill-card .sv-meta-text{
    min-width: 0;
  min-width:0;
    word-wrap: break-word;
  word-wrap:break-word;
    text-align: center;
  text-align:center;
    font-weight: 900;
 
    font-size: 12px;
  font-weight:900;
    line-height: 1.02;
  font-size:12px;
    letter-spacing: 0.08px;
  line-height:1.02;
    color: rgba(245,249,255,0.96);
  letter-spacing:0.08px;
  color:var(--sv-ui-text1);
}
}


.sv-gi-card .sv-meta-lines span,
.sv-gi-card .sv-meta-lines span,
.sv-skill-card .sv-meta-lines span {
.sv-skill-card .sv-meta-lines span{ display:block; }
    display: block;
}


/* Visible text should appear static; interaction is handled by the pill overlay */
.sv-gi-card .sv-meta-text .sv-def,
.sv-gi-card .sv-meta-text .sv-def,
.sv-skill-card .sv-meta-text .sv-def {
.sv-skill-card .sv-meta-text .sv-def{ cursor:default; }
    cursor: default;
}


.sv-gi-card .sv-meta-text .sv-def-text,
.sv-gi-card .sv-meta-text .sv-def-text,
.sv-skill-card .sv-meta-text .sv-def-text {
.sv-skill-card .sv-meta-text .sv-def-text{
    color: inherit;
  color:inherit;
    border-bottom: none;
  border-bottom:none;
}
}


/* Secondary line styling */
.sv-gi-card .sv-meta-text .sv-meta-lines span + span,
.sv-gi-card .sv-meta-text .sv-meta-lines span + span,
.sv-skill-card .sv-meta-text .sv-meta-lines span + span {
.sv-skill-card .sv-meta-text .sv-meta-lines span + span{
    margin-top: 1px;
  margin-top:1px;
    opacity: 0.90;
 
    font-size: 10px;
  font-size:10px;
    font-weight: 800;
  font-weight:800;
    letter-spacing: 0.12px;
  letter-spacing:0.12px;
  color:var(--sv-ui-text3);
}
}


/* Full-pill Definitions interaction overlay */
.sv-gi-card .sv-meta-hit,
.sv-gi-card .sv-meta-hit,
.sv-skill-card .sv-meta-hit {
.sv-skill-card .sv-meta-hit{
    position: absolute;
  position:absolute;
    top: 0;
  top:0;
    right: 0;
  right:0;
    bottom: 0;
  bottom:0;
    left: 0;
  left:0;
    z-index: 5;
  z-index:5;
    opacity: 0;
  opacity:0;
}
}


    .sv-gi-card .sv-meta-hit .sv-def,
.sv-gi-card .sv-meta-hit .sv-def,
    .sv-skill-card .sv-meta-hit .sv-def {
.sv-skill-card .sv-meta-hit .sv-def{
        display: block;
  display:block;
        width: 100%;
  width:100%;
        height: 100%;
  height:100%;
    }
}


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  5) REQUIREMENTS / USERS ROW
/* 6) Requirements and users row                                              */
  Layout only; disclose component styling lives in Common.css
/* -------------------------------------------------------------------------- */
  ========================================================================== */


.sv-gi-card .sv-reqrow,
.sv-gi-card .sv-reqrow,
.sv-skill-card .sv-reqrow {
.sv-skill-card .sv-reqrow{
    display: flex;
  display:flex;
    justify-content: center;
  flex-direction:column;
    flex-wrap: wrap;
  justify-content:center;
    gap: 8px;
  gap:8px;
    margin: 6px 0 10px;
}
}


.sv-gi-card .sv-disclose,
.sv-gi-card .sv-disclose,
.sv-skill-card .sv-disclose {
.sv-skill-card .sv-disclose{
    flex: 0 1 190px;
  min-width:0;
    max-width: 205px;
  max-width:none;
  width:100%;
}
}


/* Transitional compact pill styling until all disclose buttons emit
  the compact modifier class from Lua */
.sv-gi-card .sv-reqrow .sv-disclose-btn,
.sv-gi-card .sv-reqrow .sv-disclose-btn,
.sv-skill-card .sv-reqrow .sv-disclose-btn {
.sv-skill-card .sv-reqrow .sv-disclose-btn{
    min-height: 36px;
  width:100%;
    padding: 0 12px;
  min-height:36px;
    border-radius: 999px;
  padding:0 12px;
  border-radius:14px;
  background:var(--sv-ui-bg3);
  background-image:none;
  box-shadow:none;
}
}


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  6) LEVEL SELECTOR WRAPPER
/* 7) Level selector wrapper                                                  */
  Slider anatomy is owned by Common.css
/* -------------------------------------------------------------------------- */
  ========================================================================== */


.sv-skill-level {
.sv-skill-level{
    margin: 8px 0 10px;
  margin:8px 0 10px;
    padding: 10px 12px;
  padding:10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-radius: 16px;
    border: 1px solid rgba(59,75,99,0.85);
    background: #1f2937;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}


    /* Skills default to hiding tick labels because the end-value replaces them */
  display:flex;
    .sv-skill-level:not([data-sv-level-hide-ticks="0"]) .sv-level-ticklabels {
  flex-direction:column;
        display: none;
  gap:8px;
    }


/* Transitional helper label:
  border-radius:16px;
  - if Lua provides data-sv-helper-text, Common.css can own the copy
  background:var(--sv-ui-bg2);
  - otherwise, keep the legacy fallback helper text here
  background-image:none;
*/
  box-shadow:none;
.sv-gi-card .sv-level-label:not([data-sv-helper-text]),
.sv-skill-card .sv-level-label:not([data-sv-helper-text]) {
    position: static;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    transform: none;
    display: inline-block;
    margin: 0;
    padding: 0;
    font-size: 0;
    line-height: 0;
}
}


    .sv-gi-card .sv-level-label:not([data-sv-helper-text])::after,
.sv-skill-level:not([data-sv-level-hide-ticks="0"]) .sv-level-ticklabels{ display:none; }
    .sv-skill-card .sv-level-label:not([data-sv-helper-text])::after {
        content: "Slide to set level";
        display: inline-block;
        font-weight: 900;
        font-size: 13px;
        line-height: 1.25;
        letter-spacing: 0.15px;
        color: rgba(245,249,255,0.94);
    }


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  7) SKILL SCALING DASHBOARD
/* 8) Skill scaling                                                            */
  --------------------------------------------------------------------------
/* -------------------------------------------------------------------------- */
  Layout:
  - One cohesive scaling surface (level selector visually absorbed).
  - Row 1: [cluster][side]
      cluster = damage + 2×3 attribute chips as ONE unit
      side    = reserved future block (empty for now)
  - Row 2: core pills across the full width (for now)


  Markup:
.sv_skill_scaling{
    .sv_skill_scaling__body
  margin:8px 0 10px;
      .sv_skill_scaling__cluster  (contains primary + stats)
  padding:10px 12px 12px;
      .sv_skill_scaling__side    (optional/empty)
      .sv_skill_scaling__column--core
  ========================================================================== */


.sv_skill_scaling {
  border-radius:18px;
    margin: 8px 0 10px;
  background:var(--sv-ui-bg2);
    padding: 10px 12px 12px;
  background-image:none;
    border-radius: 18px;
  box-shadow:none;
    border: 1px solid rgba(59,75,99,0.85);
    background: #1f2937;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
}


    /* Absorb the level selector visually into the scaling card */
.sv_skill_scaling .sv-skill-level,
    .sv_skill_scaling .sv-skill-level,
.sv_skill_scaling__level{
    .sv_skill_scaling__level {
  margin:0 0 10px;
        margin: 0 0 10px;
  padding:0 0 10px;
        padding: 0 0 10px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        border-bottom: 1px solid rgba(59,75,99,0.72);
    }


/* OUTER GRID:
  border:0;
  Row 1: cluster + side
  border-radius:0;
  Row 2: core spans both
  background:transparent;
  IMPORTANT:
  box-shadow:none;
  - Left column is capped so the cluster cannot consume the full row on desktop.
  border-bottom:1px solid var(--sv-ui-line1);
*/
.sv_skill_scaling__body {
    display: grid;
    grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 16px;
    row-gap: 12px;
    align-items: center;
}
}


/* Cluster is ONE grid item (damage + chips) */
.sv_skill_scaling__body{
.sv_skill_scaling__cluster {
  display:grid;
    grid-column: 1;
  grid-template-columns:minmax(0, 1fr) minmax(0, 252px);
    grid-row: 1;
  column-gap:16px;
    display: flex;
  row-gap:12px;
    align-items: center;
  align-items:stretch;
    justify-content: flex-start;
  justify-items:stretch;
    gap: 12px;
    /* Allows the cluster to reflow instead of forcing the column wider */
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
}
}


/* Reserved right column */
.sv_skill_scaling__group{
.sv_skill_scaling__side {
  width:100%;
    grid-column: 2;
  min-width:0;
    grid-row: 1;
  min-height:116px;
    min-width: 0;
  max-height:116px;
  padding:10px 12px;
 
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
 
  border-radius:16px;
  background:var(--sv-ui-bg3);
  background-image:none;
  box-shadow:none;
}
}


/* Core remains row 2 spanning full width (for now) */
.sv_skill_scaling__group--primary-stats{
.sv_skill_scaling__column--core {
  grid-column:1;
    grid-column: 1 / -1;
  grid-row:1;
    grid-row: 2;
    padding: 0;
}
}


/* Section wrappers are intentionally visual no-ops */
.sv_skill_scaling__group--core{
.sv_skill_scaling__column {
  grid-column:2;
    min-width: 0;
  grid-row:1;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
}
}


/* Primary output (Damage Mod) */
.sv_skill_scaling__cluster{
.sv_skill_scaling__column--primary {
  display:flex;
    display: flex;
  align-items:center;
    flex-direction: column;
  justify-content:center;
    justify-content: center;
  gap:14px;
    align-items: flex-start;
 
    text-align: left;
  flex-wrap:wrap;
  width:100%;
  height:100%;
  max-width:100%;
  margin:0 auto;
 
  min-width:0;
}
}


.sv_skill_scaling__primary-value {
.sv_skill_scaling__column{
    word-wrap: break-word;
  min-width:0;
    font-weight: 900;
  padding:0;
    font-size: 44px;
  border:0;
    line-height: 0.92;
  border-radius:0;
    letter-spacing: -0.60px;
  background:transparent;
    color: rgba(245,249,255,0.99);
  background-image:none;
  box-shadow:none;
}
}


.sv_skill_scaling__primary-label {
.sv_skill_scaling__column--stats,
    margin-top: 6px;
.sv_skill_scaling__column--core{
    font-weight: 900;
  display:flex;
    font-size: 11px;
  align-items:center;
    line-height: 1.05;
  justify-content:center;
    letter-spacing: 0.22px;
    text-transform: uppercase;
    color: rgba(182,198,224,0.96);
}
}


/* --------------------------------------------------------------------------
.sv_skill_scaling__column--core{
  7A) ATTRIBUTE CHIPS (2 columns x 3 rows)
  width:100%;
-------------------------------------------------------------------------- */
  min-width:0;
  min-height:100%;
}


.sv_skill_scaling__stats-grid {
.sv_skill_scaling__column--primary{
    display: grid;
  display:flex;
    /* Keep compact; does NOT stretch */
  flex-direction:column;
    grid-template-columns: repeat(2, max-content);
  justify-content:center;
    justify-content: start;
  align-items:center;
    justify-items: start;
  text-align:center;
    row-gap: 8px;
    column-gap: 10px;
    /* Hard ordering */
    grid-template-areas:
        "str agi"
        "vit int"
        "dex luk";
}
}


.sv_skill_scaling__stat-pill--str {
.sv_skill_scaling__primary-value{
    grid-area: str;
  word-wrap:break-word;
  overflow-wrap:anywhere;
 
  font-weight:900;
  font-size:34px;
  line-height:0.95;
  letter-spacing:-0.50px;
  color:var(--sv-ui-text1);
}
}


.sv_skill_scaling__stat-pill--vit {
.sv_skill_scaling__primary-label{
    grid-area: vit;
  margin-top:6px;
 
  font-weight:900;
  font-size:10px;
  line-height:1.05;
  letter-spacing:0.22px;
  text-transform:uppercase;
  color:var(--sv-ui-text3);
}
}


.sv_skill_scaling__stat-pill--dex {
.sv_skill_scaling__stats-grid{
    grid-area: dex;
  display:grid;
  grid-template-columns:repeat(2, max-content);
  justify-content:center;
  justify-items:center;
  align-content:center;
 
  row-gap:8px;
  column-gap:10px;
  margin:0 auto;
 
  grid-template-areas:
    "str agi"
    "vit int"
    "dex luk";
}
}


.sv_skill_scaling__stat-pill--agi {
.sv_skill_scaling__stat-pill--str{ grid-area:str; }
    grid-area: agi;
.sv_skill_scaling__stat-pill--vit{ grid-area:vit; }
.sv_skill_scaling__stat-pill--dex{ grid-area:dex; }
.sv_skill_scaling__stat-pill--agi{ grid-area:agi; }
.sv_skill_scaling__stat-pill--int{ grid-area:int; }
.sv_skill_scaling__stat-pill--luk{ grid-area:luk; }
 
.sv_skill_scaling__pill{
  position:relative;
  min-width:0;
 
  border-radius:14px;
  border:1px solid var(--sv-ui-line2);
  background:var(--sv-ui-bg3);
  background-image:none;
  box-shadow:none;
}
}


.sv_skill_scaling__stat-pill--int {
.sv_skill_scaling__stat-pill{
    grid-area: int;
  border-radius:999px;
 
  width:50px;
  min-width:50px;
  min-height:22px;
  padding:4px 6px;
 
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
}


.sv_skill_scaling__stat-pill--luk {
.sv_skill_scaling__stat-main{
    grid-area: luk;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
}


/* Shared pill shell (core uses this; stat chips override size below) */
.sv_skill_scaling__stat-visual{
.sv_skill_scaling__pill {
  min-width:0;
    position: relative;
  display:flex;
    min-width: 0;
  align-items:center;
    border-radius: 14px;
  justify-content:center;
    border: 1px solid rgba(59,75,99,0.92);
  gap:6px;
    background: #1a2434;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.00));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}
}


/* Stat chips: compact micro pills */
.sv_skill_scaling__stat-label{ display:none; }
.sv_skill_scaling__stat-pill {
 
    border-radius: 999px;
.sv_skill_scaling__stat-icon{
    width: 82px;
  width:12px;
    min-height: 22px;
  height:12px;
    padding: 4px 8px;
 
    display: flex;
  display:flex;
    align-items: center;
  align-items:center;
    justify-content: center;
  justify-content:center;
    white-space: nowrap;
}
}


/* Flatten inner structure into one row */
.sv_skill_scaling__stat-icon .sv-img img{
.sv_skill_scaling__stat-main {
  width:12px;
    min-width: 0;
  height:12px;
    display: flex;
  box-shadow:none;
    align-items: center;
    justify-content: center;
}
}


.sv_skill_scaling__stat-visual {
.sv_skill_scaling__stat-icon .sv-miss{
    min-width: 0;
  width:12px;
    display: flex;
  height:12px;
    align-items: center;
  font-size:9px;
    justify-content: center;
  line-height:1;
    gap: 7px;
}
}


/* No stat label in chip mode */
.sv_skill_scaling__stat-value{
.sv_skill_scaling__stat-label {
  font-weight:900;
    display: none;
  font-size:12px;
  line-height:1;
  letter-spacing:-0.10px;
  color:var(--sv-ui-text1);
}
}


/* Icon sizing (force FILE render down to true micro size) */
.sv_skill_scaling__stat-hit,
.sv_skill_scaling__stat-icon {
.sv_skill_scaling__core-hit{
    width: 12px;
  position:absolute;
    height: 12px;
  top:0;
    display: flex;
  right:0;
    align-items: center;
  bottom:0;
    justify-content: center;
  left:0;
    font-size: 0;
  z-index:5;
    line-height: 0;
  opacity:0;
}
}


    .sv_skill_scaling__stat-icon a {
.sv_skill_scaling__stat-hit .sv-def,
        text-decoration: none;
.sv_skill_scaling__core-hit .sv-def{
    }
  display:block;
  width:100%;
  height:100%;
}


    .sv_skill_scaling__stat-icon .sv-img img {
.sv_skill_scaling__stat-pill.is-inactive{
        width: 12px;
  background:var(--sv-ui-bg1);
        height: 12px;
  background-image:none;
        box-shadow: none;
  box-shadow:none;
    }
}


    .sv_skill_scaling__stat-icon .sv-miss {
.sv_skill_scaling__stat-pill.is-inactive .sv_skill_scaling__stat-icon,
        width: 12px;
.sv_skill_scaling__stat-pill.is-inactive .sv_skill_scaling__stat-value{ display:none; }
        height: 12px;
        font-size: 9px;
        line-height: 1;
    }


/* Value sizing */
.sv_skill_scaling__stat-pill.is-inactive::before{
.sv_skill_scaling__stat-value {
  content:"—";
    font-weight: 900;
  font-weight:900;
    font-size: 13px;
  font-size:12px;
    line-height: 1;
  line-height:1;
    letter-spacing: -0.12px;
  color:var(--sv-ui-text3);
    color: rgba(245,249,255,0.98);
}
}


/* Full-pill Definitions hit overlay (active pills) */
.sv_skill_scaling__stat-pill--str.is-active{
.sv_skill_scaling__stat-hit {
  border-color:rgba(145,63,82,0.96);
    position: absolute;
  background:#32131d;
    top: 0;
  background-image:none;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
    opacity: 0;
}
}
.sv_skill_scaling__stat-pill--str.is-active .sv_skill_scaling__stat-value{ color:#ffdce5; }


    .sv_skill_scaling__stat-hit .sv-def {
.sv_skill_scaling__stat-pill--vit.is-active{
        display: block;
  border-color:rgba(158,112,22,0.96);
        width: 100%;
  background:#352609;
        height: 100%;
  background-image:none;
    }
}
.sv_skill_scaling__stat-pill--vit.is-active .sv_skill_scaling__stat-value{ color:#ffefc9; }


/* Inactive chips: dash only */
.sv_skill_scaling__stat-pill--dex.is-active{
.sv_skill_scaling__stat-pill.is-inactive {
  border-color:rgba(118,146,24,0.96);
    border-color: rgba(59,75,99,0.72);
  background:#243208;
    background: #182130;
  background-image:none;
    background-image: none;
    box-shadow: none;
}
}
.sv_skill_scaling__stat-pill--dex.is-active .sv_skill_scaling__stat-value{ color:#edf8cc; }


    .sv_skill_scaling__stat-pill.is-inactive .sv_skill_scaling__stat-icon,
.sv_skill_scaling__stat-pill--agi.is-active{
    .sv_skill_scaling__stat-pill.is-inactive .sv_skill_scaling__stat-value {
  border-color:rgba(125,62,152,0.96);
        display: none;
  background:#2b1438;
    }
  background-image:none;
}
.sv_skill_scaling__stat-pill--agi.is-active .sv_skill_scaling__stat-value{ color:#f0dcff; }


    .sv_skill_scaling__stat-pill.is-inactive::before {
.sv_skill_scaling__stat-pill--int.is-active{
        content: "—";
  border-color:rgba(45,118,191,0.96);
        font-weight: 900;
  background:#11263d;
        font-size: 13px;
  background-image:none;
        line-height: 1;
}
        color: rgba(140,156,184,0.78);
.sv_skill_scaling__stat-pill--int.is-active .sv_skill_scaling__stat-value{ color:#d8eeff; }
    }


/* Active baseline */
.sv_skill_scaling__stat-pill--luk.is-active{
.sv_skill_scaling__stat-pill.is-active {
  border-color:rgba(183,150,22,0.96);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 0 0 1px rgba(255,255,255,0.01);
  background:#3a2f07;
  background-image:none;
}
}
.sv_skill_scaling__stat-pill--luk.is-active .sv_skill_scaling__stat-value{ color:#fff2ba; }


/* Per-stat color treatments */
.sv_skill_scaling__core-grid{
.sv_skill_scaling__stat-pill--str.is-active {
  display:grid;
    border-color: rgba(145,63,82,0.96);
  grid-template-columns:repeat(3, minmax(0, 1fr));
    background: #32131d;
  gap:8px;
    background-image: linear-gradient(180deg, rgba(190,88,113,0.16), rgba(0,0,0,0.00));
  justify-items:center;
  justify-content:center;
  align-content:center;
  width:100%;
  max-width:228px;
  margin:0 auto;
}
}


    .sv_skill_scaling__stat-pill--str.is-active .sv_skill_scaling__stat-value {
.sv_skill_scaling__core-pill{
        color: #ffdce5;
  border-radius:14px;
    }
  min-height:25px;
  min-width:70px;
  padding:8px 6px;


.sv_skill_scaling__stat-pill--vit.is-active {
  display:flex;
    border-color: rgba(158,112,22,0.96);
  flex-direction:column;
    background: #352609;
  justify-content:center;
    background-image: linear-gradient(180deg, rgba(210,144,18,0.15), rgba(0,0,0,0.00));
  align-items:center;
  text-align:center;
}
}


    .sv_skill_scaling__stat-pill--vit.is-active .sv_skill_scaling__stat-value {
.sv_skill_scaling__core-pill.is-active{
        color: #ffefc9;
  background:var(--sv-ui-bg3);
    }
  background-image:none;
}


.sv_skill_scaling__stat-pill--dex.is-active {
.sv_skill_scaling__core-main{
    border-color: rgba(118,146,24,0.96);
  min-width:0;
    background: #243208;
  display:flex;
    background-image: linear-gradient(180deg, rgba(159,194,27,0.16), rgba(0,0,0,0.00));
  align-items:baseline;
  justify-content:center;
  flex-wrap:wrap;
  gap:4px;
}
}


    .sv_skill_scaling__stat-pill--dex.is-active .sv_skill_scaling__stat-value {
.sv_skill_scaling__core-value{
        color: #edf8cc;
  min-width:0;
    }
  word-wrap:break-word;
 
  font-weight:900;
  font-size:14px;
  line-height:1.02;
  color:var(--sv-ui-text1);
}


.sv_skill_scaling__stat-pill--agi.is-active {
.sv_skill_scaling__core-unit{
    border-color: rgba(125,62,152,0.96);
  font-weight:900;
    background: #2b1438;
  font-size:10px;
    background-image: linear-gradient(180deg, rgba(165,82,198,0.17), rgba(0,0,0,0.00));
  line-height:1.05;
  color:var(--sv-ui-text3);
}
}


    .sv_skill_scaling__stat-pill--agi.is-active .sv_skill_scaling__stat-value {
.sv_skill_scaling__core-label{
        color: #f0dcff;
  margin-top:5px;
    }


.sv_skill_scaling__stat-pill--int.is-active {
  font-weight:900;
    border-color: rgba(45,118,191,0.96);
  font-size:10px;
    background: #11263d;
  line-height:1.10;
    background-image: linear-gradient(180deg, rgba(35,140,230,0.18), rgba(0,0,0,0.00));
  letter-spacing:0.14px;
  text-transform:uppercase;
  color:var(--sv-ui-text3);
}
}


    .sv_skill_scaling__stat-pill--int.is-active .sv_skill_scaling__stat-value {
.sv_skill_scaling__core-pill.is-inactive{
        color: #d8eeff;
  background:var(--sv-ui-bg1);
    }
}


.sv_skill_scaling__stat-pill--luk.is-active {
.sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-value,
    border-color: rgba(183,150,22,0.96);
.sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-unit,
    background: #3a2f07;
.sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-label{
    background-image: linear-gradient(180deg, rgba(234,194,9,0.16), rgba(0,0,0,0.00));
  color:var(--sv-ui-text3);
}
}


    .sv_skill_scaling__stat-pill--luk.is-active .sv_skill_scaling__stat-value {
/* -------------------------------------------------------------------------- */
        color: #fff2ba;
/* 9) Tab panels and content                                                  */
    }
/* -------------------------------------------------------------------------- */
 
/* --------------------------------------------------------------------------
  7B) CORE PILLS
-------------------------------------------------------------------------- */


.sv_skill_scaling__core-grid {
.sv-skill-tabs{
    display: grid;
  margin:10px 0 0;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}
}


.sv_skill_scaling__core-pill {
.sv-skill-tabs .sv-tabs-panels{
    min-height: 88px;
  margin-top:10px;
    padding: 10px 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}
}


.sv_skill_scaling__core-main {
.sv-skill-tabs .sv-tabpanel{
    min-width: 0;
  min-width:0;
    display: flex;
  background-image:none;
    align-items: baseline;
  box-shadow:none;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}
}


.sv_skill_scaling__core-value {
.sv-skill-tabs .sv-tab-empty{
    min-width: 0;
  padding:14px 12px;
    word-wrap: break-word;
  text-align:center;
    font-weight: 900;
    font-size: 17px;
    line-height: 1.02;
    color: rgba(245,249,255,0.98);
}


.sv_skill_scaling__core-unit {
  border-radius:14px;
    font-weight: 900;
  background:var(--sv-ui-bg2);
    font-size: 11px;
    line-height: 1.05;
    color: rgba(182,198,224,0.95);
}


.sv_skill_scaling__core-label {
  font-weight:900;
    margin-top: 6px;
  font-size:13px;
    font-weight: 900;
  color:var(--sv-ui-text3);
    font-size: 11px;
    line-height: 1.12;
    letter-spacing: 0.16px;
    text-transform: uppercase;
    color: rgba(182,198,224,0.95);
}
}


.sv_skill_scaling__core-pill.is-inactive {
.sv-skill-tabs .sv-tab-section + .sv-tab-section{
    border-color: rgba(59,75,99,0.72);
  margin-top:12px;
    background: #182130;
}
}


    .sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-value,
.sv-skill-tabs .sv-tab-section-title{
    .sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-unit,
  width:100%;
    .sv_skill_scaling__core-pill.is-inactive .sv_skill_scaling__core-label {
  margin:0 0 8px;
        color: rgba(140,156,184,0.78);
  text-align:center;
    }


/* --------------------------------------------------------------------------
  font-weight:900;
  7C) RESPONSIVE
  font-size:11px;
-------------------------------------------------------------------------- */
  line-height:1.05;
  letter-spacing:0.22px;
  text-transform:uppercase;
  color:var(--sv-ui-text3);
}


@media (max-width:850px) {
/* -------------------------------------------------------------------------- */
    /* Slightly smaller cap so the reserved column always exists */
/* 10) Mechanics tab                                                          */
    .sv_skill_scaling__body {
/* -------------------------------------------------------------------------- */
        grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
/* Mechanics stays two-column through sm / md / lg. It only collapses into a  */
    }
/* single-column stack in the default viewpoint (<640px).                      */


    .sv_skill_scaling__primary-value {
.sv-skill-tabs .sv-mech-panel{
        font-size: 40px;
  display:grid;
        letter-spacing: -0.55px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
    }
  column-gap:14px;
  row-gap:12px;
  align-items:start;
}


    .sv_skill_scaling__stat-pill {
.sv-skill-tabs .sv-mech-panel__group{
        width: 78px;
  min-width:0;
    }
  max-width:100%;
  min-height:0;
  padding:10px 12px 12px;


    .sv_skill_scaling__stat-value {
  display:flex;
        font-size: 12px;
  flex-direction:column;
    }
  justify-content:flex-start;
  align-items:stretch;
  align-self:start;


    .sv_skill_scaling__core-grid {
  border:0;
        grid-template-columns: repeat(3, minmax(0, 1fr));
  border-radius:16px;
    }
  background:var(--sv-ui-bg2);
  background-image:none;
  box-shadow:none;
}
}


@media (max-width:500px) {
.sv-skill-tabs .sv-mech-panel__mods,
    .sv_skill_scaling {
.sv-skill-tabs .sv-mech-panel__keywords{
        padding: 9px 10px 10px;
  grid-column:auto;
    }
  margin-top:0;
  min-height:0;
}


        .sv_skill_scaling .sv-skill-level,
.sv-skill-tabs .sv-mech-panel__mods{
        .sv_skill_scaling__level {
  overflow:visible;
            padding: 0 0 9px;
}
        }


    /* Collapse outer layout so nothing can overflow */
.sv-skill-tabs .sv-mech-panel__keywords{
    .sv_skill_scaling__body {
  justify-content:flex-start;
        grid-template-columns: 1fr;
}
        grid-template-rows: auto auto auto;
    }


    .sv_skill_scaling__cluster {
.sv-skill-tabs .sv-mech-panel .sv-tab-section-title{
        grid-column: 1;
  margin:0 0 8px;
        grid-row: 1;
  text-align:center;
        gap: 10px;
}
    }


    .sv_skill_scaling__side {
/* Modifiers --------------------------------------------------------------- */
        grid-column: 1;
        grid-row: 2;
    }


    .sv_skill_scaling__column--core {
.sv-skill-tabs .sv-mech-mod-grid{
        grid-column: 1;
  display:grid;
        grid-row: 3;
  grid-template-columns:repeat(3, minmax(0, 1fr));
    }
  gap:8px;
  align-content:start;
  justify-items:stretch;
}


    .sv_skill_scaling__primary-value {
.sv-skill-tabs .sv-mech-mod-pill{
        font-size: 34px;
  position:relative;
        letter-spacing: -0.45px;
  min-width:0;
    }
  width:100%;
  min-height:56px;
  padding:6px 8px;


    .sv_skill_scaling__primary-label {
  display:flex;
        font-size: 11px;
  flex-direction:column;
    }
  justify-content:center;
  align-items:center;
  text-align:center;


    .sv_skill_scaling__stat-pill {
  border-radius:14px;
        width: 72px;
  border:1px solid var(--sv-ui-line2);
        min-height: 22px;
  background:var(--sv-ui-bg3);
        padding: 4px 8px;
  background-image:none;
    }
  box-shadow:none;
}


    .sv_skill_scaling__stat-icon {
.sv-skill-tabs .sv-mech-mod-pill__label{
        width: 12px;
  min-width:0;
        height: 12px;
  word-wrap:break-word;
    }
  overflow-wrap:anywhere;


        .sv_skill_scaling__stat-icon .sv-img img {
  font-weight:900;
            width: 12px;
  font-size:10px;
            height: 12px;
  line-height:1.02;
        }
  letter-spacing:0.10px;
  text-transform:uppercase;
  color:var(--sv-ui-text3);
}


    .sv_skill_scaling__stat-value {
.sv-skill-tabs .sv-mech-mod-pill__value{
        font-size: 12px;
  margin-top:3px;
    }
  min-width:0;
  word-wrap:break-word;
  overflow-wrap:anywhere;


    .sv_skill_scaling__stat-pill.is-inactive::before {
  font-weight:900;
        font-size: 12px;
  font-size:12px;
    }
  line-height:1.02;
  color:var(--sv-ui-text1);
}


    .sv_skill_scaling__core-grid {
.sv-skill-tabs .sv-mech-mod-pill__hit{
        grid-template-columns: repeat(3, minmax(0, 1fr));
  position:absolute;
    }
  top:0;
  right:0;
  bottom:0;
  left:0;
  z-index:5;
  opacity:0;
}
}


@media (max-width:360px) {
.sv-skill-tabs .sv-mech-mod-pill__hit .sv-def{
    .sv_skill_scaling__primary-value {
  display:block;
        font-size: 30px;
  width:100%;
    }
  height:100%;
}


    .sv_skill_scaling__stat-pill {
/* Keywords ---------------------------------------------------------------- */
        width: 68px;
    }


    .sv_skill_scaling__core-grid {
.sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills{
        grid-template-columns: repeat(2, minmax(0, 1fr));
  display:grid;
    }
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  align-content:start;
  justify-items:stretch;
  margin:0;
}
}


/* ==========================================================================
.sv-skill-tabs .sv-mech-keyword-pill{
  8) TAB PANELS AND CONTENT BLOCKS
  position:relative;
  Tabs themselves are global; these are module-owned content layouts
  min-width:0;
  ========================================================================== */
  width:100%;
  min-height:56px;
  padding:6px 10px;


.sv-skill-tabs {
  display:flex;
    margin: 10px 0 0;
  align-items:center;
  justify-content:center;
  text-align:center;
 
  border-radius:16px;
  border:1px solid var(--sv-ui-line2);
  background:var(--sv-ui-bg3);
  background-image:none;
  box-shadow:none;
}
}


/* Mechanics grid */
.sv-skill-tabs .sv-mech-keyword-pill__label{
.sv-gi-card .sv-kw-grid,
  display:block;
.sv-skill-card .sv-kw-grid {
  min-width:0;
    display: grid;
  width:100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  word-wrap:break-word;
    gap: 10px;
  overflow-wrap:anywhere;
 
  font-weight:900;
  font-size:12px;
  line-height:1.08;
  color:var(--sv-ui-text1);
  text-align:center;
}
}


.sv-gi-card .sv-kw-cell,
.sv-skill-tabs .sv-mech-keyword-pill__hit{
.sv-skill-card .sv-kw-cell {
  position:absolute;
    padding: 10px 10px 9px;
  top:0;
    border-radius: 14px;
  right:0;
    border: 1px solid rgba(59,75,99,0.85);
  bottom:0;
    background: #273449;
  left:0;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
  z-index:5;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
  opacity:0;
}
}


.sv-gi-card .sv-kw-label,
.sv-skill-tabs .sv-mech-keyword-pill__hit .sv-def{
.sv-skill-card .sv-kw-label {
  display:block;
    font-weight: 900;
  width:100%;
    font-size: 12px;
  height:100%;
    letter-spacing: 0.25px;
    text-transform: uppercase;
    color: rgba(182,198,224,0.95);
}
}


.sv-gi-card .sv-kw-value,
/* Larger keyword mode. */
.sv-skill-card .sv-kw-value {
.sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill,
    margin-top: 6px;
.sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl{
    word-wrap: break-word;
  min-height:60px;
    font-weight: 900;
  padding:8px 12px;
    font-size: 15px;
  border-radius:999px;
    color: rgba(245,249,255,0.96);
}
}


/* Keyword pills panel */
.sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill__label,
.sv-gi-card .sv-tab-pills,
.sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl .sv-mech-keyword-pill__label{
.sv-skill-card .sv-tab-pills {
  font-size:13px;
    display: flex;
  line-height:1.12;
    flex-wrap: wrap;
    gap: 8px;
}
}


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  9) EFFECT / EVENT CARDS
/* 11) Effect cards                                                            */
  ========================================================================== */
/* -------------------------------------------------------------------------- */


.sv-gi-card .sv-ref-grid,
.sv-gi-card .sv-ref-grid,
.sv-skill-card .sv-ref-grid {
.sv-skill-card .sv-ref-grid{
    display: grid;
  display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-columns:repeat(2, minmax(0, 1fr));
    gap: 10px;
  gap:10px;
}
}


.sv-gi-card .sv-ref-card,
.sv-gi-card .sv-ref-card,
.sv-skill-card .sv-ref-card {
.sv-skill-card .sv-ref-card{
    min-width: 0;
  min-width:0;
    display: flex;
  display:flex;
    align-items: flex-start;
  align-items:flex-start;
    gap: 10px;
  gap:10px;
    padding: 10px 10px;
  padding:10px 10px;
    border-radius: 16px;
 
    border: 1px solid rgba(59,75,99,0.85);
  border-radius:16px;
    background: #1f2937;
  background:var(--sv-ui-bg2);
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
  background-image:none;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
  box-shadow:none;
    color: rgba(245,249,255,0.94);
 
  color:var(--sv-ui-text2);
}
}


.sv-gi-card .sv-ref-ico,
.sv-gi-card .sv-ref-ico,
.sv-skill-card .sv-ref-ico {
.sv-skill-card .sv-ref-ico{
    flex: 0 0 auto;
  flex:0 0 auto;
    width: 52px;
  width:52px;
    height: 52px;
  height:52px;
    display: flex;
 
    align-items: center;
  display:flex;
    justify-content: center;
  align-items:center;
    overflow: hidden;
  justify-content:center;
    border-radius: 16px;
  overflow:hidden;
    border: 1px solid rgba(75,99,136,0.55);
 
    background: #273449;
  border-radius:16px;
}
}


.sv-gi-card .sv-ref-text,
.sv-gi-card .sv-ref-text,
.sv-skill-card .sv-ref-text {
.sv-skill-card .sv-ref-text{
    min-width: 0;
  min-width:0;
    flex: 1 1 auto;
  flex:1 1 auto;
}
}


.sv-gi-card .sv-ref-title,
.sv-gi-card .sv-ref-title,
.sv-skill-card .sv-ref-title {
.sv-skill-card .sv-ref-title{
    word-wrap: break-word;
  word-wrap:break-word;
    font-weight: 900;
 
    font-size: 15px;
  font-weight:900;
    line-height: 1.15;
  font-size:15px;
    color: rgba(245,249,255,0.98);
  line-height:1.15;
  color:var(--sv-ui-text1);
}
}


.sv-gi-card .sv-ref-stats,
.sv-gi-card .sv-ref-stats,
.sv-skill-card .sv-ref-stats {
.sv-skill-card .sv-ref-stats{
    display: flex;
  display:flex;
    flex-wrap: wrap;
  flex-wrap:wrap;
    gap: 8px;
  gap:8px;
    margin-top: 8px;
  margin-top:8px;
}
}


.sv-gi-card .sv-ref-stat,
.sv-gi-card .sv-ref-stat,
.sv-skill-card .sv-ref-stat {
.sv-skill-card .sv-ref-stat{
    display: inline-flex;
  font-weight:900;
    align-items: center;
  font-size:12px;
    padding: 3px 8px;
  color:var(--sv-ui-text1);
    border-radius: 999px;
    border: 1px solid rgba(59,75,99,0.85);
    background: #273449;
    background-image: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    font-weight: 900;
    font-size: 12px;
    color: rgba(215,226,244,0.92);
}
}


.sv-gi-card .sv-ref-sub,
.sv-gi-card .sv-ref-sub,
.sv-skill-card .sv-ref-sub {
.sv-skill-card .sv-ref-sub{
    margin-top: 6px;
  margin-top:6px;
    font-weight: 900;
  font-weight:900;
    font-size: 13px;
  font-size:13px;
    color: rgba(182,198,224,0.95);
  color:var(--sv-ui-text3);
}
}


/* ==========================================================================
/* -------------------------------------------------------------------------- */
  10) RESPONSIVE
/* 12) Responsive                                                              */
  Breakpoints:
/* -------------------------------------------------------------------------- */
  - 850px: tablet / compact desktop transition
 
  - 500px: mobile
@media (max-width:1023px){
  - 360px: very narrow screens
  .sv-gi-card,
  ========================================================================== */
  .sv-skill-card{
    margin:14px 10px;
    border-radius:20px;
  }
 
  .sv-gi-top,
  .sv-skill-top{ padding:12px 16px 4px; }
 
  .sv-gi-bottom,
  .sv-skill-bottom{ padding:10px 16px 12px; }
 
  .sv-skill-title{ font-size:20px; }
 
  .sv_skill_scaling__body{
    grid-template-columns:minmax(0, 1fr) minmax(0, 236px);
  }
 
  .sv_skill_scaling__primary-value{ font-size:32px; }


@media (max-width:850px) {
  .sv_skill_scaling__core-pill{
     .sv-gi-card,
     min-height:25px;
    .sv-skill-card {
    min-width:70px;
        margin: 14px 10px;
  }
        border-radius: 20px;
    }


    .sv-gi-top,
  .sv_skill_scaling__core-value{ font-size:13px; }
    .sv-skill-top {
  .sv_skill_scaling__core-label{ font-size:9px; }
        padding: 12px 16px 4px;
    }


    .sv-gi-bottom,
  .sv-gi-card .sv-ref-grid,
    .sv-skill-bottom {
  .sv-skill-card .sv-ref-grid{ grid-template-columns:1fr; }
        padding: 10px 16px 12px;
    }


    .sv-skill-title {
  .sv-skill-tabs .sv-mech-panel{
        font-size: 20px;
    grid-template-columns:repeat(2, minmax(0, 1fr));
     }
     column-gap:12px;
    row-gap:12px;
    align-items:start;
  }


    .sv-skill-meta {
  .sv-skill-tabs .sv-mech-panel__group{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height:0;
     }
    max-height:none;
    padding:9px 10px 10px;
     align-self:start;
  }


    .sv-gi-card .sv-core-grid,
  .sv-skill-tabs .sv-mech-mod-grid{
    .sv-skill-card .sv-core-grid {
    grid-template-columns:repeat(3, minmax(0, 1fr));
        grid-template-columns: repeat(2, minmax(0, 1fr));
     gap:8px;
     }
  }


    .sv-gi-card .sv-ref-grid,
  .sv-skill-tabs .sv-mech-mod-pill{
    .sv-skill-card .sv-ref-grid {
    min-height:48px;
        grid-template-columns: 1fr;
     padding:6px 8px;
     }
  }


    /* Keep the damage+chips cluster intact; tighten sizes */
  .sv-skill-tabs .sv-mech-mod-pill__label{
    .sv_skill_scaling__primary-value {
    font-size:10px;
        font-size: 48px;
    line-height:1.03;
        letter-spacing: -0.70px;
  }
    }


    .sv_skill_scaling__stat-pill {
  .sv-skill-tabs .sv-mech-mod-pill__value{ font-size:12px; }
        width: 118px;
        min-height: 26px;
        padding: 6px 10px;
    }


    .sv_skill_scaling__stats-grid {
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills{
        row-gap: 9px;
    gap:8px;
        column-gap: 10px;
  }
    }


     .sv_skill_scaling__core-grid {
  .sv-skill-tabs .sv-mech-keyword-pill{
        grid-template-columns: repeat(3, minmax(0, 1fr));
     min-height:44px;
    }
    padding:7px 9px;
  }
 
  .sv-skill-tabs .sv-mech-keyword-pill__label{
    font-size:12px;
    line-height:1.10;
  }
 
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill,
  .sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl{
    min-height:48px;
    padding:9px 10px;
  }
 
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill__label,
  .sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl .sv-mech-keyword-pill__label{
    font-size:13px;
  }
}
}


@media (max-width:500px) {
@media (max-width:767px){
    .sv-skill-head {
  .sv-skill-meta-block{
        gap: 10px;
    grid-template-columns:minmax(0, 1fr);
    }
  }


    .sv-skill-icon {
  .sv-skill-meta-block__bubble{
        width: 56px;
    min-height:auto;
        height: 56px;
    max-height:none;
        border-radius: 14px;
  }
    }
}


    .sv-skill-title {
@media (max-width:639px){
        font-size: 18px;
  .sv-skill-head{ gap:10px; }
    }


    .sv-skill-desc {
  .sv-skill-icon{
        font-size: 13px;
    width:56px;
    }
    height:56px;
    border-radius:14px;
  }


    .sv-gi-card .sv-scaling-grid,
  .sv-skill-title{ font-size:19px; }
    .sv-skill-card .sv-scaling-grid {
        grid-template-columns: 1fr;
    }


    .sv-gi-card .sv-kw-grid,
  .sv-skill-desc{
     .sv-skill-card .sv-kw-grid {
     font-size:14px;
        grid-template-columns: 1fr;
    line-height:1.40;
    }
  }


    /* Requirements / Users edge padding */
  .sv_skill_scaling{ padding:9px 10px 10px; }
    .sv-gi-card .sv-reqrow,
    .sv-skill-card .sv-reqrow {
        padding-left: 16px;
        padding-right: 16px;
    }


    .sv-gi-card .sv-disclose,
  .sv_skill_scaling .sv-skill-level,
    .sv-skill-card .sv-disclose {
  .sv_skill_scaling__level{ padding:0 0 9px; }
        flex: 1 1 170px;
        max-width: 190px;
    }


    /* Tight mobile meta row */
  .sv_skill_scaling__body{
    .sv-skill-card .sv-skill-meta,
     grid-template-columns:1fr;
     .sv-gi-card .sv-skill-meta {
    row-gap:12px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
  }
        gap: 6px;
        max-width: 200px;
        margin-left: auto;
        margin-right: auto;
        justify-content: center;
    }


    .sv-skill-card .sv-meta-card,
  .sv_skill_scaling__group{
     .sv-gi-card .sv-meta-card {
     min-height:auto;
        min-height: 32px;
    max-height:none;
        gap: 7px;
    padding:10px 11px;
    }
  }


    .sv-skill-card .sv-meta-icon,
  .sv_skill_scaling__group--core{
     .sv-gi-card .sv-meta-icon {
     grid-column:1;
        width: 16px;
    grid-row:2;
        height: 16px;
  }
    }


    .sv-skill-card .sv-meta-text,
  .sv_skill_scaling__cluster{ height:auto; }
    .sv-gi-card .sv-meta-text {
        font-size: 10px;
        line-height: 1.05;
        letter-spacing: 0;
    }


        .sv-skill-card .sv-meta-text .sv-meta-lines span + span,
  .sv_skill_scaling__primary-value{ font-size:32px; }
        .sv-gi-card .sv-meta-text .sv-meta-lines span + span {
            margin-top: 1px;
            font-size: 9px;
        }


    .sv-skill-level {
  .sv_skill_scaling__primary-label{
        padding: 9px 10px;
    font-size:11px;
     }
     line-height:1.08;
  }


    .sv-gi-card .sv-level-label:not([data-sv-helper-text])::after,
  .sv_skill_scaling__core-grid{
     .sv-skill-card .sv-level-label:not([data-sv-helper-text])::after {
    grid-template-columns:repeat(2, minmax(0, 1fr));
        font-size: 12px;
     width:100%;
    }
    align-items:stretch;
  }


    .sv_skill_scaling {
  .sv_skill_scaling__core-pill{
        padding: 9px 10px 10px;
    width:100%;
     }
    min-width:0;
    min-height:30px;
    padding:8px 7px;
     justify-self:stretch;
    justify-content:center;
    align-items:center;
    text-align:center;
  }


        .sv_skill_scaling .sv-skill-level,
  .sv_skill_scaling__core-value{ font-size:14px; }
        .sv_skill_scaling__level {
  .sv_skill_scaling__core-unit{ font-size:11px; }
            padding: 0 0 9px;
  .sv_skill_scaling__core-label{ font-size:10px; }
        }


    /* Keep the cluster intact; scale down */
  .sv_skill_scaling__core-value,
    .sv_skill_scaling__primary-value {
  .sv_skill_scaling__core-unit,
        font-size: 42px;
  .sv_skill_scaling__core-label{
        letter-spacing: -0.60px;
    width:100%;
    }
    text-align:center;
  }


    .sv_skill_scaling__primary-label {
  .sv-skill-tabs .sv-tab-section-title{
        font-size: 11px;
    margin:0 0 9px;
     }
    font-size:12px;
     line-height:1.08;
  }


    .sv_skill_scaling__stat-pill {
  .sv-skill-tabs .sv-mech-panel{
        width: 104px;
    grid-template-columns:1fr;
        min-height: 24px;
    row-gap:12px;
        padding: 5px 9px;
  }
    }


    .sv_skill_scaling__stat-icon {
  .sv-skill-tabs .sv-mech-panel__mods,
        width: 13px;
  .sv-skill-tabs .sv-mech-panel__keywords{ grid-column:1; }
        height: 13px;
    }


    .sv_skill_scaling__stat-value {
  .sv-skill-tabs .sv-mech-panel__group{
        font-size: 14px;
    min-height:auto;
     }
    max-height:none;
     padding:10px 11px 11px;
  }


    .sv_skill_scaling__stat-pill.is-inactive::before {
  .sv-skill-tabs .sv-mech-mod-grid{
        font-size: 14px;
    grid-template-columns:repeat(2, minmax(0, 1fr));
     }
     gap:9px;
  }


    .sv_skill_scaling__stats-grid {
  .sv-skill-tabs .sv-mech-mod-pill{
        row-gap: 8px;
    min-height:50px;
        column-gap: 10px;
    padding:8px 8px 7px;
    }
    border-radius:14px;
  }


    .sv_skill_scaling__core-grid {
  .sv-skill-tabs .sv-mech-mod-pill__label{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    font-size:10px;
    }
    line-height:1.06;
  }


    /* Fallback if meta row renders global .sv-pill */
  .sv-skill-tabs .sv-mech-mod-pill__value{
     .sv-skill-card .sv-skill-meta .sv-pill,
    margin-top:4px;
    .sv-gi-card .sv-skill-meta .sv-pill {
    font-size:14px;
        min-height: 24px;
     line-height:1.05;
        gap: 5px;
  }
        font-size: 10px;
 
        line-height: 1.05;
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills{ gap:8px; }
        letter-spacing: 0;
 
     }
  .sv-skill-tabs .sv-mech-keyword-pill{
}
    min-height:40px;
    padding:8px 10px;
    border-radius:14px;
  }
 
  .sv-skill-tabs .sv-mech-keyword-pill__label{
    font-size:13px;
    line-height:1.12;
  }
 
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill,
  .sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl{
    min-height:46px;
    padding:10px 12px;
     border-radius:14px;
  }
 
  .sv-skill-tabs .sv-mech-panel__keywords .sv-tab-pills.sv-tab-pills--xl .sv-mech-keyword-pill__label,
  .sv-skill-tabs .sv-mech-keyword-pill.sv-pill--xl .sv-mech-keyword-pill__label{
    font-size:14px;
  }


@media (max-width:360px) {
  .sv-skill-card .sv-skill-meta,
    .sv-gi-card .sv-disclose,
  .sv-gi-card .sv-skill-meta{
    .sv-skill-card .sv-disclose {
    gap:8px;
        flex: 1 1 100%;
    width:100%;
        max-width: 100%;
    max-width:none;
     }
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
     align-items:stretch;
  }


    /* Ultra-tight: preserve side-by-side cluster without overflow */
  .sv-skill-card .sv-meta-card,
    .sv_skill_scaling__primary-value {
  .sv-gi-card .sv-meta-card{
        font-size: 36px;
    flex:1 1 calc(50% - 4px);
        letter-spacing: -0.50px;
    min-width:0;
     }
    min-height:36px;
    gap:8px;
    padding:7px 9px;
    justify-content:center;
    align-items:center;
     text-align:center;
  }


    .sv_skill_scaling__body {
  .sv-skill-card .sv-meta-icon,
        column-gap: 10px;
  .sv-gi-card .sv-meta-icon{
     }
    width:16px;
     height:16px;
  }


    .sv_skill_scaling__stat-pill {
  .sv-skill-card .sv-meta-text,
        width: 92px;
  .sv-gi-card .sv-meta-text{
        min-height: 22px;
    flex:1 1 auto;
        padding: 4px 8px;
    min-width:0;
     }
    font-size:11px;
    line-height:1.08;
    letter-spacing:0;
     text-align:center;
  }


    .sv_skill_scaling__stat-value {
  .sv-skill-card .sv-meta-text .sv-meta-lines span + span,
        font-size: 13px;
  .sv-gi-card .sv-meta-text .sv-meta-lines span + span{
    }
    margin-top:1px;
    font-size:10px;
  }


    .sv_skill_scaling__stat-pill.is-inactive::before {
  .sv-skill-level{ padding:10px 11px; }
        font-size: 13px;
    }


    .sv_skill_scaling__core-grid {
  /* Absorbed former micro-phone layout compaction into the default viewpoint. */
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
}