:root { color-scheme: light; --page:#f2f5ff; --card:#fbfcff; --ink:#1d214b; --muted:#626785; --line:#dce1f1; --accent:#e65a20; --accent-dark:#a6380e; --tint:#fff2e9; font-family:"Segoe UI",Arial,sans-serif; font-size:16px; color:var(--ink); background:var(--page); }
* { box-sizing:border-box; }
body { margin:0; }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid var(--accent-dark); outline-offset:4px; }
.skip-link { position:fixed; z-index:20; top:12px; left:12px; padding:14px; background:white; transform:translateY(-160%); color:var(--ink); }
.skip-link:focus { transform:none; }
.page { width:min(850px,calc(100% - 220px)); margin:0 auto; padding:64px 0 60px; }
.intro { padding:0 22px 16px; }
.eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.14em; color:var(--muted); margin:0 0 16px; }
h1,h2,.section-heading { font-family:Georgia,"Times New Roman",serif; font-weight:500; }
h1 { font-size:clamp(1.85rem,4vw,2.55rem); line-height:1.18; margin:0 0 16px; }
.intro-text { max-width:600px; margin:0 0 22px; line-height:1.7; }
.survey-section { scroll-margin-top:34px; padding-top:38px; }
.section-heading { display:flex; gap:14px; align-items:baseline; font-size:1.45rem; margin:0 18px 20px; line-height:1.3; }
.section-heading span { font:500 .75rem "Segoe UI",sans-serif; color:var(--muted); letter-spacing:.1em; }
.question-card { background:var(--card); border:1px solid #e8ebf7; border-radius:14px; padding:32px 34px; margin:0 0 18px; box-shadow:0 6px 22px #373a8910; scroll-margin-top:28px; position:relative; }
.question-card:first-of-type::before { content:none; }
.question-header { display:flex; gap:12px; align-items:baseline; margin-bottom:8px; }
.question-num { color:var(--muted); font-size:.8125rem; flex-shrink:0; font-variant-numeric:tabular-nums; }
.question-card h3 { font-size:1.05rem; line-height:1.55; margin:0; font-weight:600; }
.optional { display:block; color:var(--muted); font-size:.8125rem; font-weight:400; margin:0 0 10px; }
.question-help { color:var(--muted); font-size:.875rem; line-height:1.65; margin:8px 0 22px; }
fieldset { border:0; padding:0; margin:0; min-width:0; }
.rating-field { margin-top:22px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.ratings { display:grid; grid-template-columns:repeat(11,minmax(0,1fr)); gap:6px; }
.rating-option { position:relative; min-width:0; cursor:pointer; }
.rating-option input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.rating-tile { display:flex; align-items:center; justify-content:center; min-height:48px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); font-size:1rem; transition:border-color .15s,box-shadow .15s,background .15s; }
.rating-option input:hover + .rating-tile { border-color:#db936f; }
.rating-option input:checked + .rating-tile { border-color:var(--accent); color:var(--accent-dark); background:var(--tint); box-shadow:0 3px 9px #e65a2028; font-weight:700; }
.rating-option input:focus-visible + .rating-tile { outline:3px solid var(--accent-dark); outline-offset:3px; }
.anchors { display:flex; justify-content:space-between; gap:20px; margin-top:10px; font-size:.75rem; line-height:1.5; color:var(--muted); }
.anchors span:last-child { text-align:right; }
.matrix { margin-top:20px; }
.matrix-row { padding:17px 0; border-top:1px solid var(--line); }
.matrix-row:last-child { padding-bottom:0; }
.matrix-row legend { display:contents; }
.matrix-row .row-title { display:block; font-size:.875rem; line-height:1.55; padding-bottom:12px; font-weight:500; }
.matrix .anchors { margin-top:18px; }
.text-field { margin-top:20px; }
textarea { display:block; width:100%; border:1px solid #aeb9d8; border-radius:4px; background:white; color:var(--ink); padding:13px; font-size:1rem; line-height:1.6; resize:none; min-height:54px; overflow:hidden; }
textarea:placeholder-shown { white-space:pre; }
textarea::placeholder { color:var(--muted); opacity:1; }
.telegram-note { font-size:.9375rem; line-height:1.7; margin:20px 0 0; }
.telegram-note a { color:var(--accent-dark); text-underline-offset:3px; white-space:nowrap; }
.choices { display:grid; gap:10px; margin-top:20px; }
.choice { display:flex; gap:12px; align-items:flex-start; padding:15px 16px; min-height:52px; border:1px solid var(--line); border-radius:5px; background:white; cursor:pointer; font-size:.9375rem; line-height:1.5; }
.choice input { accent-color:var(--accent); margin:3px 0 0; width:18px; height:18px; flex-shrink:0; }
.choice:has(input:checked) { border-color:var(--accent); background:var(--tint); }
.choice:has(input:focus-visible) { outline:3px solid var(--accent-dark); outline-offset:3px; }
.field-error { color:#a81f41; font-size:.875rem; line-height:1.5; margin:9px 0 0; }
.question-card.has-error { border-color:#cb647b; }
.form-footer { padding:16px 22px 0; }
.privacy-note { color:var(--muted); font-size:.875rem; line-height:1.65; max-width:630px; }
.submit-row { display:flex; justify-content:flex-end; gap:20px; align-items:center; margin-top:28px; }
.primary-button { flex-shrink:0; background:var(--accent); color:#fff; border:1px solid var(--accent); padding:15px 23px; border-radius:5px; min-height:50px; cursor:pointer; font-weight:600; }
.primary-button:hover { background:#f1763b; }
.primary-button:disabled { opacity:.6; cursor:wait; }
.notice { padding:15px 18px; background:#fff5f7; border-left:3px solid #ac284b; border-radius:4px; line-height:1.6; margin-top:20px; }
.section-nav { position:fixed; top:50%; right:max(12px,calc((100vw - 1170px)/2)); transform:translateY(-50%); width:132px; padding:0 5px; z-index:5; }
.nav-track { position:absolute; top:24px; bottom:24px; right:26px; width:2px; background:#d7ddf0; z-index:-1; }
#nav-fill { display:block; height:0%; background:var(--accent); }
.nav-link { display:flex; align-items:center; justify-content:flex-end; gap:9px; height:54px; text-decoration:none; color:var(--muted); font-size:.75rem; }
.nav-label { text-align:right; padding:3px 5px; background:var(--page); }
.nav-dot { display:flex; justify-content:center; align-items:center; width:44px; height:44px; flex-shrink:0; }
.nav-dot::after { content:''; width:9px; height:9px; border-radius:50%; background:var(--page); border:1.5px solid #a5acc6; }
.nav-link.passed .nav-dot::after { background:var(--accent); border-color:var(--accent); }
.nav-link[aria-current=location] { color:var(--ink); font-weight:600; }
.nav-link[aria-current=location] .nav-dot::after { width:11px; height:11px; background:var(--accent); border-color:var(--accent); outline:4px solid #f8d7c6; }
.thank-you { padding:100px 24px; max-width:650px; margin:auto; }
.thanks-card { padding:55px 42px; background:var(--card); border-radius:14px; box-shadow:0 8px 32px #373a8910; text-align:center; }
.thanks-mark { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; background:var(--tint); color:var(--accent); border-radius:50%; font-size:1.6rem; margin-bottom:28px; }
.thanks-card p { line-height:1.7; }
.thanks-footnote { color:var(--muted); font-size:.875rem; }
@media(min-width:1300px) { .page { transform:translateX(-20px); } }
@media(max-width:950px) { .page { width:calc(100% - 100px); margin-left:24px; } .section-nav { right:4px; width:44px; padding:0; } .nav-track { right:21px; } .nav-label { display:none; } }
@media(max-width:600px) {
  .page { width:auto; margin:0; padding:32px 36px 40px 12px; }
  .intro { padding:0 10px 0; }
  .intro-text { font-size:.9375rem; }
  .section-heading { margin-left:10px; font-size:1.2rem; gap:10px; }
  .survey-section { padding-top:32px; }
  .question-card { padding:24px 18px; border-radius:10px; margin-bottom:14px; }
  .question-header { gap:8px; }
  .question-card h3 { font-size:1rem; }
  .ratings { grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; }
  .rating-tile { min-height:44px; }
  .anchors { font-size:.75rem; gap:12px; }
  .section-nav { right:0; width:30px; }
  .nav-dot { width:30px; }
  .nav-track { right:14px; }
  .nav-link { height:48px; }
  .form-footer { padding:10px; }
  .submit-row { flex-direction:column; align-items:stretch; }
  .primary-button { width:100%; }
  .thanks-card { padding:38px 22px; }
}
@media(prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; } }
