/**
 * Rules page scoped styles.
 * Mirrors ~/Downloads/watl-redesign/redesign/watl-rules-rwb-gold (7).html
 * Wrapped under .watl-rules so styles don't leak onto other pages.
 * Design tokens redeclared locally as hex (matches page_tournaments.php
 * and template-parts/news-styles.php conventions — see CLAUDE.md).
 */

.watl-rules{
  --red:#C8102E;--red-deep:#A00D24;--red-bright:#C8102E;
  --dark:#0A0E1A;--charcoal:#0D1117;--warm-dark:#0A0E1A;
  --cream:#EDF0F5;--warm-white:#F9F6F1;
  --tan:#C9A84C;--tan-muted:#B89430;
  --steel:#6B7A8D;--mid:#5A6370;--light-border:#E2E5EB;--green:#2D8A4E;
  --heading:'Bebas Neue',sans-serif;--condensed:'Barlow Condensed',sans-serif;--body:'Barlow',sans-serif;
  --sidebar-w:272px;
  font-family:var(--body);color:var(--dark);background:var(--warm-white);font-size:16px;
  display:block;
  /* Full-bleed breakout from constrained parents (same trick as .wp-gb-page). */
  width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  -webkit-font-smoothing:antialiased;
}
.watl-rules *,.watl-rules *::before,.watl-rules *::after{box-sizing:border-box;}
.watl-rules a{text-decoration:none;color:inherit;}

/* Gutenberg wraps every wp:group block's children in a
 * .wp-block-group__inner-container. display:contents collapses it so nested
 * blocks (paragraphs, lists, html widgets) behave as direct children of the
 * styled section wrapper (.rule-section, .rule-sub, .rule-body). */
.watl-rules .wp-block-group__inner-container{display:contents;}

/* Gutenberg core list block adds .wp-block-list class — matches our
 * existing .rule-body ul / .rule-body ol selectors, no special handling needed.
 * Paragraph/heading/list blocks inside a wp:group just render as plain
 * <p>/<h3>/<ul>, so descendant selectors in .rule-body continue to apply. */

/* Core wp:table renders <figure class="wp-block-table"><table>...</table></figure>.
 * When className is set to "spec-table" or "division-compare", the class lands
 * on the figure — reapply the table styles by descending into the <table>. */
.watl-rules figure.wp-block-table{margin:14px 0;}
.watl-rules figure.wp-block-table.spec-table,
.watl-rules figure.wp-block-table.division-compare{overflow-x:auto;}
.watl-rules figure.wp-block-table.spec-table table,
.watl-rules figure.wp-block-table.division-compare table{width:100%;border-collapse:collapse;margin:0;}

/* Core wp:heading adds .wp-block-heading. When editors set className to one
 * of our styled classes, the class + wp-block-heading co-exist. No extra
 * rules needed — .watl-rules .some-class still matches. */
.watl-rules a[href]:not(.sidebar-link):not(.ks-nav-btn):not(.glossary-inline){transition:all .2s;}
.watl-rules a[href]:not(.sidebar-link):not(.ks-nav-btn):hover{text-decoration:underline;text-underline-offset:3px;}
.watl-rules .arrow-link{display:inline-flex;align-items:center;gap:4px;}
.watl-rules .arrow-link:hover{gap:8px;text-decoration:underline;text-underline-offset:3px;}
.watl-rules html{scroll-behavior:smooth;scroll-padding-top:100px;}

/* Reading progress bar */
.watl-rules .progress-bar{position:fixed;top:68px;left:0;height:3px;background:var(--red);z-index:199;width:0;transition:width .1s linear;}
.watl-rules .progress-markers{position:fixed;top:68px;left:0;width:100%;height:3px;z-index:198;pointer-events:none;display:none;}
.watl-rules .progress-marker{position:absolute;top:-2px;width:7px;height:7px;border-radius:50%;background:var(--cream);border:1.5px solid var(--mid);transform:translateX(-50%);}
.watl-rules .progress-marker.passed{background:var(--red);border-color:var(--red);}
@media(max-width:900px){.watl-rules .progress-markers{display:block;}}

/* PAGE HERO */
.watl-rules .page-hero{background:var(--warm-dark);padding:clamp(32px,4vw,48px) clamp(20px,4vw,56px);position:relative;overflow:hidden;}
.watl-rules .page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(192,57,43,.1) 0%,transparent 50%);}
.watl-rules .page-hero-inner{max-width:1280px;margin:0 auto;position:relative;z-index:2;}
.watl-rules .page-hero-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.watl-rules .page-hero-tag{font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--tan);margin-bottom:8px;display:flex;align-items:center;gap:10px;}
.watl-rules .page-hero-tag::before{content:'';width:24px;height:1px;background:var(--tan);}
.watl-rules .page-hero h1{font-family:var(--heading);font-size:clamp(40px,5vw,64px);color:white;letter-spacing:3px;line-height:.95;margin-bottom:6px;}
.watl-rules .page-hero-sub{font-size:15px;color:rgba(255,255,255,.4);max-width:480px;line-height:1.5;}
.watl-rules .page-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.watl-rules .page-hero-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.watl-rules .page-hero-date{font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.25);display:flex;align-items:center;gap:6px;}
.watl-rules .page-hero-date svg{width:14px;height:14px;}
.watl-rules .page-hero-link{font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--tan);transition:color .2s;}
.watl-rules .page-hero-link:hover{color:white;}
.watl-rules .print-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:8px 16px;border-radius:3px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;}
.watl-rules .print-btn:hover{background:rgba(255,255,255,.12);color:white;}
.watl-rules .print-btn svg{width:14px;height:14px;}

/* Font size controls (desktop) */
.watl-rules .font-controls{display:flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.12);border-radius:3px;overflow:hidden;}
@media(max-width:1024px){.watl-rules .font-controls{display:none;}}
.watl-rules .font-btn{background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);font-family:var(--condensed);font-weight:700;letter-spacing:1px;padding:7px 12px;cursor:pointer;transition:all .2s;border:none;border-right:1px solid rgba(255,255,255,.08);line-height:1;display:flex;align-items:center;justify-content:center;}
.watl-rules .font-btn:last-child{border-right:none;}
.watl-rules .font-btn:hover{background:rgba(255,255,255,.15);color:white;}
.watl-rules .font-btn.active{background:var(--red);color:white;border-color:var(--red);}
.watl-rules .font-btn-sm{font-size:12px;}
.watl-rules .font-btn-md{font-size:14px;}
.watl-rules .font-btn-lg{font-size:17px;}

