:root{--ink:#202124;--ink-soft:#5f6368;--ink-faint:#80868b;--line:#dadce0;--line-soft:#e8eaed;--blue:#1a73e8;--blue-dark:#1557b0;--star:#fbbc04;--star-empty:#dadce0;--danger:#d93025;--card:#ffffff;--brand-bg:#14100e;--brand-glow-a:#b8763c;--brand-glow-b:#7a2f2a;--brand-gold:#c9a15f;--radius:16px;--shadow:0 1px 3px rgba(0,0,0,0.12),0 12px 40px rgba(0,0,0,0.28);--font:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--font-display:"Cormorant Garamond","Didot",Georgia,"Times New Roman",serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100svh;font-family:var(--font);color:var(--ink);background:var(--brand-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:0;background:radial-gradient(70% 55% at 50% 0,color-mix(in srgb,var(--brand-glow-a) 42%,transparent) 0,transparent 68%),radial-gradient(90% 60% at 15% 100%,color-mix(in srgb,var(--brand-glow-b) 34%,transparent) 0,transparent 70%);pointer-events:none}.page{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:28px 18px calc(28px + env(safe-area-inset-bottom))}.brand{text-align:center;animation:rise .5s cubic-bezier(.2,.7,.3,1) both}.brand__logo{display:block;width:clamp(190px,52vw,250px);height:auto;margin:-18px auto -26px}.brand__name{margin:0;font-family:var(--font-display);font-size:clamp(2.6rem,13vw,3.9rem);font-weight:300;line-height:1;letter-spacing:.22em;text-indent:.22em;color:#fff}.brand__rule{width:46px;height:1px;margin:14px auto 12px;background:linear-gradient(90deg,transparent,var(--brand-gold),transparent)}.brand__sub{margin:0;font-size:.7rem;font-weight:500;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:color-mix(in srgb,var(--brand-gold) 88%,white)}.card{width:100%;max-width:460px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;animation:rise .5s cubic-bezier(.2,.7,.3,1) .06s both}@media (max-width:420px){.card{padding:24px 18px}}.card__title{margin:0 0 6px;font-size:1.32rem;font-weight:500;line-height:1.3;text-align:center;color:var(--ink)}.card__lead{margin:0 auto;max-width:34ch;font-size:.9rem;line-height:1.5;text-align:center;color:var(--ink-soft)}.stars{display:flex;justify-content:center;gap:2px;margin:22px 0 6px}.star{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:6px 2px;cursor:pointer;line-height:0;border-radius:50%;transition:transform .14s cubic-bezier(.2,.7,.3,1);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.star svg{width:46px;height:46px;fill:var(--star-empty);transition:fill .14s ease}.star.is-on svg{fill:var(--star)}.star:hover{transform:scale(1.12)}.star:active{transform:scale(.94)}.star:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media (max-width:380px){.star svg{width:40px;height:40px}}.stars__label{min-height:20px;margin:0;font-size:.82rem;font-weight:500;text-align:center;color:var(--ink-soft)}.composer__head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:1.05rem;font-weight:500;color:#fff;background:linear-gradient(135deg,#8a5a2b,#5d3a1a);text-transform:uppercase}.composer__who{min-width:0}.composer__name{margin:0;font-size:.95rem;font-weight:500;color:var(--ink)}.composer__scope{display:flex;align-items:center;gap:5px;margin:2px 0 0;font-size:.76rem;color:var(--ink-soft)}.stars--compact{margin:0 0 16px;justify-content:flex-start;gap:0}.stars--compact .star svg{width:30px;height:30px}.field{margin-bottom:14px}.field__label{display:block;margin-bottom:6px;font-size:.78rem;font-weight:500;color:var(--ink-soft)}.input,.textarea{width:100%;font-family:inherit;font-size:.95rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;transition:border-color .14s ease,box-shadow .14s ease}.textarea{min-height:132px;resize:vertical;line-height:1.55}.input::placeholder,.textarea::placeholder{color:var(--ink-faint)}.input:focus,.textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.counter{margin:6px 2px 0;font-size:.72rem;text-align:right;color:var(--ink-faint)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;font-size:.9rem;font-weight:500;border-radius:999px;padding:11px 26px;cursor:pointer;border:1px solid transparent;transition:background-color .14s ease,box-shadow .14s ease,color .14s ease;-webkit-tap-highlight-color:transparent}.btn--primary{background:var(--blue);color:#fff}.btn--primary:hover{background:var(--blue-dark);box-shadow:0 1px 3px rgba(60,64,67,.35)}.btn--ghost{background:transparent;color:var(--blue)}.btn--ghost:hover{background:rgba(26,115,232,.08)}.btn:disabled{opacity:.55;cursor:default;box-shadow:none}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.alert{margin:14px 0 0;padding:11px 13px;font-size:.84rem;line-height:1.45;color:#8c1d18;background:#fce8e6;border-radius:8px}.state{text-align:center;padding:10px 0 4px}.state__stars{display:flex;justify-content:center;gap:2px;margin-bottom:18px}.state__stars svg{width:26px;height:26px;fill:var(--star)}.state__title{margin:0 0 8px;font-size:1.24rem;font-weight:500}.state__body{margin:0 auto;max-width:32ch;font-size:.9rem;line-height:1.55;color:var(--ink-soft)}.state__body a{color:var(--blue)}.spinner{width:26px;height:26px;margin:20px auto 0;border:3px solid var(--line-soft);border-top-color:var(--blue);animation:spin .8s linear infinite}.spinner,.tick{border-radius:50%}.tick{width:52px;height:52px;margin:0 auto 16px;display:grid;place-items:center;background:#e6f4ea}.tick svg{width:28px;height:28px;fill:#1e8e3e}.foot{margin:0;font-size:.72rem;letter-spacing:.05em;text-align:center;color:rgba(255,255,255,.42)}.foot a{color:rgba(255,255,255,.62);text-decoration:none}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}