:root {
  --cream: #fff8ea;
  --panel: #fffdf7;
  --pink: #ffc4dd;
  --pink-deep: #e0559a;
  --cyan: #19b7c9;
  --blue: #1e5fb4;
  --ink: #3b2a18;
  --ink-soft: #6d5a44;
  --bad: #b3261e;
  --line: #e7d8bf;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { min-height: 100vh; background: linear-gradient(180deg, var(--pink), var(--cream) 240px); color: var(--ink); font: 16px/1.5 "Segoe UI", system-ui, Roboto, Arial, sans-serif; }
.page { width: min(560px, 100%); margin: 0 auto; padding: 16px; }
.head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.head img { height: 50px; width: auto; }
h1 { font-size: 24px; line-height: 1.15; margin: 0; }
h1 span { display: block; color: var(--pink-deep); }
h2 { font-size: 20px; margin: 0 0 8px; }
.card { padding: 16px; border: 2px solid var(--ink); border-radius: 16px; background: var(--panel); box-shadow: 3px 3px 0 var(--ink); margin-bottom: 14px; }
.card ul { padding-left: 20px; margin: 8px 0 14px; }
.card li { margin-bottom: 6px; }
label { display: block; font-weight: 700; font-size: 14px; margin: 10px 0 4px; }
input[type="text"], input:not([type]), input[type="password"] { width: 100%; padding: 12px; font: inherit; border: 2px solid var(--ink); border-radius: 10px; background: #fff; color: var(--ink); }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; margin: 12px 0; }
.check input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; }
.btn { min-height: 48px; padding: 10px 18px; font: 700 16px/1.2 inherit; font-family: inherit; color: var(--ink); background: #f1e6cd; border: 2px solid var(--ink); border-radius: 12px; cursor: pointer; }
.btn.primary { background: var(--blue); color: #fff; }
.btn.danger { background: var(--pink-deep); color: #fff; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn.wide { width: 100%; margin-top: 14px; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 12px; }
.actions .btn { flex: 1 1 130px; }
.stage { position: relative; width: 100%; aspect-ratio: 3 / 4; max-height: 62vh; overflow: hidden; border: 2px solid var(--ink); border-radius: 14px; background: #1a1412; }
.stage video, .stage img { display: block; width: 100%; height: 100%; object-fit: cover; }
.stage #face-live, .stage #video-live { transform: scaleX(-1); }
.timer { position: absolute; top: 10px; right: 10px; padding: 2px 10px; border-radius: 999px; background: var(--bad); color: #fff; font-weight: 700; }
.phrase { margin: 4px 0 10px; padding: 10px; text-align: center; font-size: 22px; font-weight: 800; color: var(--pink-deep); background: #fff0f7; border: 2px dashed var(--pink-deep); border-radius: 12px; }
.small { font-size: 14px; color: var(--ink-soft); margin: 8px 0 0; }
.note { padding: 10px 12px; margin: 0 0 12px; font-weight: 600; background: #fff; border: 2px solid var(--bad); border-radius: 10px; color: var(--bad); }
.bar { height: 16px; border: 2px solid var(--ink); border-radius: 999px; overflow: hidden; background: #fff; }
.bar span { display: block; width: 0; height: 100%; background: var(--cyan); transition: width .2s; }
.foot { text-align: center; font-size: 14px; color: var(--ink-soft); padding: 8px; }
.foot a, .link { color: inherit; }
.link { background: none; border: 0; font: inherit; text-decoration: underline; cursor: pointer; padding: 8px 4px; }
.doc h2 { font-size: 18px; margin-top: 18px; }
.doc p, .doc li { font-size: 15px; }