/* Mobile font controls — fixed bottom-right pill */
.watl-rules .mobile-font-controls{display:none;position:fixed;bottom:76px;right:20px;z-index:150;border:1px solid var(--light-border);border-radius:100px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.15);background:white;}
.watl-rules .mobile-font-btn{background:white;color:var(--dark);font-family:var(--condensed);font-weight:700;padding:10px 14px;cursor:pointer;border:none;border-right:1px solid var(--light-border);line-height:1;transition:all .15s;}
.watl-rules .mobile-font-btn:last-child{border-right:none;}
.watl-rules .mobile-font-btn:hover,.watl-rules .mobile-font-btn.active{background:var(--red);color:white;}
.watl-rules .mobile-font-btn-sm{font-size:13px;}
.watl-rules .mobile-font-btn-md{font-size:16px;}
.watl-rules .mobile-font-btn-lg{font-size:20px;}
@media(max-width:1024px){.watl-rules .mobile-font-controls{display:flex;}.watl-rules .back-top{bottom:130px;}}

/* LAYOUT */
.watl-rules .rules-layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;max-width:1280px;margin:0 auto;min-height:100vh;}

/* SIDEBAR */
.watl-rules .sidebar{position:sticky;top:68px;height:calc(100vh - 68px);overflow-y:auto;padding:20px 0 28px;border-right:1px solid var(--light-border);scrollbar-width:thin;scrollbar-color:var(--light-border) transparent;display:flex;flex-direction:column;}
.watl-rules .sidebar::-webkit-scrollbar{width:4px;}
.watl-rules .sidebar::-webkit-scrollbar-thumb{background:var(--light-border);border-radius:4px;}
.watl-rules .sidebar-search{padding:0 16px 14px;border-bottom:1px solid var(--light-border);margin-bottom:12px;flex-shrink:0;}
.watl-rules .sidebar-search-wrap{position:relative;}
.watl-rules .sidebar-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--light-border);border-radius:4px;font-size:13px;font-family:var(--body);outline:none;background:white;transition:border-color .2s;}
.watl-rules .sidebar-search input:focus{border-color:var(--red);}
.watl-rules .sidebar-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--mid);pointer-events:none;}
.watl-rules .sidebar-toc{flex:1;overflow-y:auto;padding:0 16px;}
.watl-rules .sidebar-section{margin-bottom:16px;}
.watl-rules .sidebar-label{font-family:var(--condensed);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--steel);margin-bottom:6px;}
.watl-rules .sidebar-link{display:block;padding:5px 0 5px 12px;font-family:var(--condensed);font-size:13.5px;font-weight:600;letter-spacing:.3px;color:var(--mid);transition:all .15s;cursor:pointer;border-left:2px solid transparent;background:none;border-top:0;border-right:0;border-bottom:0;text-align:left;width:100%;}
.watl-rules .sidebar-link:hover{color:var(--dark);}
.watl-rules .sidebar-link.active{color:var(--red);border-left-color:var(--red);font-weight:700;}
.watl-rules .sidebar-link.sub{font-size:12.5px;font-weight:500;padding-left:22px;color:var(--steel);}
.watl-rules .sidebar-link.sub:hover{color:var(--dark);}
.watl-rules .sidebar-link.sub.active{color:var(--red);border-left-color:var(--red);}
.watl-rules .sidebar-footer{flex-shrink:0;padding:12px 16px 0;border-top:1px solid var(--light-border);margin-top:8px;}
.watl-rules .sidebar-footer .sidebar-link{color:var(--tan-muted);padding:6px 0 6px 12px;}
.watl-rules .sidebar-footer .sidebar-link:hover{color:var(--tan);}

/* MAIN CONTENT */
.watl-rules .rules-content{padding:clamp(24px,3vw,40px) clamp(20px,4vw,48px);max-width:900px;}

/* Game overview */
.watl-rules .game-overview{background:var(--cream);border:1px solid var(--light-border);border-radius:6px;padding:28px;margin-bottom:24px;}
.watl-rules .game-overview-title{font-family:var(--heading);font-size:24px;color:var(--dark);letter-spacing:2px;margin:0 0 12px;font-weight:400;}
.watl-rules .game-overview p{font-size:15px;color:var(--dark);line-height:1.7;margin-bottom:10px;}
.watl-rules .game-overview p:last-of-type{margin-bottom:0;}
.watl-rules .game-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px;}
.watl-rules .go-card{background:var(--warm-white);border:1px solid var(--light-border);border-radius:4px;padding:12px 10px;text-align:center;}
.watl-rules .go-card-num,
.watl-rules .go-card p.go-card-num{font-family:var(--heading);font-size:clamp(22px,4vw,32px);color:var(--red);line-height:1;margin:0 0 2px;font-weight:400;}
.watl-rules .go-card-label,
.watl-rules .go-card p.go-card-label{font-family:var(--condensed);font-size:clamp(9px,1.8vw,11px);font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);margin:0;}

/* What's New callout (always-visible; editor-friendly) */
.watl-rules .whats-new{background:rgba(201,168,76,.06);border:1px solid rgba(201,168,76,.2);border-radius:6px;padding:14px 24px;margin:0 0 24px;}
.watl-rules .whats-new-title,
.watl-rules h3.whats-new-title{font-family:var(--condensed);font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--tan);margin:0 0 10px;}
.watl-rules .whats-new ul{margin:0 0 0 18px;font-size:14px;color:var(--dark);line-height:1.65;}
.watl-rules .whats-new li{margin-bottom:4px;}
.watl-rules .whats-new a{color:var(--tan);text-decoration:underline;}

/* Judge note — works on either a <div> or a <p> with class="judge-note". */
.watl-rules .judge-note,
.watl-rules p.judge-note{background:rgba(192,57,43,.04);border-left:3px solid var(--red);padding:14px 18px;border-radius:0 4px 4px 0;margin:0 0 32px;font-size:14px;color:var(--mid);line-height:1.6;}
.watl-rules .judge-note strong,
.watl-rules p.judge-note strong{color:var(--red);}

/* Rule sections — dark headers
 * The header can be either a legacy <div class="rule-section-header"> (with
 * two inline spans for the ID + title) OR a core wp:heading block with
 * className="rule-section-header". Both render identically because the class
 * carries all the visuals via CSS. */
