:root{--navy:#17294d;--gold:#c79c4b;--cream:#fffaf1;--text:#202733;--danger:#b42318}
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:radial-gradient(circle at top,#fff 0,var(--cream) 55%,#ebdfc7 100%);color:var(--text)}
.shell{width:min(940px,94vw);margin:auto;padding:24px 0 70px}header{text-align:center;margin-bottom:22px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-weight:800}
h1{font-family:Georgia,serif;color:var(--navy);font-size:clamp(2.2rem,7vw,4.2rem);margin:8px 0}.card{display:none;background:#fffffff2;border:1px solid #c79c4b55;border-radius:24px;padding:clamp(22px,5vw,46px);box-shadow:0 24px 70px #17294d1d}.card.active{display:block}
h2{color:var(--navy);margin-top:0}label{display:block;font-weight:700;margin:18px 0}input{width:100%;margin-top:8px;padding:16px;border:1px solid #cad0da;border-radius:14px;font-size:1.05rem}input[type=file]{padding:10px;background:#fff}
button,.button-link{border:0;border-radius:14px;padding:15px 22px;font-size:1rem;font-weight:800;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;margin:8px 8px 0 0}.primary{background:var(--navy);color:#fff}.secondary{background:#eceff4;color:var(--navy)}button:disabled{opacity:.55}
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.choices button{min-height:145px;background:linear-gradient(145deg,#fff,#f6ead3);border:2px solid #e2c997;color:var(--navy)}.choices strong,.choices span{display:block}.choices strong{font-family:Georgia,serif;font-size:1.6rem;margin-bottom:8px}
.camera-wrap{position:relative;overflow:hidden;border-radius:20px;background:#111;aspect-ratio:3/4;max-height:72vh}video{width:100%;height:100%;object-fit:cover}.countdown{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:clamp(5rem,20vw,12rem);font-weight:900;text-shadow:0 5px 25px #000}
.result-image{display:block;width:100%;border-radius:18px;margin-bottom:18px}.warning,.error{padding:14px 18px;border-radius:14px;margin:14px 0}.warning{background:#fff2cc}.error{color:var(--danger);font-weight:700;text-align:center;min-height:24px}.processing{text-align:center;padding-top:70px;padding-bottom:70px}.spinner{width:70px;height:70px;border:8px solid #e8dfcf;border-top-color:var(--gold);border-radius:50%;margin:0 auto 28px;animation:spin 1s linear infinite}.ready{color:#147a4d;margin-left:8px}
@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:700px){.choices{grid-template-columns:1fr}.choices button{min-height:98px}.actions button,.actions a{width:100%;margin-right:0}}