:root{--navy:#082b72;--royal:#0759e8;--sky:#80c5ff;--lime:#b7df1f;--ink:#172542;--muted:#65718a;--line:#d8e4f3;--white:#fff;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#eaf4ff}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font:inherit}.survey-body{background:radial-gradient(circle at 12% 5%,#cae8ff 0,transparent 30%),radial-gradient(circle at 95% 85%,#b4dcff 0,transparent 34%),#f7fbff}.intro-shell{min-height:100vh;display:grid;place-items:center;padding:0}.intro-poster{position:relative;width:min(100vw,562px);height:100vh;max-height:1000px;overflow:hidden;background:#fff;box-shadow:0 20px 70px #043d9b2b}.intro-poster img{width:100%;height:100%;display:block;object-fit:cover}.poster-start{position:absolute;left:17%;right:17%;bottom:5.5%;height:12%;border:0;border-radius:999px;background:transparent;color:transparent;cursor:pointer}.poster-start:focus-visible{outline:5px solid #ffd824;outline-offset:4px}.survey-shell{min-height:100vh;display:grid;place-items:center;padding:clamp(18px,4vw,52px);background:linear-gradient(145deg,#fafdff 0,#e4f2ff 100%)}.survey-card{position:relative;width:min(920px,100%);min-height:min(780px,calc(100vh - 60px));padding:clamp(24px,5vw,58px);border:1px solid #cce1f5;border-radius:34px;background:#ffffffed;box-shadow:0 28px 80px #0644941f;overflow:hidden}.survey-card::after{content:"";position:absolute;width:240px;height:240px;right:-110px;bottom:-120px;border-radius:50%;background:#ddebfb;box-shadow:-120px 50px 0 #eef6ff;z-index:0}.survey-card>*{position:relative;z-index:1}.survey-top{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:14px}.mini-brand{display:flex;align-items:center;gap:12px;color:var(--navy)}.mini-brand span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px 15px 15px 4px;color:white;background:linear-gradient(145deg,var(--royal),var(--navy));font:800 18px Georgia,serif}.progress-track{height:8px;margin:18px 0 clamp(38px,7vh,70px);overflow:hidden;border-radius:99px;background:#e7eef8}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--royal),var(--sky));transition:width .25s}.eyebrow{margin:0 0 14px;color:var(--royal);text-transform:uppercase;letter-spacing:.13em;font-size:13px;font-weight:850}.question-content,.info-content{max-width:730px;margin:auto}.question-content h1,.info-content h1,.status-card h1,.finish-card h1{margin:0;color:var(--navy);font:750 clamp(32px,5vw,55px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-.025em}.description,.info-content>p:not(.eyebrow),.status-card p,.finish-card p{color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.62}.helper{margin:16px 0 -8px;color:#3568a1;font-size:15px;font-weight:700}.answers{display:grid;gap:11px;margin:30px 0}.answer-option{position:relative;display:block;cursor:pointer}.answer-option input{position:absolute;opacity:0}.answer-option>span{display:flex;align-items:center;gap:14px;padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:.15s}.answer-option i{flex:0 0 23px;width:23px;height:23px;border:2px solid #7d8ca6;border-radius:50%;background:#fff}.answer-option input[type=checkbox]+span i{border-radius:7px}.answer-option input:checked+span{border-color:var(--royal);color:var(--navy);background:#edf5ff;box-shadow:inset 4px 0 var(--royal)}.answer-option input:checked+span i{border:7px solid var(--royal)}.answer-option input[type=checkbox]:checked+span i{border:0;background:var(--royal);box-shadow:inset 0 0 0 6px #edf5ff}.answer-option input:focus-visible+span{outline:3px solid #71b7ff;outline-offset:2px}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:36px}.primary-button{border:0;border-radius:15px;padding:16px 24px;color:#fff;background:linear-gradient(135deg,var(--royal),#0640a3);box-shadow:0 12px 28px #0759e834;font-weight:800;text-decoration:none;cursor:pointer}.primary-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.primary-button span{margin-left:28px}.back-button{padding:14px 8px;border:0;color:var(--muted);background:transparent;font-weight:700;cursor:pointer}.form-error{color:#a22d31;font-weight:750}.anniversary-badge{width:120px;height:120px;display:grid;place-content:center;margin:0 0 28px;text-align:center;border:9px double #c9d7eb;border-radius:50%;color:#fff;background:linear-gradient(145deg,#718cb6,#173a75);box-shadow:0 12px 30px #173a7530}.anniversary-badge b{font-size:42px;line-height:.9}.anniversary-badge span{font-size:12px;letter-spacing:.15em}.info-content{padding:20px 0}.status-card,.finish-card{text-align:center}.loader{width:52px;height:52px;margin:120px auto 28px;border:5px solid var(--line);border-top-color:var(--royal);border-radius:50%;animation:spin .8s linear infinite}.success-mark{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 24px;border-radius:50%;color:white;background:var(--royal);font-size:36px}.finish-card{max-width:760px;min-height:auto;margin:auto}.finish-card h2{max-width:620px;margin:28px auto 18px;color:var(--navy);font-size:clamp(20px,3vw,29px)}.qr-code{display:block;width:min(330px,70vw);height:auto;margin:22px auto}.finish-instruction{max-width:680px;margin:20px auto 32px}.link-button{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);padding:38px;border-radius:24px;background:#fff;box-shadow:0 20px 60px #17485a18}.login-card h1{font:700 38px Georgia,serif;color:var(--navy)}.login-card label{display:grid;gap:8px;margin:24px 0;font-weight:700}.login-card input{width:100%;padding:14px;border:1px solid var(--line);border-radius:10px}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--navy);font-weight:900}.admin-body{background:#f3f7fc}.admin-header{padding:18px max(24px,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;background:white;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:var(--navy);text-decoration:none}.brand strong,.brand small{display:block}.brand small{color:var(--muted)}.admin-main{max-width:1200px;margin:auto;padding:42px 24px}.admin-title{display:flex;align-items:end;justify-content:space-between;gap:20px}.admin-title h1{font:700 46px Georgia,serif;color:var(--navy);margin:8px 0}.export-actions{display:flex;gap:10px}.export-actions a{padding:10px 14px;border:1px solid var(--line);border-radius:9px;color:var(--navy);background:white;text-decoration:none;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0 38px}.metric-grid article,.report-card{padding:22px;border-radius:16px;background:white;border:1px solid var(--line)}.metric-grid small,.metric-grid strong{display:block}.metric-grid small{color:var(--muted)}.metric-grid strong{margin-top:8px;color:var(--navy);font-size:32px}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.report-card header,.bars p{display:flex;justify-content:space-between;gap:12px}.report-card header span,.bars p{color:var(--muted);font-size:13px}.bars i{display:block;height:7px;border-radius:20px;background:#e6eeee;overflow:hidden}.bars i b{display:block;height:100%;background:var(--royal)}.empty-state{padding:50px;text-align:center;color:var(--muted);background:white;border-radius:16px}
@media(max-width:700px){.intro-poster{width:100vw;max-height:none}.survey-shell{padding:0}.survey-card{min-height:100vh;border:0;border-radius:0;padding:24px 20px}.survey-top strong{font-size:12px}.mini-brand b{display:none}.progress-track{margin-bottom:36px}.question-content h1,.info-content h1{font-size:34px}.answer-option>span{padding:14px}.form-actions{position:sticky;bottom:0;padding:16px 0;background:linear-gradient(transparent,#fff 22%)}.admin-title{align-items:start;flex-direction:column}.metric-grid,.report-grid{grid-template-columns:1fr}.export-actions{width:100%}.export-actions a{flex:1;text-align:center}}
@media(min-aspect-ratio:3/4) and (min-width:700px){.intro-poster{width:min(100vw,740px);max-height:100vh}.intro-poster img{object-fit:contain;background:#fff}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}