.watl-rules .rule-section{margin-bottom:56px;scroll-margin-top:100px;}
.watl-rules .rule-section-header{display:flex;align-items:center;gap:14px;margin:0 0 24px;padding:16px 20px;background:var(--dark);color:white;border-radius:4px;position:relative;overflow:hidden;font-family:var(--heading);font-size:32px;font-weight:400;letter-spacing:2px;line-height:1;}
.watl-rules .rule-section-header::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red);}
.watl-rules .rule-section-id{font-family:var(--heading);font-size:36px;color:var(--red-bright);letter-spacing:1px;line-height:1;}
.watl-rules .rule-section-title{font-family:var(--heading);font-size:32px;color:white;letter-spacing:2px;line-height:1;}

/* Subsections. Header can be legacy div.rule-sub-header OR wp:heading block
 * with className="rule-sub-header" (level 3). */
.watl-rules .rule-sub{margin-bottom:28px;scroll-margin-top:100px;position:relative;}
.watl-rules .rule-sub-header{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:0 0 10px;border-bottom:1px solid var(--light-border);position:relative;font-family:var(--condensed);font-size:17px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--dark);}
.watl-rules h3.rule-sub-header{line-height:1.2;}
/* Secondary sub-headers (D/E "Gameplay Differences", etc.) appear inside
 * a rule-body and need extra top space to separate them from preceding
 * body blocks. Scoped via descendant selector because wp:group wraps
 * content in a display:contents inner-container. */
.watl-rules .rule-body .rule-sub-header,
.watl-rules .rule-body h3.rule-sub-header{margin-top:20px;}
.watl-rules .rule-sub-header h3{font-family:var(--condensed);font-size:17px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--dark);display:flex;align-items:center;gap:8px;margin:0;}
.watl-rules .rule-sub-num{font-family:var(--heading);font-size:20px;color:var(--red);line-height:1;}

/* Rule body */
.watl-rules .rule-body p{font-size:15px;color:var(--dark);line-height:1.7;margin-bottom:12px;}
.watl-rules .rule-body ol,.watl-rules .rule-body ul{margin:0 0 14px 20px;font-size:15px;color:var(--dark);line-height:1.7;}
.watl-rules .rule-body li{margin-bottom:6px;padding-left:2px;}
.watl-rules .rule-body ol ol,.watl-rules .rule-body ul ul{margin-top:6px;margin-bottom:6px;}
.watl-rules .rule-body strong{font-weight:700;color:var(--dark);}
.watl-rules .rule-body a{color:var(--red);text-decoration:underline;}
.watl-rules .rule-note,
.watl-rules p.rule-note{background:rgba(192,57,43,.04);border-left:3px solid var(--red);padding:12px 16px;border-radius:0 4px 4px 0;margin:14px 0;font-size:14px;color:var(--mid);line-height:1.6;}
.watl-rules .rule-note strong,
.watl-rules p.rule-note strong{color:var(--red);}

/* Glossary inline links */
.watl-rules .glossary-inline{color:var(--dark);border-bottom:1px dotted var(--tan-muted);cursor:help;transition:border-color .2s;}
.watl-rules .glossary-inline:hover{border-color:var(--red);color:var(--red);}

/* Key number chips */
.watl-rules .key-num,
.watl-rules .spec-table td strong{display:inline-flex;align-items:center;padding:2px 8px;background:rgba(100,100,110,.08);border-radius:3px;font-family:var(--heading);font-size:16px;color:#4A4A52;letter-spacing:1px;vertical-align:baseline;margin:0 2px;}
/* Spec-table cells can't carry <span class="key-num"> (Gutenberg strips
 * spans in wp:table), so the template uses <strong> inside cells and it's
 * styled as a chip here. Not applied to .division-compare because that
 * table uses <strong> for row labels which must stay as plain bold. */

/* Images */
.watl-rules .rule-img{background:var(--cream);border:1px solid var(--light-border);border-radius:4px;display:flex;align-items:center;justify-content:center;margin:16px 0;font-family:var(--condensed);font-size:11px;color:rgba(0,0,0,.15);letter-spacing:2px;text-transform:uppercase;padding:20px;text-align:center;}
.watl-rules .rule-img.wide{aspect-ratio:16/8;}
.watl-rules .rule-img.standard{aspect-ratio:16/10;}
.watl-rules .rule-img.tall{aspect-ratio:3/4;max-width:320px;}
.watl-rules .rule-img.square{aspect-ratio:1;max-width:280px;}
.watl-rules .rule-img.scoring{aspect-ratio:4/3;max-width:400px;}
.watl-rules .rule-img.lane{aspect-ratio:2/1;max-width:600px;}
.watl-rules .rule-img.flow{aspect-ratio:5/1;max-width:700px;min-height:80px;}
.watl-rules .rule-img-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;}
.watl-rules .rule-img-row .rule-img{margin:0;}
.watl-rules .rule-img-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:16px 0;}
.watl-rules .rule-img-row-3 .rule-img{margin:0;aspect-ratio:1;}

/* Styled frame for editor-inserted `wp:image` blocks in the rules body.
 * Renders the figure as a cream card (mockup-matching placeholder) so
 * empty image blocks degrade gracefully. Real uploaded images fit the
 * figure naturally via object-fit. */
.watl-rules .rule-img-row .wp-block-image,
.watl-rules .rule-body .wp-block-image{background:var(--cream);border:1px solid var(--light-border);border-radius:4px;margin:16px 0;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.watl-rules .rule-img-row .wp-block-image{margin:0;}
.watl-rules .rule-img-row .wp-block-image img,
.watl-rules .rule-body .wp-block-image img{width:100%;height:100%;object-fit:cover;display:block;font-family:var(--condensed);font-size:11px;color:rgba(0,0,0,.35);letter-spacing:2px;text-transform:uppercase;text-align:center;padding:20px;}
.watl-rules .rule-img-caption{font-family:var(--condensed);font-size:11px;color:var(--mid);letter-spacing:1px;text-transform:uppercase;text-align:center;margin-top:-8px;margin-bottom:16px;}

/* Spec table */
.watl-rules .spec-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;}
.watl-rules .spec-table th{font-family:var(--condensed);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);text-align:left;padding:8px 12px;border-bottom:2px solid var(--light-border);background:var(--cream);}
.watl-rules .spec-table td{padding:10px 12px;border-bottom:1px solid var(--light-border);color:var(--dark);}
.watl-rules .spec-table tr:hover{background:rgba(237,240,245,.5);}

