body:has(.rt-tool) {
  --rt-ink: #192e34;
  --rt-muted: #5e7070;
  --rt-paper: #f1f1e9;
  --rt-surface: #fbfaf4;
  --rt-line: #d9ded5;
  --rt-forest: #245c50;
  --rt-deep: #173d38;
  --rt-coral: #c45c46;
  --rt-sun: #e5b65e;
  --rt-shadow: 0 16px 42px rgba(25, 46, 52, .07);
  background: var(--rt-paper);
  color: var(--rt-ink);
  font-family: "DM Sans", "Avenir Next", Avenir, sans-serif;
}

body:has(.rt-tool) .site-header {
  background: rgba(251, 250, 244, .92);
  border-color: var(--rt-line);
}

body:has(.rt-tool) .brand,
body:has(.rt-tool) .home-link { color: var(--rt-ink); }
body:has(.rt-tool) .brand span:first-child { color: var(--rt-forest); }
body:has(.rt-tool) .page { width: min(100% - 42px, 1120px); padding-top: 26px; }
body:has(.rt-tool) footer { border-color: var(--rt-line); }

.rt-tool, .rt-tool * { box-sizing: border-box; }
.rt-tool {
  --rt-radius: 20px;
  color: var(--rt-ink);
}
.rt-tool h1, .rt-tool h2, .rt-tool h3, .rt-tool h4 {
  color: var(--rt-ink);
  font-family: "Fraunces", Georgia, serif;
  letter-spacing: -.035em;
}
.rt-tool a { color: var(--rt-deep); text-underline-offset: 3px; }
.rt-breadcrumb {
  display: flex; align-items: center; gap: 10px; margin: 0 0 20px;
  color: var(--rt-muted); font-size: .84rem;
}
.rt-breadcrumb a { color: var(--rt-muted); font-weight: 650; }
.rt-hero {
  position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(230px, .7fr);
  min-height: 390px; align-items: center; overflow: hidden;
  padding: clamp(30px, 5.8vw, 66px); margin-bottom: 20px;
  border: 1px solid #ccd8cb; border-radius: 28px;
  background: linear-gradient(116deg, #e0eadd 0%, #f3efdf 63%, #f0dccf 100%);
}
.rt-hero:before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .25;
  background-image: repeating-linear-gradient(0deg, transparent 0, transparent 31px, rgba(36,92,80,.13) 32px),
    repeating-linear-gradient(90deg, transparent 0, transparent 31px, rgba(36,92,80,.12) 32px);
  mask-image: linear-gradient(90deg, #000, transparent 87%);
}
.rt-hero-copy { position: relative; z-index: 1; }
.rt-kicker {
  display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin: 0 0 20px;
  color: var(--rt-deep); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.rt-kicker span { color: var(--rt-coral); }
.rt-hero h1 { max-width: 730px; margin: 0 0 18px; font-size: clamp(2.55rem, 6.4vw, 5.2rem); line-height: .98; }
.rt-hero h1 em { color: var(--rt-forest); font-weight: 500; }
.rt-intro { max-width: 610px; margin: 0; color: #405854; font-size: clamp(1rem, 1.7vw, 1.15rem); line-height: 1.66; }
.rt-promise {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 24px;
  color: var(--rt-deep); font-size: .81rem; font-weight: 750;
}
.rt-promise span {
  display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%;
  color: var(--rt-deep); background: rgba(255,255,255,.55); font: 750 .72rem "DM Sans", sans-serif;
}
.rt-hero-art { position: relative; width: min(100%, 340px); aspect-ratio: 1; justify-self: end; }
.rt-orbit { position: absolute; inset: 11%; border: 1px solid rgba(36,92,80,.29); border-radius: 50%; }
.rt-orbit-one { transform: rotate(-29deg) scaleX(.78); }
.rt-orbit-two { inset: 21% 2%; transform: rotate(53deg) scaleX(.74); border-color: rgba(196,92,70,.34); }
.rt-art-center {
  position: absolute; top: 50%; left: 50%; display: grid; width: 126px; height: 126px; place-content: center;
  border: 1px solid rgba(23,61,56,.18); border-radius: 50%; background: rgba(251,250,244,.73);
  color: var(--rt-deep); font: 600 1.45rem/1.05 "Fraunces", Georgia, serif; text-align: center;
  transform: translate(-50%,-50%) rotate(-7deg);
}
.rt-art-label {
  position: absolute; border: 1px solid rgba(36,92,80,.2); border-radius: 99px; padding: 7px 11px;
  background: rgba(251,250,244,.83); color: var(--rt-deep); font-size: .68rem; font-weight: 750;
}
.rt-art-a { top: 18%; left: 4%; transform: rotate(-8deg); }
.rt-art-b { right: 1%; top: 42%; transform: rotate(7deg); }
.rt-art-c { left: 17%; bottom: 14%; color: #8b4435; transform: rotate(5deg); }
.rt-caution {
  margin: 0 0 25px; padding: 15px 19px; border: 1px solid #e4d4b5; border-radius: 13px;
  background: #fbf4e5; color: #625231; font-size: .9rem; line-height: 1.55;
}
.rt-caution strong { color: #463c27; }
.rt-layout { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 21px; align-items: start; }
.rt-form { display: grid; min-width: 0; gap: 15px; }
.rt-panel {
  min-width: 0; padding: clamp(20px, 3.5vw, 30px); border: 1px solid var(--rt-line);
  border-radius: var(--rt-radius); background: var(--rt-surface); box-shadow: var(--rt-shadow);
}
.rt-panel-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px; }
.rt-step {
  flex: none; display: grid; place-items: center; width: 35px; height: 35px; border-radius: 12px;
  background: #e3ece2; color: var(--rt-deep); font: 750 .77rem "DM Sans", sans-serif;
}
.rt-panel h2 { margin: 0 0 5px; font-size: 1.35rem; line-height: 1.2; }
.rt-panel-head p { margin: 0; color: var(--rt-muted); font-size: .88rem; line-height: 1.5; }
.rt-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px 15px; }
.rt-field, .rt-choice-group { min-width: 0; }
.rt-field-wide { grid-column: 1 / -1; }
.rt-field label, .rt-choice-group legend { display: block; margin: 0 0 7px; color: #304842; font-size: .86rem; font-weight: 750; }
.rt-optional { color: #73817a; font-size: .75rem; font-weight: 600; }
.rt-required { color: #8b4435; font: 600 .75rem "DM Sans", sans-serif; }
.rt-field small, .rt-field-hint { display: block; margin: 6px 0 0; color: var(--rt-muted); font-size: .77rem; line-height: 1.5; }
.rt-tool input:not([type="checkbox"]), .rt-tool select, .rt-tool textarea {
  display: block; width: 100%; min-width: 0; padding: 11px 12px;
  border: 1px solid #cbd5ca; border-radius: 10px; background: #fffefa; color: var(--rt-ink);
  font: 500 .94rem/1.45 "DM Sans", sans-serif;
}
.rt-tool select { padding-right: 32px; }
.rt-tool textarea { resize: vertical; min-height: 104px; }
.rt-tool input::placeholder, .rt-tool textarea::placeholder { color: #8a9991; }
.rt-tool input:focus-visible, .rt-tool select:focus-visible, .rt-tool textarea:focus-visible,
.rt-tool button:focus-visible, .rt-tool a:focus-visible, .rt-tool summary:focus-visible {
  outline: 3px solid rgba(36,92,80,.32); outline-offset: 2px; border-color: var(--rt-forest);
}
.rt-choice-group { margin: 0; padding: 0; border: 0; }
.rt-choice-group + .rt-choice-group { margin-top: 23px; padding-top: 19px; border-top: 1px solid var(--rt-line); }
.rt-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
.rt-choice { position: relative; display: flex; align-items: flex-start; gap: 10px; min-height: 43px; padding: 10px 11px; border: 1px solid #dbe1d8; border-radius: 10px; background: #fdfcf7; color: #344c46; cursor: pointer; font-size: .82rem; line-height: 1.4; }
.rt-choice:has(input:checked) { border-color: #5d8a75; background: #eaf1e8; color: var(--rt-deep); }
.rt-choice input { flex: none; width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--rt-forest); }
.rt-choice input:focus-visible { outline: 3px solid rgba(36,92,80,.32); outline-offset: 2px; }
.rt-aside { position: sticky; top: 20px; padding: 23px; border: 1px solid #d0d9cc; border-radius: 18px; background: #e5ece1; }
.rt-aside-mark { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 13px; background: var(--rt-forest); color: #f8f5e9; font: 600 1.25rem "Fraunces", Georgia, serif; }
.rt-aside h2 { margin: 19px 0 9px; font-size: 1.25rem; line-height: 1.15; }
.rt-aside p, .rt-aside li { color: #52645c; font-size: .83rem; line-height: 1.58; }
.rt-aside p { margin: 0; }
.rt-aside-rule { height: 1px; margin: 20px 0; background: #cbd7c9; }
.rt-aside h3 { margin: 0 0 9px; font: 750 .87rem/1.35 "DM Sans", sans-serif; letter-spacing: 0; }
.rt-aside ul { margin: 0; padding-left: 18px; }
.rt-aside li + li { margin-top: 6px; }
.rt-submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.rt-submit {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 20px;
  border: 0; border-radius: 11px; background: var(--rt-deep); color: #fbfaf4 !important;
  box-shadow: 0 8px 18px rgba(23,61,56,.15); cursor: pointer; text-decoration: none;
  font: 750 .91rem "DM Sans", sans-serif; transition: transform .18s ease, background .18s ease;
}
.rt-submit:hover { background: var(--rt-forest); transform: translateY(-2px); }
.rt-submit:disabled { cursor: not-allowed; opacity: .65; box-shadow: none; }
.rt-submit-row > span { color: var(--rt-muted); font-size: .78rem; }
.rt-error, .rt-nojs { padding: 13px 16px; margin: 0; border: 1px solid #dfb5a9; border-radius: 11px; background: #fff0eb; color: #79372b; line-height: 1.55; }
.rt-error[hidden] { display: none; }
.rt-results { margin-top: 30px; scroll-margin-top: 20px; }
.rt-results[hidden], .rt-results:empty { display: none; }
.rt-results-head {
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: clamp(23px,4vw,38px);
  border-radius: 22px; background: var(--rt-deep); color: #f8f5e9;
}
.rt-results-head h2 { margin: 0 0 9px; color: #fbfaf4; font-size: clamp(1.8rem,4vw,2.7rem); line-height: 1.05; }
.rt-results-warning { max-width: 740px; margin: 0; color: #d5e1d8; font-size: .94rem; line-height: 1.6; }
.rt-results-kicker, .rt-mini-label { margin: 0 0 8px; color: #e6bd76; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rt-count { display: grid; width: 86px; height: 86px; place-content: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #edc877; font: 700 1.65rem "Fraunces", Georgia, serif; text-align: center; }
.rt-count small { color: #d5e1d8; font: 600 .65rem "DM Sans", sans-serif; }
.rt-output-method { margin: 12px 0 18px; padding: 17px 20px; border: 1px solid #d8dfd5; border-left: 3px solid var(--rt-sun); border-radius: 11px; background: #f8f6ed; }
.rt-output-method .rt-mini-label { color: var(--rt-forest); }
.rt-output-method p:last-child { margin: 0; color: #52645c; font-size: .88rem; line-height: 1.6; }
.rt-result-list { display: grid; gap: 14px; }
.rt-result-card { position: relative; overflow: hidden; padding: clamp(20px,3vw,29px); border: 1px solid var(--rt-line); border-radius: 18px; background: var(--rt-surface); box-shadow: var(--rt-shadow); }
.rt-result-card:before { content: ""; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: var(--rt-forest); }
.rt-rank { color: var(--rt-coral); font-size: .7rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.rt-result-title { margin: 7px 0 12px; font-size: clamp(1.45rem,3vw,2rem); line-height: 1.1; }
.rt-result-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 16px; }
.rt-score, .rt-proximity { display: inline-flex; align-items: center; min-height: 30px; padding: 5px 10px; border-radius: 99px; font-size: .77rem; font-weight: 750; }
.rt-score { background: #e5eee3; color: var(--rt-deep); }
.rt-proximity { border: 1px solid #d9ded5; color: #50635c; }
.rt-unknown-note { padding: 10px 12px; margin: 0 0 15px; border-radius: 9px; background: #f8f1df; color: #635331; font-size: .82rem; line-height: 1.55; }
.rt-result-section { padding-top: 16px; margin-top: 15px; border-top: 1px solid #e6e9e1; }
.rt-result-section h4, .rt-mini-panel h4 { margin: 0 0 7px; font-size: 1rem; line-height: 1.3; }
.rt-result-section h4:not(:first-child) { margin-top: 17px; }
.rt-result-section p, .rt-result-section li, .rt-mini-panel p, .rt-mini-panel li { color: #52645c; font-size: .86rem; line-height: 1.58; }
.rt-result-section ul, .rt-result-section ol, .rt-mini-panel ul, .rt-mini-panel ol { margin: 6px 0 0; padding-left: 20px; }
.rt-result-section li + li, .rt-mini-panel li + li { margin-top: 5px; }
.rt-access { padding: 15px; border: 1px solid #eadfc8; border-radius: 12px; background: #fbf6e9; }
.rt-access h4 { color: #594e37; }
.rt-access .rt-admission-label { margin: 0; color: #594e37; font-weight: 750; }
.rt-subhead { margin: 12px 0 0; font-size: .79rem !important; font-weight: 750; }
.rt-detail-pair { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 11px; margin-top: 14px; }
.rt-mini-panel { padding: 16px; border: 1px solid #dce3d9; border-radius: 12px; background: #f6f7ef; }
.rt-mini-panel .rt-mini-label { color: var(--rt-forest); font-size: .66rem; }
.rt-mini-panel h4 { margin: 0 0 8px; }
.rt-mini-panel > p:last-child { margin-bottom: 0; }
.rt-mini-panel ol { padding-left: 19px; }
.rt-project { background: #f3ece1; border-color: #e7d9c4; }
.rt-deliverable { padding-top: 10px; margin-top: 12px; border-top: 1px solid #e5d8c4; font-weight: 700; }
.rt-global-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 14px; }
.rt-global-card { padding: 22px; border: 1px solid var(--rt-line); border-radius: 15px; background: #e9eee5; }
.rt-global-card h3 { margin: 0 0 10px; font-size: 1.16rem; }
.rt-global-card ul, .rt-global-card ol { margin: 0; padding-left: 19px; }
.rt-global-card li { color: #52645c; font-size: .87rem; line-height: 1.56; }
.rt-global-card li + li { margin-top: 7px; }
.rt-global-card .rt-mini-label { color: var(--rt-forest); }
.rt-next-card { background: #f5e9dc; border-color: #ead9c8; }
.rt-result-footer { margin-top: 15px; padding: 20px 0 4px; border-top: 1px solid var(--rt-line); }
.rt-result-footer > p { max-width: 780px; margin: 0 0 14px; color: var(--rt-muted); font-size: .86rem; line-height: 1.55; }
.rt-result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rt-reset { min-height: 46px; padding: 11px 16px; border: 1px solid #9daf9f; border-radius: 10px; background: transparent; color: var(--rt-deep); cursor: pointer; font: 700 .86rem "DM Sans", sans-serif; }
.rt-reset:hover { background: #e8eee5; }
.rt-full-link { min-height: 46px; }
.rt-method { margin-top: 34px; padding: 28px 3px 10px; border-top: 1px solid var(--rt-line); }
.rt-method-index { margin-bottom: 10px; color: var(--rt-forest); font-size: .7rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.rt-method-index span { color: var(--rt-coral); }
.rt-method h2 { margin: 0 0 12px; font-size: 1.65rem; }
.rt-method-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.rt-method-copy p { max-width: 610px; margin: 0; color: var(--rt-muted); font-size: .9rem; line-height: 1.68; }
.rt-bottom-links, .rt-links { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 19px; }
.rt-links a { font-size: .87rem; font-weight: 750; }

@media (max-width: 850px) {
  .rt-layout { grid-template-columns: 1fr; }
  .rt-aside { position: static; }
}
@media (max-width: 620px) {
  body:has(.rt-tool) .page { width: min(100% - 26px, 1120px); padding-top: 20px; }
  .rt-hero { grid-template-columns: 1fr; min-height: auto; padding: 27px 23px 15px; border-radius: 22px; }
  .rt-hero h1 { font-size: clamp(2.45rem, 12vw, 3.7rem); }
  .rt-hero-art { width: 225px; margin: 8px auto 0; justify-self: center; }
  .rt-art-center { width: 97px; height: 97px; font-size: 1.18rem; }
  .rt-fields, .rt-choice-grid, .rt-detail-pair, .rt-global-checks, .rt-method-copy { grid-template-columns: 1fr; }
  .rt-field-wide { grid-column: auto; }
  .rt-panel { padding: 19px; }
  .rt-choice { min-height: 42px; }
  .rt-submit-row { align-items: stretch; flex-direction: column; }
  .rt-submit-row .rt-submit { width: 100%; }
  .rt-results-head { grid-template-columns: 1fr; }
  .rt-count { width: 66px; height: 66px; font-size: 1.3rem; }
  .rt-result-card { padding: 20px 17px; }
  .rt-result-actions { align-items: stretch; flex-direction: column; }
  .rt-result-actions > * { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .rt-submit { transition: none; }
}
