:root{--stone: #f4f5f3;--stone-deep: #e8ebe6;--ink: #1a1c1b;--ink-muted: #4a524e;--burgundy: #8c1416;--burgundy-hover: #a61a1d;--burgundy-soft: color-mix(in srgb, #8c1416 10%, transparent);--font-display: "Cinzel Decorative", Georgia, serif;--font-sans: "Figtree", system-ui, sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);--safe-r: env(safe-area-inset-right, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-sans);color:var(--ink);background:radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--burgundy) 14%,transparent),transparent 55%),linear-gradient(165deg,#f7f4ef 0%,var(--stone) 45%,#eef1ec 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}#app{min-height:100dvh;display:flex;flex-direction:column}.shell{width:min(100%,28rem);margin:0 auto;padding:1.25rem 1.25rem calc(5.5rem + var(--safe-b));flex:1;display:flex;flex-direction:column}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:2rem}.brand-link{font-size:.8rem;font-weight:500;color:var(--ink-muted);text-decoration:none}.brand-link:hover{color:var(--burgundy)}.back-btn{border:0;background:transparent;font:inherit;font-size:.875rem;font-weight:500;color:var(--ink-muted);cursor:pointer;padding:.25rem 0}.back-btn:hover{color:var(--burgundy)}.hero{text-align:center;margin-bottom:2rem}.title{font-family:var(--font-display);font-weight:400;font-size:clamp(2.1rem,9vw,2.75rem);letter-spacing:.02em;line-height:1.15;margin:0;color:var(--ink)}.title .accent{color:var(--burgundy);font-weight:700}.tagline{margin:.85rem auto 0;max-width:18rem;font-size:.95rem;line-height:1.45;color:var(--ink-muted)}.stack{display:flex;flex-direction:column;gap:.85rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;min-height:3.25rem;padding:.75rem 1.25rem;font:inherit;font-size:1.05rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--burgundy);color:var(--stone)}.btn-primary:hover{background:var(--burgundy-hover)}.btn-ghost{background:color-mix(in srgb,white 55%,transparent);border-color:color-mix(in srgb,var(--ink) 14%,transparent);color:var(--ink)}.btn-ghost:hover{border-color:var(--burgundy);background:var(--burgundy-soft)}.btn-block{width:100%}.size-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.join{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.join h2{margin:0;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.join-row{margin-top:.75rem;display:flex;gap:.5rem}.join-row input,.field{flex:1;width:100%;min-height:3rem;border-radius:.75rem;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:color-mix(in srgb,white 70%,transparent);padding:0 .9rem;font:inherit;font-size:1.05rem;font-weight:600;color:var(--ink)}.join-row input{font-size:1.15rem;letter-spacing:.18em;text-transform:uppercase}.join-row input:focus,.field:focus{outline:none;border-color:var(--burgundy);box-shadow:0 0 0 2px var(--burgundy-soft)}.join-row button{border-radius:.75rem;min-width:5.5rem}.btn-subtle{font-weight:600;letter-spacing:.02em;opacity:.92;border-style:dashed}.hint.err{color:var(--burgundy);margin-top:.85rem;text-align:center}.share-panel .qr{display:block;width:220px;height:220px;margin:1rem auto;border-radius:.85rem;background:#fff;padding:.5rem;box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 12%,transparent)}.share-actions{margin-top:.5rem}.code-fallback{margin:1.25rem 0 0;text-align:left;border-radius:.75rem;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:color-mix(in srgb,white 45%,transparent);padding:.65rem .85rem}.code-fallback summary{cursor:pointer;font-size:.9rem;font-weight:600;color:var(--ink-muted)}.code-fallback .code-big{margin-top:.75rem;font-size:1.75rem}.qr-scan{margin:1rem auto;width:min(100%,16rem);aspect-ratio:1;border-radius:1rem;overflow:hidden;background:#111;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}.qr-scan video{width:100%;height:100%;object-fit:cover}.panel{text-align:center}.status{margin:0;font-size:.95rem;color:var(--ink-muted)}.code-big{margin:1rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(2rem,10vw,2.6rem);font-weight:700;letter-spacing:.22em;color:var(--ink)}.hint{margin:.85rem 0 0;font-size:.9rem;color:var(--ink-muted);line-height:1.4}.role{margin:.35rem 0 0;font-family:var(--font-display);font-size:1.55rem;font-weight:700;color:var(--ink)}.subtitle{margin:.35rem 0 0;font-size:1.05rem;font-weight:600;color:var(--burgundy);letter-spacing:.02em}.prompt{margin:1rem 0;font-size:1.05rem;font-weight:500;line-height:1.4}.pad{display:grid;gap:.55rem;margin:1rem 0}.pad-hunt{grid-template-columns:repeat(5,1fr)}.pad-chase{grid-template-columns:repeat(3,1fr);max-width:16rem;margin-inline:auto}.pad button,.pad span{display:flex;align-items:center;justify-content:center;min-height:3rem;border-radius:.65rem;font-weight:700;font-size:1.05rem}.pad button{border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,white 75%,transparent);color:var(--ink);cursor:pointer}.pad button:hover{border-color:var(--burgundy);background:var(--burgundy-soft)}.pad .picked{border-color:var(--burgundy);background:var(--burgundy-soft);color:var(--burgundy)}.pad .used{opacity:.35;text-decoration:line-through;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);background:color-mix(in srgb,var(--ink) 4%,transparent)}.pad .locked{border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:color-mix(in srgb,var(--stone-deep) 70%,transparent);color:var(--ink-muted)}.reveal-box{margin:1rem 0;padding:1rem;border-radius:.85rem;background:var(--burgundy-soft);border:1px solid color-mix(in srgb,var(--burgundy) 18%,transparent)}.actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-top:1.25rem}.error-box{padding:1.25rem;border-radius:.85rem;background:var(--burgundy-soft);border:1px solid color-mix(in srgb,var(--burgundy) 28%,transparent);text-align:center}.help-fab{position:fixed;right:calc(1rem + var(--safe-r));bottom:calc(1rem + var(--safe-b));width:3.15rem;height:3.15rem;border-radius:999px;border:0;background:var(--burgundy);color:var(--stone);font:inherit;font-size:1.35rem;font-weight:700;cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--burgundy) 35%,transparent);z-index:40}.help-fab:hover{background:var(--burgundy-hover)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 45%,transparent);display:flex;align-items:flex-end;justify-content:center;padding:1rem;z-index:50}@media(min-width:480px){.modal-backdrop{align-items:center}}.modal{width:min(100%,24rem);max-height:min(85dvh,36rem);overflow:auto;background:var(--stone);border-radius:1rem;padding:1.35rem 1.25rem 1.25rem;box-shadow:0 20px 50px color-mix(in srgb,var(--ink) 25%,transparent)}.modal h2{margin:0;font-family:var(--font-display);font-size:1.35rem}.modal h3{margin:1.15rem 0 .35rem;font-size:.95rem;font-weight:700;color:var(--burgundy);text-transform:uppercase;letter-spacing:.08em}.modal p{margin:.35rem 0 0;font-size:.95rem;line-height:1.45;color:var(--ink-muted)}.modal-close{margin-top:1.25rem;width:100%}