/* Scoring */
.watl-rules .scoring-zone{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;font-family:var(--condensed);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.watl-rules .scoring-zone.red{background:rgba(192,57,43,.1);color:var(--red);}
.watl-rules .scoring-zone.blue{background:rgba(26,107,138,.1);color:#1a6b8a;}
.watl-rules .scoring-highlight{background:var(--cream);border:1px solid var(--light-border);border-radius:6px;padding:28px;margin-bottom:28px;scroll-margin-top:100px;}
.watl-rules .scoring-highlight .rule-sub-header{padding-bottom:12px;}

/* Killshot closing stepper */
.watl-rules .ks-stepper{background:var(--cream);border:1px solid rgba(10,14,26,.1);border-radius:6px;padding:20px;margin:20px 0;}
.watl-rules .ks-stepper-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.watl-rules .ks-stepper-dots{display:flex;gap:6px;}
.watl-rules .ks-stepper-dots span{width:8px;height:8px;border-radius:50%;background:rgba(10,14,26,.15);transition:all .3s;}
.watl-rules .ks-stepper-dots span.active{background:var(--red);width:20px;border-radius:4px;}
.watl-rules .ks-stepper-body{display:flex;gap:24px;align-items:center;}
.watl-rules .ks-stepper-visual{flex-shrink:0;}
.watl-rules .ks-stepper-info{flex:1;}
.watl-rules .ks-stepper-step{font-family:var(--condensed);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--steel);margin-bottom:4px;}
.watl-rules .ks-stepper-title{font-family:var(--heading);font-size:22px;letter-spacing:1px;color:var(--dark);margin-bottom:6px;}
.watl-rules .ks-stepper-desc{font-family:var(--body);font-size:14px;color:var(--mid);line-height:1.5;margin-bottom:8px;}
.watl-rules .ks-stepper-detail{font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:.5px;color:var(--steel);padding:6px 10px;background:rgba(10,14,26,.04);border-radius:3px;display:inline-block;}
.watl-rules .ks-stepper-nav{display:flex;justify-content:space-between;margin-top:16px;gap:12px;}
.watl-rules .ks-nav-btn{font-family:var(--condensed);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:8px 16px;border:1px solid var(--mid);background:none;color:var(--mid);border-radius:3px;cursor:pointer;flex:1;transition:all .2s;}
.watl-rules .ks-nav-btn:hover{background:var(--dark);color:var(--warm-white);border-color:var(--dark);}
.watl-rules .ks-nav-btn.blue{border-color:#2A3593;color:#2A3593;}
.watl-rules .ks-nav-btn.blue:hover{background:#2A3593;color:white;border-color:#2A3593;}
.watl-rules .ks-nav-btn:disabled{opacity:.3;cursor:default;}
.watl-rules .ks-nav-btn:disabled:hover{background:none;color:var(--mid);border-color:var(--mid);}
@media(max-width:600px){.watl-rules .ks-stepper-body{flex-direction:column;}.watl-rules .ks-stepper-visual{max-width:160px;}}

/* Target specs toggle */
.watl-rules .target-toggle{display:flex;gap:0;margin:16px auto 12px;justify-content:center;}
.watl-rules .target-toggle-btn{font-family:var(--condensed);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:8px 20px;border:1px solid var(--mid);background:transparent;color:var(--mid);cursor:pointer;transition:all .2s;}
.watl-rules .target-toggle-btn:first-child{border-radius:3px 0 0 3px;}
.watl-rules .target-toggle-btn:last-child{border-radius:0 3px 3px 0;border-left:none;}
.watl-rules .target-toggle-btn.active{background:var(--dark);color:var(--warm-white);border-color:var(--dark);}
.watl-rules .target-toggle-btn:hover:not(.active){background:rgba(10,14,26,.05);}

/* Interactive SVG scoring target */
.watl-rules .scoring-target-wrap{display:flex;flex-direction:column;align-items:center;margin:20px 0 24px;gap:12px;position:relative;}
.watl-rules .scoring-target-wrap svg{max-width:420px;width:100%;height:auto;transition:none;}
.watl-rules .scoring-target-wrap svg .ring-zone,
.watl-rules .scoring-target-wrap svg .ks-zone,
.watl-rules .scoring-target-wrap svg .bull-zone{cursor:pointer;transition:opacity .4s;}
.watl-rules .scoring-target-wrap svg .ring-zone.dim,
.watl-rules .scoring-target-wrap svg .ks-zone.dim,
.watl-rules .scoring-target-wrap svg .bull-zone.dim{opacity:.18;}
.watl-rules .target-info{text-align:center;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.watl-rules .target-info-pts{font-family:var(--heading);font-size:36px;letter-spacing:2px;line-height:1;transition:color .2s;}
.watl-rules .target-info-name{font-family:var(--condensed);font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);margin-top:2px;}
.watl-rules .target-info-spec{font-family:var(--condensed);font-size:12px;font-weight:500;letter-spacing:1px;color:var(--tan);margin-top:4px;}
.watl-rules .target-hint{font-family:var(--condensed);font-size:11px;color:var(--steel);letter-spacing:1px;text-transform:uppercase;transition:opacity .3s;}
.watl-rules .target-back-btn{display:none;font-family:var(--condensed);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);background:none;border:1px solid var(--red);padding:6px 16px;border-radius:3px;cursor:pointer;transition:all .2s;}
.watl-rules .target-back-btn:hover{background:var(--red);color:white;}
.watl-rules .target-back-btn.show{display:inline-flex;}

/* Scoring table row sync — left accent border */
.watl-rules .spec-table tr.row-hl{background:rgba(192,57,43,.08)!important;box-shadow:inset 3px 0 0 var(--red);}
.watl-rules .spec-table tr.row-hl-blue{background:rgba(34,85,170,.08)!important;box-shadow:inset 3px 0 0 #2A3593;}

/* Division compare with column highlighting */
.watl-rules .division-compare{width:100%;border-collapse:collapse;margin:14px 0;font-size:14px;min-width:520px;}
.watl-rules .division-compare th{font-family:var(--condensed);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;text-align:left;padding:10px 14px;border-bottom:2px solid var(--light-border);transition:all .2s;cursor:pointer;user-select:none;}
.watl-rules .division-compare th.rec{color:var(--green);background:rgba(45,138,78,.05);}
.watl-rules .division-compare th.am{color:var(--tan);background:rgba(201,168,76,.08);}
.watl-rules .division-compare th.pro{color:var(--red);background:rgba(192,57,43,.05);}
.watl-rules .division-compare th.label{color:var(--mid);background:var(--cream);cursor:default;}
.watl-rules .division-compare th.col-hl.rec{background:rgba(45,138,78,.18);}
.watl-rules .division-compare th.col-hl.am{background:rgba(201,168,76,.22);}
.watl-rules .division-compare th.col-hl.pro{background:rgba(192,57,43,.15);}
.watl-rules .division-compare td{padding:10px 14px;border-bottom:1px solid var(--light-border);color:var(--dark);vertical-align:top;transition:background .2s;}
.watl-rules .division-compare tr:hover td{background:rgba(237,240,245,.4);}
.watl-rules .division-compare td.hl-rec{background:rgba(45,138,78,.07)!important;}
.watl-rules .division-compare td.hl-am{background:rgba(201,168,76,.1)!important;}
.watl-rules .division-compare td.hl-pro{background:rgba(192,57,43,.07)!important;}
.watl-rules .div-col-hint{font-family:var(--condensed);font-size:11px;color:var(--steel);text-align:center;margin-top:6px;letter-spacing:1px;text-transform:uppercase;}

/* Discipline cards */
.watl-rules .discipline-card{background:var(--cream);border:1px solid var(--light-border);border-radius:6px;padding:20px;margin:0 0 20px;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;}
.watl-rules .discipline-card-icon,
.watl-rules p.discipline-card-icon{width:56px;height:56px;background:var(--warm-white);border:1px solid var(--light-border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--condensed);font-size:9px;color:rgba(0,0,0,.35);letter-spacing:1px;text-transform:uppercase;margin:0;}
.watl-rules .discipline-card-title,
.watl-rules h4.discipline-card-title{font-family:var(--heading);font-size:22px;color:var(--dark);letter-spacing:2px;margin:0 0 6px;font-weight:400;}
.watl-rules .discipline-card-stats,
.watl-rules p.discipline-card-stats{display:flex;gap:16px;flex-wrap:wrap;margin:0;}
.watl-rules .dc-stat{display:inline-flex;align-items:center;gap:6px;font-family:var(--condensed);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--mid);}
.watl-rules .dc-stat .key-num{font-size:15px;margin:0;}

/* Mid CTA — editor-safe as a paragraph block with className="mid-cta". */
.watl-rules .mid-cta,
.watl-rules p.mid-cta{background:var(--cream);border:1px solid var(--light-border);border-radius:4px;padding:16px 20px;margin:28px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--condensed);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--dark);}
.watl-rules .mid-cta-text{font-family:var(--condensed);font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--dark);}
.watl-rules .mid-cta-link,
.watl-rules p.mid-cta a,
.watl-rules .mid-cta a{font-family:var(--condensed);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:6px;transition:gap .2s;white-space:nowrap;text-decoration:none;}
.watl-rules .mid-cta a:hover{gap:10px;}

