:root{--night:#1f2a4d;--night-deep:#161e3a;--paper:#fbf4e4;--paper-line:#e5d6b8;--ink:#4b3a2a;--moonlight:#f7f0de;--teal:#16857c;--coral:#e26d55;--mustard:#d4a23c;--green:#6f8a5c;--round:"Zen Maru Gothic", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--night);color:var(--moonlight);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px;line-height:1.6}button{font:inherit;color:inherit}.screen{max-width:480px;min-height:100dvh;padding:0 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex;position:relative}.screen.no-fixed{padding-bottom:32px}.scene-top,.scene-bottom{pointer-events:none;background-repeat:no-repeat;background-size:cover;height:120px;margin:0 -16px}.scene-top{background-position:top;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}.scene-bottom{background-position:bottom;margin-top:auto;-webkit-mask-image:linear-gradient(#0000,#000 40%);mask-image:linear-gradient(#0000,#000 40%)}.scene-top.small{height:72px}.header{align-items:center;gap:12px;display:flex}.header .grow{flex:1}.progress{font-family:var(--round);color:var(--moonlight);font-size:20px;font-weight:700}.icon-button{border:2px solid var(--paper-line);width:44px;height:44px;font-family:var(--round);cursor:pointer;background:0 0;border-radius:50%;font-size:20px;font-weight:700}.ribbon{background:var(--coral);color:#fff;font-family:var(--round);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 50%,100% 100%,0 100%,12px 50%);padding:6px 28px;font-size:22px;font-weight:700;line-height:1.4;display:inline-block;position:relative}.card{background:var(--paper);color:var(--ink);border:1.5px solid var(--paper-line);border-radius:16px;padding:16px}.card.flash{animation:.8s ease-out flash}@keyframes flash{0%,40%{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral)}to{border-color:var(--paper-line);box-shadow:none}}.title{font-family:var(--round);margin:0;font-size:22px;font-weight:700}.note{color:var(--moonlight);opacity:.85;text-align:center;font-size:14px}.card .note{color:var(--ink)}.primary,.secondary,.choice-button{width:100%;min-height:56px;font-family:var(--round);cursor:pointer;text-align:center;border-radius:16px;font-size:18px;font-weight:700;line-height:56px;text-decoration:none;display:block}.primary{background:var(--teal);color:#fff;border:none}.primary:disabled{opacity:.6}.secondary{border:2px solid var(--paper-line);color:var(--moonlight);background:0 0;line-height:52px}.choice-button{border:2px solid var(--paper-line);background:var(--paper);color:var(--ink);padding:12px;line-height:1.4}.choice-button.selected{border-color:var(--coral);box-shadow:0 0 0 2px var(--coral)}.link{color:var(--moonlight);cursor:pointer;background:0 0;border:none;padding:8px;font-size:14px;text-decoration:underline}.fixed-bottom{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--night) 30%);z-index:10;position:fixed;bottom:0;left:0;right:0}.fixed-bottom>*{max-width:448px;margin:0 auto}.guide{align-items:flex-end;gap:8px;display:flex}.guide img,.guide .guide-fallback{object-fit:contain;flex:none;width:72px;height:72px}.guide.large img,.guide.large .guide-fallback{width:120px;height:120px}.guide-fallback{color:#fff;font-family:var(--round);background:#c8473a;border-radius:50%;place-items:center;font-size:32px;font-weight:700;display:grid}.bubble{background:var(--paper);color:var(--ink);border-radius:16px;flex:1;margin-bottom:16px;padding:12px 16px;font-weight:600;position:relative}.bubble:before{content:"";border:8px solid #0000;border-right-color:var(--paper);border-left:0;position:absolute;bottom:14px;left:-8px}.stamp{aspect-ratio:1;background:var(--stamp-image) center / contain no-repeat;width:100%;display:block}.stamp-fallback{aspect-ratio:1;border:4px solid var(--stamp-ink);width:100%;color:var(--stamp-ink);font-size:40px;font-family:var(--round);border-radius:50%;place-items:center;font-weight:700;display:grid}.stamp-fallback small{font-size:14px;line-height:1;display:block}.ledger{background:var(--night) top center / 100% auto no-repeat;gap:12px;padding-top:12px;overflow-x:hidden}.ledger-title{place-items:center;min-height:56px;display:grid;position:relative}.sign-title{color:#fff8e6;max-width:calc(100% - 112px);font-family:var(--round);letter-spacing:.06em;text-align:center;text-shadow:1.5px 0 #5a3a22,-1.5px 0 #5a3a22,0 1.5px #5a3a22,0 -1.5px #5a3a22,1px 1px #5a3a22,-1px 1px #5a3a22,1px -1px #5a3a22,-1px -1px #5a3a22,0 3px #5a3a22;background:repeating-linear-gradient(#0000 0 7px,#5a3a221f 7px 8px),linear-gradient(#d39a58,#b97c3e);border:2px solid #5a3a22;border-radius:10px;margin:0;padding:8px 26px 10px;font-size:22px;font-weight:700;line-height:1.3;box-shadow:0 4px 10px #00000059}.sign-title.has-sign{border:0 solid #0000;border-width:0 18px;border-image:var(--sign) 0 50 fill / 0 18px stretch;box-shadow:none;filter:drop-shadow(0 4px 6px #00000059);background:0 0;border-radius:0;padding-left:10px;padding-right:10px}.sheet-title .sign-title{max-width:calc(100% - 104px);font-size:clamp(17px,13.4771vw - 26.4151px,22px)}.ledger-help{color:var(--moonlight);background:#161e3a99;place-items:center;text-decoration:none;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ledger-talk{z-index:1;align-items:flex-end;gap:4px;margin-bottom:-26px;display:flex;position:relative}.ledger-bubble{background:var(--paper);color:var(--ink);word-break:auto-phrase;border-radius:16px;flex:1;margin-bottom:34px;padding:10px 14px;font-weight:600;line-height:1.5;position:relative;box-shadow:0 3px 10px #00000040}.ledger-bubble:after{content:"";border:8px solid #0000;border-left-color:var(--paper);border-right:0;position:absolute;bottom:14px;right:-8px}.ledger-bubble.flash{animation:.8s ease-out flash}.ledger-bubble-sub{color:#7a6a58;font-size:13px;display:block}.remaining{font-family:var(--round);align-items:baseline;gap:2px;font-size:18px;font-weight:700;display:flex}.remaining strong{color:var(--coral);font-size:28px;line-height:1.1}.ledger-guide{object-fit:contain;object-position:bottom;flex:none;width:88px;height:104px}.ledger-card{background:var(--paper);color:var(--ink);outline-offset:-9px;border-radius:18px;outline:2px dashed #e3c98d;padding:14px 16px 18px;position:relative;box-shadow:0 6px 18px #0000004d}.ledger-card-star{background:var(--mustard);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);width:16px;height:16px;position:absolute}.ledger-card-star:first-child{top:14px;left:14px}.ledger-card-star:nth-child(2){top:14px;right:14px}.ledger-card-star:nth-child(3){bottom:14px;left:14px}.ledger-card-star:nth-child(4){bottom:14px;right:14px}.ledger-head{font-family:var(--round);color:#7a6a58;border-bottom:1.5px dashed #e8d9b6;justify-content:center;align-items:baseline;gap:10px;margin:0 18px 12px;padding-bottom:6px;font-size:14px;font-weight:700;display:flex}.ledger-progress{font-size:16px;display:inline-block}.ledger-progress strong{color:var(--ink);margin-right:2px;font-size:26px;line-height:1.2}.stamp-grid{--gap:12px;gap:10px;display:grid}.stamp-row{justify-content:center;gap:var(--gap);display:flex}.slot{width:calc((100% - var(--gap) * (var(--columns,3) - 1)) / var(--columns,3));justify-items:center;gap:4px;max-width:100px;display:grid}.slot-frame{aspect-ratio:1;place-items:center;width:100%;display:grid;position:relative;container-type:inline-size}.slot-empty{aspect-ratio:1;color:#d6c196;width:88%;font-family:var(--round);border:2.5px dashed #e0cb9c;border-radius:50%;place-items:center;font-size:36cqi;font-weight:700;line-height:1;display:grid}.slot-name{color:#7a6a58;white-space:nowrap;align-items:center;gap:4px;max-width:100%;font-size:13px;font-weight:700;line-height:1.4;display:flex;overflow:hidden}.slot-name.stamped{color:var(--ink)}.slot-ink{border-radius:50%;flex:none;width:8px;height:8px}.ledger-map{justify-items:center;gap:8px;margin-top:12px;display:grid}.ledger-map .map{border:6px solid var(--paper);border-radius:16px;width:100%;box-shadow:0 6px 18px #0000004d}.ledger-map-title{background:var(--paper);color:var(--ink);font-family:var(--round);border-radius:999px;padding:2px 18px;font-weight:700}.slot-frame .stamp,.slot-frame .stamp-fallback{width:88%;transform:rotate(var(--tilt,-6deg))}.press-fx{z-index:5;pointer-events:none;--lean:calc(var(--tilt) * .4);position:absolute}.stamper{transform-origin:50% 80.7%;will-change:transform;opacity:0;height:150%;position:absolute;bottom:4%;left:4%;right:4%}.stamper svg{width:100%;height:100%;display:block;overflow:visible}.hanko-rubber{fill:var(--stamp-ink)}.stamper-shadow{filter:blur(4px);opacity:0;background:#3c230a99;border-radius:50%;height:52%;position:absolute;top:42%;left:7%;right:7%}.paper-dent{opacity:0;background:radial-gradient(closest-side,#5a3a220a 58%,#5a3a224d 80%,#5a3a2200 100%);border-radius:50%;position:absolute;inset:-4%}.tap-word{color:#c9472f;font-family:var(--round);white-space:nowrap;font-size:18px;font-weight:700;line-height:1;animation:.7s ease-in-out infinite alternate tap-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes tap-pulse{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.2)}}.pon{font-family:var(--round);color:var(--coral);white-space:nowrap;font-size:18px;font-weight:700;animation:.44s ease-out .2s both pon;position:absolute;bottom:10%;right:-10px}@keyframes pon{0%{opacity:0;transform:translateY(6px)}30%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.press-target{z-index:2;cursor:pointer;touch-action:manipulation;background:0 0;border:none;border-radius:18px;width:100%;height:100%;padding:0;position:absolute;inset:0}.ledger[data-press=wait] .ledger-card,.ledger[data-press=pressing] .ledger-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.slot-frame.target .slot-empty{color:#0000}.ledger[data-press=wait] .slot-frame.target .slot-empty{border-style:solid;border-color:var(--coral);background:#e26d551a;animation:.7s ease-in-out infinite alternate tap-glow}@keyframes tap-glow{0%{box-shadow:0 0 #e26d5599}to{box-shadow:0 0 0 9px #e26d5500}}.ledger[data-press=pressing] .stamper{animation:.64s linear both press-down}.ledger[data-press=pressing] .stamper-shadow{animation:.64s linear both press-shadow}.ledger[data-press=pressing] .paper-dent{animation:.64s linear both press-dent}.ledger[data-press=pressing] .ledger-card{animation:.64s linear both card-press}@keyframes press-down{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,1,.75);transform:translateY(-24%)rotate(-4deg)scale(1.3)}7%{opacity:1}25%{transform:translateY(0) rotate(var(--lean)) scale(1);animation-timing-function:ease-out}30%{transform:translateY(1%) rotate(var(--lean)) scale(1.03, .9)}to{opacity:1;transform:translateY(0.6%) rotate(var(--lean)) scale(1.02, .93)}}@keyframes press-shadow{0%{opacity:0;animation-timing-function:ease-in;transform:translate(22%,32%)scale(1.25)}25%{opacity:.7;transform:translate(1%,2%)scale(1)}to{opacity:.75;transform:translate(1%,2%)scale(1.02)}}@keyframes press-dent{0%,24%{opacity:0}27%,to{opacity:1}}@keyframes card-press{0%,24.5%{transform:perspective(800px)rotateX(0)rotateY(0)translateY(0)scale(1)}29.5%{transform:perspective(800px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(4px) scale(.992)}50%,to{transform:perspective(800px) rotateX(calc(var(--rx) * .72)) rotateY(calc(var(--ry) * .72)) translateY(2px) scale(.996)}}.ledger[data-press=released] .stamper{animation:.44s linear both press-up}.ledger[data-press=released] .stamper-shadow{animation:.44s linear both lift-shadow}.ledger[data-press=released] .paper-dent{animation:.4s ease-out both lift-dent}.ledger[data-press=released] .ledger-card{animation:.36s ease-out both card-lift}.slot-frame.target .stamp,.slot-frame.target .stamp-fallback{animation:.64s ease-out both wet}@keyframes press-up{0%{opacity:1;transform:translateY(0.6%) rotate(var(--lean)) scale(1.02, .93);animation-timing-function:ease-out}14%{transform:translateY(-1%) rotate(calc(var(--lean) + 2deg)) scale(.99, 1.03);animation-timing-function:ease-in}68%{opacity:1;transform:translateY(-17%)rotate(3deg)scale(1.16)}86%,to{opacity:0;transform:translateY(-22%)rotate(4deg)scale(1.22)}}@keyframes lift-shadow{0%{opacity:.75;animation-timing-function:ease-in;transform:translate(1%,2%)scale(1.02)}60%{opacity:.22;transform:translate(16%,24%)scale(1.15)}88%,to{opacity:0;transform:translate(20%,30%)scale(1.2)}}@keyframes lift-dent{0%{opacity:1}to{opacity:0}}@keyframes card-lift{0%{transform:perspective(800px) rotateX(calc(var(--rx) * .72)) rotateY(calc(var(--ry) * .72)) translateY(2px) scale(.996)}35%{transform:perspective(800px) rotateX(calc(var(--rx) * -.3)) rotateY(calc(var(--ry) * -.3)) translateY(-2px) scale(1.001)}70%{transform:perspective(800px) rotateX(calc(var(--rx) * .1)) rotateY(calc(var(--ry) * .1)) translateY(.5px) scale(1)}to{transform:perspective(800px)rotateX(0)rotateY(0)translateY(0)scale(1)}}@keyframes wet{0%{filter:brightness(.72)saturate(1.45)blur(.5px)}to{filter:none}}.ledger-progress.complete,.ledger-progress.complete strong{color:var(--coral)}.ledger.cheer .slot-frame{animation:cheer-pop .5s ease-out calc(var(--order) * .11s) both}.ledger.cheer .slot-frame:before{content:"";border:3px solid var(--ring);opacity:0;animation:cheer-ring .6s ease-out calc(var(--order) * .11s + 80ms) both;border-radius:50%;position:absolute;inset:6%}.ledger.cheer .slot-frame:after{content:"";aspect-ratio:1;background:var(--mustard);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;width:24%;animation:cheer-sparkle .6s ease-out calc(var(--order) * .11s + .12s) both;position:absolute;top:0;right:0}.ledger.cheer .ledger-card-star{animation:.7s ease-out .62s both cheer-star}.ledger.cheer .ledger-progress{animation:.5s ease-out .62s both cheer-progress}.ledger.cheer .ledger-card{animation:1s ease-out .55s both cheer-glow}.ledger.cheer .ledger-guide{transform-origin:50% 100%;animation:.5s ease-out .95s 2 both cheer-hop}@keyframes cheer-pop{0%{transform:none}30%{transform:scale(1.2)rotate(6deg)}60%{transform:scale(.96)rotate(-2deg)}to{transform:none}}@keyframes cheer-ring{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.35)}}@keyframes cheer-sparkle{0%{opacity:0;transform:scale(0)rotate(0)}40%{opacity:1;transform:scale(1.2)rotate(45deg)}to{opacity:0;transform:scale(.4)rotate(90deg)}}@keyframes cheer-star{0%{transform:none}45%{background:#ffcf3f;transform:scale(1.9)rotate(144deg)}to{transform:rotate(216deg)}}@keyframes cheer-progress{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}@keyframes cheer-glow{0%{box-shadow:0 6px 18px #0000004d,0 0 #ffd66600}35%{box-shadow:0 6px 18px #0000004d,0 0 28px 8px #ffd666b3}to{box-shadow:0 6px 18px #0000004d,0 0 #ffd66600}}@keyframes cheer-hop{0%{transform:none}35%{transform:translateY(-18px)}60%{transform:scale(1.05,.93)}78%,to{transform:none}}.confetti-layer{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti{will-change:transform, opacity;position:absolute;top:0;left:0}.confetti>i{background:var(--color);animation:confetti-flutter var(--flutter) ease-in-out infinite alternate;display:block}.confetti.paper>i{width:var(--w);height:var(--h);border-radius:1px}.confetti.star>i{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);width:12px;height:12px}.confetti.dot>i{border-radius:50%;width:7px;height:7px}@keyframes confetti-flutter{0%{transform:translateX(calc(var(--sway) * -1)) rotate(var(--turn-from)) rotateY(0deg)}to{transform:translateX(var(--sway)) rotate(var(--turn-to)) rotateY(var(--flip))}}.map{background:var(--night-deep);border-radius:12px;position:relative;overflow:hidden}.map img.map-image{width:100%;height:auto;display:block}.map .map-placeholder{aspect-ratio:3/2;color:var(--paper-line);place-items:center;font-size:14px;display:grid}.pin{color:#fff;width:30px;height:30px;font-family:var(--round);cursor:pointer;background:#1f2a4d99;border:2.5px solid #fff;border-radius:50%;place-items:center;padding:0;font-size:15px;font-weight:700;display:grid;position:absolute;transform:translate(-50%,-50%)}.pin.done{background:var(--pin-ink);border-color:var(--paper)}.pin.goal{background:var(--coral);border-color:var(--paper);border-radius:6px;width:34px}.pin.highlight{animation:1s ease-out 2 pulse}@keyframes pulse{50%{transform:translate(-50%,-50%)scale(1.35)}}.pin-label{background:var(--paper);color:var(--ink);white-space:nowrap;pointer-events:none;border-radius:10px;padding:2px 10px;font-size:13px;font-weight:700;position:absolute;transform:translate(-50%,calc(-100% - 20px))}.map-full{z-index:50;touch-action:pan-x pan-y pinch-zoom;background:#0a0e1ef2;position:fixed;inset:0;overflow:auto}.map-full .map{border-radius:0;width:200%;max-width:1400px}.map-full-close{top:calc(12px + env(safe-area-inset-top));z-index:51;background:var(--paper);color:var(--ink);position:fixed;right:12px}.choices{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.choices.three{grid-template-columns:repeat(3,1fr)}.choice{cursor:pointer;color:var(--ink);background:0 0;border:2.5px solid #0000;border-radius:16px;padding:8px 8px 4px;font-weight:700}.choice.selected{border-color:var(--coral);background:#e26d5514}.choice .stamp,.choice .stamp-fallback{width:88%;margin:0 auto}.press-confirm{text-align:center;justify-items:center;gap:8px;font-weight:700;display:grid}.press-confirm small{opacity:.75;font-size:14px;font-weight:400}.press-confirm .stamp,.press-confirm .stamp-fallback{width:120px}.dots{justify-content:center;gap:8px;display:flex}.dots span{border:2px solid var(--moonlight);border-radius:50%;width:10px;height:10px}.dots span.on{background:var(--moonlight)}.options{gap:10px;margin-top:auto;display:grid}.options.two{grid-template-columns:1fr 1fr}.welcome{padding-bottom:calc(24px + env(safe-area-inset-bottom));background:var(--night) bottom center / cover no-repeat;gap:0;container-type:inline-size}.welcome .welcome-name{z-index:1;color:var(--title-color);font-family:var(--round);letter-spacing:.06em;text-align:center;text-wrap:balance;overflow-wrap:anywhere;text-shadow:2px 0 0 var(--title-outline), -2px 0 0 var(--title-outline), 0 2px 0 var(--title-outline), 0 -2px 0 var(--title-outline), 1.5px 1.5px 0 var(--title-outline), -1.5px 1.5px 0 var(--title-outline), 1.5px -1.5px 0 var(--title-outline), -1.5px -1.5px 0 var(--title-outline), 0 4px 0 var(--title-outline);margin:0;padding:24px 0 12px;font-size:clamp(26px,8.4cqi,36px);font-weight:700;line-height:1.3;position:relative}.welcome-hero{width:calc(100% + 32px);max-height:calc(var(--welcome-height,100dvh) * .45);object-fit:contain;margin:0 -16px;display:block}.welcome-hero.blend{-webkit-mask-image:linear-gradient(#000 82%,#0000);mask-image:linear-gradient(#000 82%,#0000)}.welcome-panel{background:var(--paper);color:var(--ink);border-radius:22px;margin-top:12px;padding:20px 10px 18px;position:relative;box-shadow:0 6px 18px #00000040}.welcome-hero.blend+.welcome-panel{margin-top:-18px}.welcome-tagline{font-family:var(--round);text-align:center;white-space:pre-line;margin:0 0 14px;font-size:clamp(16px,5cqi,20px);font-weight:700;line-height:1.4}.intro{grid-template-columns:repeat(3,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.intro li{text-align:center;align-content:start;justify-items:center;gap:6px;display:grid}.intro-pic{aspect-ratio:1;object-fit:contain;width:92%;max-width:110px}.intro-text{white-space:pre-line;font-size:12px;font-weight:700;line-height:1.45}.welcome-actions{gap:8px;margin-top:auto;padding-top:20px;display:grid}.welcome-actions .link{color:var(--moonlight);opacity:1;background:#161e3ab8;border-radius:8px;justify-self:center;padding:2px 10px}.welcome-closed{background:var(--paper);color:var(--ink);font-family:var(--round);text-align:center;border-radius:16px;margin:0;padding:18px 16px;font-weight:700}.primary.big{border-radius:999px;min-height:64px;font-size:24px;line-height:64px}.field{gap:6px;font-weight:700;display:grid}.field select{border:2px solid var(--paper-line);width:100%;height:52px;color:var(--ink);background:#fff;border-radius:12px;padding:0 12px;font-size:17px}.field select:invalid{color:#9a8a78}.field select:has(option[value=""]:checked){color:#9a8a78}.copy-code{border:2px dashed var(--paper-line);width:100%;color:var(--ink);cursor:pointer;background:#fff6;border-radius:14px;justify-items:center;gap:2px;padding:12px;display:grid}.copy-code-value{font-family:var(--round);letter-spacing:.08em;font-size:38px;font-weight:700;line-height:1.2}.copy-code-action{color:var(--teal);font-size:14px;font-weight:700}.copy-code.small{color:var(--moonlight);background:0 0;grid-auto-flow:column;justify-content:center;align-items:center;gap:12px;padding:8px 12px}.copy-code.small .copy-code-value{font-size:20px}.copy-code.small .copy-code-action{color:#8fd3c9}.code{font-family:var(--round);letter-spacing:.08em;text-align:center;font-size:40px;font-weight:700}.code-input{justify-content:center;align-items:center;gap:6px;display:flex}.code-input input{border:2px solid var(--paper-line);background:var(--paper);width:100%;max-width:320px;height:64px;color:var(--ink);font-family:var(--round);letter-spacing:.2em;text-align:center;text-transform:uppercase;border-radius:12px;font-size:30px;font-weight:700}.error{color:var(--coral);text-align:center;font-weight:700}.scan{z-index:40;background:#000;position:fixed;inset:0}.scan video{object-fit:cover;width:100%;height:100%}.scan-frame{aspect-ratio:1;border:4px solid var(--paper);border-radius:24px;width:min(68vw,300px);position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);box-shadow:0 0 0 100vmax #00000073}.scan-top,.scan-bottom{text-align:center;padding:16px;font-weight:700;position:absolute;left:0;right:0}.scan-top{top:env(safe-area-inset-top)}.scan-bottom{bottom:calc(16px + env(safe-area-inset-bottom));justify-items:center;gap:12px;display:grid}.scan-close{top:calc(12px + env(safe-area-inset-top));z-index:2;background:#0006;position:absolute;left:12px}.qr-box{background:#fff;border-radius:12px;width:64%;margin:0 auto;padding:12px}.qr-box img,.qr-box canvas{width:100%;height:auto;display:block}.short-code{font-family:var(--round);letter-spacing:.15em;text-align:center;font-size:34px;font-weight:700}.result-score{text-align:center;font-family:var(--round);font-weight:700}.result-score strong{font-size:72px;line-height:1}.result-score span{font-size:22px}.rank-ribbon{text-align:center;animation:.6s ease-out both drop}@keyframes drop{0%{opacity:0;transform:translateY(-40px)}}.badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.badge{border:2px solid var(--mustard);color:var(--mustard);border-radius:999px;padding:4px 14px;font-size:14px;font-weight:700}.review{margin-top:8px}.review-title{font-family:var(--round);text-align:center;color:var(--moonlight);margin:0;font-size:20px}.review-item{--pen:#6b7a8c}.review-item.ok{--pen:#d9392b}.review-head{align-items:center;gap:8px;display:flex}.review-no{background:var(--ink);width:26px;height:26px;color:var(--paper);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.review-mark{font-family:var(--round);color:var(--pen);margin-left:auto;font-size:17px;font-weight:700}.review-q{white-space:pre-wrap;margin:10px 0}.review-answers{grid-template-columns:1fr 1fr;gap:10px;display:grid}.review-answers>div{border:1px dashed var(--paper-line);text-align:center;background:#fff8ea;border-radius:12px;justify-items:center;gap:4px;padding:8px;font-size:14px;display:grid}.review-answers small{opacity:.75;font-size:12px}.review-item.ng .review-answers>div:last-child{border:2px solid var(--teal);background:#eef7f4}.review-item.ng .review-answers>div:last-child small{color:var(--teal);opacity:1;font-weight:700}.review-stamp{place-items:center;margin:16px 0;display:grid;position:relative}.review-pen{width:100px;height:100px;fill:var(--pen);pointer-events:none;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.review-answers .stamp,.review-answers .stamp-fallback{width:64px}.review-answers .stamp-fallback{font-size:24px}.review-none{opacity:.6;align-self:center}.center{text-align:center}.stack{gap:12px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.howto-card{padding:14px 10px}.howto-steps{grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}.howto-steps li{text-align:center;align-content:start;justify-items:center;gap:2px;padding:10px 6px 12px;display:grid;position:relative}.howto-steps li:nth-child(odd){border-right:1.5px dashed #e3c98d}.howto-steps li:nth-child(n+3){border-top:1.5px dashed #e3c98d}.howto-number{color:#fff;width:30px;height:30px;font-family:var(--round);border-radius:50%;place-items:center;font-size:18px;font-weight:700;display:grid;position:absolute;top:8px;left:6px}.howto-steps img{aspect-ratio:1;object-fit:contain;width:100%;max-width:150px}.howto-steps strong{font-family:var(--round);white-space:nowrap;font-size:min(14px,3.5vw);line-height:1.4}.howto-steps li>span:last-child{color:#6b5a47;font-size:12px;line-height:1.5}.howto-tips{grid-template-columns:1fr 1fr;gap:8px;display:grid}.howto-tips p{background:var(--paper);color:var(--ink);text-align:center;text-wrap:balance;word-break:auto-phrase;border-radius:999px;place-items:center;margin:0;padding:10px 8px;font-size:12.5px;font-weight:700;line-height:1.4;display:grid;position:relative}.howto-image{padding-top:0;padding-bottom:calc(24px + env(safe-area-inset-bottom));background:var(--night) bottom center / cover no-repeat}.howto-image>img{width:calc(100% + 32px);margin:0 -16px;display:block}.form-screen{padding-top:12px;padding-bottom:calc(24px + env(safe-area-inset-bottom));background:var(--night) bottom center / cover no-repeat;gap:0;overflow-x:hidden}.form-back{color:var(--moonlight);background:#161e3a99;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.form-talk{z-index:1;align-items:center;gap:4px;margin-top:4px;margin-bottom:-22px;display:flex;position:relative}.form-guide{object-fit:contain;object-position:bottom;flex:none;width:116px;height:116px}.form-bubble{background:var(--paper);color:var(--ink);font-family:var(--round);text-align:center;text-wrap:balance;border-radius:999px;flex:1;margin-bottom:18px;padding:12px 18px;font-size:17px;font-weight:700;line-height:1.4;position:relative;box-shadow:0 3px 10px #00000040}.form-bubble:after{content:"";border:8px solid #0000;border-right-color:var(--paper);border-left:0;margin-top:-8px;position:absolute;top:50%;left:-8px}.form-card{padding:26px 18px 22px}.form-field{gap:8px;padding:12px 0;display:grid}.form-field+.form-field{border-top:1.5px dashed #e3c98d}.form-label{font-family:var(--round);align-items:center;gap:6px;font-size:17px;font-weight:700;display:flex}.form-label:before{content:"";background:var(--mustard);width:16px;height:18px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 18'%3E%3Cpath d='M3 17C4 11 7 6 13 2' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M7 9C4 9 2 7 2 4c3 0 5 2 5 5zM10 6c0-3 2-5 5-5 0 3-2 5-5 5zM8.5 11.5c3 0 5.5 1 6.5 3.5-3 .5-5.5-1-6.5-3.5z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 18'%3E%3Cpath d='M3 17C4 11 7 6 13 2' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M7 9C4 9 2 7 2 4c3 0 5 2 5 5zM10 6c0-3 2-5 5-5 0 3-2 5-5 5zM8.5 11.5c3 0 5.5 1 6.5 3.5-3 .5-5.5-1-6.5-3.5z'/%3E%3C/svg%3E") 50%/contain no-repeat}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.gender{grid-template-columns:1fr 1fr;display:grid}.chip{min-height:46px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fffaf0;border:1.5px solid #8f7a5c;border-radius:999px;flex:1 0 calc(25% - 6px);padding:4px 6px;font-size:15px;font-weight:700}.chip.selected{border-color:var(--teal);background:var(--teal);color:#fff}.form-select{width:100%;min-height:50px;color:var(--ink);font:inherit;appearance:none;background:#fffaf0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234b3a2a' stroke-width='2' fill='none'/%3E%3C/svg%3E") right 16px center/14px no-repeat;border:1.5px solid #8f7a5c;border-radius:12px;padding:0 40px 0 16px;font-weight:700}.form-select:invalid,.form-select option[value=""]{color:#9a8a76}.form-screen .primary:disabled{opacity:1;color:#ffffffd9;background:#8fb8b4}.form-screen .note{text-shadow:0 1px 3px #000c}
