*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.mt-3{margin-top:.75rem}.table{display:table}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.resize{resize:both}.text-3xl{font-size:1.875rem;line-height:2.25rem}.leading-7{line-height:1.75rem}.text-black\/65{color:#000000a6}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--ink:#171511;--paper:#f4efe3;--paper-deep:#ece4d4;--holly:#0c806c;--ribbon:#ad1e2f;--gold:#bea747;--violet:#302344;--line:#17151133}*{box-sizing:border-box}html{background:var(--paper)}body{min-height:100vh;min-height:100dvh;color:var(--ink);background:var(--paper);text-rendering:optimizelegibility;margin:0;font-family:Arial,Noto Sans TC,sans-serif;overflow-x:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}:focus-visible{outline:2px solid var(--ribbon);outline-offset:3px}.display-serif{font-family:Georgia,Noto Serif TC,serif;font-weight:400}.page-shell{width:min(100%,32rem);height:100dvh;min-height:100vh;background:var(--paper);min-height:100svh;margin:0 auto;padding:1rem 1.25rem 2.25rem;position:relative;overflow:hidden}.brand-header{z-index:20;padding:.4rem 0 2rem;position:relative}.brand-header.is-compact{padding-bottom:1.35rem}.brand-rule{color:var(--ink);align-items:center;gap:.85rem;display:flex}.brand-rule:before,.brand-rule:after{content:"";opacity:.42;background:currentColor;flex:1;height:1px}.brand-wordmark{letter-spacing:.2em;flex-direction:column;align-items:center;min-width:5.7rem;font-family:Georgia,serif;font-size:.68rem;line-height:1.1;display:flex}.brand-wordmark small{letter-spacing:.46em;margin-top:.25rem;font-family:Arial,sans-serif;font-size:.34rem}.brand-kicker{text-align:center;letter-spacing:.36em;color:#1715118c;margin:.7rem 0 0;font-size:.54rem}.brand-header.is-inverse .brand-rule{color:#f8f4eb}.brand-header.is-inverse .brand-kicker{color:#f8f4eb8c}.eyebrow{color:var(--ribbon);letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:.61rem;font-weight:700}.primary-button{border:1px solid var(--ink);background:var(--ink);color:#fff;letter-spacing:.12em;border-radius:0;justify-content:center;align-items:center;width:100%;min-height:3rem;padding:.82rem 1rem;font-size:.74rem;font-weight:700;transition:background-color .18s,color .18s,opacity .18s,transform .18s;display:flex}.primary-button:hover{color:var(--ink);background:0 0}.primary-button:active{transform:translateY(1px)}.primary-button:disabled{opacity:.5}.text-link{min-height:2.75rem;color:var(--ink);text-underline-offset:.24rem;padding:.85rem .5rem;font-size:.72rem;font-weight:700;text-decoration:underline;display:block}.page-footnote{text-align:center;letter-spacing:.05em;color:#1715118c;margin:1.35rem auto 0;font-size:.63rem;line-height:1.7}.invitation-page{flex-direction:column;justify-content:center;padding-top:1.5rem;padding-bottom:1.5rem;display:flex}.invitation-card{border:1px solid var(--line);background:#ffffff2e;min-height:31rem;position:relative;overflow:hidden}.invitation-card:before{content:"";opacity:.16;background-image:linear-gradient(var(--ink) 1px, transparent 1px), linear-gradient(90deg, var(--ink) 1px, transparent 1px);background-size:2rem 2rem;position:absolute;inset:0}.invitation-copy{z-index:3;max-width:19rem;padding:3rem 1.75rem 2rem;position:relative}.invitation-copy h1{letter-spacing:-.045em;margin:.85rem 0 0;font-size:clamp(2.75rem,13vw,4rem);line-height:.98}.invitation-copy>p:not(.eyebrow){color:#171511a3;max-width:16rem;margin:1.35rem 0 1.75rem;font-size:.86rem;line-height:1.85}.invitation-copy .primary-button{max-width:17rem}.gift-swatches{z-index:2;width:15rem;height:17rem;position:absolute;bottom:-1.2rem;right:-2.2rem;transform:rotate(-8deg)}.gift-swatch{background-position:50%;background-size:cover;width:6.4rem;height:8.3rem;display:block;position:absolute;box-shadow:0 16px 28px #1e140f1f}.gift-swatch:before{content:"";background:currentColor;width:2px;height:3rem;position:absolute;top:-2.5rem;left:50%;transform:translate(-50%);box-shadow:-1.7rem .4rem 0 -1px,1.7rem -.25rem 0 -1px}.gift-swatch:after{content:"";background:#ffffff8a;width:45%;height:1px;position:absolute;top:.8rem;left:50%;transform:translate(-50%)}.gift-swatch.is-red{color:var(--ribbon);background-image:url(/assets/tartan/tartan-red.webp);top:1.2rem;right:.2rem;transform:rotate(12deg)}.gift-swatch.is-gold{color:var(--gold);background-image:url(/assets/tartan/tartan-yellow.webp);bottom:.3rem;left:1.2rem;transform:rotate(16deg)}.gift-swatch.is-green{color:var(--holly);background-image:url(/assets/tartan/tartan-green.webp);bottom:-1.5rem;right:1rem;transform:rotate(-13deg)}.gift-swatches.is-quiet{width:100%;height:100%;inset:0;transform:none}.gift-swatches.is-quiet .gift-swatch{width:5.5rem;height:7rem}.gift-swatches.is-quiet .is-red{top:4.2rem;right:1.3rem}.gift-swatches.is-quiet .is-gold{bottom:3.4rem;left:.6rem}.gift-swatches.is-quiet .is-green{bottom:2rem;right:2.4rem}.start-page{min-height:100dvh}.start-layout{position:relative}.start-main{z-index:5;position:relative}.start-heading{margin:.5rem 0 1.8rem}.start-heading h1{letter-spacing:-.04em;margin:.5rem 0 0;font-size:clamp(2.15rem,10vw,3.15rem);line-height:1.08}.start-heading>p:not(.eyebrow){color:#1715119e;max-width:21rem;margin:.8rem 0 0;font-size:.78rem;line-height:1.75}.start-art{z-index:3;opacity:.9;transform-origin:100% 0;width:7.4rem;height:9.5rem;display:block;position:absolute;top:-.15rem;right:-1.75rem;transform:scale(.72)}.start-heading{padding-right:4.8rem}.editorial-form{gap:1rem;display:grid}.field-label{display:block}.field-label>span,.admin-filter-form label span{letter-spacing:.12em;text-transform:uppercase;margin-bottom:.4rem;font-size:.59rem;font-weight:700;display:block}.input-field{width:100%;min-height:2.8rem;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #1715116b;border-radius:0;padding:.7rem .15rem;font-size:.83rem}.input-field::placeholder{color:#17151157}.input-field:focus{border-bottom-color:var(--ink);outline:0}.consent-field{color:#171511a3;align-items:flex-start;gap:.65rem;padding:.3rem 0 .2rem;font-size:.66rem;line-height:1.65;display:flex}.consent-checkbox{width:.9rem;height:.9rem;accent-color:var(--ink);border-radius:0;flex:none;margin-top:.17rem}.form-error,.participant-warning{border-left:2px solid var(--ribbon);color:var(--ribbon);text-align:left;background:#ad1e2f0f;margin:0;padding:.65rem .75rem;font-size:.7rem;font-weight:700;line-height:1.55}.invalid-store-card{border:1px solid var(--line);text-align:center;background:#ffffff40;margin-top:20vh;padding:2.25rem 1.5rem}.invalid-store-card h1{margin:.7rem 0 0}.stage-page{flex-direction:column;min-height:100dvh;padding-bottom:0;display:flex}.stage-content{z-index:5;flex:1;justify-content:center;align-items:center;padding-bottom:7rem;display:flex;position:relative}.status-card{text-align:center;background:0 0;width:100%}.line-card,.scan-card,.completion-card{z-index:4;padding:1rem 1rem 1.6rem;position:relative}.line-card:before,.line-card:after{content:"";opacity:.95;background-position:50%;background-size:cover;width:1.25rem;position:absolute;top:-2rem;bottom:-2rem}.line-card:before{background-image:url(/assets/tartan/tartan-red.webp);left:-1.25rem;transform:rotate(4deg)}.line-card:after{background-image:url(/assets/tartan/tartan-navy.webp);right:-1.25rem;transform:rotate(-4deg)}.line-mark{color:#fff;background:#06c755;border-radius:50%;place-items:center;width:4.25rem;height:4.25rem;margin:1.3rem auto 0;display:grid}.line-mark span{letter-spacing:-.04em;font-size:.83rem;font-weight:900}.line-card h1,.scan-card h1,.completion-card h1{letter-spacing:-.035em;margin:1.15rem 0 0;font-size:clamp(1.75rem,8vw,2.55rem);line-height:1.15}.status-copy,.completion-copy{color:#1715119e;max-width:18rem;margin:.75rem auto 0;font-size:.75rem;line-height:1.75}.line-card .form-error{margin-top:1rem}.line-button{background:#079746;border-color:#079746;max-width:17rem;margin:1.3rem auto 0}.line-button:hover{color:#079746}.dev-note{color:#17151175;max-width:18rem;margin:.65rem auto 0;font-size:.58rem;line-height:1.55}.festive-shelf{z-index:2;background-image:url(/assets/tartan/tartan-navy.webp);background-position:50%;background-size:19rem;height:5.6rem;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 1px #fff6}.festive-shelf.is-compact{height:4rem}.shelf-silhouettes{height:4.5rem;position:absolute;bottom:100%;left:0;right:0}.scent-silhouette{background:var(--ink);display:block;position:absolute;bottom:0}.scent-silhouette:before,.scent-silhouette:after{content:"";background:inherit;position:absolute}.scent-silhouette.is-cologne{width:2.4rem;height:3.1rem;left:18%}.scent-silhouette.is-cologne:before{width:1rem;height:.75rem;top:-.7rem;left:.7rem}.scent-silhouette.is-diffuser{width:2.65rem;height:2.1rem;left:47%}.scent-silhouette.is-diffuser:before{width:1px;height:3.25rem;box-shadow:.45rem 0 var(--ink), .9rem 0 var(--ink), 1.35rem 0 var(--ink);transform-origin:bottom;bottom:1.8rem;left:.55rem;transform:rotate(-15deg)}.scent-silhouette.is-pump{width:2.2rem;height:3.75rem;right:17%}.scent-silhouette.is-pump:before{width:.9rem;height:.7rem;top:-.65rem;left:.65rem}.scent-silhouette.is-pump:after{width:1.45rem;height:.16rem;top:-.82rem;left:1.1rem}.scan-card{padding-top:.2rem}.scan-visual{height:7.4rem;margin:.75rem auto -.6rem;position:relative}.scan-bottle{background:#ffffff70;border:1px solid #17151180;width:2.8rem;height:4.9rem;position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #17151114}.scan-bottle:before{content:"";background:var(--ink);border:1px solid #17151180;width:1.5rem;height:.9rem;position:absolute;top:-.85rem;left:.65rem}.scan-bottle:after{content:"JO MALONE\a LONDON";white-space:pre;letter-spacing:.06em;border:1px solid #17151140;padding:.4rem .1rem;font-family:Georgia,serif;font-size:.36rem;line-height:1.55;position:absolute;top:1.4rem;left:.35rem;right:.35rem}.scan-state-icon,.completion-check{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:2rem;height:2rem;margin:0 auto;font-size:.9rem;font-weight:700;display:grid}.scan-card.is-error .scan-state-icon{background:var(--ribbon)}.scan-card.is-working .scan-state-icon{background:var(--gold)}.scan-actions{max-width:18rem;margin:1.2rem auto 0}.scan-actions .text-link{margin-top:.2rem}.complete-page{justify-content:flex-start}.completion-card{text-align:center;flex-direction:column;justify-content:center;min-height:calc(100dvh - 7rem);padding-bottom:8rem;display:flex}.completion-check{width:2.45rem;height:2.45rem;margin-top:1rem}.coupon-status{border:1px dashed var(--line);letter-spacing:.04em;max-width:18rem;margin:1.2rem auto 0;padding:.8rem;font-size:.68rem;font-weight:700}.coupon-status.is-sent{color:var(--holly);border-color:#0c806c59}.coupon-status.is-failed{color:var(--ribbon);border-color:#ad1e2f59}.coupon-status.is-pending{color:#806b1e;border-color:#bea7478c}.completion-action{max-width:18rem;margin:1rem auto 0}.completion-card .text-link{margin:.25rem auto 0}.game-page-shell{width:min(100%, var(--player-width));background:var(--paper);flex-direction:column;height:100dvh;min-height:0;margin:0 auto;display:flex;position:relative;overflow:hidden}.hunt-screen{isolation:isolate;background:var(--paper);flex:auto;height:auto;min-height:0;position:relative;overflow:hidden}.hunt-topbar{z-index:8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#f4efe3e0;border-bottom:1px solid #17151133;justify-content:space-between;align-items:center;min-height:3rem;padding:.75rem 1rem;display:flex;position:absolute;top:0;left:0;right:0}.hunt-topbar>span{letter-spacing:.18em;flex-direction:column;font-family:Georgia,serif;font-size:.54rem;line-height:1;display:flex}.hunt-topbar small{letter-spacing:.35em;margin-top:.18rem;font-family:Arial,sans-serif;font-size:.26rem}.hunt-topbar p{letter-spacing:.08em;margin:0;font-size:.52rem}.hunt-animation-field{z-index:1;pointer-events:none;position:absolute;inset:3rem 0 0;overflow:hidden}.collectible-scene-canvas{z-index:2;width:100%;height:100%;display:block;position:absolute;inset:0}.collectible-state-markers{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.game-toast,.game-debug-panel{z-index:20;width:auto;margin:0;position:absolute;left:1rem;right:1rem}.game-toast{border-left:3px solid var(--holly);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffdb;padding:.7rem .85rem;font-size:.72rem;font-weight:700;line-height:1.45;bottom:9.75rem}.game-toast span{color:var(--holly);letter-spacing:.14em;margin-bottom:.2rem;font-size:.53rem;display:block}.collection-card-dismiss-zone{z-index:29;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;position:absolute;inset:3rem 0 0}.collection-success-card{z-index:30;min-height:14.6rem;padding:.55rem 1.25rem calc(1rem + env(safe-area-inset-bottom));background:#f4efe3fa;border-top:1px solid #1715112e;animation:.48s cubic-bezier(.22,.8,.32,1) both collection-card-enter;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -1.2rem 3rem #1715111f}.collection-card-handle{background:#17151152;width:2.7rem;height:2px;margin:0 auto .8rem;display:block}.collection-card-result{text-align:center}.collection-card-result p{letter-spacing:.04em;margin:.35rem 0 0;font-family:Georgia,Noto Serif TC,serif;font-size:1rem}.collection-card-check{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:2rem;height:2rem;margin:0 auto;font-size:.8rem;display:grid}.collection-card-product{border-top:1px solid #1715112e;border-bottom:1px solid #1715112e;grid-template-columns:4.5rem 1fr;align-items:center;gap:1rem;max-width:22rem;margin:.85rem auto 0;padding:.7rem .4rem;display:grid}.collection-card-product>div{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.collection-card-product span:not(.collection-product-miniature){color:#17151185;letter-spacing:.14em;font-size:.5rem;font-weight:700}.collection-card-product strong{margin-top:.25rem;font-family:Georgia,Noto Serif TC,serif;font-size:.9rem;font-weight:400;line-height:1.25}.collection-card-product small{color:#1715118a;margin-top:.3rem;font-size:.53rem}.collection-card-hint{text-align:center;color:#1715116b;letter-spacing:.08em;margin:.65rem 0 0;font-size:.49rem}.collection-product-miniature{width:3.15rem;height:4rem;color:var(--ink);justify-self:center;display:block;position:relative}.collection-product-miniature:before,.collection-product-miniature:after,.collection-product-miniature i,.collection-product-miniature b{content:"";box-sizing:border-box;display:block;position:absolute}.collection-product-miniature:after{background:#ffffff75;border:1px solid #171511a6;height:2.75rem;bottom:.15rem;left:.35rem;right:.35rem;box-shadow:.18rem .2rem #17151114}.collection-product-miniature i{z-index:2;background:#f7f3e9;border:1px solid #17151159;height:1.05rem;bottom:.9rem;left:.7rem;right:.7rem}.collection-product-miniature b{z-index:3;background:#1715118c;height:1px;bottom:1.23rem;left:1rem;right:1rem}.collection-product-miniature.is-a:before{z-index:2;background:var(--ink);border:1px solid #171511b3;width:.85rem;height:1rem;top:.35rem;left:1.1rem}.collection-product-miniature.is-a i:before{content:"";background:var(--ink);width:1.3rem;height:.24rem;position:absolute;top:-2.1rem;left:.2rem}.collection-product-miniature.is-b:before{z-index:2;background:linear-gradient(160deg,#fff,#aaa 48%,#f9f9f9 72%);border:1px solid #17151199;border-radius:48% 48% 38% 38%;width:1.45rem;height:1.1rem;top:.2rem;left:.85rem}.collection-product-miniature.is-c:after{border-radius:.2rem .2rem .5rem .5rem;height:2.15rem;left:.25rem;right:.25rem}.collection-product-miniature.is-c:before{z-index:2;background:var(--ink);width:1px;height:2rem;box-shadow:-.52rem .08rem 0 var(--ink), .52rem .08rem 0 var(--ink), -.9rem .25rem 0 var(--ink), .9rem .25rem 0 var(--ink);transform-origin:bottom;top:.1rem;left:1.48rem}.collection-product-miniature.is-c i{display:none}.collection-product-miniature.is-c b{bottom:1.55rem;left:.75rem;right:.75rem}.hunt-completion-prompt{z-index:32;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border:1px solid #1715113d;grid-template-columns:1fr auto;align-items:center;gap:.8rem;padding:.8rem;animation:.42s cubic-bezier(.22,.8,.32,1) both collection-card-enter;display:grid;position:absolute;left:1rem;box-shadow:0 .8rem 2.5rem #1715112e}.hunt-completion-prompt div{flex-direction:column;min-width:0;display:flex}.hunt-completion-prompt span{color:var(--holly);letter-spacing:.15em;font-size:.48rem;font-weight:700}.hunt-completion-prompt strong{margin-top:.22rem;font-family:Georgia,Noto Serif TC,serif;font-size:.75rem;font-weight:400}.hunt-completion-prompt button{background:var(--ink);color:#fff;white-space:nowrap;border:0;border-radius:0;min-height:2.65rem;padding:.55rem .75rem;font-size:.6rem;font-weight:700}@keyframes collection-card-enter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.game-debug-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f4efe3e6;border:1px dashed #17151159;padding:.7rem;bottom:1rem}.debug-title{color:#17151180;letter-spacing:.13em;margin:0;font-size:.56rem;font-weight:700}.debug-scan-buttons,.debug-replay-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.55rem;display:grid}.game-debug-panel button{min-height:2.5rem;box-shadow:none;background:#ffffffdb;border:1px solid #17151138;border-radius:0;padding:.45rem;font-size:.76rem;font-weight:700}.debug-replay-buttons button{min-height:2rem;font-size:.58rem}.admin-page,.admin-login-page{--admin-muted:#686257;--admin-border:#d9d2c5}.admin-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.admin-login-page{background:var(--ink);color:#f8f4eb;grid-template-rows:1fr auto;justify-items:center;min-height:100dvh;padding:clamp(2rem,7vh,4.5rem) 1.25rem 1.5rem;display:grid}.admin-login-panel{align-self:center;width:min(100%,24rem)}.admin-login-content{width:100%}.admin-login-brand{width:9rem;margin:0 auto}.admin-login-brand .brand-header{padding:0}.admin-login-brand .brand-rule{justify-content:center}.admin-login-brand .brand-rule:before,.admin-login-brand .brand-rule:after{display:none}.admin-login-brand .brand-wordmark{min-width:0;font-size:1rem}.admin-login-brand .brand-wordmark small{font-size:.42rem}.admin-login-campaign{text-align:center;color:#d1c7b5;letter-spacing:.23em;margin:1rem 0 0;font-size:.5625rem}.admin-login-context{text-align:center;color:#aaa294;letter-spacing:.12em;margin:.7rem 0 1.5rem;font-size:.625rem}.admin-login-heading{border-top:1px solid #777064;margin:0 0 1.5rem;padding-top:1.5rem}.admin-login-heading h1{letter-spacing:.03em;margin:0 0 .55rem;font-family:Georgia,Noto Serif TC,serif;font-size:1.5rem;font-weight:400}.admin-login-heading .admin-login-description{color:#bcb4a6;margin:0;font-size:.75rem;line-height:1.7}.admin-login-form{gap:1rem;display:grid;position:relative}.admin-login-form label span{color:#eee7d9;margin-bottom:.45rem;font-size:.6875rem;display:block}.admin-login-form input{color:#fff;background:0 0;border:1px solid #8a8171;border-radius:0;width:100%;min-height:2.875rem;padding:.7rem .75rem;font-size:.875rem;transition:border-color .18s,background-color .18s}.admin-login-form input::placeholder{color:#888174;font-size:.75rem}.admin-login-form input[aria-invalid=true]{border-color:#e54b4f}.admin-login-form .primary-button{color:var(--ink);background:#f8f4eb;border-color:#f8f4eb;margin-top:.5rem;font-size:.75rem}.admin-login-form .primary-button:hover{color:var(--ink);background:#e7ddc9}.admin-login-form .primary-button:disabled{opacity:.7}:is(.admin-login-panel :focus-visible,.admin-topbar :focus-visible){outline-offset:4px;outline:2px solid #e5c77f}.admin-form-error{color:#ff6b6f;margin:-.25rem 0 0;font-size:.6875rem;line-height:1.5}.admin-login-help{text-align:center;color:#aaa294;margin:1.25rem 0 0;font-size:.6875rem;line-height:1.7}.admin-access-label{color:#d1bc86;letter-spacing:.16em;margin-bottom:.5rem;font-size:.5625rem;display:block}.admin-login-footer{text-align:center;color:#8f887c;letter-spacing:.04em;align-self:end;margin:3rem 0 0;font-size:.5625rem;line-height:1.6}.admin-page{--admin-gutter:clamp(1.25rem, 4vw, 3rem);background:#f4f1e9;min-height:100dvh}.admin-topbar{min-height:5rem;padding:1rem var(--admin-gutter);background:var(--ink);color:#f8f4eb;border-bottom:3px solid #a79365;justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-topbar .brand-header{width:11rem;padding:0}.admin-topbar .brand-wordmark{font-size:.95rem}.admin-topbar .brand-wordmark small{font-size:.45rem}.admin-topbar .brand-rule:before,.admin-topbar .brand-rule:after{display:none}.admin-topbar-actions{color:#d3cbbd;align-items:center;gap:1.5rem;font-size:.75rem;display:flex}.admin-logout{color:#f8f4eb;background:0 0;border:1px solid #807768;border-radius:0;min-height:2.75rem;padding:.6rem 1.1rem;font-size:.8125rem}.admin-logout:hover{background:#39352d}.admin-canvas{width:100%;padding:1.5rem var(--admin-gutter)}.admin-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.admin-eyebrow{color:#756342;letter-spacing:.15em;margin:0;font-size:.625rem;font-weight:700;line-height:1.7}.admin-title-row h1{letter-spacing:.03em;margin:0 0 .35rem;font-family:Georgia,Noto Serif TC,serif;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:400}.admin-subtitle{color:var(--admin-muted);margin:0;font-size:.875rem;line-height:1.7}.admin-snapshot-note{color:var(--admin-muted);margin:0;font-size:.75rem}.admin-overview-grid{grid-template-columns:1fr;gap:1rem;margin-top:1rem;display:grid}.admin-summary-panel,.admin-products-panel{border:1px solid var(--admin-border);background:#fffdf7;min-width:0}.admin-filter-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;align-items:end;gap:.75rem;display:grid}.admin-filter-form label{min-width:0}.admin-filter-form label span{letter-spacing:0;margin-bottom:.3rem;font-size:.6875rem;display:block}.admin-filter-form input{width:100%;min-width:0;min-height:2.5rem;color:var(--ink);background:#fffefa;border:1px solid #a79e8e;border-radius:0;padding:.5rem .625rem;font-size:.875rem}.admin-filter-form button,.admin-filter-form .admin-export{border:1px solid var(--ink);background:var(--ink);color:#fffdf7;white-space:nowrap;border-radius:0;justify-content:center;align-items:center;gap:.75rem;min-height:2.5rem;padding:.5rem 1rem;font-size:.75rem;font-weight:700;text-decoration:none;display:flex}.admin-filter-form .admin-export{color:var(--ink);background:0 0}.admin-filter-form button:hover{background:#39352d}.admin-filter-form .admin-export:hover{background:#ece6d8}.admin-filter-note{color:var(--admin-muted);flex-wrap:wrap;justify-content:flex-end;gap:.2rem .75rem;margin:.35rem 0 0;font-size:.6875rem;line-height:1.4;display:flex}.admin-filter-note a{color:var(--ink);text-underline-offset:.2em;text-decoration:underline}.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.75rem 1.25rem 1.25rem;display:grid}.admin-kpi{border:1px solid var(--admin-border);background:#fffdf7;border-top:2px solid #9d8d6a;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;min-height:4rem;padding:.75rem 1rem;display:flex}.admin-kpi:first-child{border-color:var(--ink);background:var(--ink);color:#f8f4eb}.admin-kpi-code{display:none}.admin-kpi-label{align-items:center;gap:.625rem;min-width:0;display:flex}.admin-kpi-icon{color:#695f4f;border:1px solid #cfc6b6;flex:none;place-items:center;width:1.875rem;height:1.875rem;display:grid}.admin-kpi-icon svg{width:1.125rem;height:1.125rem}.admin-kpi:first-child .admin-kpi-icon{color:#e8dfcf;border-color:#6d665b}.admin-kpi.is-alert .admin-kpi-icon{color:#9b2431;border-color:#d8a8a6}.admin-kpi h3{margin:0;font-size:.8125rem;font-weight:400}.admin-kpi strong,.admin-product-value strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-family:inherit;font-size:clamp(1.75rem,2.4vw,2.25rem);font-weight:400;line-height:1;display:block}.admin-kpi:first-child .admin-kpi-code{color:#c9c0ae}.admin-kpi.is-alert{background:#fff7f5;border-top-color:#9b2431}.admin-kpi.is-alert strong{color:#9b2431}.admin-section{border:1px solid var(--admin-border);background:#fffdf7;margin-top:1rem}.admin-section-heading{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem 0;display:flex}.admin-section-heading h2{margin:.3rem 0 0;font-family:Georgia,Noto Serif TC,serif;font-size:1.25rem;font-weight:400}.admin-section-heading>span{color:var(--admin-muted);flex-shrink:0;font-size:.75rem}.admin-product-progress{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;padding:1rem 1.25rem 1.25rem;display:grid}.admin-product-progress article{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.625rem 1rem;min-width:0;display:grid}.admin-product-label{align-items:center;gap:.625rem;display:flex}.admin-product-code{color:#fff;flex-shrink:0;place-items:center;width:2rem;height:2rem;font-family:Georgia,serif;font-size:.875rem;display:grid}.admin-product-label h3{margin:0;font-size:.8125rem;font-weight:400}.admin-product-value{white-space:nowrap;align-items:baseline;gap:.25rem;margin:0;display:flex}.admin-product-value span{color:var(--admin-muted);font-size:.6875rem}.admin-progress-track{background:#e8e2d7;grid-column:1/-1;height:3px;display:block}.admin-progress-track i{height:100%;display:block}.admin-tone-1{background:#246556}.admin-tone-2{background:#9b2431}.admin-tone-3{background:#4b3c60}.admin-section-note{color:var(--admin-muted);margin:.75rem 0 0;font-size:.6875rem;line-height:1.5}.admin-table-toolbar{grid-template-columns:minmax(12rem,1fr) auto;align-items:start;gap:1.25rem;padding:1rem 1.25rem;display:grid}.admin-table-title{min-width:0}.admin-table-toolbar h2{white-space:nowrap;margin:.3rem 0 0;font-family:Georgia,Noto Serif TC,serif;font-size:1.25rem;font-weight:400}.admin-table-actions{align-self:start;min-width:0}.admin-table-wrap>.admin-state{margin:0 1.25rem .75rem}.admin-table-scroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.admin-table-scroll:focus-visible{outline-offset:-3px}.admin-table-wrap table{border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:43rem;font-size:.875rem}.admin-table-wrap thead th{border-top:1px solid var(--admin-border);color:#5d574c;white-space:nowrap;background:#eee9df;padding:1rem 1.5rem;font-size:.75rem;font-weight:400}.admin-table-wrap th:first-child{text-align:left}.admin-table-wrap tbody th,.admin-table-wrap td{border-top:1px solid #e7e1d5;padding:1.125rem 1.5rem}.admin-table-wrap tbody th{min-width:13rem;font-weight:400}.admin-table-wrap tbody th strong{font-size:.8125rem;font-weight:400;display:block}.admin-table-wrap tbody th span{color:var(--admin-muted);letter-spacing:.08em;margin-top:.35rem;font-size:.625rem;display:block}.admin-store-row{cursor:pointer;position:relative}.admin-store-link{color:inherit;text-underline-offset:.25em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .16s}.admin-store-link:after{content:"→";color:#756342;margin-left:.45rem;font-size:.75rem;transition:transform .16s;display:inline-block}.admin-store-link:hover{text-decoration-color:currentColor}.admin-store-link:hover:after{transform:translate(.18rem)}.admin-table-wrap tbody tr:hover{background:#f7f3eb}.admin-completed-cell{font-weight:700}.admin-state{background:#eae5d9;border-left:3px solid #9d8d6a;margin-top:1.5rem;padding:1.25rem 1.5rem;font-size:.875rem;line-height:1.7}.admin-state h2{margin:0;font-size:1rem}.admin-state p{color:#5d574c;margin:.35rem 0 0;font-size:.8125rem}.admin-state-error{background:#fff1ee;border-color:#9b2431}.admin-state a{text-underline-offset:.2em;align-items:center;min-height:2.75rem;margin-top:.5rem;text-decoration:underline;display:inline-flex}.admin-detail-back{color:#5d574c;text-underline-offset:.25em;align-items:center;min-height:2.25rem;font-size:.75rem;text-decoration:underline;display:inline-flex}.admin-store-title-row{margin-top:.75rem}.admin-store-summary{margin-top:1rem}.admin-store-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.admin-store-summary-grid article{border:1px solid var(--admin-border);background:#fffdf7;border-top:2px solid #9d8d6a;min-width:0;padding:1rem 1.25rem}.admin-store-summary-grid article>span{color:#5d574c;font-size:.6875rem;display:block}.admin-store-summary-grid strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-top:.65rem;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:400;line-height:1;display:block}.admin-store-summary-grid small{color:var(--admin-muted);margin-top:.75rem;font-size:.625rem;line-height:1.5;display:block}.admin-store-product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:1rem 1.25rem 1.25rem;display:grid}.admin-store-product-grid article{background:#fbf8f1;border:1px solid #e2dbce;min-width:0;padding:1rem}.admin-store-product-grid article>div{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:baseline;gap:.25rem .625rem;display:grid}.admin-store-product-grid .admin-product-code{align-self:center}.admin-store-product-grid h3{margin:0;font-size:.8125rem;font-weight:400}.admin-store-product-grid strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:400;line-height:1}.admin-store-product-grid small{color:var(--admin-muted);font-size:.625rem}.admin-store-product-grid .admin-progress-track{margin-top:1rem}.admin-store-participants .admin-section-heading{padding-bottom:1rem}.admin-store-participants .admin-section-note{margin-top:.75rem}.admin-store-participants table{min-width:65rem}.admin-store-participants td{white-space:nowrap}.admin-table-wrap td.admin-empty-cell{color:var(--admin-muted);text-align:center;padding:1.5rem}.admin-scan-complete{color:#246556}.admin-scan-empty{color:#a39a8b}.admin-status{color:#756342;white-space:nowrap;font-size:.6875rem;display:inline-block}.admin-status.is-complete,.admin-status.is-sent{color:#246556}.admin-status.is-failed{color:#9b2431}.admin-status.is-pending{color:#806b1e}.admin-footer{border-top:1px solid var(--admin-border);color:var(--admin-muted);letter-spacing:.09em;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:2rem;padding-top:1.25rem;font-size:.625rem;line-height:1.7;display:flex}@media (max-width:63.99rem){.admin-table-toolbar{display:block}.admin-table-actions{margin-top:1rem}.admin-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-product-progress{gap:1.25rem}.admin-filter-note{justify-content:flex-start}.admin-store-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.admin-overview-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.admin-products-panel{grid-template-rows:auto minmax(0,1fr);display:grid}.admin-products-panel .admin-product-progress{align-items:stretch;gap:.75rem;min-height:0;padding-top:.75rem}.admin-products-panel .admin-product-progress article{background:#fbf8f1;border:1px solid #e2dbce;flex-direction:column;align-items:stretch;min-height:8rem;padding:1rem;display:flex}.admin-products-panel .admin-product-value{margin:auto 0 .375rem}.admin-filter-form input{width:9rem}}@media (max-width:39.99rem){.admin-topbar-actions{gap:.75rem}.admin-topbar-actions>span{display:none}.admin-topbar .brand-header{width:auto}.admin-canvas{padding-top:1.25rem}.admin-title-row{margin-bottom:1rem}.admin-filter-form{gap:.75rem .5rem}.admin-filter-form input{padding:.6rem .35rem}.admin-filter-form button,.admin-filter-form .admin-export{gap:.5rem;padding:.6rem .75rem}.admin-kpi-grid{gap:.5rem;padding-left:1rem;padding-right:1rem}.admin-kpi{padding:1rem}.admin-kpi-code{letter-spacing:.06em}.admin-section-heading{padding:1.25rem 1rem 0}.admin-product-progress{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem 1rem 1.25rem}.admin-store-product-grid{grid-template-columns:1fr;padding:1.25rem 1rem}.admin-store-summary-grid{gap:.5rem}.admin-store-summary-grid article{padding:.875rem 1rem}.admin-store-summary-grid strong{font-size:1.75rem}}.progress-dot{border-radius:50%;width:.45rem;height:.45rem}.progress-track{background:#17151121;height:2px;margin-top:.65rem;display:block}.progress-track i{height:100%;transition:width .4s;display:block}.tone-1{background:var(--holly)}.tone-2{background:var(--ribbon)}.tone-3{background:var(--violet)}@media (min-width:36rem){.page-shell{padding-left:1.75rem;padding-right:1.75rem}.start-layout{grid-template-columns:minmax(0,1fr) 9rem;gap:1.25rem;display:grid}.start-heading{padding-right:0}.start-art{opacity:1;width:auto;height:auto;min-height:31rem;position:relative;top:auto;right:auto;transform:none}}@media (max-height:43rem){.page-shell{height:auto;min-height:100dvh;overflow-y:visible}}@media (max-width:359px){.page-shell{padding-left:1rem;padding-right:1rem}.invitation-copy{padding-left:1.3rem;padding-right:1.3rem}.gift-swatches{opacity:.82;transform-origin:100% 100%;transform:scale(.85)rotate(-8deg)}.hunt-progress-panel{padding-left:1rem;padding-right:1rem}.hunt-greeting{max-width:18rem}.line-card:before{left:-.75rem}.line-card:after{right:-.75rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--player-width:440px}