/* Search highlight */
.watl-rules mark.search-hl{background:rgba(201,168,76,.35);color:var(--dark);padding:1px 2px;border-radius:2px;}

/* GLOSSARY */
.watl-rules .glossary-btn{position:fixed;bottom:24px;right:24px;background:var(--dark);color:white;font-family:var(--condensed);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:12px 20px;border-radius:4px;border:1px solid rgba(255,255,255,.1);cursor:pointer;z-index:150;display:flex;align-items:center;gap:8px;transition:all .25s;box-shadow:0 4px 16px rgba(0,0,0,.15);}
.watl-rules .glossary-btn:hover{background:var(--red);border-color:var(--red);transform:translateY(-2px);}
.watl-rules .glossary-btn svg{width:16px;height:16px;}
.watl-rules .glossary-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:250;opacity:0;pointer-events:none;transition:opacity .3s;}
.watl-rules .glossary-overlay.open{opacity:1;pointer-events:auto;}
.watl-rules .glossary-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,90vw);background:var(--warm-white);z-index:260;transform:translateX(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;box-shadow:-8px 0 32px rgba(0,0,0,.1);}
.watl-rules .glossary-panel.open{transform:translateX(0);}
.watl-rules .glossary-panel-header{position:sticky;top:0;background:var(--warm-white);padding:20px 24px;border-bottom:1px solid var(--light-border);display:flex;align-items:center;justify-content:space-between;z-index:2;}
.watl-rules .glossary-panel-title{font-family:var(--heading);font-size:24px;color:var(--dark);letter-spacing:2px;}
.watl-rules .glossary-close{background:none;border:none;font-size:24px;color:var(--mid);cursor:pointer;padding:4px;}
.watl-rules .glossary-close:hover{color:var(--red);}
.watl-rules .glossary-search{padding:12px 24px;border-bottom:1px solid var(--light-border);position:sticky;top:62px;background:var(--warm-white);z-index:1;}
.watl-rules .glossary-search input{width:100%;padding:10px 14px;border:1px solid var(--light-border);border-radius:4px;font-size:14px;font-family:var(--body);outline:none;background:white;}
.watl-rules .glossary-search input:focus{border-color:var(--red);}
.watl-rules .glossary-list{padding:8px 24px 24px;}
.watl-rules .glossary-item{padding:12px 0;border-bottom:1px solid var(--light-border);}
.watl-rules .glossary-item.hidden{display:none;}
.watl-rules .glossary-term{font-family:var(--condensed);font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--dark);margin-bottom:3px;}
.watl-rules .glossary-def{font-size:13px;color:var(--mid);line-height:1.55;}

/* MOBILE TOC */
.watl-rules .mobile-toc-btn{display:none;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--dark);color:white;font-family:var(--condensed);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:12px 24px;border-radius:100px;border:1px solid rgba(255,255,255,.1);cursor:pointer;z-index:150;box-shadow:0 4px 20px rgba(0,0,0,.25);align-items:center;gap:8px;}
.watl-rules .mobile-toc-btn svg{width:16px;height:16px;}
.watl-rules .mobile-toc-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:250;opacity:0;pointer-events:none;transition:opacity .3s;}
.watl-rules .mobile-toc-overlay.open{opacity:1;pointer-events:auto;}
.watl-rules .mobile-toc-sheet{position:fixed;bottom:0;left:0;right:0;max-height:75vh;background:var(--warm-white);z-index:260;transform:translateY(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);border-radius:16px 16px 0 0;overflow-y:auto;box-shadow:0 -8px 32px rgba(0,0,0,.15);}
.watl-rules .mobile-toc-sheet.open{transform:translateY(0);}
.watl-rules .mobile-toc-handle{width:40px;height:4px;background:var(--light-border);border-radius:4px;margin:12px auto;}
.watl-rules .mobile-toc-search{padding:0 20px 12px;position:relative;}
.watl-rules .mobile-toc-search svg{position:absolute;left:32px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--mid);pointer-events:none;}
.watl-rules .mobile-toc-search input{width:100%;padding:10px 14px 10px 36px;border:1px solid var(--light-border);border-radius:4px;font-size:14px;font-family:var(--body);outline:none;background:white;}
.watl-rules .mobile-toc-search input:focus{border-color:var(--red);}
.watl-rules .mobile-toc-inner{padding:0 20px 24px;}
.watl-rules .mobile-toc-inner .sidebar-label{margin-top:14px;}
.watl-rules .mobile-toc-inner .sidebar-link{display:block;padding:9px 0 9px 12px;font-family:var(--condensed);font-size:15px;font-weight:600;color:var(--mid);border-left:2px solid transparent;}
.watl-rules .mobile-toc-inner .sidebar-link.sub{font-size:14px;padding-left:24px;color:var(--steel);}

