.rules-page{background:var(--void);min-height:100vh;padding-top:76px}.rules-masthead{padding:clamp(3rem, 7vw, 5.5rem) var(--gutter) 0;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.rules-masthead:before{content:"";pointer-events:none;background:radial-gradient(70% 90% at 18% 0,#ff213029,#0000 62%);position:absolute;inset:0}.rules-masthead>*{position:relative}.rules-masthead-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;display:flex}.rules-masthead h1{font-size:clamp(3rem,6.5vw,5.2rem)}.rules-masthead p{max-width:52ch;color:var(--body);line-height:1.7}.rules-stamp{width:fit-content;color:var(--body);border:1px solid var(--line-2);font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.55rem;margin-bottom:1.1rem;padding:.5rem .8rem;font-size:.58rem;display:flex}.mode-tabs{scrollbar-width:none;gap:clamp(.6rem,2vw,2rem);margin-top:clamp(2rem,4vw,3rem);display:flex;position:relative;overflow-x:auto}.mode-tabs::-webkit-scrollbar{display:none}.mode-tab{color:var(--muted);white-space:nowrap;transition:color .2s var(--cut);flex:none;align-items:center;gap:.5rem;padding:.9rem .2rem 1.1rem;font-size:.88rem;font-weight:500;display:flex;position:relative}.mode-tab:hover{color:var(--body)}.mode-tab[aria-selected=true]{color:var(--ink)}.mode-tab svg{opacity:.65;transition:opacity .2s var(--cut)}.mode-tab[aria-selected=true] svg{opacity:1;color:var(--red-hi)}.mode-indicator{background:var(--red);height:2px;box-shadow:0 0 12px var(--red-glow);pointer-events:none;position:absolute;bottom:0;left:0}.rules-layout{padding:2.2rem var(--gutter) 6rem;grid-template-columns:264px minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,3rem);display:grid}.rules-side{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex-direction:column;gap:1.4rem;max-height:calc(100vh - 112px);padding-right:.4rem;display:flex;position:sticky;top:92px;overflow-y:auto}.side-label{color:var(--faint);font-family:var(--font-mono), monospace;letter-spacing:.2em;text-transform:uppercase;font-size:.55rem;font-weight:500}.side-cats{border-top:1px solid var(--line);flex-direction:column;margin-top:.7rem;display:flex}.side-cat{--cat:var(--red);width:100%;color:var(--muted);border-bottom:1px solid var(--line);text-align:left;transition:color .18s var(--cut), background .18s var(--cut);align-items:center;gap:.65rem;padding:.8rem .7rem;font-size:.86rem;display:flex;position:relative}.side-cat:hover{color:var(--ink);background:#ffffff08}.side-cat[aria-current=true]{color:var(--ink);background:#ffffff0d}.side-cat[aria-current=true]:before{content:"";background:var(--cat);width:2px;position:absolute;top:-1px;bottom:-1px;left:0}.side-cat>svg{color:var(--faint);transition:color .18s var(--cut);flex:none}.side-cat[aria-current=true]>svg{color:var(--cat)}.side-cat span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.side-cat b{color:var(--faint);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:.66rem;font-weight:500}.side-index{flex-direction:column;margin-top:.7rem;display:flex}.side-index button{color:var(--muted);text-align:left;transition:color .15s var(--cut);align-items:baseline;gap:.7rem;padding:.42rem .7rem .42rem 0;font-size:.79rem;display:flex}.side-index button:hover{color:var(--red-hi)}.side-index em{color:var(--faint);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;flex:none;font-size:.66rem}.side-index span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rules-controls{flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:1.6rem;display:flex}.search-box{flex:260px;align-items:center;display:flex;position:relative}.search-box>svg:first-child{color:var(--faint);pointer-events:none;position:absolute;left:.95rem}.search-box input{width:100%;height:46px;color:var(--ink);background:var(--surface);border:1px solid var(--line);transition:border-color .18s var(--cut), background .18s var(--cut);outline:none;padding:0 2.6rem 0 2.7rem;font-size:.88rem}.search-box input::placeholder{color:var(--muted)}.search-box input:focus{border-color:var(--red);background:var(--surface-2)}.search-box>button{color:var(--muted);place-items:center;padding:.35rem;display:grid;position:absolute;right:.7rem}.search-box>button:hover{color:var(--ink)}.filter-row{flex-wrap:wrap;gap:.4rem;display:flex}.filter-chip{height:46px;color:var(--muted);border:1px solid var(--line);transition:color .18s var(--cut), border-color .18s var(--cut), background .18s var(--cut);align-items:center;gap:.4rem;padding:0 .85rem;font-size:.79rem;font-weight:500;display:flex}.filter-chip:hover{color:var(--ink);border-color:var(--line-2)}.filter-chip[aria-pressed=true]{color:var(--ink);border-color:var(--line-3);background:#ffffff0f}.filter-chip[aria-pressed=true] svg{color:var(--tone,var(--red-hi))}.view-switch{border:1px solid var(--line);display:flex}.view-switch button{height:44px;color:var(--muted);transition:color .18s var(--cut), background .18s var(--cut);align-items:center;gap:.4rem;padding:0 .8rem;font-size:.78rem;font-weight:500;display:flex}.view-switch button:hover{color:var(--ink)}.view-switch button[aria-pressed=true]{color:var(--ink);background:#ffffff12}.cat-head{--cat:var(--red);border-bottom:1px solid var(--line);align-items:flex-start;gap:1.1rem;margin-bottom:1.8rem;padding-bottom:1.5rem;display:flex}.cat-head>svg{color:var(--cat);flex:none;margin-top:.35rem}.cat-head h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}.cat-head p{max-width:62ch;color:var(--muted);margin-top:.4rem;font-size:.92rem;line-height:1.55}.cat-count{color:var(--faint);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;letter-spacing:.1em;white-space:nowrap;flex:none;margin-left:auto;font-size:.68rem}.rule-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;display:grid}.rule-card{--cat:var(--red);background:var(--surface);text-align:left;transition:background .2s var(--cut);flex-direction:column;gap:.85rem;padding:1.5rem;display:flex;position:relative}.rule-card:after{content:"";pointer-events:none;transition:border-color .2s var(--cut);border:1px solid #0000;position:absolute;inset:0}.rule-card:hover{background:var(--surface-2)}.rule-card:hover:after{border-color:var(--cat)}.rule-card-top{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.rule-num{color:var(--cat);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;letter-spacing:.1em;font-size:.78rem;font-weight:600}.rule-tools{opacity:0;transition:opacity .18s var(--cut);align-items:center;gap:.25rem;display:flex}.rule-card:hover .rule-tools,.rule-card:focus-within .rule-tools{opacity:1}.rule-tools:has(button[aria-pressed=true]){opacity:1}.rule-tools button{width:30px;height:30px;color:var(--muted);border:1px solid var(--line);transition:color .16s var(--cut), border-color .16s var(--cut);place-items:center;display:grid}.rule-tools button:hover{color:var(--ink);border-color:var(--line-3)}.rule-tools button[aria-pressed=true]{color:var(--warn);border-color:#ffb02073}.rule-card h3{font-size:1.5rem;line-height:1.05}.rule-card>p{color:var(--body);font-size:.87rem;line-height:1.55}.rule-summary{border-top:1px solid var(--line);flex-direction:column;gap:.45rem;margin-top:auto;padding-top:.9rem;display:flex}.rule-summary div{color:var(--muted);align-items:flex-start;gap:.5rem;font-size:.8rem;line-height:1.45;display:flex}.rule-summary svg{flex:none;margin-top:.15rem}.rule-summary [data-kind=ok] svg{color:var(--ok)}.rule-summary [data-kind=no] svg{color:var(--danger)}.rule-list{border:1px solid var(--line);border-bottom:0}.rule-row{--cat:var(--red);background:var(--surface);border-bottom:1px solid var(--line);text-align:left;width:100%;transition:background .16s var(--cut);grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.95rem 1.2rem;display:grid}.rule-row:hover{background:var(--surface-2)}.rule-row>span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:500;overflow:hidden}.rule-row .rule-tools{opacity:1}.rules-empty{text-align:center;border:1px solid var(--line);flex-direction:column;align-items:center;gap:.7rem;padding:5rem 2rem;display:flex}.rules-empty>svg{color:var(--faint);margin-bottom:.5rem}.rules-empty h3{font-size:1.9rem}.rules-empty p{max-width:40ch;color:var(--muted);font-size:.9rem}.rules-empty .link-out{margin-top:.8rem}.side-toggle{z-index:var(--z-sticky);color:#fff;background:var(--red);align-items:center;gap:.55rem;padding:.8rem 1.2rem;font-size:.82rem;font-weight:600;display:none;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0009}.tool-section{padding:clamp(2.5rem, 5vw, 4rem) var(--gutter) 6rem}.tool-card{background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:1.8rem;width:min(880px,100%);margin-inline:auto;padding:clamp(1.6rem,3vw,2.6rem);display:flex}.tool-step{border-bottom:1px solid var(--line);color:var(--faint);font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-bottom:.9rem;font-size:.62rem;display:flex}.tool-step b{color:var(--red-hi);font-weight:500}.tool-card h2{font-size:clamp(2rem,3.6vw,3rem)}.sim-situation{color:var(--body);background:var(--surface-2);border:1px solid var(--line);padding:1.2rem 1.3rem;font-size:1rem;line-height:1.7}.sim-prompt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-bottom:.9rem;font-size:.8rem;font-weight:600}.sim-choices{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.sim-choice{color:var(--body);background:var(--surface-2);border:1px solid var(--line);transition:color .18s var(--cut), border-color .18s var(--cut), background .18s var(--cut);flex-direction:column;align-items:center;gap:.6rem;padding:1.4rem;font-size:.85rem;font-weight:600;display:flex}.sim-choice[data-answer=yes]:hover,.sim-choice[data-answer=yes][aria-pressed=true]{color:var(--ok);background:#2fd08814;border-color:#2fd08880}.sim-choice[data-answer=no]:hover,.sim-choice[data-answer=no][aria-pressed=true]{color:var(--danger);background:#ff4d5e14;border-color:#ff4d5e80}.verdict{border:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:.7rem;padding:1.5rem;display:flex}.verdict[data-correct=true]{border-color:#2fd08873}.verdict[data-correct=false]{border-color:#ff4d5e73}.verdict-head{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.6rem;font-size:.82rem;font-weight:700;display:flex}.verdict[data-correct=true] .verdict-head{color:var(--ok)}.verdict[data-correct=false] .verdict-head{color:var(--danger)}.verdict strong{color:var(--ink);font-family:var(--font-display), sans-serif;font-size:1.35rem;font-weight:400}.verdict p{color:var(--body);font-size:.92rem;line-height:1.65}.verdict-link{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-top:.4rem;padding-top:.9rem;font-size:.85rem;display:flex}.verdict-link b{color:var(--ink)}.tool-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.nav-btn{min-height:42px;color:var(--body);border:1px solid var(--line);transition:color .18s var(--cut), border-color .18s var(--cut), background .18s var(--cut);align-items:center;gap:.5rem;padding:0 1rem;font-size:.82rem;font-weight:500;display:flex}.nav-btn:hover:not(:disabled){color:var(--ink);border-color:var(--line-3);background:#ffffff0a}.nav-btn:disabled{opacity:.32;cursor:not-allowed}.quiz-question{color:var(--ink);font-family:var(--font-display), sans-serif;text-wrap:balance;font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:400;line-height:1.1}.quiz-options{flex-direction:column;gap:.6rem;display:flex}.quiz-option{color:var(--body);background:var(--surface-2);border:1px solid var(--line);text-align:left;transition:color .18s var(--cut), border-color .18s var(--cut);align-items:center;gap:1rem;padding:1.05rem 1.2rem;font-size:.92rem;display:flex}.quiz-option:hover{color:var(--ink);border-color:var(--line-3)}.quiz-option[aria-pressed=true]{color:var(--ink);border-color:var(--red)}.quiz-option em{width:30px;height:30px;color:var(--muted);border:1px solid var(--line);font-family:var(--font-mono), monospace;transition:color .18s var(--cut), background .18s var(--cut);background:#ffffff0d;flex:none;place-items:center;font-size:.74rem;font-style:normal;font-weight:600;display:grid}.quiz-option[aria-pressed=true] em{color:#fff;background:var(--red);border-color:var(--red)}.quiz-result{text-align:center;flex-direction:column;align-items:center;gap:1.2rem;display:flex}.score{border:1px solid var(--line-2);flex-direction:column;align-items:center;gap:.25rem;padding:1.1rem 2.2rem;display:flex}.score b{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:2.8rem;font-weight:700;line-height:1}.score small{font-family:var(--font-mono), monospace;letter-spacing:.2em;text-transform:uppercase;font-size:.62rem;font-weight:600}.score[data-passed=true]{color:var(--ok);border-color:#2fd08880}.score[data-passed=false]{color:var(--danger);border-color:#ff4d5e80}.quiz-result>p{max-width:56ch;color:var(--body);line-height:1.7}.breakdown{text-align:left;border-top:1px solid var(--line);width:100%;margin-top:.8rem}.breakdown li{border-bottom:1px solid var(--line);grid-template-columns:20px minmax(0,1fr);gap:.8rem;padding:1.05rem 0;list-style:none;display:grid}.breakdown svg{margin-top:.2rem}.breakdown li[data-ok=true] svg{color:var(--ok)}.breakdown li[data-ok=false] svg{color:var(--danger)}.breakdown b{color:var(--ink);font-size:.9rem;font-weight:600;display:block}.breakdown p{color:var(--muted);margin-top:.3rem;font-size:.85rem;line-height:1.55}.zones-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1px;display:grid}.zone{--zone:var(--red);background:var(--surface);flex-direction:column;gap:1.1rem;padding:1.7rem;display:flex}.zone-head{align-items:center;gap:.7rem;display:flex}.zone-head svg{color:var(--zone)}.zone-head h3{font-size:1.75rem}.zone>p{color:var(--body);font-size:.89rem;line-height:1.6}.zone-places{border-top:1px solid var(--line);margin-top:auto;padding-top:.9rem}.zone-places ul{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;list-style:none;display:flex}.zone-places li{color:var(--muted);border:1px solid var(--line);padding:.28rem .55rem;font-size:.74rem}.rule-block{border-top:1px solid var(--line);padding-top:.9rem}.rule-block h4{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.68rem;font-weight:700;display:flex}.rule-block[data-kind=ok] h4{color:var(--ok)}.rule-block[data-kind=no] h4{color:var(--danger)}.rule-block[data-kind=info] h4{color:var(--red-hi)}.rule-block[data-kind=warn] h4{color:var(--warn)}.rule-block ul{flex-direction:column;gap:.55rem;margin-top:.7rem;list-style:none;display:flex}.rule-block li{color:var(--body);align-items:flex-start;gap:.55rem;font-size:.9rem;line-height:1.55;display:flex}.rule-block li svg{opacity:.85;flex:none;margin-top:.22rem}.rule-block[data-kind=ok] li svg{color:var(--ok)}.rule-block[data-kind=no] li svg{color:var(--danger)}.rule-block[data-kind=info] li svg{color:var(--red-hi)}.rule-block[data-kind=warn] li svg{color:var(--warn)}.rule-block>p{color:var(--body);margin-top:.6rem;font-size:.9rem;line-height:1.6}.modal-backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .2s var(--cut);background:#020305d1;place-items:center;padding:clamp(.75rem,3vw,2rem);display:grid;position:fixed;inset:0}.modal{--cat:var(--red);background:var(--surface);border:1px solid var(--line-2);width:min(820px,100%);max-height:90vh;animation:modal-in .3s var(--cut);flex-direction:column;display:flex;position:relative;box-shadow:0 40px 110px #000000d9}.modal:before{content:"";background:var(--cat);height:2px;position:absolute;top:0;left:0;right:0}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.98)}}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.6rem clamp(1.2rem,3vw,2rem);display:flex}.modal-head h2{margin-top:.35rem;font-size:clamp(1.9rem,3.4vw,2.8rem)}.modal-head .rule-num{color:var(--cat)}.modal-tools{flex:none;align-items:center;gap:.45rem;display:flex}.modal-tools button{min-height:38px;color:var(--body);border:1px solid var(--line);transition:color .18s var(--cut), border-color .18s var(--cut), background .18s var(--cut);align-items:center;gap:.45rem;padding:0 .75rem;font-size:.78rem;font-weight:500;display:flex}.modal-tools button:hover{color:var(--ink);border-color:var(--line-3);background:#ffffff0a}.modal-tools button[aria-pressed=true]{color:var(--warn);border-color:#ffb02073}.modal-tools .is-primary{color:#fff;background:var(--red);border-color:var(--red)}.modal-tools .is-primary:hover{color:#fff;background:#3d92ff;border-color:#3d92ff}.modal-body{overscroll-behavior:contain;flex-direction:column;gap:1.4rem;padding:clamp(1.2rem,3vw,2rem);display:flex;overflow-y:auto}.modal-lead h4{color:var(--faint);font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;font-size:.58rem;font-weight:500}.modal-lead p{max-width:70ch;color:var(--body);margin-top:.55rem;font-size:1rem;line-height:1.7}.modal-foot{border-top:1px solid var(--line);background:var(--surface-2);justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1.2rem,3vw,2rem);display:flex}.modal-counter{color:var(--faint);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;letter-spacing:.1em;font-size:.68rem}.palette-backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .18s var(--cut);background:#020305d1;place-items:start center;padding:clamp(3rem,12vh,8rem) 1.2rem 1.2rem;display:grid;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--line-2);width:min(620px,100%);max-height:70vh;animation:modal-in .26s var(--cut);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 40px 110px #000000d9}.palette-head{border-bottom:1px solid var(--line);align-items:center;gap:.85rem;padding:1.05rem 1.2rem;display:flex}.palette-head>svg{color:var(--red-hi);flex:none}.palette-head input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:1rem}.palette-head input::placeholder{color:var(--muted)}.palette-head kbd{color:var(--faint);border:1px solid var(--line);font-family:var(--font-mono), monospace;padding:.2rem .45rem;font-size:.58rem}.palette-list{overscroll-behavior:contain;padding:.6rem;overflow-y:auto}.palette-group{color:var(--faint);font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;padding:.8rem .7rem .4rem;font-size:.55rem}.palette-item{width:100%;color:var(--body);text-align:left;transition:color .14s var(--cut), background .14s var(--cut);align-items:center;gap:.75rem;padding:.7rem;font-size:.9rem;display:flex}.palette-item:hover{color:var(--ink);background:#ffffff0f}.palette-item svg{color:var(--faint);flex:none}.palette-item:hover svg{color:var(--red-hi)}.palette-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-empty{color:var(--muted);text-align:center;padding:2rem .7rem;font-size:.86rem}.rules-toast{z-index:var(--z-toast);color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);animation:toast-in .28s var(--cut);align-items:center;gap:.65rem;padding:.8rem 1.2rem;font-size:.85rem;display:flex;position:fixed;bottom:1.6rem;left:50%;transform:translate(-50%);box-shadow:0 20px 60px #000000bf}.rules-toast svg{color:var(--red-hi)}@media (max-width:1020px){.rules-layout{grid-template-columns:1fr}.rules-side{z-index:var(--z-panel);background:var(--surface);border-right:1px solid var(--line-2);width:min(320px,88vw);height:100dvh;max-height:none;transition:transform .38s var(--cut);padding:1.5rem 1.2rem;position:fixed;top:0;left:0;transform:translate(-101%)}.rules-side[data-open=true]{transform:none}.side-toggle{display:flex}}@media (max-width:760px){.sim-choices{grid-template-columns:1fr}.modal-head{flex-direction:column;gap:1rem}.modal-tools{justify-content:space-between;width:100%}.zones-grid,.rule-grid{grid-template-columns:1fr}.rules-masthead-top{flex-direction:column;align-items:flex-start}}
