.buddy-page { --buddy-paper:#f7f2e7; --buddy-ink:#252622; --buddy-rust:#ac4c30; --buddy-olive:#69734d; background:var(--buddy-paper); color:var(--buddy-ink); }
.buddy-shell { max-width:1040px; padding-top:38px; padding-bottom:42px; }
.buddy-nav { display:flex; align-items:center; gap:20px; font-size:13px; }
.buddy-nav a { display:inline-flex; align-items:center; min-height:44px; }
.buddy-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.78fr); gap:20px 48px; align-items:center; }
.buddy-kicker,.buddy-eyebrow { margin:0 0 14px; color:var(--buddy-rust); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.buddy-intro h1 { margin:0; font-size:clamp(48px,7vw,82px); line-height:.99; letter-spacing:-.06em; }
.buddy-intro h1 em { color:var(--buddy-rust); font-style:normal; }
.buddy-deck { max-width:34em; margin:20px 0 0; color:#57574f; font-size:16px; line-height:1.9; }
.buddy-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin:20px 0 22px; color:#696960; font-size:12px; }
.buddy-meta span::before { content:'/'; color:var(--buddy-rust); margin-right:7px; }
.buddy-howto { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 20px; padding:0; list-style:none; }
.buddy-howto li { display:flex; flex-direction:column; gap:3px; border-top:1px solid #c9c3b6; padding:8px 6px 0 0; color:#68675e; font-size:10px; line-height:1.55; }
.buddy-howto li b { color:var(--buddy-rust); font-size:11px; letter-spacing:.08em; }
.buddy-button,.buddy-controls button,.buddy-share button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; border:1px solid var(--buddy-ink); border-radius:2px; padding:0 19px; background:var(--buddy-ink); color:#fffaf0; font:inherit; font-size:14px; font-weight:700; cursor:pointer; text-decoration:none; }
.buddy-button:hover,.buddy-controls button:hover,.buddy-share button:hover { background:var(--buddy-rust); border-color:var(--buddy-rust); }
.buddy-controls button:disabled { opacity:.46; cursor:not-allowed; }
.buddy-controls button:disabled:hover { background:var(--buddy-ink); border-color:var(--buddy-ink); }
.buddy-disclaimer { max-width:38em; margin:12px 0 0; color:#77766e; font-size:11px; line-height:1.8; }
.buddy-cover { min-height:370px; position:relative; overflow:hidden; border:1px solid var(--buddy-ink); background:#e6deca; padding:17px; display:flex; flex-direction:column; justify-content:space-between; }
.buddy-cover::before,.buddy-cover::after { content:''; position:absolute; z-index:0; pointer-events:none; }
.buddy-cover::before { inset:50px 18px 55px; border:1px solid rgba(37,38,34,.25); }
.buddy-cover::after { width:152px; height:152px; right:35px; top:88px; border:1px solid var(--buddy-rust); border-radius:50%; }
.buddy-cover-top,.buddy-cover-foot { z-index:1; display:flex; justify-content:space-between; gap:10px; font-size:10px; color:#636359; letter-spacing:.08em; }
.buddy-cover-top b { color:var(--buddy-rust); }
.buddy-cover-copy { position:relative; z-index:1; padding:36px 17px 30px; display:flex; flex-direction:column; align-items:flex-start; }
.buddy-cover-copy small { color:var(--buddy-rust); font-size:11px; letter-spacing:.08em; }
.buddy-cover-copy strong { margin:9px 0 17px; font-size:clamp(34px,5vw,55px); line-height:1.15; letter-spacing:-.055em; }
.buddy-cover-copy span { padding:7px 11px; border:1px solid var(--buddy-ink); background:var(--buddy-paper); color:#585850; font-size:11px; }
.buddy-stamp { position:absolute; z-index:1; top:110px; right:68px; width:88px; height:88px; border:2px solid var(--buddy-rust); border-radius:50%; display:grid; place-items:center; transform:rotate(11deg); color:var(--buddy-rust); font-size:17px; font-weight:900; line-height:1.05; text-align:center; }
.buddy-about { grid-column:1/-1; border-top:1px solid var(--buddy-ink); border-bottom:1px solid #d7d1c4; padding:13px 0; }
.buddy-about summary { min-height:36px; cursor:pointer; font-size:13px; font-weight:700; }
.buddy-about p { max-width:74em; margin:4px 0; color:#67665d; font-size:12px; line-height:1.8; }
.buddy-quiz { max-width:760px; margin:22px auto 0; }
.buddy-progress-head { display:flex; justify-content:space-between; align-items:baseline; gap:14px; margin-bottom:10px; color:#68675e; font-size:12px; }
.buddy-progress-head b { color:var(--buddy-ink); font-size:14px; }
.buddy-progress-head strong { color:var(--buddy-rust); font-size:16px; }
.buddy-progress { display:block; width:100%; height:4px; appearance:none; border:0; background:#ded8ca; accent-color:var(--buddy-rust); }
.buddy-progress::-webkit-progress-bar { background:#ded8ca; }.buddy-progress::-webkit-progress-value { background:var(--buddy-rust); }.buddy-progress::-moz-progress-bar { background:var(--buddy-rust); }
.buddy-q { margin:34px 0 0; }
.buddy-qmeta { margin:0 0 13px; color:var(--buddy-rust); font-size:11px; font-weight:800; letter-spacing:.1em; }
.buddy-q fieldset { border:0; margin:0; padding:0; min-width:0; }
.buddy-q legend { width:100%; padding:0; font-size:clamp(24px,4.3vw,38px); font-weight:750; line-height:1.42; letter-spacing:-.035em; }
.buddy-first-thought { margin:10px 0 20px; color:#727168; font-size:12px; }
.buddy-options { display:grid; gap:8px; }
.buddy-option { position:relative; min-height:59px; display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:12px; align-items:center; border:1px solid #c9c3b6; background:rgba(255,255,255,.22); padding:11px 14px; cursor:pointer; font-size:14px; line-height:1.7; }
.buddy-option:hover { border-color:var(--buddy-ink); background:#eee7d8; }
.buddy-option:focus-within { outline:2px solid var(--buddy-rust); outline-offset:2px; }
.buddy-option input { position:absolute; left:14px; top:50%; transform:translateY(-50%); opacity:0; width:20px; height:20px; margin:0; }
.buddy-option i { width:24px; height:24px; display:grid; place-items:center; border:1px solid #aaa497; border-radius:50%; color:#716f67; font-size:10px; font-style:normal; }
.buddy-option.is-selected { border-color:var(--buddy-rust); border-left-width:4px; background:#efe3d7; }
.buddy-option.is-selected i { background:var(--buddy-rust); border-color:var(--buddy-rust); color:#fffaf0; }
.buddy-chosen { display:none; color:var(--buddy-rust); font-size:10px; white-space:nowrap; }
.buddy-option.is-selected .buddy-chosen { display:block; }
.buddy-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:24px; }
.buddy-controls .buddy-back { color:var(--buddy-ink); background:transparent; }
.buddy-controls .buddy-back:hover { color:#fffaf0; }
.buddy-result { padding:10px 0 0; }
.buddy-result-head { border-bottom:1px solid var(--buddy-ink); padding:7px 0 20px; }
.buddy-result-head h1 { max-width:15em; margin:0; font-size:clamp(32px,5vw,52px); line-height:1.18; letter-spacing:-.04em; }
.buddy-result-head p { max-width:52em; color:#66655d; font-size:13px; line-height:1.8; }
.buddy-card { position:relative; max-width:760px; margin:24px auto; overflow:hidden; padding:24px clamp(18px,5vw,48px) 22px; border:1px solid var(--buddy-ink); background:#ede5d4; }
.buddy-card::after { content:'XJ'; position:absolute; right:16px; top:30px; color:rgba(172,76,48,.12); font-size:130px; line-height:1; font-weight:900; letter-spacing:-.12em; }
.buddy-card-top,.buddy-card-bottom { position:relative; z-index:1; display:flex; justify-content:space-between; gap:14px; color:#67665d; font-size:10px; letter-spacing:.1em; }
.buddy-card-top strong { color:var(--buddy-rust); }
.buddy-card-label { display:block; position:relative; z-index:1; margin-top:34px; color:var(--buddy-rust); font-size:11px; font-weight:800; letter-spacing:.11em; }
.buddy-card h2 { position:relative; z-index:1; margin:9px 0 3px; font-size:clamp(33px,7vw,62px); letter-spacing:-.055em; line-height:1.08; }
.buddy-side { position:relative; z-index:1; display:inline-block; margin:6px 0 16px; padding:5px 9px; border:1px solid #8c887c; color:#5f5e56; font-size:12px; }
.buddy-quote { position:relative; z-index:1; margin:10px 0 19px; padding:14px 0; border-top:1px solid #bdb5a6; border-bottom:1px solid #bdb5a6; font-size:clamp(18px,3.6vw,25px); font-weight:700; line-height:1.5; }
.buddy-tip { position:relative; z-index:1; max-width:42em; color:#65645b; font-size:12px; line-height:1.8; }
.buddy-card-bottom { margin-top:24px; padding-top:10px; border-top:1px solid #cfc7b8; }
.buddy-share-area { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 20px; max-width:760px; margin:22px auto 0; padding:15px 0; border-top:1px solid var(--buddy-ink); border-bottom:1px solid #cfc7b8; }
.buddy-share-head h2 { margin:0; font-size:17px; }
.buddy-share-head p { margin:3px 0 0; color:#68675e; font-size:11px; line-height:1.65; }
.buddy-share { display:flex; flex-wrap:wrap; justify-content:center; gap:9px; margin:20px auto; }
.buddy-share-area .buddy-share { margin:0; }
.buddy-share button { min-height:44px; padding:0 14px; font-size:12px; }
.buddy-share .buddy-secondary { color:var(--buddy-ink); background:transparent; }
.buddy-share .buddy-secondary:hover { color:#fffaf0; }
.buddy-result-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin:18px 0; }
.buddy-result-actions a,.buddy-result-actions button { display:inline-flex; min-height:44px; align-items:center; border:0; background:transparent; color:#5f5e56; font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.buddy-result-note { max-width:60em; margin:16px auto; color:#77766d; text-align:center; font-size:11px; line-height:1.8; }
.buddy-status { min-height:24px; margin:12px 0; color:var(--buddy-rust); font-size:12px; text-align:center; }
.buddy-page a:focus-visible,.buddy-page button:focus-visible { outline:2px solid var(--buddy-rust); outline-offset:3px; }
@media(max-width:660px) {
  .buddy-shell { padding-top:25px; }
  .buddy-intro { grid-template-columns:1fr; gap:22px; }
  .buddy-intro h1 { font-size:clamp(48px,14vw,72px); }
  .buddy-cover { min-height:300px; }
  .buddy-cover::after { right:18px; top:78px; }
  .buddy-stamp { top:96px; right:52px; width:76px; height:76px; }
  .buddy-cover-copy { padding-top:27px; }
  .buddy-controls button { flex:1 1 40%; padding:0 11px; }
  .buddy-card { padding-top:19px; }
  .buddy-share-area { grid-template-columns:1fr; }
  .buddy-share { justify-content:flex-start; }
}
@media(max-width:380px) {
  .buddy-nav { gap:9px; font-size:11px; }
  .buddy-option { grid-template-columns:24px minmax(0,1fr) auto; gap:8px; padding:10px; font-size:13px; }
  .buddy-meta { gap:6px 11px; }
  .buddy-howto { gap:7px; }
  .buddy-howto li { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { .buddy-page * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
.buddy-public {margin:28px 0;padding:24px;border:2px solid var(--buddy-ink);background:var(--buddy-paper);line-height:1.8;}
.buddy-public h2 {font-size:22px;margin:0 0 12px;}
.buddy-public label {display:flex;gap:12px;align-items:flex-start;margin:16px 0;}
.buddy-public input {margin-top:8px;flex:none;}
.buddy-public-actions {display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.buddy-public-actions button,.buddy-public-actions a {min-height:44px;padding:10px 14px;border:1px solid var(--buddy-ink);color:var(--buddy-ink);background:var(--buddy-paper);font:inherit;cursor:pointer;}
.buddy-public-actions button:disabled {opacity:.65;cursor:default;}
