:root{--cream:#faf3e6;--paper:#fffdf8;--green:#225c34;--green-ink:#17402a;--green-soft:#dce8da;--orange:#f4742d;--orange-soft:#fde3d3;--orange-ink:#a84a16;--line-strong:#c9bfa9;--locked:#9c927a;--board:#f3ead7;--warn-bg:#fff4da;--bad-bg:#fbe9e6;--bad-ink:#6e2219;--done-bg:#fff8f1;--field-line:#9c927a;--ink:#1f2a22;--muted:#6b6a5d;--line:#e6decd;--night:#121a14;--good:#2e7d46;--warn:#8a5a00;--bad:#b83a2e;--font:"Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--r:14px;--gut:max(16px, env(safe-area-inset-left,0px));--gut-r:max(16px, env(safe-area-inset-right,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}html{touch-action:manipulation}body{background:var(--cream);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;word-break:keep-all;overflow-wrap:anywhere;font-size:15px;line-height:1.55}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--orange);outline-offset:2px}img{max-width:100%}h1,h2,h3{text-wrap:balance;letter-spacing:-.01em;margin:0}p{margin:0}.page{max-width:560px;min-height:100dvh;padding:0 var(--gut-r) calc(104px + env(safe-area-inset-bottom,0px)) var(--gut);flex-direction:column;gap:16px;margin:0 auto;display:flex}.page.dark{background:var(--night);color:var(--cream);max-width:none}body:has(.page.dark){background:var(--night)}.topbar{z-index:5;padding:calc(10px + env(safe-area-inset-top,0px)) 0 10px;background:inherit;align-items:center;gap:8px;display:flex;position:sticky;top:0}.page:not(.dark) .topbar{background:var(--cream)}.page.dark .topbar{background:var(--night)}.topbar h1{flex:1;font-size:17px}.topbar .brand{align-items:center;min-height:44px;display:flex}.topbar .brand img{width:auto;height:34px;display:block}.topbar-right{gap:8px;margin-left:auto;display:flex}.icon-btn{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.icon-btn.light{color:var(--cream)}.chip-link{background:var(--paper);border:1px solid var(--line);min-height:44px;color:var(--green-ink);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;text-decoration:none}.demo-flag{color:var(--warn);background:var(--warn-bg);border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.btn{background:var(--green);min-height:48px;color:var(--cream);text-align:center;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:12px 18px;font-weight:700;text-decoration:none;display:inline-flex}.btn.big{width:100%;min-height:56px;font-size:17px;display:flex}.btn.ghost{color:var(--green);border:1.5px solid var(--green);background:0 0}.btn.ghost.light{color:var(--cream);border-color:#faf3e699}.btn.danger{color:var(--bad);border:1.5px solid var(--bad);background:0 0}.btn:disabled{opacity:.4;cursor:default}.link{color:var(--green);background:0 0;border:0;justify-self:start;min-height:44px;padding:0;font-weight:700;text-decoration:underline}.row{flex-wrap:wrap;gap:8px;display:flex}.row>*{flex:1 1 0;min-width:0}.row.between{justify-content:space-between;align-items:center}.row.between>*{flex:0 auto}.dock{z-index:6;padding:12px var(--gut-r) calc(12px + env(safe-area-inset-bottom,0px)) var(--gut);background:linear-gradient(to top, var(--cream) 70%, #faf3e600);position:fixed;bottom:0;left:0;right:0}.dock>*{max-width:528px;margin:0 auto}.dock.dark{background:linear-gradient(to top, var(--night) 70%, #121a1400);place-items:center;display:grid}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);gap:12px;padding:18px;display:grid}.panel.center{text-align:center;justify-items:center}.panel h2{font-size:21px}.panel h3{font-size:16px}.panel h3 small,h3 small{color:var(--muted);margin-left:4px;font-size:13px;font-weight:600}.eyebrow{letter-spacing:.12em;color:var(--orange-ink);text-transform:uppercase;font-size:12px;font-weight:800}.note{color:var(--muted);font-size:13.5px}.note a{color:var(--green);font-weight:700}.ticket{font-family:var(--mono);color:var(--muted);font-size:13px}.lead{font-size:15px}.flag{color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700}.err-line{color:var(--bad);font-size:14px;font-weight:600}.state-line{color:var(--muted);font-size:14px;font-weight:700}.state-line.done{color:var(--orange-ink)}.state-line.review{color:var(--warn)}.photo-ph{background:repeating-linear-gradient(135deg, var(--green-soft) 0 10px, var(--cream) 10px 20px);border-radius:10px;min-height:120px}.form{gap:16px}.field{color:var(--muted);gap:6px;font-size:13.5px;font-weight:700;display:grid}.field input,.field textarea,.form input:not([type=checkbox]):not([type=radio]),.search{border:1.5px solid var(--field-line);width:100%;min-height:50px;color:var(--ink);background:#fff;border-radius:12px;padding:12px 14px;font-size:16px}.field textarea{resize:vertical;min-height:88px}.field input:focus,.field textarea:focus{border-color:var(--green);outline:none}.consents{border:0;gap:10px;margin:0;padding:0;display:grid}.consents legend{margin-bottom:6px;font-size:15px;font-weight:800}.consent{background:var(--cream);border-radius:12px;grid-template-columns:24px 1fr;align-items:start;gap:10px;padding:12px;display:grid}.consent input{width:22px;height:22px;accent-color:var(--green);margin:1px 0 0}.consent b{font-size:14px;display:block}.consent small{color:var(--muted);margin-top:2px;font-size:12.5px;display:block}.landing{text-align:center;padding-top:calc(40px + env(safe-area-inset-top,0px));background:radial-gradient(ellipse at 50% 18%, #f4742d1a, transparent 55%), var(--cream);justify-content:center;align-items:center;gap:14px}.landing-logo{width:min(78vw,360px)}.landing-place{letter-spacing:.3em;color:var(--green-ink);margin-right:-.3em;font-size:30px;font-weight:900}.landing-date{font-family:var(--mono);color:var(--green);font-weight:700}.landing-copy{color:var(--muted);margin:8px 0 12px}.landing .btn{max-width:360px}.hello{gap:6px;padding-top:2px;display:grid}.hello h1{color:var(--green-ink);font-size:25px;line-height:1.25}.tally{align-items:flex-end;gap:14px;display:flex}.tally-big{color:var(--orange-ink);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:44px;font-weight:900;line-height:.9}.tally-big small{color:var(--green-ink);letter-spacing:0;margin-left:2px;font-size:17px;font-weight:800}.next-goal{color:var(--muted);font-size:13.5px}.next-goal b{color:var(--green-ink)}.stamp-mark{pointer-events:none;mix-blend-mode:multiply;width:134%;position:absolute;top:-17%;left:-17%;transform:rotate(-14deg)}.stamp-mark circle,.stamp-mark path{stroke:currentColor}.stamp-mark text{fill:currentColor}.stamp-mark.done{color:var(--orange);animation:.35s cubic-bezier(.2,1.6,.4,1) stampIn}.stamp-mark.review{color:var(--warn);opacity:.9}.stamp-mark.review circle:first-of-type{stroke-dasharray:5 4}.stamp-mark.retry{color:var(--bad)}@keyframes stampIn{0%{opacity:0;transform:rotate(-30deg)scale(1.5)}}.rewards{gap:10px;display:grid}.rewards h2{font-size:16px}.reward-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.reward-track li{background:var(--paper);border:1.5px solid var(--line);border-radius:16px;align-content:start;gap:4px;min-width:0;padding:12px 10px;display:grid}.rt-need{color:var(--locked);font-size:20px;font-weight:900;line-height:1}.rt-title{word-break:keep-all;font-size:13px;font-weight:700;line-height:1.3}.rt-state{color:var(--muted);font-size:12.5px;font-weight:800}.reward-track li.reached{border-color:var(--orange);background:var(--orange-soft)}.reward-track li.reached .rt-need,.reward-track li.reached .rt-state{color:var(--orange-ink)}.reward-track li.claimed{border-color:var(--green-soft);background:var(--green-soft)}.reward-track li.claimed .rt-need,.reward-track li.claimed .rt-state{color:var(--green)}.chip-link{align-items:center;gap:6px;display:inline-flex}.sheet-head{align-items:center;gap:10px;display:flex}.sheet-icon{background:var(--cream);width:48px;height:48px;color:var(--green);border:1.5px dashed var(--line-strong);border-radius:50%;place-items:center;display:grid}.sheet-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-close{background:var(--cream);width:44px;height:44px;color:var(--ink);border:0;border-radius:50%;flex:none;margin:-8px -8px -8px 0;font-size:22px;line-height:1}.sync-line{color:var(--warn);background:var(--warn-bg);border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:700}.sync-chip{color:var(--green);background:var(--green-soft);border-radius:999px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700}.sheet-icon.done{background:var(--orange-ink);color:#fff;border:0}.state-line.retry{color:var(--bad)}.sheet{z-index:30;background:#121a148c;align-items:end;display:grid;position:fixed;inset:0}.sheet-card{background:var(--paper);color:var(--ink);width:100%;max-width:560px;padding:22px var(--gut-r) calc(22px + env(safe-area-inset-bottom,0px)) var(--gut);border-radius:22px 22px 0 0;gap:12px;margin:0 auto;animation:.2s ease-out up;display:grid}.sheet-card h3{font-size:19px}.sheet-card .where{color:var(--orange-ink);font-size:13px;font-weight:700}@keyframes up{0%{opacity:0;transform:translateY(24px)}}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--ink);color:var(--cream);text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:12px 18px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.viewfinder{aspect-ratio:3/4;background:#000;border-radius:18px;width:100%;max-width:100%;position:relative;overflow:hidden}.viewfinder video{object-fit:cover;width:100%;height:100%;display:block}.viewfinder video.mirror{transform:scaleX(-1)}.vf-msg{text-align:center;color:var(--cream);place-content:center;justify-items:center;gap:14px;padding:24px;font-size:14px;display:grid;position:absolute;inset:0}.vf-msg.err{background:#000000b3}.vf-box{border-radius:18px;position:absolute;inset:22% 16%;box-shadow:0 0 0 999px #00000059}.vf-box i{border:0 solid var(--orange);width:34px;height:34px;position:absolute}.vf-box i:first-child{border-width:5px 0 0 5px;border-top-left-radius:18px;top:0;left:0}.vf-box i:nth-child(2){border-width:5px 5px 0 0;border-top-right-radius:18px;top:0;right:0}.vf-box i:nth-child(3){border-width:0 0 5px 5px;border-bottom-left-radius:18px;bottom:0;left:0}.vf-box i:nth-child(4){border-width:0 5px 5px 0;border-bottom-right-radius:18px;bottom:0;right:0}.scanner{gap:16px;display:grid}.manual{gap:8px;font-size:13px;display:grid}.manual label{color:#faf3e6bf}.manual input{min-height:52px;font-family:var(--mono);letter-spacing:.3em;color:var(--cream);background:#faf3e61a;border:0;border-radius:12px;padding:0 14px;font-size:22px}.admin .manual label{color:var(--muted)}.admin .manual input{color:var(--ink);border:1.5px solid var(--line);background:#fff}.scan-tip{text-align:center;color:#faf3e6bf;font-size:14px}.viewfinder.tall{aspect-ratio:3/4}.frame-logo{background:#faf3e6eb;border-radius:12px;width:30%;padding:6px 8px;position:absolute;top:4%;left:5%}.frame-band{color:var(--cream);background:linear-gradient(#17402a00,#17402ae0);padding:40px 5% 16px;display:grid;position:absolute;bottom:0;left:0;right:0}.frame-band b{font-size:20px}.frame-band span{opacity:.85;font-size:12.5px}.preview img{border-radius:18px;width:100%;display:block}.geo-line{text-align:center;color:#faf3e6bf;font-size:14px;font-weight:600}.geo-line.ok{color:var(--green-soft)}.shutter{border:5px solid var(--cream);background:var(--orange);width:76px;height:76px;box-shadow:0 0 0 3px var(--night) inset;border-radius:50%}.shutter:disabled{opacity:.4}.dock.dark .row{width:100%}.marker-head{align-items:center;gap:14px;display:flex}.marker-head h2{color:var(--green-ink);font-size:21px}.stamp{width:72px;height:72px;color:var(--line-strong);border:3px dashed var(--line-strong);border-radius:50%;flex:none;place-items:center;font-size:30px;font-weight:900;display:grid;transform:rotate(-8deg)}.stamp.on{color:var(--cream);background:var(--orange-ink);border:4px double var(--cream);box-shadow:0 0 0 3px var(--orange-ink);animation:.35s cubic-bezier(.2,1.6,.4,1) stampIn}.quiz .q{font-size:18px;font-weight:800;line-height:1.45}.options{gap:8px;display:grid}.opt{border:1.5px solid var(--line);text-align:left;background:#fff;border-radius:12px;align-items:center;gap:12px;min-height:56px;padding:10px 14px;font-size:16px;font-weight:600;display:flex}.opt-no{background:var(--cream);width:28px;height:28px;font-family:var(--mono);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.opt.right{border-color:var(--orange-ink);background:var(--orange-soft)}.opt.right .opt-no{background:var(--orange-ink);color:var(--cream)}.opt.wrong{border-color:var(--bad);background:var(--bad-bg)}.opt:disabled:not(.right):not(.wrong){opacity:.7}.opt.wrong .opt-no{background:var(--bad);color:#fff}.result{border-radius:12px;gap:4px;padding:12px 14px;font-size:14px;display:grid}.result.ok{background:var(--orange-soft);color:var(--orange-ink)}.result.no{background:var(--bad-bg);color:var(--bad-ink)}.result .wait{font-variant-numeric:tabular-nums;font-weight:800}.trail{justify-content:center;align-items:center;gap:0;display:flex}.trail-dot{width:40px;height:40px;color:var(--muted);border:2px dashed var(--field-line);background:var(--paper);border-radius:50%;place-items:center;font-weight:800;display:grid}.trail-dot+.trail-dot{margin-left:22px;position:relative}.trail-dot+.trail-dot:before{content:"";background:var(--line-strong);width:22px;height:2px;position:absolute;right:100%}.trail-dot.on{background:var(--orange-ink);color:var(--cream);border:0}.trail-dot.here{box-shadow:0 0 0 3px var(--green)}.qr-box{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:16px;width:min(72vw,280px);max-width:100%;padding:12px}.qr-box img{width:100%;height:100%;display:block}.card-wrap img{border-radius:16px;width:100%;display:block;box-shadow:0 10px 30px #17402a2e}.card-ph{aspect-ratio:9/16}.welcome h2{color:var(--green-ink);font-size:24px}.stars{border:0;flex-wrap:wrap;gap:4px;margin:0;padding:0;display:flex}.stars legend{width:100%;margin-bottom:4px;font-weight:800}.stars button{width:48px;height:48px;color:var(--locked);background:0 0;border:0;font-size:32px}.stars button.on{color:var(--orange)}.seg{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.seg legend{width:100%;margin-bottom:6px;font-weight:800}.seg label{text-align:center;border:1.5px solid var(--line);background:#fff;border-radius:12px;flex:1 1 0;padding:12px 6px;font-weight:700}.seg label.on{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.seg input{opacity:0;pointer-events:none;position:absolute}.admin{gap:12px;max-width:960px}.admin-head{padding-top:calc(12px + env(safe-area-inset-top,0px));align-items:center;gap:10px;display:flex}.admin-head img{width:auto;height:32px}.admin-head b{color:var(--green-ink);font-size:16px}.tabs{scrollbar-width:none;top:env(safe-area-inset-top,0px);background:var(--cream);z-index:4;padding-bottom:2px;gap:6px;padding-block:8px;display:flex;position:sticky;overflow-x:auto}.tab{min-height:44px;color:var(--green-ink);border:1px solid var(--line);background:var(--paper);border-radius:999px;flex:none;align-items:center;gap:6px;padding:9px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.tab.on{background:var(--green);color:var(--cream);border-color:var(--green)}.tab i{background:var(--orange-ink);color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-style:normal}.admin-body{gap:12px;display:grid}.pin{width:100%;max-width:380px;margin:12vh auto 0}.pin-logo{justify-self:center;width:160px}.kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.kpis div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:grid}.kpis span{color:var(--muted);font-size:12.5px;font-weight:700}.kpis b{color:var(--green-ink);font-variant-numeric:tabular-nums;font-size:28px;font-weight:900}.kpis b small{color:var(--muted);font-size:14px;font-weight:700}.kpis b.warn{color:var(--orange-ink)}.bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.bars li{grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;font-size:13.5px;display:grid}.bar{background:var(--cream);border-radius:5px;height:10px;overflow:hidden}.bar i{background:var(--green);border-radius:5px;height:100%;display:block}.bar-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13.5px}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:12px;font-weight:700}.tbl td{border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 8px}.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:12.5px}.tag{color:var(--warn);background:var(--warn-bg);border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-style:normal;font-weight:800}.quotes{gap:4px;margin:0;padding-left:18px;font-size:14px;display:grid}.person h3{font-size:20px}.mini-states{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mini-states li{background:var(--cream);width:32px;height:32px;color:var(--muted);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.mini-states li.done{background:var(--green);color:var(--cream)}.mini-states li.review{background:var(--warn-bg);color:var(--warn)}.give{gap:8px;margin:0;padding:0;list-style:none;display:grid}.give li{justify-content:space-between;align-items:center;gap:10px;display:flex}.give li span:first-child{min-width:0;display:grid}.give small{color:var(--muted);font-size:12px}.approve{gap:10px}.approve-img{aspect-ratio:3/4;object-fit:cover;border-radius:10px;width:100%;display:block}.approve-meta span{color:var(--muted);font-size:13px}.reasons{gap:6px;display:grid}.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.gallery figure{background:var(--paper);border:2px solid #0000;border-radius:12px;margin:0;position:relative;overflow:hidden}.gallery figure.best{border-color:var(--orange)}.gallery img,.gallery .photo-ph{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.gallery figcaption{color:var(--muted);padding:6px 8px;font-size:12px}.gallery button{color:#fff;background:#00000073;border:0;border-radius:50%;width:40px;height:40px;font-size:20px;position:absolute;top:6px;right:6px}.gallery figure.best button{background:var(--orange)}.toggle{align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.toggle input{width:20px;height:20px;accent-color:var(--green)}.toggle.big{font-size:16px}.qr-sheet{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.qr-sheet figure{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;gap:6px;margin:0;padding:12px;display:grid}.qr-sheet figcaption{gap:2px;font-size:13px;display:grid}.qr-sheet figcaption b{color:var(--green-ink);font-size:18px}.qr-sheet .manual{font-family:var(--mono);letter-spacing:.12em;color:var(--ink);font-size:20px;font-weight:900}.qr-sheet code{color:var(--muted);word-break:break-all;font-size:10.5px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.celebrate{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#faf3e68c;place-items:center;animation:.4s ease-in 2s forwards fadeOut;display:grid;position:fixed;inset:0}.celebrate-stamp{aspect-ratio:1;text-align:center;width:min(64vw,260px);color:var(--orange-ink);background:var(--paper);border:8px double var(--orange);box-shadow:0 0 0 6px var(--paper), 0 0 0 9px var(--orange), 0 18px 40px #17402a40;border-radius:50%;place-content:center;gap:4px;animation:.45s cubic-bezier(.2,1.5,.35,1) slam;display:grid;transform:rotate(-12deg)}.celebrate-stamp b{letter-spacing:-.02em;font-size:clamp(40px,13vw,56px);font-weight:900;line-height:1}.celebrate-stamp span{color:var(--green-ink);font-size:15px;font-weight:800}@keyframes slam{0%{opacity:0;transform:rotate(-35deg)scale(2.2)}70%{opacity:1;transform:rotate(-10deg)scale(.95)}}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.offline-pill{min-height:32px;color:var(--warn);background:var(--warn-bg);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.sunset{border-radius:var(--r);background:var(--green-soft);color:var(--green-ink);padding:12px 14px;font-size:14px;font-weight:600}.sunset b{font-variant-numeric:tabular-nums}.sunset.near{background:var(--warn-bg);color:var(--warn)}.sunset.past{background:var(--bad-bg);color:var(--bad)}a{color:var(--green);text-underline-offset:3px;font-weight:700}.hint-line{color:var(--orange-ink);text-align:center;font-size:13px;font-weight:700}.celebrate{grid-template-rows:auto auto;align-content:center;gap:22px}.celebrate-reward{text-align:center;max-width:300px;color:var(--green-ink);background:var(--paper);border-radius:16px;padding:12px 16px;font-size:15px;line-height:1.5;box-shadow:0 10px 30px #17402a2e}.celebrate-reward b{color:var(--orange-ink)}.landing{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23225C34' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M-10 40c40-22 80 18 120-4s80-30 140 2'/%3E%3Cpath d='M-10 80c50-18 70 22 120 0s90-26 140 4'/%3E%3Cpath d='M-10 120c40-26 90 20 130-2s70-20 130 6'/%3E%3Cpath d='M-10 160c50-20 80 24 120 2s80-24 140 0'/%3E%3Cpath d='M-10 200c40-16 90 18 130-4s70-24 130 2'/%3E%3C/g%3E%3C/svg%3E"), radial-gradient(ellipse at 50% 18%, #f4742d1a, transparent 55%), var(--cream)}.landing-date{font-family:var(--font);letter-spacing:.12em;color:var(--orange-ink);font-size:13px;font-weight:800}.peaks{align-items:center;gap:2px;display:flex}.stars .peaks button{background:0 0;border:0;place-items:center;width:48px;height:48px;padding:6px;display:grid}.peaks svg{fill:none;width:34px;height:30px;stroke:var(--locked)}.peaks button.on svg{fill:var(--green);stroke:var(--green)}.peaks-val{color:var(--green-ink);font-variant-numeric:tabular-nums;margin-left:8px;font-size:14px;font-weight:800}.empty-photo{color:var(--muted);place-items:center;font-size:13px;font-weight:700;display:grid}.pin h2,.pin .pin-logo{text-align:center;justify-self:center}.tabs{padding-right:32px;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.sunset a{color:inherit;text-decoration:underline}.tally{align-items:center}.tally-label{color:var(--green-ink);font-size:14px;font-style:normal;font-weight:800}.missions{gap:14px;display:grid}.stage{gap:6px;display:grid}.stage-name{color:var(--green-ink);align-items:center;gap:8px;padding-left:4px;font-size:14px;font-weight:900;display:flex}.stage-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:800}.stage-done{color:var(--orange-ink);background:var(--orange-soft);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800}.stage-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.mission{background:var(--paper);text-align:left;width:100%;min-height:64px;color:var(--ink);border:0;border-radius:16px;grid-template-columns:44px 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 14px 10px 10px;transition:transform .15s;display:grid;box-shadow:0 1px #225c341a,0 2px 8px #225c340d}.mission:active{transform:scale(.98)}.mission-mark{place-items:center;width:40px;height:40px;display:grid;position:relative}.mission-mark b{border:1.5px dashed var(--line-strong);width:32px;height:32px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:14px;font-weight:900;display:grid}.mission-mark .stamp-mark{width:48px;top:-4px;left:-4px}.mission-icon{background:var(--cream);width:36px;height:36px;color:var(--green);border-radius:10px;place-items:center;display:grid}.mission-text{min-width:0;display:grid}.mission-text b{font-size:15px;font-weight:800;line-height:1.3}.mission-text small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.mission-status{color:var(--muted);white-space:nowrap;font-size:12.5px;font-weight:800}.mission.done{background:var(--done-bg);box-shadow:0 0 0 1.5px var(--orange-soft)}.mission.done .mission-status{color:var(--orange-ink)}.mission.done .mission-icon{background:var(--orange-soft);color:var(--orange-ink)}.mission.review .mission-status{color:var(--warn)}.mission.retry .mission-status{color:var(--bad)}.seg-tabs{gap:6px;display:flex}.seg-tabs button{border:1.5px solid var(--line);background:var(--paper);min-height:44px;color:var(--green-ink);border-radius:12px;flex:1;font-size:14px;font-weight:800}.seg-tabs button.on{background:var(--green);border-color:var(--green);color:var(--cream)}.seg-tabs i{opacity:.85;margin-left:4px;font-size:12px;font-style:normal}.tally-big small{font-size:16px}.tally-bar{gap:3px;height:10px;margin-top:2px;display:flex}.tally-bar i{background:var(--board);box-shadow:inset 0 0 0 1.5px var(--field-line);border-radius:3px;flex:1}.tally-bar i.on{background:var(--orange-ink);box-shadow:none}.tally-bar i.gap{margin-left:7px}.reward-ready{background:var(--orange-soft);color:var(--orange-ink);border-radius:14px;gap:2px;min-height:44px;padding:12px 14px;font-weight:700;text-decoration:none;display:grid}.reward-ready b{font-weight:900}.reward-ready em{color:var(--green-ink);font-size:13px;font-style:normal;font-weight:800}.after-finish{gap:8px;display:flex}.after-finish .btn{flex:1}.mission-mark .mark-wait{border:2px dashed var(--warn);width:32px;height:32px;color:var(--warn);background:var(--warn-bg);border-radius:50%;place-items:center;display:grid}.mission-mark .mark-retry{background:var(--bad);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-size:18px;font-style:normal;font-weight:900;display:grid}.mission.review{box-shadow:0 0 0 1.5px var(--warn-bg)}.mission.retry{box-shadow:0 0 0 1.5px var(--bad)}.mission.next{box-shadow:0 0 0 2px var(--green)}.mission.next .mission-mark b{background:var(--green);border-color:var(--green);color:var(--cream);border-style:solid}.next-tag{color:var(--cream);background:var(--green);border-radius:6px;margin-right:6px;padding:1px 6px;font-size:11px;font-style:normal;font-weight:900}.mission.todo:not(.retry) .mission-status{color:var(--muted);font-size:12px;font-weight:700}.btn.big-ish{min-height:56px;font-size:16px}.dock-stack{gap:8px;display:grid}.dock .hint-line{margin:0}.preview{text-align:left;gap:10px;width:min(100%,360px);margin-top:22px;display:grid}.preview h2{color:var(--green-ink);text-align:center;font-size:15px}.preview-stages{gap:8px;margin:0;display:grid}.preview-stages>div{grid-template-columns:52px 1fr;align-items:start;gap:8px;display:grid}.preview-stages dt{color:var(--muted);padding-top:2px;font-size:12.5px;font-weight:900}.preview-stages dd{flex-wrap:wrap;gap:4px 12px;margin:0;display:flex}.preview-stages dd span{color:var(--ink);align-items:center;gap:5px;font-size:13.5px;font-weight:700;display:inline-flex}.preview-stages dd svg{color:var(--green)}.preview-reward{text-align:center;color:var(--orange-ink);font-size:13.5px;font-weight:800}.mission.passed{opacity:.72}.mission.passed .mission-mark b{border-style:dotted}.mission.passed .mission-status{color:var(--muted);font-weight:700}.passed-line{color:var(--muted);background:var(--paper);border:1px dashed var(--field-line);border-radius:12px;padding:10px 12px;font-size:13px;font-weight:600}.next-distance{color:var(--green-ink);background:var(--green-soft);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:800}.next-distance.near{color:var(--cream);background:var(--green)}.place-photo{gap:6px;margin:0;display:grid}.place-photo img{object-fit:cover;background:var(--board);border-radius:14px;width:100%;max-height:42vh;display:block}.place-photo figcaption{color:var(--muted);font-size:12.5px;font-weight:700}.print-wrap{gap:14px;display:grid}.print-bar{gap:8px;display:flex}.print-bar .btn{flex:1}.print-page{aspect-ratio:210/297;background:var(--cream);width:100%;max-width:100%;color:var(--green-ink);text-align:center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23225C34' stroke-opacity='.08' stroke-width='1.2'%3E%3Cpath d='M-10 40c40-22 80 18 120-4s80-30 140 2'/%3E%3Cpath d='M-10 80c50-18 70 22 120 0s90-26 140 4'/%3E%3Cpath d='M-10 120c40-26 90 20 130-2s70-20 130 6'/%3E%3Cpath d='M-10 160c50-20 80 24 120 2s80-24 140 0'/%3E%3Cpath d='M-10 200c40-16 90 18 130-4s70-24 130 2'/%3E%3C/g%3E%3C/svg%3E");border-radius:12px;grid-template-rows:auto auto 1fr auto auto auto;place-items:center;padding:6cqw 7cqw 5cqw;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 24px #17402a26;container-type:inline-size}.pp-head{justify-content:space-between;align-items:center;width:100%;display:flex}.pp-head img{width:30cqw;height:auto}.pp-head span{letter-spacing:.2em;color:var(--orange-ink);font-size:2.6cqw;font-weight:900}.pp-title{text-align:left;align-items:center;gap:4cqw;margin-top:5cqw;display:flex}.pp-badge{aspect-ratio:1;width:24cqw;color:var(--cream);background:var(--orange-ink);border:1.2cqw double var(--cream);box-shadow:0 0 0 1cqw var(--orange-ink);border-radius:50%;place-items:center;font-size:12cqw;font-weight:900;display:grid;transform:rotate(-8deg)}.pp-in .pp-badge{background:var(--green);box-shadow:0 0 0 1cqw var(--green);font-size:8cqw}.pp-fin .pp-badge{background:var(--green);box-shadow:0 0 0 1cqw var(--green)}.pp-title h2{letter-spacing:-.02em;font-size:11cqw;line-height:1}.pp-title p{color:var(--ink);max-width:46cqw;margin-top:1.5cqw;font-size:4.4cqw;font-weight:800}.pp-qr{aspect-ratio:1;width:62cqw;box-shadow:0 0 0 .8cqw var(--green-ink);background:#fff;border-radius:4cqw;padding:3cqw}.pp-qr img{width:100%;height:100%;display:block}.pp-how{color:var(--ink);max-width:80cqw;font-size:4.2cqw;font-weight:800;line-height:1.4}.pp-code{color:var(--muted);font-size:3.2cqw;font-weight:700}.pp-code b{font-family:var(--mono);letter-spacing:.15em;color:var(--ink);margin-left:1.5cqw;font-size:5.2cqw}.pp-foot{color:var(--muted);letter-spacing:.05em;font-size:2.6cqw;font-weight:700}@media print{@page{size:A4 portrait;margin:0}body{background:#fff}.no-print,.admin-head,.tabs,.toast,.offline-pill,.demo-flag{display:none!important}.page.admin{gap:0;max-width:none;margin:0;padding:0}.print-wrap{gap:0}.print-page{aspect-ratio:auto;width:210mm;height:297mm;box-shadow:none;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:0}}.ar-page{gap:0;padding-bottom:0}.ar-box{isolation:isolate;background:#000;border-radius:18px;flex:1;min-height:60dvh;position:relative;overflow:hidden}.ar-msg{text-align:center;color:var(--cream);z-index:2;place-content:center;justify-items:center;gap:12px;padding:24px;font-size:15px;display:grid;position:absolute;inset:0}.ar-msg.err{background:#000000bf}.ar-msg .small{opacity:.8;font-size:13px}.ar-guide{z-index:2;pointer-events:none;position:absolute;inset:18% 12%}.ar-guide i{border:0 solid var(--orange);width:40px;height:40px;animation:1.6s ease-in-out infinite guidePulse;position:absolute}.ar-guide i:first-child{border-width:5px 0 0 5px;border-top-left-radius:16px;top:0;left:0}.ar-guide i:nth-child(2){border-width:5px 5px 0 0;border-top-right-radius:16px;top:0;right:0}.ar-guide i:nth-child(3){border-width:0 0 5px 5px;border-bottom-left-radius:16px;bottom:0;left:0}.ar-guide i:nth-child(4){border-width:0 5px 5px 0;border-bottom-right-radius:16px;bottom:0;right:0}@keyframes guidePulse{50%{opacity:.45}}.ar-hint{text-align:center;color:#faf3e6d9;padding:14px 8px calc(14px + env(safe-area-inset-bottom,0px));font-size:14px;font-weight:700}.ar-card{background:var(--paper);color:var(--ink);margin:12px 0 calc(12px + env(safe-area-inset-bottom,0px));border-radius:18px;gap:4px;padding:16px 18px;animation:.25s ease-out up;display:grid}.ar-card h2{color:var(--green-ink);font-size:19px}.ar-card p:last-child{font-size:14.5px;line-height:1.6}.ar-layer{pointer-events:none;width:1000px;height:1000px;position:relative}.ar-frame{border:14px solid var(--orange);border-radius:40px;animation:.4s ease-out both frameIn;position:absolute;inset:-14px}@keyframes frameIn{0%{opacity:0;transform:scale(1.08)}}.ar-stamp{background:var(--orange-ink);width:280px;height:280px;color:var(--cream);border:16px double var(--cream);box-shadow:0 0 0 12px var(--orange-ink), 0 20px 40px #00000059;border-radius:50%;place-content:center;justify-items:center;gap:2px;animation:.55s cubic-bezier(.2,1.6,.4,1) .2s both arSlam;display:grid;position:absolute;top:40px;right:40px;transform:rotate(-12deg)}.ar-stamp b{font-size:130px;font-weight:900;line-height:1}.ar-stamp span{letter-spacing:.08em;font-size:34px;font-weight:900}@keyframes arSlam{0%{opacity:0;transform:rotate(-40deg)scale(2.4)}70%{opacity:1;transform:rotate(-8deg)scale(.92)}}.ar-spark{clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);filter:drop-shadow(0 0 12px #ffe9a8);background:#fff;width:70px;height:70px;animation:1.5s ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{0%,to{opacity:0;transform:scale(.2)rotate(0)}50%{opacity:1;transform:scale(1)rotate(45deg)}}.ar-bubble{background:var(--green);color:var(--cream);border-radius:60px;padding:26px 46px;font-size:64px;font-weight:900;animation:1.4s ease-in-out infinite bob;position:absolute;top:50px;left:50px;box-shadow:0 16px 30px #0000004d}@keyframes bob{50%{transform:translateY(-24px)}}.ar-leaf{border:5px solid var(--green-ink);filter:drop-shadow(0 0 10px #fff);background:#ffc24a;border-radius:0 100%;width:64px;height:42px;animation:3.5s linear infinite leafFall;position:absolute;top:-80px}@keyframes leafFall{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translate(-120px,1100px)rotate(540deg)}}.ar-wave{background:#fff;border-radius:10px;width:110px;height:14px;animation:2s ease-in-out infinite shimmer;position:absolute;box-shadow:0 0 14px #ffffffe6}@keyframes shimmer{0%,to{opacity:0;transform:translate(-20px)scaleX(.5)}50%{opacity:.95;transform:translate(20px)scaleX(1)}}@media (prefers-reduced-motion:reduce){.ar-spark,.ar-leaf,.ar-wave,.ar-bubble,.ar-guide i{opacity:.9;animation:none!important}}.scan-tip.strong{color:var(--cream);font-size:15px;font-weight:800;line-height:1.5}.scan-tip.strong b{color:#ffc24a}.scan-tip.strong small{color:#faf3e6bf;margin-top:2px;font-size:12.5px;font-weight:600;display:block}.ar-entry{width:100%}.ar-chip{background:var(--orange-ink);color:var(--cream);border-color:var(--orange-ink);font-weight:900}
