:root { --ink:#102f32; --ink-2:#284d51; --sand:#ead7c4; --paper:#f6f1e9; --line:rgba(16,47,50,.16); --white:#fffdf8; }
* { box-sizing:border-box; }
html { min-height:100%; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; }
button,input,textarea { font:inherit; }
button { color:inherit; }
button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #d0945e; outline-offset:3px; }
.site-shell { min-height:100svh; position:relative; overflow:hidden; display:grid; grid-template-rows:auto 1fr auto; padding:32px clamp(22px,5vw,76px) 22px; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:42px 42px; }
.site-shell:before { content:""; position:absolute; width:560px; height:560px; border:1px solid rgba(16,47,50,.16); border-radius:50%; right:-230px; top:-230px; box-shadow:0 0 0 62px rgba(16,47,50,.035),0 0 0 124px rgba(16,47,50,.028); pointer-events:none; }
.brand { display:flex; align-items:center; gap:12px; font-size:12px; font-weight:800; line-height:1.05; letter-spacing:.07em; z-index:2; }
.logo-panel { display:flex; align-items:center; min-height:58px; padding:10px 16px; background:var(--ink); }
.brand-logo { display:block; width:176px; height:auto; }
.brand-note { margin-left:auto; font-size:10px; font-weight:500; text-align:right; line-height:1.35; opacity:.62; text-transform:uppercase; letter-spacing:.1em; }
.side-note { position:absolute; left:12px; top:50%; display:flex; align-items:center; gap:10px; font-size:9px; letter-spacing:.18em; writing-mode:vertical-rl; transform:rotate(180deg) translateY(50%); opacity:.55; }
.side-note i { width:1px; height:46px; background:currentColor; }
.survey-card { align-self:center; justify-self:center; width:min(820px,100%); min-height:560px; position:relative; margin:34px 0; padding:clamp(30px,6vw,72px); background:rgba(255,253,248,.94); border:1px solid rgba(16,47,50,.24); box-shadow:18px 18px 0 var(--sand),0 24px 70px rgba(16,47,50,.08); display:flex; flex-direction:column; justify-content:center; }
.survey-card:after { content:""; position:absolute; inset:12px; border:1px solid rgba(16,47,50,.09); pointer-events:none; }
.progress-row { position:absolute; top:22px; left:28px; right:28px; display:flex; align-items:center; gap:14px; z-index:2; }
.back { border:0; background:transparent; cursor:pointer; font-size:22px; padding:6px; }
.progress-track { flex:1; height:4px; background:rgba(16,47,50,.1); overflow:hidden; }
.progress-track span { display:block; height:100%; background:var(--ink); transition:width .45s ease; }
.progress-value { font-size:10px; font-weight:700; letter-spacing:.08em; }
.eyebrow { margin:0 0 18px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
h1,h2 { max-width:700px; margin:0; font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.045em; line-height:.98; }
h1 { font-size:clamp(44px,7vw,78px); }
h2 { font-size:clamp(36px,5.2vw,58px); }
.lead { max-width:590px; margin:25px 0 0; font-size:clamp(16px,2vw,20px); line-height:1.55; }
.hint { margin:15px 0 25px; opacity:.65; line-height:1.45; }
.intro { position:relative; }
.blueprint-stamp { position:absolute; top:-12px; right:0; width:86px; height:86px; border:1px solid var(--ink); border-radius:50%; display:grid; place-content:center; text-align:center; transform:rotate(7deg); }
.blueprint-stamp:after { content:""; position:absolute; inset:6px; border:1px dashed var(--ink); border-radius:50%; }
.blueprint-stamp span { font-family:Georgia,serif; font-size:24px; }
.blueprint-stamp small { font-size:8px; letter-spacing:.16em; }
.intro h1 { max-width:650px; padding-right:34px; }
.intro-meta { display:flex; gap:24px; margin:30px 0 22px; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.intro-meta span:before { content:"•"; margin-right:8px; color:#ad6f3f; }
.button { min-height:54px; border-radius:0; padding:0 24px; border:1px solid var(--ink); cursor:pointer; text-transform:uppercase; font-size:11px; font-weight:800; letter-spacing:.11em; transition:transform .2s,background .2s,color .2s; }
.button:hover:not(:disabled) { transform:translateY(-2px); }
.button:disabled { opacity:.36; cursor:not-allowed; }
.button.primary { background:var(--ink); color:var(--white); }
.button.primary span { margin-left:28px; font-size:16px; }
.button.secondary { background:transparent; }
.choice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:24px; }
.choice { min-height:62px; padding:12px 16px; display:flex; justify-content:space-between; align-items:center; border:1px solid var(--line); background:transparent; cursor:pointer; text-align:left; }
.choice i { display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--line); border-radius:50%; font-style:normal; }
.choice.selected { background:var(--sand); border-color:var(--ink); }
.choice.selected i { background:var(--ink); color:white; }
.other-service-field { display:block; margin-top:18px; max-width:100%; }
.other-service-field span { display:block; margin-bottom:8px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.other-service-field input { max-width:100%; }
.scale-wrap { margin:36px 0 0; }
.scale { display:grid; grid-template-columns:repeat(10,1fr); gap:7px; }
.scale-5 { grid-template-columns:repeat(5,1fr); }
.scale-11 { grid-template-columns:repeat(11,1fr); }
.scale-button { aspect-ratio:1; min-width:0; border:1px solid var(--line); background:transparent; cursor:pointer; font-size:12px; transition:.18s ease; }
.scale-button:hover,.scale-button.active { background:var(--ink); color:white; border-color:var(--ink); transform:translateY(-2px); }
.scale-labels { display:flex; justify-content:space-between; margin-top:10px; font-size:10px; opacity:.6; }
.rating-caption { margin-top:24px; border-left:3px solid var(--sand); padding:12px 16px; font-size:14px; }
.criteria-list { margin-top:25px; border-top:1px solid var(--line); }
.criterion { display:grid; grid-template-columns:1fr 210px; align-items:center; gap:22px; padding:12px 0; border-bottom:1px solid var(--line); }
.criterion > span { font-size:14px; }
.criterion .scale-wrap { margin:0; }
.pill-list { display:flex; flex-wrap:wrap; gap:8px; margin:25px 0 28px; }
.pill { padding:12px 15px; border:1px solid var(--line); border-radius:999px; background:transparent; cursor:pointer; font-size:13px; }
.pill.selected { color:white; background:var(--ink); border-color:var(--ink); }
.field-label { display:block; margin-bottom:9px; font-size:13px; font-weight:700; }
textarea { width:100%; min-height:112px; resize:vertical; padding:16px; border:1px solid var(--line); background:rgba(246,241,233,.68); color:var(--ink); line-height:1.5; }
textarea::placeholder,input::placeholder { color:rgba(16,47,50,.4); }
.counter { display:block; margin-top:6px; text-align:right; font-size:9px; opacity:.5; }
.check-row { display:flex; width:100%; max-width:650px; gap:12px; align-items:flex-start; justify-content:flex-start; margin-top:18px; font-size:12px; line-height:1.45; cursor:pointer; }
.check-row input[type="checkbox"] { flex:0 0 20px; width:20px; height:20px; margin:0; accent-color:var(--ink); }
.check-row span { flex:1 1 auto; min-width:0; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; }
.form-grid label span { display:block; margin-bottom:8px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.form-grid .wide { grid-column:1/-1; }
input { width:100%; height:48px; border:0; border-bottom:1px solid var(--ink); background:transparent; color:var(--ink); }
.privacy-note { margin-top:24px; padding:14px 16px; border-left:3px solid #ad6f3f; background:rgba(234,215,196,.45); font-size:11px; line-height:1.5; }
.privacy-note p { margin:3px 0 0; }
.required { font-weight:600; }
.submit { margin-top:20px; }
.error { color:#943f2f; font-size:12px; }
.nav-row { margin-top:auto; padding-top:30px; display:flex; align-items:center; gap:18px; z-index:2; }
.nav-row > span { font-size:9px; opacity:.5; text-transform:uppercase; letter-spacing:.1em; }
.success-card { align-items:flex-start; }
.success-orbit { width:116px; height:116px; margin-bottom:30px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; box-shadow:0 0 0 12px var(--sand); }
.success-orbit span { font-size:40px; }
.success-card .button { margin-top:28px; }
footer { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.1em; text-transform:uppercase; opacity:.6; z-index:2; }
.panel-enter { animation:panel .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes panel { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media (max-width:700px) {
  .site-shell { padding:20px 16px 16px; }
  .brand-note,.side-note { display:none; }
  .logo-panel { min-height:52px; padding:9px 13px; }
  .brand-logo { width:154px; }
  .survey-card { min-height:620px; margin:24px 0; padding:62px 24px 32px; box-shadow:8px 8px 0 var(--sand); }
  .survey-card:after { inset:7px; }
  .blueprint-stamp { width:64px; height:64px; top:-6px; }
  .blueprint-stamp span { font-size:18px; }
  .choice-grid { grid-template-columns:1fr; }
  .scale { gap:4px; }
  .scale-button { font-size:10px; }
  .criterion { grid-template-columns:1fr; gap:8px; padding:11px 0; }
  .criterion .scale { max-width:230px; }
  .form-grid { grid-template-columns:1fr; gap:14px; }
  .form-grid .wide { grid-column:auto; }
  footer span:last-child { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }

.hidden { display:none!important; }
.admin-link { color:inherit; text-decoration:none; }
.admin-link:hover { text-decoration:underline; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.status-note { margin-top:16px; font-size:12px; line-height:1.45; }
.status-note.error { color:#943f2f; }
