:root{--ink:#173d39;--muted:#465b51;--green:#164e46;--lime:#d9eea4;--paper:#f5f6f0;--line:#dce2d8;--white:#fff;--red:#aa3434;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}:focus-visible{outline:3px solid #93b959;outline-offset:4px}.topbar{max-width:1176px;margin:auto;padding:26px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:29px;letter-spacing:3px;font-weight:800;line-height:1}.brand small{display:block;font-size:14px;letter-spacing:2.7px;margin-top:7px}.brand-symbol{font-size:47px;line-height:.8;letter-spacing:0}.portal-label{font-size:16px;letter-spacing:2px;font-weight:700}.hero{max-width:1112px;margin:auto;min-height:345px;padding:58px 0 50px;display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:center}.eyebrow{font-size:16px;letter-spacing:1.8px;font-weight:700;color:#587366}h1{font-size:clamp(38px,4.3vw,58px);font-weight:500;line-height:1.06;letter-spacing:-2.3px;margin:18px 0 20px}.hero p{max-width:465px;font-size:20px;line-height:1.75;color:var(--muted);margin-bottom:22px}.hero-link{font-size:18px;text-decoration:none;font-weight:700;display:inline-flex;gap:50px;align-items:center}.hero-link span{font-size:22px}.building{height:260px;position:relative;overflow:hidden;background:#e9eddf;border-radius:110px 110px 16px 16px;width:320px;justify-self:center;background-image:linear-gradient(140deg,transparent 55%,#dfe5d0 55%)}.building-front,.building-back{position:absolute;width:125px;bottom:0;height:215px;left:118px;transform:skewY(-9deg);background-color:#b4c8b7;background-image:repeating-linear-gradient(90deg,transparent 0 18px,#6e9282 18px 25px,transparent 25px 38px),repeating-linear-gradient(0deg,transparent 0 22px,#dce7d9 22px 35px);border:10px solid #ccd9c7;border-bottom:0}.building-back{left:60px;bottom:-20px;height:185px;background-color:#e5e9d8;border-color:#e5e9d8;transform:skewY(14deg);width:85px;filter:brightness(.95)}.building-badge{position:absolute;bottom:22px;left:26px;right:26px;padding:15px;background:#fffef1;border-radius:7px;font-size:18px;box-shadow:0 5px 22px #213c3220}.building-badge:before{content:'↗';margin-right:12px}.layout{max-width:1112px;margin:0 auto 64px;display:grid;grid-template-columns:1fr 1.45fr;gap:72px;align-items:start}aside{padding-top:32px}h2{font-size:27px;letter-spacing:-.6px;line-height:1.25;font-weight:500;margin:13px 0 24px}.steps{list-style:none;padding:0;margin:32px 0}.steps li{display:flex;gap:18px;margin-bottom:27px}.steps li>span{font-size:17px;font-weight:700;border:1px solid #ced9c8;border-radius:50%;width:33px;height:33px;flex:none;display:grid;place-items:center}.steps strong{font-size:20px;font-weight:600}.steps p{font-size:18px;line-height:1.65;color:var(--muted);margin:7px 0 0}.notice{background:#e8edde;border-left:3px solid #97b775;padding:20px 22px;margin-top:34px;border-radius:0 9px 9px 0}.notice strong{font-size:18px}.notice p,details p{font-size:18px;line-height:1.7;color:var(--muted);margin-bottom:0}details{margin-top:23px;border-bottom:1px solid var(--line);padding-bottom:19px}summary{font-size:18px;font-weight:600;cursor:pointer;min-height:48px;padding-top:6px}.form-card{background:var(--white);border:1px solid #e1e6dc;border-radius:16px;padding:35px 37px;box-shadow:0 12px 40px #233e3210;scroll-margin-top:20px}.section-number{font-size:16px;color:#465b51;letter-spacing:2px;font-weight:700}.card-title h2{font-size:30px;margin:12px 0 12px}.card-title p{color:var(--muted);font-size:18px;margin:0 0 27px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;margin-bottom:21px;min-width:0}label{font-size:18px;font-weight:700;margin-bottom:9px}label span{color:#63815b}input,select,textarea{width:100%;background:#fbfcf9;border:1px solid #d8e0d5;border-radius:7px;padding:13px 12px;color:#203e36;min-height:60px;font-size:20px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#5d6c62}select:invalid{color:#5d6c62}input:focus,select:focus,textarea:focus{border-color:#54886e;outline:2px solid #d5e3bd;outline-offset:1px}.field small,.photo-hint{font-size:16px;color:#465b51;line-height:1.7;margin-top:7px}.photo-section{padding-top:25px;border-top:1px solid #e7ebe3;margin-top:30px}.photo-section h3{font-size:20px;font-weight:500;letter-spacing:-.5px;margin:12px 0 8px}.photo-section>p{font-size:18px;line-height:1.7;color:var(--muted);margin-bottom:20px}.photo-actions{display:flex;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;min-height:60px;border-radius:7px;border:1px solid transparent;padding:13px 19px;font-size:18px;font-weight:600;line-height:1.3}.button:hover{filter:brightness(.96)}.secondary{background:var(--lime);color:#284636}.outline{background:white;border-color:#cfdacc;color:#365849}.primary{background:var(--green);color:#fff;width:100%;justify-content:space-between;font-size:20px;min-height:64px}.photo-actions .button{flex:1;padding:13px 9px}.photo-actions span{font-size:20px;line-height:16px}.photo-hint{display:block;text-align:center;margin-top:12px}.privacy{font-size:16px;line-height:1.8;color:#465b51;margin:27px 0 21px;padding:0 0 0 20px;position:relative}.privacy:before{content:'◇';position:absolute;left:0;font-size:17px}.submit-note{font-size:16px;text-align:center;color:#465b51;margin-bottom:0}.photo-card{background:#f7f9f3;border:1px solid #dce5d3;padding:16px;border-radius:9px;margin:15px 0 20px}.photo-card img{display:block;width:100%;max-height:240px;object-fit:contain;background:#e8eddf;border-radius:5px;margin:12px 0 20px}.photo-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:18px}.text-button{border:0;background:none;color:#92534a;min-height:48px;font-size:17px;text-decoration:underline}.photo-card .field{margin-bottom:15px}.photo-card .confirm{width:100%}.photo-card input[readonly],.photo-card textarea[readonly]{background:#ecf1e5;border-color:transparent}.feedback{padding:14px;margin:15px 0;border-radius:6px;font-size:18px;line-height:1.5}.error{background:#fff0ec;color:#96342b;border:1px solid #f0c6bb}footer{max-width:1176px;margin:auto;padding:25px 32px;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;justify-content:space-between;color:#465b51;font-size:16px}footer>span{letter-spacing:1px;font-weight:700}footer p{margin:0;line-height:1.7}footer a{font-size:16px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.success-card{max-width:650px;margin:70px auto;text-align:center;background:#fff;padding:45px;border:1px solid var(--line);border-radius:18px}.success-icon{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:var(--lime);margin:0 auto 30px;font-size:30px}.success-card .eyebrow{display:block}.success-card h2{font-size:32px}.success-card p{font-size:20px;line-height:1.8;color:var(--muted)}.protocol{padding:22px;background:#edf3e5;border-radius:8px;margin:25px 0}.protocol small{display:block;font-size:16px;letter-spacing:2px;margin-bottom:12px}.protocol strong{font-family:monospace;font-size:20px;overflow-wrap:anywhere}.success-card .button{margin:5px}.admin-wrap{max-width:1112px;margin:40px auto}.admin-login{max-width:420px;margin:70px auto}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.admin-record{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;margin:20px 0}.admin-record h2{font-size:19px;overflow-wrap:anywhere}.record-meta{font-size:18px;line-height:1.9}.admin-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.admin-photos figure{margin:10px 0;border:1px solid var(--line);border-radius:7px;overflow:hidden;max-width:500px}.admin-photos img{width:100%;height:200px;object-fit:contain;background:#edf0e8}.admin-photos figcaption{font-size:18px;line-height:1.6;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere}.admin-status{display:flex;align-items:center;gap:10px;margin:18px 0}.admin-status select{max-width:230px}.pagination{display:flex;justify-content:space-between;gap:15px}a.photo-link{display:block}.status-label{display:inline-block;background:var(--lime);padding:7px 12px;border-radius:30px;font-size:17px}
@media(max-width:1190px){.hero,.layout,.admin-wrap{margin-left:40px;margin-right:40px}.layout{gap:45px}.hero{gap:30px}}
@media(max-width:760px){.topbar{padding:22px}.brand{font-size:25px}.brand-symbol{font-size:40px}.portal-label{font-size:14px;letter-spacing:1px}.hero{margin:0;padding:35px 24px 30px;grid-template-columns:1fr;gap:0;min-height:0}.hero p{font-size:20px}.building{display:none}.hero-link{gap:25px}h1{font-size:44px}.layout{margin:0 20px 40px;display:flex;flex-direction:column;gap:22px}.layout aside{width:100%;padding:10px 4px 0}.steps{display:block}aside h2{font-size:28px;margin-bottom:15px}.notice{margin-top:0;padding:15px 17px}details{margin-top:12px}.form-card{width:100%;padding:27px 22px}.card-title h2{font-size:28px}.field-row{gap:12px}.photo-actions{gap:9px}.photo-actions .button{font-size:18px;gap:6px}.photo-actions span{font-size:17px}footer{margin:0 20px;padding:23px 0;flex-wrap:wrap;gap:12px}footer p{flex-basis:100%;order:3}.success-card{margin:35px 20px;padding:28px 22px}.success-card h2{font-size:28px}.admin-wrap{margin:30px 20px}.admin-toolbar{align-items:flex-start;flex-wrap:wrap}.admin-record{padding:18px}.admin-login{margin:40px 20px}.admin-status{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.button{transition:filter .15s}}


/* Larger type and generous targets for residents with low vision. */
body{font-size:18px;line-height:1.6}
.topbar,.hero,.layout,footer,.admin-wrap{max-width:1200px}
.brand small{font-size:12px;letter-spacing:2px}
.portal-label{font-size:14px;letter-spacing:1px}
.eyebrow{font-size:14px;letter-spacing:1px}
.hero{padding:40px 0;grid-template-columns:1.5fr 1fr}
.hero p{max-width:620px;font-size:20px;line-height:1.7}
.hero-link{background:var(--green);color:white;min-height:60px;border-radius:8px;padding:14px 24px;font-size:20px;gap:24px}
.layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:48px}
.layout>*{min-width:0}
h2{font-size:30px;font-weight:700;letter-spacing:-.4px}
.card-title h2{font-size:30px;font-weight:700}
.card-title p{font-size:18px}
label,.tower-field legend{font-size:20px;font-weight:700;line-height:1.4}
input,select,textarea{font-size:20px;padding:15px;min-height:60px;border-width:2px;border-color:#9eaea1}
.field{margin-bottom:28px}
.field small,.photo-hint{font-size:16px;color:#465b51;line-height:1.6}
.tower-field{min-width:0;padding:0;border:0;margin:0 0 30px}
.tower-field legend{padding:0;margin-bottom:8px}
.tower-field>p{font-size:17px;color:#465b51;line-height:1.5;margin:0 0 15px}
.tower-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tower-option{display:flex;align-items:center;gap:12px;padding:18px 16px;margin:0;border:2px solid #9eaea1;border-radius:10px;background:#fbfcf9;cursor:pointer;min-height:76px}
.tower-option input{width:26px;height:26px;min-height:26px;flex:none;margin:0;padding:0;accent-color:var(--green)}
.tower-option span{font-size:23px;color:var(--ink)}
.tower-option:has(input:checked){border-color:var(--green);background:#e4f0d0;box-shadow:inset 0 0 0 1px var(--green)}
.tower-option:has(input:focus-visible){outline:3px solid #6b9338;outline-offset:4px}
.steps strong,.notice strong{font-size:20px}
.steps p,.notice p,details p{font-size:18px;line-height:1.65}
.steps li>span{width:40px;height:40px;font-size:17px}
.steps li{gap:14px}
summary{font-size:20px;min-height:56px;padding:12px 0}
.photo-section h3{font-size:28px;font-weight:700}
.photo-section>p{font-size:18px;line-height:1.6}
.photo-actions .button,.button,.primary{font-size:20px;min-height:60px}
.photo-top{font-size:18px;flex-wrap:wrap}
.text-button{font-size:17px;min-height:48px}
.privacy,.submit-note{font-size:16px;color:#465b51;line-height:1.65}
.feedback{font-size:19px;line-height:1.6}
.storage-note{background:#edf3e5;border:1px solid #c8d6b6;border-radius:9px;padding:18px;margin-top:24px}
.storage-note strong{font-size:18px}
.storage-note p{font-size:17px;color:#465b51;line-height:1.6;margin:8px 0 0}
.success-card p{font-size:19px}
.success-card .eyebrow{font-size:16px}
.protocol strong{font-size:23px}
footer{font-size:16px;flex-wrap:wrap}footer a{font-size:17px;min-height:48px;display:inline-flex;align-items:center}
.admin-login{max-width:520px}.record-meta,.admin-photos figcaption{font-size:18px}.status-label{font-size:17px}
@media(max-width:1260px){.hero,.layout,.admin-wrap{margin-left:32px;margin-right:32px}}
@media(max-width:760px){
 .topbar{padding:22px 20px;gap:16px;flex-wrap:wrap}.portal-label{font-size:13px}
 .hero{padding:30px 22px;margin:0;grid-template-columns:1fr}.hero p{font-size:20px}
 h1{font-size:42px;letter-spacing:-1.4px}.hero-link{width:100%;justify-content:space-between}
 .layout{margin:0 16px 40px;gap:26px}.layout aside{padding:6px 6px 0}
 .steps{display:block;margin:22px 0}.steps li{margin-bottom:20px}
 .form-card{padding:28px 20px}.card-title h2{font-size:28px}
 .photo-actions{flex-direction:column;gap:12px}.photo-actions .button{font-size:20px;width:100%;padding:16px}
 .tower-options{gap:10px}.tower-option{padding:16px 12px;gap:10px}.tower-option span{font-size:22px}
 .success-card{padding:28px 20px}.success-card .button{width:100%;margin:6px 0}
 .admin-wrap{margin:25px 16px}.admin-status{align-items:stretch}.admin-status label{width:100%}
 footer{margin:0 20px;padding:20px 0;font-size:16px}
}
@media(max-width:350px){.tower-options{grid-template-columns:1fr}.topbar{gap:12px}.form-card{padding:24px 16px}}