/* BACK TO TOP */
.watl-rules .back-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;background:var(--dark);color:white;border:1px solid rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:140;opacity:0;pointer-events:none;transition:all .3s;box-shadow:0 4px 12px rgba(0,0,0,.12);}
.watl-rules .back-top.show{opacity:1;pointer-events:auto;}
.watl-rules .back-top:hover{background:var(--red);border-color:var(--red);transform:translateY(-2px);}
.watl-rules .back-top svg{width:16px;height:16px;}

/* QUESTION FORM — dark */
.watl-rules .question-form{background:var(--warm-dark);border:none;border-radius:6px;padding:36px;margin-top:48px;position:relative;overflow:hidden;}
.watl-rules .question-form::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(201,168,76,.06) 0%,transparent 50%);}
.watl-rules .question-form>*{position:relative;z-index:1;}
.watl-rules .question-form h3{font-family:var(--heading);font-size:28px;color:white;letter-spacing:2px;margin-bottom:6px;}
.watl-rules .question-form p{font-size:14px;color:rgba(255,255,255,.4);margin-bottom:20px;}
.watl-rules .qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.watl-rules .qf-field{display:flex;flex-direction:column;gap:4px;}
.watl-rules .qf-field.full{grid-column:1/-1;}
.watl-rules .qf-field label{font-family:var(--condensed);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.35);}
.watl-rules .qf-field input,.watl-rules .qf-field textarea,.watl-rules .qf-field select{padding:10px 14px;border:1px solid rgba(255,255,255,.1);border-radius:4px;font-size:14px;font-family:var(--body);outline:none;background:rgba(255,255,255,.06);color:white;resize:vertical;}
.watl-rules .qf-field input:focus,.watl-rules .qf-field textarea:focus,.watl-rules .qf-field select:focus{border-color:var(--red);}
.watl-rules .qf-field input::placeholder,.watl-rules .qf-field textarea::placeholder{color:rgba(255,255,255,.2);}
.watl-rules .qf-field select option{background:var(--dark);color:white;}
.watl-rules .qf-field textarea{min-height:80px;}
.watl-rules .qf-honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none;height:0;}
.watl-rules .qf-status{font-family:var(--condensed);font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-top:10px;padding:10px 14px;border-radius:3px;}
.watl-rules .qf-status.ok{background:rgba(45,138,78,.15);color:#6ec291;border:1px solid rgba(45,138,78,.3);}
.watl-rules .qf-status.err{background:rgba(192,57,43,.15);color:#e89084;border:1px solid rgba(192,57,43,.3);}
.watl-rules .question-form .btn-p{background:var(--red);color:white;font-family:var(--condensed);font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:14px 32px;border:2px solid var(--red);border-radius:2px;cursor:pointer;transition:all .35s cubic-bezier(.16,1,.3,1);display:inline-flex;align-items:center;gap:8px;position:relative;overflow:hidden;box-sizing:border-box;}
.watl-rules .question-form .btn-p::before{content:'';position:absolute;inset:0;background:white;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1);z-index:0;}
.watl-rules .question-form .btn-p span,.watl-rules .question-form .btn-p svg{position:relative;z-index:1;}
.watl-rules .question-form .btn-p:hover{border-color:white;box-shadow:0 0 0 3px rgba(255,255,255,.15);transform:translateY(-2px);}
.watl-rules .question-form .btn-p:hover::before{transform:scaleX(1);}
.watl-rules .question-form .btn-p:hover span{color:var(--dark)!important;}

/* Print */
@media print{
  .watl-rules .sidebar,.watl-rules .glossary-btn,.watl-rules .mobile-toc-btn,
  .watl-rules .back-top,.watl-rules .progress-bar,.watl-rules .progress-markers,
  .watl-rules .print-btn,.watl-rules .target-back-btn,.watl-rules .target-hint,
  .watl-rules .ks-stepper-nav,.watl-rules .ks-nav-btn,.watl-rules .mid-cta,
  .watl-rules .target-toggle,.watl-rules .div-col-hint,
  .watl-rules .game-overview,.watl-rules .whats-new,
  .watl-rules .mobile-font-controls,.watl-rules .font-controls{display:none!important;}
  .watl-rules .rules-layout{grid-template-columns:1fr;}
  .watl-rules .rule-section{break-before:page;}
  .watl-rules .scoring-target-wrap svg{max-width:300px;}
  .watl-rules .ks-stepper,.watl-rules .spec-table{page-break-inside:avoid;}
}

/* Responsive */
@media(max-width:1024px){
  .watl-rules .rules-layout{grid-template-columns:1fr;}
  .watl-rules .sidebar{display:none;}
  .watl-rules .mobile-toc-btn{display:flex;}
  .watl-rules .glossary-btn{display:none;}
  .watl-rules .back-top{bottom:72px;}
  .watl-rules .rule-img-row{grid-template-columns:1fr;}
  .watl-rules .rule-img-row-3{grid-template-columns:1fr 1fr;}
  .watl-rules .discipline-card{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .watl-rules .page-hero-row{flex-direction:column;align-items:flex-start;}
  .watl-rules .page-hero-actions{align-items:flex-start;}
  .watl-rules .qf-grid{grid-template-columns:1fr;}
  .watl-rules .rule-img-row-3{grid-template-columns:1fr;}
  .watl-rules .division-compare{font-size:13px;}
  .watl-rules .division-compare th,.watl-rules .division-compare td{padding:8px 10px;}
  .watl-rules .mobile-toc-btn{bottom:16px;}
  .watl-rules .back-top{bottom:64px;}
}

/* ================================================================
 * Section intro paragraph (Sections C/D/E) — small muted lede under
 * the section header, before rule-subs or diagrams.
 * ================================================================ */
.watl-rules .rule-section-lede,
.watl-rules p.rule-section-lede{font-size:15px;color:var(--mid);line-height:1.6;margin:0 0 20px;}

/* ================================================================
 * Previous Rulebook callout — neutral cream card at page footer.
 * ================================================================ */
.watl-rules .previous-rules{margin-top:36px;padding:18px 20px;background:var(--cream);border:1px solid var(--light-border);border-radius:4px;}
.watl-rules .previous-rules p{font-size:14px;color:var(--mid);line-height:1.5;margin:0;}
.watl-rules .previous-rules p strong{color:var(--dark);}
.watl-rules .previous-rules a{color:var(--red);text-decoration:underline;}

/* ================================================================
 * Anchor copy icon (appears on every sub-header). Clicking copies
 * the section URL to clipboard; `.anchor-copied` flashes on success.
 * ================================================================ */
.watl-rules .anchor-link{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:3px;color:var(--steel);cursor:pointer;opacity:0;transition:opacity .2s,color .2s,background .2s;margin-left:auto;flex-shrink:0;}
.watl-rules .anchor-link svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;}
.watl-rules .rule-sub-header:hover .anchor-link,
.watl-rules .scoring-highlight > .rule-sub-header:hover .anchor-link{opacity:1;}
.watl-rules .anchor-link:hover{color:var(--red);background:rgba(192,57,43,.08);}
.watl-rules .anchor-copied{font-family:var(--condensed);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--green);margin-left:6px;opacity:0;transition:opacity .2s;}
.watl-rules .anchor-copied.show{opacity:1;}

