.ra-lab{color:var(--ink,#173445)}
.ra-lab [hidden]{display:none!important}
.ra-panel{padding:clamp(1rem,3vw,2rem);border:1px solid #cbd9da;border-radius:1.4rem;background:#fffefa;box-shadow:0 12px 36px #17344508}
.ra-panel h2,.ra-application h2{font-size:clamp(1.3rem,2.4vw,1.8rem)}
.ra-switch{display:flex;flex-wrap:wrap;gap:.6rem}
.ra-switch button{flex:1;min-width:180px;min-height:48px;border:1px solid #23737b;border-radius:.8rem;background:#f8fbfa;color:#185960;font-weight:750;padding:.75rem 1rem}
.ra-switch button[aria-pressed=true]{background:#185960;color:#fff}
.ra-lab button:focus-visible,.ra-lab a:focus-visible{outline:3px solid #d49b30;outline-offset:3px}
.ra-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.ra-fields-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.ra-lab label{font-weight:700}.ra-lab label input,.ra-lab label select{margin-top:.4rem}
.ra-applications{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.ra-application{position:relative;border-radius:1.3rem;padding:1.6rem;border:2px solid #d8b867;background:#fff4d8}
.ra-application.ra-couple{background:#e3f4ee;border-color:#74ad9b}
.ra-application-icon{display:block;font-size:2.4rem;margin-bottom:.5rem}
.ra-controls{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem;padding:.6rem 0;background:#fffefa}.ra-controls label{margin-left:auto;min-width:190px;font-size:.8rem}
.ra-current{margin-top:1.1rem;min-height:95px;border-left:5px solid #24757c;background:#edf6f3;border-radius:0 .8rem .8rem 0;padding:1rem}
.ra-current strong{display:block;margin-bottom:.4rem;color:#185960}
.ra-stage{scroll-margin-top:110px}
.ra-active-count{margin-top:.6rem;font-weight:750;color:#185960}
.ra-workbench{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.7rem;margin:1rem 0}
.ra-workbench>div{padding:.8rem;border:1px solid #cadbd7;border-radius:.8rem;background:#f3f7f5;text-align:center}
.ra-workbench strong{font-size:.85rem}.ra-workbench p{margin:.7rem 0 0;font-weight:800}
.ra-person-held>div{min-height:78px;display:flex;align-items:center;justify-content:center;color:#607b80;margin-top:.5rem}
.ra-person-held{background:#fff1d2!important;border-color:#c79538!important}
.ra-line-guide{font-size:.85rem;margin-bottom:.6rem}
.ra-person-line{display:flex;flex-wrap:wrap;align-items:start;gap:.55rem;list-style:none;padding:1rem;margin:0;border:2px dashed #94b4af;border-radius:1rem;min-height:120px;background:#f8fbf8}
.ra-person-token{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:53px;min-height:76px;padding:.45rem;border:2px solid currentColor;border-radius:.65rem;font-variant-numeric:tabular-nums}
.ra-person-token b{font-size:1.25rem;line-height:1.2}.ra-person-token small{font-size:.7rem}.ra-person-token em{font-size:.65rem;font-style:normal;font-weight:750;line-height:1.2;margin-top:.25rem}
.ra-person-token.is-arriving{outline:3px solid #d99e36;outline-offset:2px;animation:ra-arrive .35s ease-out}
.ra-loop-note{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:1rem 0;color:#537277;font-size:.8rem}
.ra-loop-note span{flex-basis:100%}
.ra-inline-controls{display:none}
@media(max-width:991px){.ra-inline-controls{display:flex;justify-content:center;gap:1rem;margin:1rem 0}.ra-inline-controls button{min-width:105px}}
@keyframes ra-arrive{from{transform:translateY(-8px);opacity:.4}to{transform:translateY(0);opacity:1}}
.ra-decks{display:grid;grid-template-columns:1fr .8fr 1fr;gap:1rem;align-items:start;margin:1rem 0 1.5rem;text-align:center}
.ra-decks h3{font-size:1rem;min-height:2.5rem}.ra-end-label{display:block;color:#617b80;font-size:.8rem;margin:.35rem}
.ra-stack{height:320px;overflow-y:auto;padding:.6rem;list-style:none;margin:0;border:1px dashed #b7cdcb;border-radius:1rem;background:#f5f6f1;display:flex;flex-direction:column;align-items:center;gap:3px}
.ra-card{display:flex;justify-content:center;align-items:center;min-width:65px;min-height:26px;border:1px solid #ccb889;border-radius:5px;background:#fffdf8;color:#244958;font-weight:800;box-shadow:0 2px 2px #7e683113;font-variant-numeric:tabular-nums}
.ra-held>div{display:flex;justify-content:center;align-items:center;min-height:200px}.ra-held .ra-card{min-height:84px;border:2px solid #b88226;box-shadow:0 5px 18px #b8822630}
.ra-stack .ra-empty{margin:auto;color:#75878b;font-size:.85rem}
.ra-result{padding:1.1rem;background:#f1f5f7;border:1px solid #d4e0e3;border-radius:1rem;margin:1rem 0;overflow-wrap:anywhere}
.ra-result p:last-child{margin-bottom:0}.ra-result span,.ra-queue span{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;line-height:1.8}
.ra-stage details>summary{font-weight:750;color:#185960;cursor:pointer;padding:.7rem 0}
.ra-legend{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:.6rem}.ra-legend span{padding:.35rem .7rem;border-radius:1rem;font-size:.85rem}
.ra-winner{background:#198754;color:#fff}.ra-loser{background:#096bce;color:#fff}
.ra-ring-scroll{overflow:auto;padding:.8rem 0}
.ra-ring{position:relative;aspect-ratio:1;max-width:540px;margin:1.7rem auto 0;border-radius:50%;background:radial-gradient(circle,#fffefa 0 55%,#d3e3df 55% 55.5%,#f5f9f6 55.5%);}
.ra-ring.is-dense{min-width:620px;max-width:620px}
.ra-reference{position:absolute;left:50%;top:-1.8rem;transform:translateX(-50%);font-weight:750;color:#9a562b;font-size:.8rem;white-space:nowrap}
.ra-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--node-size,38px);height:var(--node-size,38px);border:2px solid currentColor;border-radius:50%;transform:translate(-50%,-50%);font-size:var(--node-font,12px);font-weight:800;transition:left .3s ease,top .3s ease;line-height:1.05;box-shadow:0 2px 5px #17344512}
.ra-node small{font-size:.6em;margin-top:2px}.ra-node.is-reference{outline:3px solid #d59930;outline-offset:2px}.ra-node.is-inserted{box-shadow:0 0 0 5px #db9e3540}
.ra-queue{overflow-wrap:anywhere;font-size:.9rem;padding:1rem;border-radius:.8rem;background:#faf3e6}
.ra-check{font-weight:750;color:#126348;padding:1rem;border:1px solid #87bdaa;border-radius:.8rem;background:#e8f7ef}
@media(min-width:992px){
    .ra-stage.is-josephus:not(.is-result){display:grid;grid-template-columns:minmax(0,1fr) 290px;column-gap:1.5rem;padding:1.2rem;align-items:start}
    .ra-stage.is-josephus:not(.is-result)>.ra-switch{grid-column:1/-1;grid-row:1}
    .ra-stage.is-josephus:not(.is-result)>.ra-controls{position:static;grid-column:2;grid-row:2;padding-top:0;box-shadow:none}
    .ra-stage.is-josephus:not(.is-result)>.ra-controls .btn{flex:1;min-width:75px}
    .ra-stage.is-josephus:not(.is-result)>.ra-controls label{width:100%;margin-left:0}
    .ra-stage.is-josephus:not(.is-result)>.ra-transfer-setting{grid-column:2;grid-row:3}
    .ra-stage.is-josephus:not(.is-result)>.ra-current{grid-column:2;grid-row:4;margin-top:.6rem;font-size:.9rem}
    .ra-stage.is-josephus:not(.is-result)>[data-timeline]{grid-column:2;grid-row:5}
    .ra-stage.is-josephus:not(.is-result)>[data-josephus-stage]{grid-column:1;grid-row:2/span 5;min-width:0}
    .ra-stage.is-josephus:not(.is-result)>.ra-check{grid-column:1/-1;grid-row:7}
    .ra-stage.is-josephus:not(.is-result) h3{font-size:1.3rem}
    .ra-stage.is-josephus:not(.is-result) .ra-workbench>div{padding:.6rem}
}
@media(max-width:767px){.ra-fields-four{grid-template-columns:1fr 1fr}.ra-applications{grid-template-columns:1fr}.ra-controls{top:70px}.ra-controls label{width:100%;margin-left:0}.ra-decks{gap:.5rem;grid-template-columns:1fr .75fr 1fr}.ra-card{min-width:48px}.ra-stack{padding:.4rem .2rem}.ra-panel{padding:1rem}.ra-controls .btn{flex:1;min-width:68px;padding-inline:.5rem}.ra-decks h3{font-size:.85rem}}
@media(max-width:480px){.ra-workbench{grid-template-columns:1fr 1fr}.ra-workbench>div:last-child{grid-column:1/-1}.ra-person-line{gap:.4rem;padding:.6rem}.ra-person-token{min-width:45px;min-height:70px;padding:.3rem}.ra-person-token b{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){.ra-node{transition:none}.ra-person-token.is-arriving{animation:none}}
.ra-group{padding:.85rem;border:2px solid #a1cdb1;border-radius:1rem;background:#f1faf4;margin:.7rem 0}
.ra-group.ra-waiting{background:#f0f6ff;border-color:#9ec2ee}
.ra-group h4{font-size:1rem;margin:0 0 .7rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.ra-group-size{border-radius:1rem;background:#fff;padding:.15rem .6rem;color:#214b5a;font-weight:800}
.ra-group-tokens{position:relative;display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:.25rem;margin:0;min-height:48px;overflow:visible}
.ra-group-person,.ra-insertion-gap{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:50%;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}
.ra-group-person.is-selected{outline:3px solid #e59b1f;outline-offset:2px}
.ra-insertion-gap{border:3px dashed #934b90;background:#fff0fc;color:#70296d}
.ra-group-person.is-counted,.ra-insertion-gap.is-counted{outline:4px solid #e9a11f;outline-offset:3px;box-shadow:0 0 0 7px #fbe8b5;transform:scale(1.08)}
.ra-group-empty{font-size:.9rem;color:#476877;padding:.5rem}
.ra-construction-groups{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:.8rem;align-items:start}
.ra-construction-groups>.ra-group{min-width:0}
.ra-construction-viewport{overflow:auto;max-height:370px;padding:.25rem}
.ra-construction-ring{position:relative;aspect-ratio:1;max-width:300px;margin:auto;overflow:clip;background:radial-gradient(circle,#fffdf6 0 52%,#aac9b5 52% 52.8%,#e2f2e8 52.8% 66%,transparent 66%)}
.ra-construction-ring.is-large{max-width:none}
.ra-construction-ring.is-moving .ra-circle-center{width:43%;max-width:150px}
.ra-restart{font-size:.78rem;line-height:1.35;color:#70296d;font-weight:750;text-align:center;margin:.5rem 0}
.ra-provisional{color:#70296d;background:#fff0fc;border:2px dashed #934b90}
.ra-construction-people{position:absolute;inset:0;margin:0;padding:0;list-style:none;transform:rotate(var(--circle-turn,0deg));transition:transform .4s ease-in-out}
.ra-group-person.in-circle,.ra-insertion-gap.in-circle{position:absolute;display:flex;z-index:2;width:var(--construction-token-size,30px);height:var(--construction-token-size,30px);min-width:0;transform:translate(-50%,-50%) rotate(calc(-1 * var(--circle-turn,0deg)));font-size:.85rem;transition:transform .4s ease-in-out}
.in-circle.is-counted{transform:translate(-50%,-50%) rotate(calc(-1 * var(--circle-turn,0deg))) scale(1.08)}
.in-circle.is-initial-origin:before,.in-circle.is-final-head:before{content:'▼';position:absolute;top:-8px;left:50%;transform:translateX(-50%);color:#755020;font-size:.65rem;line-height:1}
.is-aligning .is-initial-origin:not(.is-final-head):before{display:none}
.ra-insertion-gap.in-circle{font-size:.7rem}
.ra-circle-origin,.ra-circle-head{font-size:.75rem;line-height:1.4;text-align:center;margin:.5rem 0;color:#755020;font-weight:750}
.ra-circle-head{color:#185960}
.ra-group-person.in-circle.is-landed{outline:4px solid #934b90;outline-offset:3px;box-shadow:0 0 0 7px #ebd2e8;z-index:4}
.ra-group-person.in-circle.is-restart-origin:not(.is-finger-target){outline:2px solid #934b90;outline-offset:2px}
.ra-insertion-gap.in-circle.is-pointing{outline:none;box-shadow:none;z-index:5}
.ra-landing{border:2px solid #b478b0;border-radius:.75rem;padding:.6rem;background:#fff5fd;margin-bottom:.6rem;text-align:center;color:#70296d;line-height:1.3}
.ra-landing strong,.ra-landing>span{display:block;font-size:.9rem}.ra-landing>span{margin-top:.2rem;font-weight:700}
.ra-landing-order{display:flex;gap:.45rem;align-items:center;justify-content:center;margin:.4rem 0}
.ra-landing-chip{display:flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 .35rem;border-radius:50%;font-size:.85rem}
.ra-landing-destination{min-width:43px;border:2px dashed #934b90;color:#70296d;background:#fff}
.ra-landing p{font-size:.72rem;margin:0}
.ra-transfer-token{position:fixed;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1rem;z-index:10000;pointer-events:none;outline:4px solid #934b90;outline-offset:2px;box-shadow:0 4px 18px #17344550}
.ra-transfer-setting{margin:.6rem 0;font-size:.8rem;line-height:1.4}.ra-transfer-setting label{display:flex;align-items:center;gap:.5rem}.ra-transfer-setting input{margin:0!important}.ra-transfer-setting p{margin:.3rem 0 0;color:#536a70;font-size:.75rem}
.ra-circle-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:53%;max-width:180px;padding:.35rem!important;gap:.25rem!important;flex-direction:column;text-align:center;pointer-events:none}
.ra-circle-center strong{font-size:1.45rem!important}.ra-circle-center>span{font-size:.7rem!important;line-height:1.25}
.ra-circle-reading{font-size:.75rem;color:#446253;margin:.5rem 0 0;text-align:center}
.ra-counting{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;padding:.6rem;border-radius:.8rem;background:#fff4d6;color:#755020}
.ra-counting>span{font-size:.85rem}.ra-counting strong{font-size:1.8rem;line-height:1.15;font-variant-numeric:tabular-nums}
.ra-count-explanation{font-size:.85rem}.ra-count-explanation p{margin-top:.6rem}
.ra-final-line{display:flex;flex-wrap:wrap;gap:4px;list-style:none;padding:.75rem 0;margin:0}
.ra-final-line li{display:flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 4px;border-radius:50%;font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums}
@media(max-width:480px){.ra-group{padding:.7rem}.ra-group-tokens{gap:.5rem}.ra-group-person,.ra-insertion-gap{flex-basis:34px;height:34px}.ra-counting{gap:.4rem .7rem}.ra-counting>span:last-child{flex-basis:100%;text-align:center}}
@media(max-width:991px){.ra-construction-groups{grid-template-columns:minmax(0,1fr)}.ra-construction-ring{max-width:340px}.ra-construction-groups>.ra-inline-controls{margin:.2rem 0}.ra-construction-ring:has(.in-circle:nth-child(31)){max-width:none}}
@media(prefers-reduced-motion:reduce){.ra-construction-people,.ra-group-person.in-circle,.ra-insertion-gap.in-circle{transition:none}}
