:root{--bg: #fbfbf9;--ink: #1a1a1a;--muted: #5c6568;--card: #ffffff;--line: #e4eee9;--accent: #039e72;--accent-deep: #176454;--mint: #d3fff0;--coral: #ff8562;--on-accent: #ffffff;--heading: #039e72;--sun: #fff4d8;--warn: #d3fff0;--warn-ink: #145c4e;--shadow: 0 12px 32px rgba(23, 100, 84, .08);--radius: 24px;--pill: 999px;--nav-h: calc(78px + env(safe-area-inset-bottom)) ;color:var(--ink);background:var(--bg);font-family:Ysabeau Infant,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%}html:has(.banner),body:has(.banner),#root:has(.banner),html:has(.splash),body:has(.splash),#root:has(.splash){height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--coral)}img{max-width:100%;display:block}.app{width:min(720px,100%);margin:0 auto;padding:0 16px var(--nav-h)}.topbar{display:flex;align-items:center;gap:12px;margin:0 -16px 18px;padding:calc(14px + env(safe-area-inset-top)) 18px 18px;background:radial-gradient(140px 90px at 100% 0%,rgba(211,255,240,.38),transparent 70%),var(--accent-deep);color:var(--on-accent);border-radius:0 0 28px 28px}.brand-mark{width:64px;height:60px;border-radius:0;background:transparent;display:grid;place-items:center;flex:none}.brand-mark img{width:64px;height:auto}.topbar h1{margin:0;color:var(--on-accent);font-size:1.55rem;font-weight:700;letter-spacing:-.03em;line-height:1.05}.topbar p{margin:2px 0 0;color:#ffffffd6;font-size:.95rem;font-weight:400}.panel{background:var(--card);border:0;border-radius:var(--radius);padding:18px 18px 20px;box-shadow:var(--shadow);margin:14px 0}.hero{display:grid;gap:14px;background:radial-gradient(180px 120px at 100% 0%,rgba(211,255,240,.32),transparent 62%),linear-gradient(165deg,#1d7a66 0%,var(--accent-deep) 58%,#145c4e 100%);color:var(--on-accent);overflow:hidden;border-radius:28px}.hero p,.hero h2,.hero h3{color:var(--on-accent)}.hero .muted,.hero .source{color:#ffffffd1}.hero-art{background:#0000001f;border-radius:20px;overflow:hidden}.hero-art img{width:100%;height:220px;object-fit:contain}h1,h2,h3{color:var(--heading);font-weight:700;letter-spacing:-.02em}h2{margin:0 0 10px;font-size:1.45rem;line-height:1.15}h3{margin:0 0 6px;font-size:1.12rem;line-height:1.25}p{line-height:1.5;margin:0 0 10px}.muted{color:var(--muted)}.stack{display:grid;gap:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn,.nav-btn,.choice{min-height:52px;border-radius:var(--pill);border:0;padding:12px 18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:1.05rem;width:100%;text-align:center;text-decoration:none;box-shadow:0 8px 18px #039e7238}.btn:hover{filter:brightness(1.04)}.btn:active{transform:translateY(1px)}.btn.secondary{background:var(--mint);color:var(--accent-deep);box-shadow:none}.btn.ghost{width:auto;justify-self:start;background:transparent;color:var(--accent);border:1.5px solid var(--accent);box-shadow:none}.app .btn,.app .nav-btn{display:flex;align-items:center;justify-content:center;text-align:center}.app .btn{width:100%;justify-self:center;margin-inline:auto}.app .btn.ghost{width:100%;justify-self:center}.app .row{justify-content:center}.app .row .btn{width:auto;flex:1 1 0}.btn:disabled{opacity:.5;box-shadow:none;transform:none}a.btn{color:var(--on-accent)}a.btn.secondary{color:var(--accent-deep)}a.btn.ghost{color:var(--accent)}.steps{display:grid;gap:14px}.step{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start}.num{width:36px;height:36px;border-radius:var(--pill);background:transparent;color:var(--accent);display:grid;place-items:center;font-family:Rubik,Ysabeau Infant,sans-serif;font-weight:700;font-size:1.45rem}.note{background:var(--mint);color:var(--warn-ink);border-radius:20px;padding:14px 16px;line-height:1.45}.danger{background:#fff1ec;color:#9a3412;border-radius:20px;padding:14px 16px;line-height:1.45}.cards{display:grid;gap:12px}.gift-card{text-align:left;width:100%;cursor:pointer}.gift-card h2{margin-bottom:6px}.gift-head{display:flex;align-items:center;gap:10px;margin-top:10px}.gift-head h2{flex:1;margin:0;text-align:center}.gift-photo{width:100%;max-height:220px;object-fit:cover;border-radius:16px;background:var(--mint)}.editor{margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}.badge{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:var(--pill);background:var(--mint);color:var(--accent-deep);font-size:.85rem;font-weight:700}.hero .badge{background:#ffffff29;color:var(--on-accent)}.badge.demo{background:var(--sun);color:#8a4b12}.badge.dog{background:#fff1ec;color:#9a3412}.years{display:grid;gap:12px}.stat{font-size:1.7rem;font-weight:700;letter-spacing:-.03em;margin:0 0 8px;color:var(--heading);line-height:1.15}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--mint);color:var(--accent-deep);border-radius:var(--pill);padding:6px 12px;font-size:.9rem;font-weight:600}.home+.home{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.source{font-size:.82rem;color:var(--muted)}.sync-log{white-space:pre-wrap;font:.85rem/1.45 ui-monospace,Consolas,monospace;background:var(--mint);color:var(--warn-ink);border-radius:20px;padding:14px 16px;margin:0}.sync-log.bad{background:#fff1ec;color:#9a3412}.choice{width:100%;text-align:left;background:#fff;border:1.5px solid #d5ebe4;border-radius:20px;line-height:1.4}.choice.active{border-color:var(--accent);background:var(--mint)}label{display:grid;gap:6px;font-weight:600;color:var(--accent-deep)}.check{display:flex;align-items:flex-start;gap:12px;font-weight:500;color:var(--ink);line-height:1.4}.check input{width:22px;min-height:22px;margin-top:2px;flex:none;accent-color:var(--accent)}.field-error{color:#9a3412;font-weight:600;font-size:.92rem}.field-label{font-weight:600;color:var(--accent-deep)}.outside-gate{min-height:100dvh;display:grid;place-items:center;padding:24px}.link-btn,.text-link{padding:0;border:0;background:none;min-height:0;text-align:left;text-decoration:underline;box-shadow:none}.link-btn{color:var(--accent-deep);font-weight:600;width:auto}.text-link{color:var(--coral);font-weight:700;display:inline}.gift-card.closed{opacity:.72}.badge.closed{background:#eceae4;color:#5c6568}.history{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none}.history li{margin:0;background:var(--mint);color:var(--accent-deep);border-radius:18px;padding:12px;font-weight:700;line-height:1.3}.scale{height:14px;border-radius:var(--pill);background:var(--mint);overflow:hidden}.scale-bar{height:100%;background:var(--accent);border-radius:inherit}.photo-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.photo-strip figure{flex:0 0 78%;scroll-snap-align:start;margin:0}.photo-strip img{width:100%;height:220px;object-fit:cover;border-radius:20px}.photo-strip figcaption{margin-top:8px;color:var(--muted);line-height:1.4}.bag-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;border-top:1px solid var(--line);padding-top:10px}.icon-x{width:44px;height:44px;border-radius:var(--pill);border:1.5px solid var(--coral);background:#fff;color:var(--coral);font-weight:700;font-size:1.4rem;line-height:1}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#14282475;display:grid;place-items:center;padding:16px}.modal{width:min(520px,100%);max-height:min(80vh,640px);overflow:auto;margin:0}.banner{height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;gap:6px;padding:calc(20px + env(safe-area-inset-top)) 20px calc(16px + env(safe-area-inset-bottom));background:radial-gradient(220px 140px at 100% 0%,rgba(211,255,240,.35),transparent 70%),linear-gradient(165deg,#1d7a66 0%,var(--accent-deep) 55%,#0f3f36 100%);color:var(--on-accent)}.banner h1,.banner p{color:var(--on-accent)}.banner h1{font-size:clamp(1.8rem,8vw,2.4rem);margin:0}.banner p{margin:0}.banner-kicker{letter-spacing:.02em}.banner-brand{width:108px;margin:0;flex:none}.banner-art{width:min(100%,420px);flex:1 1 auto;min-height:0;object-fit:contain;object-position:center;margin:0 auto}.banner .btn{flex:none;width:min(100%,420px)}.splash{height:100dvh;background:#102a62;display:grid}.splash img{width:100%;height:100%;object-fit:contain;object-position:center}.gift-mark{width:46px;height:46px;object-fit:contain;flex:none}.organizers{display:flex;justify-content:center;align-items:center;gap:36px;flex-wrap:wrap;padding:8px 4px 2px}.organizer{display:flex;align-items:center;justify-content:center;line-height:0}.organizer img{width:auto;height:46px;max-width:42vw;object-fit:contain}.organizer.wide img{height:34px;max-width:54vw}ul{margin:0 0 12px;padding-left:1.15rem}li{margin:6px 0;line-height:1.45}::placeholder{color:#8aa099}input,textarea,select{width:100%;min-height:52px;border-radius:16px;border:1.5px solid #d5ebe4;background:#fff;padding:12px 14px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #039e722e}input[type=checkbox]{width:22px;min-height:22px;padding:0}.row .btn{width:auto;flex:1}textarea{min-height:96px;resize:vertical}.file input{padding:10px}.nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;border-top:0;box-shadow:0 -8px 24px #17645414;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav-btn{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;background:transparent;color:var(--muted);padding:6px 2px;min-height:52px;font-size:.74rem;font-weight:700;box-shadow:none}.nav-btn[aria-current=page]{color:var(--accent);background:var(--mint)}.logos{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.logo{background:#fff;border:1px solid var(--line);border-radius:20px;min-height:112px;display:flex;align-items:center;justify-content:center;padding:16px 12px;text-decoration:none}.logo img{display:block;width:100%;height:80px;object-fit:contain}.logo-on-green{background:#0e7a56}.gallery{display:grid;gap:12px}.gallery img{width:100%;border-radius:20px;max-height:360px;object-fit:cover}.chat-log{display:grid;gap:8px;max-height:50vh;overflow:auto}.chat-log.compact{max-height:220px}.bubble{max-width:85%;padding:12px 14px;border-radius:20px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:var(--mint);color:var(--accent-deep);justify-self:end}.bubble.admin{background:#fff;border:1px solid var(--line);justify-self:start}.bubble.staff{background:#e7eefc;color:#1e3a5f;justify-self:start}.footer-link{display:block;text-align:center;color:var(--muted);margin:8px 0 18px;font-size:.85rem}.admin{width:min(860px,100%);margin:0 auto;padding:16px 16px 40px}.admin-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-head h1{margin:0;font-size:1.35rem}.admin .btn{width:100%;flex:none;white-space:normal;line-height:1.25}.admin .row{display:grid;grid-template-columns:1fr}.admin .tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:visible}.admin .tabs .btn{width:100%;min-height:46px;padding:10px 8px}.admin .tabs .btn.active{background:var(--accent);color:var(--on-accent);border-color:transparent}.admin .panel p,.admin .submission p{overflow-wrap:anywhere}.status-line{font-weight:700;color:var(--accent-deep)}.tabs{display:flex;gap:8px;overflow:auto;padding-bottom:4px}.tabs button{flex:none}.sub{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.thumb{width:100%;max-height:180px;object-fit:contain;background:var(--mint);border-radius:16px}.ok{color:var(--accent-deep);font-weight:700}.error{color:#9a3412}.btn:focus-visible,.nav-btn:focus-visible,.choice:focus-visible,.gift-card:focus-visible{outline:3px solid rgba(3,158,114,.4);outline-offset:2px}.logos.organizers{grid-template-columns:repeat(3,1fr)}@media(min-width:640px){.logos{grid-template-columns:repeat(3,1fr)}h2{font-size:1.65rem}}