/* ================================================================
 * What's New — collapsible. `.whats-new-body` is closed by default;
 * rules.js toggles max-height inline to animate open.
 * ================================================================ */
.watl-rules .whats-new-title{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;user-select:none;}
.watl-rules .whats-new-title .wn-label{display:inline-flex;align-items:center;gap:8px;}
.watl-rules .whats-new-title .wn-icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.watl-rules .wn-arrow{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .3s ease;}
.watl-rules .whats-new.open .wn-arrow{transform:rotate(180deg);}
.watl-rules .whats-new-body{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.watl-rules .whats-new-body ul{margin-top:12px;}
.watl-rules p.whats-new-changelog{font-size:13px;margin-top:8px;}

/* ================================================================
 * Lane diagram widget (Section A3).
 * ================================================================ */
.watl-rules .lane-diagram{display:flex;flex-direction:column;align-items:center;margin:0 0 16px;}
.watl-rules .lane-diagram svg{max-width:520px;width:100%;}
.watl-rules .lane-diagram-caption{font-family:var(--condensed);font-size:11px;color:var(--steel);letter-spacing:1px;text-transform:uppercase;margin-top:4px;}

/* ================================================================
 * Target specs widget (Section A4).
 * ================================================================ */
.watl-rules .target-specs-diagram{display:flex;flex-direction:column;align-items:center;margin:0 0 20px;}
.watl-rules .target-specs-diagram svg{max-width:520px;width:100%;height:auto;}
.watl-rules .target-specs-diagram-caption{font-family:var(--condensed);font-size:11px;color:var(--steel);letter-spacing:1px;text-transform:uppercase;margin-top:8px;}

/* ================================================================
 * Division diagrams widget (Section C): Rec / Am / Pro targets.
 * ================================================================ */
.watl-rules .division-diagrams{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0;}
.watl-rules .division-diagram{text-align:center;}
.watl-rules .division-diagram svg{max-width:140px;width:100%;}
.watl-rules .division-diagram-label{font-family:var(--condensed);font-size:clamp(9px,2.5vw,11px);font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dark);margin-top:4px;}
.watl-rules .division-diagram-hint{font-family:var(--body);font-size:clamp(9px,2.2vw,11px);color:var(--steel);}
.watl-rules .division-diagrams-caption{font-family:var(--condensed);font-size:11px;color:var(--steel);letter-spacing:1px;text-transform:uppercase;text-align:center;margin-bottom:16px;}

/* ================================================================
 * Game Simulator (Section B4). All animation keyframes needed by
 * the widget live in this block so the markup doesn't need inline
 * <style>.
 * ================================================================ */
@keyframes sim-score-pop{0%{transform:scale(1);}50%{transform:scale(1.4);}100%{transform:scale(1);}}
@keyframes sim-score-flash{0%{background:rgba(192,57,43,.25);}100%{background:transparent;}}
@keyframes sim-arrow-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
@keyframes sim-pulse-grow{0%,100%{transform:scale(1);}50%{transform:scale(1.15);}}
@keyframes sim-score-big{0%{transform:scale(1);color:var(--dark);}30%{transform:scale(1.6);color:#C82027;}100%{transform:scale(1);color:var(--dark);}}
@keyframes sim-perfect-glow{0%{box-shadow:0 0 0 0 rgba(200,32,39,.4);}50%{box-shadow:0 0 20px 8px rgba(200,32,39,.3);}100%{box-shadow:0 0 0 0 rgba(200,32,39,.4);}}
@keyframes sim-perfect-rainbow{0%{color:#C82027;}25%{color:#2A3593;}50%{color:#C9A84C;}75%{color:#C82027;}100%{color:#C82027;}}
@keyframes confetti-fall{0%{transform:translateY(-10px) rotate(0deg);opacity:1;}100%{transform:translateY(400px) rotate(720deg);opacity:0;}}
@keyframes sim-ks-pulse{0%{r:12;opacity:.5;}100%{r:22;opacity:0;}}

.watl-rules .game-sim{position:relative;}
.watl-rules .game-sim-header{flex-direction:column;gap:8px;align-items:stretch;}
.watl-rules .game-sim-header-row{display:flex;justify-content:space-between;align-items:center;}
.watl-rules .game-sim-title{font-family:var(--heading);font-size:20px;letter-spacing:2px;color:var(--red);}
.watl-rules .game-sim-restart{flex:none;padding:4px 12px;}
.watl-rules .game-sim-hint{font-family:var(--condensed);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--mid);}

.watl-rules .sim-layout{display:flex;gap:20px;align-items:flex-start;}
.watl-rules .sim-target-col{flex:1;min-width:0;position:relative;}
.watl-rules .sim-target-col #simTarget{width:100%;cursor:crosshair;}
.watl-rules .sim-target-col #simTarget.done{cursor:default;}
.watl-rules .sim-score-col{width:170px;flex-shrink:0;}

.watl-rules .sim-ks-pulse{opacity:0;display:none;}
.watl-rules .sim-ks-pulse.active{display:inline;animation:sim-ks-pulse 1.2s ease-out infinite;}

.watl-rules .sim-ks-alert{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(10,14,26,.92);color:var(--warm-white);padding:14px 20px;border-radius:6px;font-family:var(--condensed);font-size:13px;font-weight:600;letter-spacing:.5px;text-align:center;max-width:240px;z-index:2;}
.watl-rules .sim-ks-alert.show{display:block;}
.watl-rules .sim-confetti{display:none;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:3;}
.watl-rules .sim-confetti.show{display:block;}
.watl-rules .sim-perfect{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;text-align:center;background:rgba(250,248,245,.92);padding:24px 36px;border-radius:8px;border:2px solid #C82027;box-shadow:0 4px 24px rgba(0,0,0,.15);}
.watl-rules .sim-perfect.show{display:block;}
.watl-rules .sim-perfect-label{font-family:var(--heading);font-size:32px;color:#C82027;letter-spacing:3px;}
.watl-rules .sim-perfect-sub{font-family:var(--condensed);font-size:14px;color:var(--dark);letter-spacing:1px;margin-top:4px;}

.watl-rules .sim-total-box{text-align:center;padding:14px 0;border:1px solid rgba(10,14,26,.15);border-radius:6px;margin-bottom:10px;background:rgba(10,14,26,.02);transition:all .3s;}
.watl-rules .sim-total-label{font-family:var(--condensed);font-size:10px;color:var(--steel);letter-spacing:.5px;text-transform:uppercase;}
.watl-rules .sim-total-num{font-family:var(--heading);font-size:48px;color:var(--dark);line-height:1;letter-spacing:2px;}
.watl-rules .sim-best-bar{font-family:var(--condensed);font-size:10px;color:var(--steel);letter-spacing:.3px;margin-top:4px;}
.watl-rules .sim-best-bar.perfect{color:#C82027;font-size:12px;font-weight:700;}
.watl-rules .sim-perfect-total{animation:sim-perfect-glow 1.5s ease-in-out 3,sim-perfect-rainbow 2s ease-in-out infinite;background:linear-gradient(135deg,rgba(200,32,39,.06),rgba(42,53,147,.06),rgba(201,168,76,.06));border-color:#C82027!important;}
.watl-rules .sim-total-num.sim-score-pop{animation:sim-score-pop .35s ease-out;}
.watl-rules .sim-total-num.sim-score-big{animation:sim-score-big .5s ease-out;}

.watl-rules .sim-halves{font-family:var(--condensed);font-size:9px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--steel);margin-bottom:6px;display:flex;justify-content:space-between;}
.watl-rules .sim-throw-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;}
.watl-rules .sim-throw-box{text-align:center;border:1px solid rgba(10,14,26,.15);border-radius:3px;padding:6px 0;transition:all .3s;background:transparent;}
.watl-rules .sim-throw-box.next{background:rgba(192,57,43,.04);border-color:var(--red);}
.watl-rules .sim-throw-box.next .sim-throw-val{color:var(--red);}
.watl-rules .sim-throw-box.low{background:rgba(10,14,26,.03);border-color:rgba(10,14,26,.15);}
.watl-rules .sim-throw-box.mid{background:rgba(200,32,39,.06);border-color:rgba(200,32,39,.2);}
.watl-rules .sim-throw-box.mid .sim-throw-val{color:#C82027;}
.watl-rules .sim-throw-box.high{background:rgba(42,53,147,.08);border-color:rgba(42,53,147,.3);}
.watl-rules .sim-throw-box.high .sim-throw-val{color:#2A3593;}
.watl-rules .sim-throw-box.sim-box-flash{animation:sim-score-flash .6s ease-out;}
.watl-rules .sim-throw-val{font-family:var(--heading);font-size:16px;color:var(--steel);line-height:1;}
.watl-rules .sim-throw-label{font-family:var(--condensed);font-size:9px;color:var(--steel);letter-spacing:.3px;margin-top:2px;}
.watl-rules .sim-switch{font-family:var(--condensed);font-size:9px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--red);text-align:center;margin:6px 0;opacity:.7;}
.watl-rules .sim-step-num{font-family:var(--condensed);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--steel);margin-top:10px;text-align:center;}
.watl-rules .sim-ks-call-area{text-align:center;margin-top:10px;}

.watl-rules .sim-instructions{margin-top:12px;}
.watl-rules .sim-instr-title{font-family:var(--heading);font-size:18px;letter-spacing:1px;color:var(--dark);margin-bottom:6px;}
.watl-rules .game-sim #simDesc ul{margin:0;padding-left:18px;font-size:13px;color:var(--mid);line-height:1.6;}
.watl-rules .game-sim #simDesc p{font-size:13px;color:var(--mid);margin:0;}

.watl-rules .sim-sudden-death{display:none;text-align:center;padding:16px 0;border-top:1px solid rgba(10,14,26,.1);margin-top:16px;}
.watl-rules .sim-sudden-death.show{display:block;}
.watl-rules .sim-sudden-death p{font-family:var(--body);font-size:14px;color:var(--mid);margin-bottom:12px;}
.watl-rules .sim-sd-start{display:inline-flex;padding:10px 24px;flex:none;}

.watl-rules .ks-call-btn{font-family:var(--condensed);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:10px 20px;border:1px solid var(--red);background:transparent;color:var(--red);border-radius:3px;cursor:pointer;display:inline-block;transition:all .2s;}
.watl-rules .ks-call-btn:hover{background:var(--red);color:white;}
.watl-rules .ks-call-btn.active{background:#2A3593;color:white;border-color:#2A3593;cursor:default;}
.watl-rules .ks-reminder{font-family:var(--condensed);font-size:13px;color:var(--red);margin-top:14px;letter-spacing:.3px;}
.watl-rules .ks-remind-arrow{display:inline-block;animation:sim-arrow-bounce .6s ease-in-out 3;color:var(--red);font-size:14px;vertical-align:middle;margin-right:2px;}
.watl-rules .ks-remind-text{animation:sim-pulse-grow 1s ease-in-out 5;display:inline-block;transform-origin:center;}

@media(max-width:600px){
  .watl-rules .sim-layout{flex-direction:column;align-items:center;}
  .watl-rules .sim-score-col{width:100%;}
  .watl-rules .sim-target-col{max-width:340px;}
}
