/* FanProof "maglietta del tour": token e componenti condivisi (landing + base app).
   Mondo: cotone nero/naturale + inchiostri serigrafici piatti. Max 3 inchiostri,
   niente gradienti; il lime (--now) è riservato all'ultima serata/stato attivo. */
:root {
    --cotton: #141312;          /* maglia nera */
    --cotton-2: #1d1b19;
    --natural: #ece5d6;         /* maglia in cotone naturale */
    --natural-2: #f6f1e7;
    --bone: #efe9dd;            /* inchiostro bianco sporco */
    --bone-dim: #b9b2a5;
    --ink: #ff4f1f;             /* inchiostro arancio */
    --ink-deep: #d93a0e;
    --now: #c9f24a;             /* solo "adesso" */
    --stitch: #4a4640;
    --stitch-strong: #6b665e;

    --font-print: 'Big Shoulders Display', 'Archivo Narrow', sans-serif;
    --font-body: 'Archivo', system-ui, sans-serif;
    --font-data: 'JetBrains Mono', ui-monospace, monospace;
    --ease-out: cubic-bezier(.16, 1, .3, 1);
}

.tour-world, .tour-app {
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.tour-world { margin: 0; }
.tour-world *, .tour-world *::before, .tour-world *::after { box-sizing: border-box; }

/* superfici del browser */
.tour-world ::selection, .tour-app ::selection { background: var(--ink); color: var(--cotton); }
.tour-world { caret-color: var(--ink); scrollbar-color: var(--stitch-strong) var(--cotton); }
.tour-app { caret-color: var(--ink-deep); scrollbar-color: #b7ad9b var(--natural); }
.tour-world :focus-visible, .tour-app :focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 2px; }

.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--bone); color: var(--cotton); padding: 10px 14px; border-radius: 3px; font-weight: 700; }
.skip:focus { top: 12px; }

/* wordmark: FAN pieno + PROOF leggero (impegno di brand) */
.wordmark { font-family: var(--font-print); text-transform: uppercase; letter-spacing: .01em; line-height: 1; }
.wordmark b { font-weight: 900; }
.wordmark i { font-style: normal; font-weight: 300; }

/* bottone "toppa stampata" */
.btn-patch {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--font-print); font-weight: 800; text-transform: uppercase; letter-spacing: .04em;
    font-size: 1.2rem; line-height: 1;
    padding: 14px 22px 13px;
    background: var(--ink); color: var(--cotton);
    border: 2px solid var(--ink); border-radius: 3px;
    text-decoration: none; cursor: pointer;
    transition: background-color .25s var(--ease-out), color .25s var(--ease-out), transform .25s var(--ease-out);
}
.btn-patch:hover { background: var(--bone); border-color: var(--bone); color: var(--cotton); }
.btn-patch:active { transform: translateY(1px); }
.btn-patch i { font-size: .8em; transition: transform .3s var(--ease-out); }
.btn-patch:hover i { transform: translateX(4px); }
.btn-patch--sm { font-size: 1rem; padding: 10px 14px 9px; }
.btn-patch--lg { font-size: 1.5rem; padding: 18px 30px 17px; }
.btn-patch--ink { background: var(--cotton); border-color: var(--cotton); color: var(--bone); }
.btn-patch--ink:hover { background: transparent; color: var(--cotton); border-color: var(--cotton); }
.natural .btn-patch:hover, .tour-app .btn-patch:hover { background: var(--cotton); border-color: var(--cotton); color: var(--bone); }

/* =====================================================================
   APP: maglia in cotone naturale, inchiostro nero/arancio.
   Le pagine interne restano su Tailwind; questo livello ritema le parti
   condivise (hero, nav, barra in basso, cookie, footer) e rimappa la
   vecchia scala viola/rosa sugli inchiostri.
   ===================================================================== */
.tour-app { --ink-text: #b8300a; background: var(--natural) !important; color: #24211e; }
.tour-app h1, .tour-app h2, .tour-app h3, .tour-app h4, .tour-app .font-display { font-family: var(--font-print); letter-spacing: .005em; }
.tour-app h1, .tour-app h2 { text-transform: uppercase; line-height: .95; }
.tour-app .fp-display { font-family: var(--font-print) !important; text-transform: uppercase; letter-spacing: 0 !important; line-height: .9 !important; font-weight: 900; }
.tour-app .fanproof-logo-font { font-family: var(--font-print) !important; text-transform: uppercase; letter-spacing: .01em; }
.tour-app .fanproof-logo-fan { font-weight: 900; background: none !important; -webkit-text-fill-color: currentColor !important; color: inherit; }
.tour-app .fanproof-logo-proof { font-weight: 300; }

/* hero condiviso: maglia nera con orlo cucito, niente sfumature */
body.tour-app .fp-hero-dark, .tour-nav, .tour-app footer.bg-gradient-to-br { background: var(--cotton) url('../images/cotton-weave.png') repeat !important; }
body.tour-app .fp-hero-dark-overlay { background: none; border-bottom: 1px dashed var(--stitch-strong); bottom: 10px; }
body.tour-app .fp-hero-dark h1 { color: var(--bone); text-shadow: .04em .03em 0 var(--ink); }
body.tour-app .fp-hero-dark .text-white\/60, body.tour-app .fp-hero-dark .text-white\/70 { color: var(--bone-dim); }
body.tour-app .fp-hero-dark .bg-clip-text.text-transparent { color: var(--ink) !important; }
body.tour-app .fp-hero-dark .bg-white\/10, body.tour-app .fp-hero-dark .bg-white\/5 { background-color: var(--cotton-2); border-color: var(--stitch); }

/* card */
.tour-app .fp-section-card, .tour-app .bg-white.rounded-2xl, .tour-app .bg-white.rounded-3xl { border-radius: 6px; }
.tour-app .rounded-3xl { border-radius: 8px; }
.tour-app .rounded-2xl { border-radius: 6px; }

/* nav: etichetta del collo su banda nera */
.tour-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: var(--cotton); color: var(--bone); border-bottom: 1px dashed var(--stitch-strong); font-family: var(--font-body); }
.tour-nav .bar { max-width: 80rem; margin: 0 auto; padding: 0 16px; height: 60px; display: flex; align-items: center; gap: 20px; }
.tour-nav .neck-tag { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 5px; background: var(--bone); color: var(--cotton); border-radius: 3px; text-decoration: none; flex-shrink: 0; }
.tour-nav .neck-tag img { width: 26px; height: 26px; border-radius: 2px; }
.tour-nav .neck-tag .wordmark { font-size: 1.3rem; }
.tour-nav .links { display: flex; align-items: center; gap: 22px; }
.tour-nav .links a, .tour-nav .links button { font-family: var(--font-print); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1rem; color: var(--bone-dim); text-decoration: none; background: none; border: 0; cursor: pointer; padding: 6px 0; }
.tour-nav .links a:hover, .tour-nav .links button:hover, .tour-nav .links a[aria-current="page"] { color: var(--bone); }
.tour-nav .links a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--now); }
.tour-nav .right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.tour-nav .pill { display: inline-flex; align-items: center; gap: 8px; color: var(--bone); text-decoration: none; font-weight: 600; font-size: .9rem; padding: 6px 10px 6px 6px; border: 1px solid var(--stitch); border-radius: 3px; }
.tour-nav .pill:hover { border-color: var(--bone-dim); }
.tour-nav .pill img, .tour-nav .pill .avatar { width: 26px; height: 26px; border-radius: 2px; object-fit: cover; background: var(--ink); color: var(--cotton); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: .8rem; }
.tour-nav .login { color: var(--bone); text-decoration: none; font-weight: 600; font-size: .92rem; }
.tour-nav .login:hover { text-decoration: underline; text-underline-offset: 4px; }
.tour-nav .icon-btn { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--stitch); border-radius: 3px; background: none; color: var(--bone); cursor: pointer; }
.tour-nav .menu { position: absolute; top: calc(100% + 8px); background: var(--bone); color: var(--cotton); border-radius: 4px; padding: 6px; min-width: 220px; border: 1px solid var(--stitch-strong); z-index: 60; }
.tour-nav .menu a, .tour-nav .menu button { display: flex; width: 100%; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 3px; color: var(--cotton); text-decoration: none; font: 500 .93rem var(--font-body); background: none; border: 0; cursor: pointer; text-align: left; }
.tour-nav .menu a:hover, .tour-nav .menu button:hover { background: rgba(20,19,18,.08); }
.tour-nav .menu .label { font-family: var(--font-data); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: #6b665e; padding: 8px 10px 4px; }
.tour-nav .menu .danger { color: var(--ink-text); font-weight: 700; }
.tour-nav .menu form { margin: 0; }
.tour-nav .menu button[aria-current="true"] { font-weight: 700; }
.tour-nav .menu button[aria-current="true"]::after { content: "●"; margin-left: auto; color: var(--ink); font-size: .7rem; }
.tour-nav details { position: relative; }
.tour-nav details > summary { list-style: none; cursor: pointer; }
.tour-nav details > summary::-webkit-details-marker { display: none; }
.tour-nav .lang > summary { font-family: var(--font-data); font-weight: 700; font-size: .78rem; padding: 8px 10px; border: 1px solid var(--stitch); border-radius: 3px; color: var(--bone-dim); }
.tour-nav details[open] > summary, .tour-nav .lang > summary:hover { color: var(--bone); border-color: var(--bone-dim); }
.tour-nav .right .menu { right: 0; }
.tour-nav .links .menu { left: 0; }
.tour-nav .mobile-panel { background: var(--cotton); border-top: 1px dashed var(--stitch); padding: 8px 16px 14px; }
.tour-nav .mobile-panel a { display: flex; align-items: center; gap: 12px; padding: 12px 4px; color: var(--bone); text-decoration: none; font-family: var(--font-print); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 1.15rem; border-bottom: 1px dashed var(--stitch); }
.tour-nav .mobile-panel a i { width: 20px; color: var(--ink); font-size: .95rem; }
.tour-nav .mobile-panel .label { font-family: var(--font-data); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--bone-dim); padding: 14px 4px 2px; }
.tour-nav .desktop-only { display: none; }
@media (min-width: 1100px) { .tour-nav .desktop-only { display: flex; } .tour-nav .mobile-only { display: none !important; } }
@media (max-width: 640px) { .tour-nav .bar { height: 56px; gap: 10px; } .tour-nav .pill span.txt { display: none; } }

/* barra in basso: fascia nera cucita, lime per la sezione attiva */
.tour-app .bottom-bar { background: var(--cotton) !important; border: 1px solid var(--cotton) !important; box-shadow: none !important; outline: 1px dashed var(--stitch-strong); outline-offset: -5px; border-radius: 6px !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.tour-app .bottom-nav-item { color: var(--bone-dim) !important; font-family: var(--font-print) !important; text-transform: uppercase; }
.tour-app .bottom-nav-item span.bottom-nav-label { font-size: .72rem !important; letter-spacing: .06em; font-weight: 700; }
.tour-app .bottom-nav-item.active { color: var(--now) !important; }
.tour-app .bottom-nav-item.active .bottom-nav-icon { background: none !important; }
.tour-app .bottom-nav-item.active::before { background: var(--now) !important; top: -0.5rem !important; border-radius: 0 !important; }
.tour-app .bottom-nav-item:hover { color: var(--bone) !important; transform: none !important; }
.tour-app .bottom-fab { background: var(--ink) !important; color: var(--cotton) !important; border-color: var(--cotton) !important; border-radius: 4px !important; box-shadow: none !important; }
.tour-app .bottom-nav-item img { border-radius: 2px !important; border-color: var(--bone-dim) !important; }

/* cookie banner: etichetta stampata */
.tour-app .cookie-banner { background: var(--cotton) !important; color: var(--bone) !important; border-top: 1px dashed var(--stitch-strong); box-shadow: none !important; font-family: var(--font-body); }
.tour-app .cookie-btn { border-radius: 3px !important; font-weight: 700 !important; }
.tour-app .cookie-btn-accept { background: var(--ink) !important; color: var(--cotton) !important; border: 0 !important; }
.tour-app .cookie-btn-reject, .tour-app .cookie-btn-manage { background: transparent !important; color: var(--bone) !important; border: 1px solid var(--stitch-strong) !important; }

/* footer: maglia nera */
.tour-app footer.bg-gradient-to-br { background: var(--cotton) !important; border-top: 1px dashed var(--stitch-strong) !important; }
.tour-app footer h3 { font-family: var(--font-print); text-transform: uppercase; letter-spacing: .06em; color: var(--bone-dim) !important; }
.tour-app .text-purple-500,
.tour-app .text-purple-600,
.tour-app .text-purple-700,
.tour-app .text-purple-800,
.tour-app .text-purple-900,
.tour-app .text-pink-500,
.tour-app .text-pink-600,
.tour-app .text-pink-700,
.tour-app .text-pink-800,
.tour-app .text-pink-900,
.tour-app .text-fuchsia-500,
.tour-app .text-fuchsia-600,
.tour-app .text-fuchsia-700,
.tour-app .text-fuchsia-800,
.tour-app .text-fuchsia-900,
.tour-app .text-violet-500,
.tour-app .text-violet-600,
.tour-app .text-violet-700,
.tour-app .text-violet-800,
.tour-app .text-violet-900,
.tour-app .text-indigo-500,
.tour-app .text-indigo-600,
.tour-app .text-indigo-700,
.tour-app .text-indigo-800,
.tour-app .text-indigo-900 { color: var(--ink-text); }
.tour-app .text-purple-100,
.tour-app .text-purple-200,
.tour-app .text-purple-300,
.tour-app .text-purple-400,
.tour-app .text-pink-100,
.tour-app .text-pink-200,
.tour-app .text-pink-300,
.tour-app .text-pink-400,
.tour-app .text-fuchsia-100,
.tour-app .text-fuchsia-200,
.tour-app .text-fuchsia-300,
.tour-app .text-fuchsia-400,
.tour-app .text-violet-100,
.tour-app .text-violet-200,
.tour-app .text-violet-300,
.tour-app .text-violet-400,
.tour-app .text-indigo-100,
.tour-app .text-indigo-200,
.tour-app .text-indigo-300,
.tour-app .text-indigo-400 { color: var(--ink); }
.tour-app .hover\:text-purple-500:hover,
.tour-app .hover\:text-purple-600:hover,
.tour-app .hover\:text-purple-700:hover,
.tour-app .hover\:text-purple-800:hover,
.tour-app .hover\:text-purple-900:hover,
.tour-app .hover\:text-pink-500:hover,
.tour-app .hover\:text-pink-600:hover,
.tour-app .hover\:text-pink-700:hover,
.tour-app .hover\:text-pink-800:hover,
.tour-app .hover\:text-pink-900:hover,
.tour-app .hover\:text-fuchsia-500:hover,
.tour-app .hover\:text-fuchsia-600:hover,
.tour-app .hover\:text-fuchsia-700:hover,
.tour-app .hover\:text-fuchsia-800:hover,
.tour-app .hover\:text-fuchsia-900:hover,
.tour-app .hover\:text-violet-500:hover,
.tour-app .hover\:text-violet-600:hover,
.tour-app .hover\:text-violet-700:hover,
.tour-app .hover\:text-violet-800:hover,
.tour-app .hover\:text-violet-900:hover,
.tour-app .hover\:text-indigo-500:hover,
.tour-app .hover\:text-indigo-600:hover,
.tour-app .hover\:text-indigo-700:hover,
.tour-app .hover\:text-indigo-800:hover,
.tour-app .hover\:text-indigo-900:hover,
.tour-app .group:hover .group-hover\:text-purple-500,
.tour-app .group:hover .group-hover\:text-purple-600,
.tour-app .group:hover .group-hover\:text-purple-700,
.tour-app .group:hover .group-hover\:text-pink-500,
.tour-app .group:hover .group-hover\:text-pink-600,
.tour-app .group:hover .group-hover\:text-pink-700,
.tour-app .group:hover .group-hover\:text-fuchsia-500,
.tour-app .group:hover .group-hover\:text-fuchsia-600,
.tour-app .group:hover .group-hover\:text-fuchsia-700,
.tour-app .group:hover .group-hover\:text-violet-500,
.tour-app .group:hover .group-hover\:text-violet-600,
.tour-app .group:hover .group-hover\:text-violet-700,
.tour-app .group:hover .group-hover\:text-indigo-500,
.tour-app .group:hover .group-hover\:text-indigo-600,
.tour-app .group:hover .group-hover\:text-indigo-700 { color: var(--ink-deep); }
.tour-app .bg-purple-400,
.tour-app .bg-purple-500,
.tour-app .bg-purple-600,
.tour-app .bg-purple-700,
.tour-app .bg-pink-400,
.tour-app .bg-pink-500,
.tour-app .bg-pink-600,
.tour-app .bg-pink-700,
.tour-app .bg-fuchsia-400,
.tour-app .bg-fuchsia-500,
.tour-app .bg-fuchsia-600,
.tour-app .bg-fuchsia-700,
.tour-app .bg-violet-400,
.tour-app .bg-violet-500,
.tour-app .bg-violet-600,
.tour-app .bg-violet-700,
.tour-app .bg-indigo-400,
.tour-app .bg-indigo-500,
.tour-app .bg-indigo-600,
.tour-app .bg-indigo-700 { background-color: var(--ink); color: var(--cotton); }
.tour-app .hover\:bg-purple-500:hover,
.tour-app .hover\:bg-purple-600:hover,
.tour-app .hover\:bg-purple-700:hover,
.tour-app .hover\:bg-purple-800:hover,
.tour-app .hover\:bg-pink-500:hover,
.tour-app .hover\:bg-pink-600:hover,
.tour-app .hover\:bg-pink-700:hover,
.tour-app .hover\:bg-pink-800:hover,
.tour-app .hover\:bg-fuchsia-500:hover,
.tour-app .hover\:bg-fuchsia-600:hover,
.tour-app .hover\:bg-fuchsia-700:hover,
.tour-app .hover\:bg-fuchsia-800:hover,
.tour-app .hover\:bg-violet-500:hover,
.tour-app .hover\:bg-violet-600:hover,
.tour-app .hover\:bg-violet-700:hover,
.tour-app .hover\:bg-violet-800:hover,
.tour-app .hover\:bg-indigo-500:hover,
.tour-app .hover\:bg-indigo-600:hover,
.tour-app .hover\:bg-indigo-700:hover,
.tour-app .hover\:bg-indigo-800:hover { background-color: var(--ink-deep); }
.tour-app .bg-purple-50,
.tour-app .bg-pink-50,
.tour-app .bg-fuchsia-50,
.tour-app .bg-violet-50,
.tour-app .bg-indigo-50,
.tour-app .hover\:bg-purple-50:hover,
.tour-app .hover\:bg-pink-50:hover,
.tour-app .hover\:bg-fuchsia-50:hover,
.tour-app .hover\:bg-violet-50:hover,
.tour-app .hover\:bg-indigo-50:hover { background-color: #f7efe6; }
.tour-app .bg-purple-100,
.tour-app .bg-purple-200,
.tour-app .bg-pink-100,
.tour-app .bg-pink-200,
.tour-app .bg-fuchsia-100,
.tour-app .bg-fuchsia-200,
.tour-app .bg-violet-100,
.tour-app .bg-violet-200,
.tour-app .bg-indigo-100,
.tour-app .bg-indigo-200,
.tour-app .hover\:bg-purple-100:hover,
.tour-app .hover\:bg-purple-200:hover,
.tour-app .hover\:bg-pink-100:hover,
.tour-app .hover\:bg-pink-200:hover,
.tour-app .hover\:bg-fuchsia-100:hover,
.tour-app .hover\:bg-fuchsia-200:hover,
.tour-app .hover\:bg-violet-100:hover,
.tour-app .hover\:bg-violet-200:hover,
.tour-app .hover\:bg-indigo-100:hover,
.tour-app .hover\:bg-indigo-200:hover { background-color: #f6dccd; }
.tour-app .border-purple-100,
.tour-app .border-purple-200,
.tour-app .border-purple-300,
.tour-app .border-pink-100,
.tour-app .border-pink-200,
.tour-app .border-pink-300,
.tour-app .border-fuchsia-100,
.tour-app .border-fuchsia-200,
.tour-app .border-fuchsia-300,
.tour-app .border-violet-100,
.tour-app .border-violet-200,
.tour-app .border-violet-300,
.tour-app .border-indigo-100,
.tour-app .border-indigo-200,
.tour-app .border-indigo-300,
.tour-app .hover\:border-purple-200:hover,
.tour-app .hover\:border-purple-300:hover,
.tour-app .hover\:border-pink-200:hover,
.tour-app .hover\:border-pink-300:hover,
.tour-app .hover\:border-fuchsia-200:hover,
.tour-app .hover\:border-fuchsia-300:hover,
.tour-app .hover\:border-violet-200:hover,
.tour-app .hover\:border-violet-300:hover,
.tour-app .hover\:border-indigo-200:hover,
.tour-app .hover\:border-indigo-300:hover { border-color: #e6cdbd; }
.tour-app .border-purple-400,
.tour-app .border-purple-500,
.tour-app .border-purple-600,
.tour-app .border-purple-700,
.tour-app .border-pink-400,
.tour-app .border-pink-500,
.tour-app .border-pink-600,
.tour-app .border-pink-700,
.tour-app .border-fuchsia-400,
.tour-app .border-fuchsia-500,
.tour-app .border-fuchsia-600,
.tour-app .border-fuchsia-700,
.tour-app .border-violet-400,
.tour-app .border-violet-500,
.tour-app .border-violet-600,
.tour-app .border-violet-700,
.tour-app .border-indigo-400,
.tour-app .border-indigo-500,
.tour-app .border-indigo-600,
.tour-app .border-indigo-700,
.tour-app .hover\:border-purple-400:hover,
.tour-app .hover\:border-purple-500:hover,
.tour-app .hover\:border-pink-400:hover,
.tour-app .hover\:border-pink-500:hover,
.tour-app .hover\:border-fuchsia-400:hover,
.tour-app .hover\:border-fuchsia-500:hover,
.tour-app .hover\:border-violet-400:hover,
.tour-app .hover\:border-violet-500:hover,
.tour-app .hover\:border-indigo-400:hover,
.tour-app .hover\:border-indigo-500:hover,
.tour-app .focus\:border-purple-400:focus,
.tour-app .focus\:border-purple-500:focus,
.tour-app .focus\:border-purple-600:focus,
.tour-app .focus\:border-pink-400:focus,
.tour-app .focus\:border-pink-500:focus,
.tour-app .focus\:border-pink-600:focus,
.tour-app .focus\:border-fuchsia-400:focus,
.tour-app .focus\:border-fuchsia-500:focus,
.tour-app .focus\:border-fuchsia-600:focus,
.tour-app .focus\:border-violet-400:focus,
.tour-app .focus\:border-violet-500:focus,
.tour-app .focus\:border-violet-600:focus,
.tour-app .focus\:border-indigo-400:focus,
.tour-app .focus\:border-indigo-500:focus,
.tour-app .focus\:border-indigo-600:focus { border-color: var(--ink); }
.tour-app .focus\:ring-purple-200:focus,
.tour-app .focus\:ring-purple-300:focus,
.tour-app .focus\:ring-purple-400:focus,
.tour-app .focus\:ring-purple-500:focus,
.tour-app .focus\:ring-purple-600:focus,
.tour-app .focus\:ring-pink-200:focus,
.tour-app .focus\:ring-pink-300:focus,
.tour-app .focus\:ring-pink-400:focus,
.tour-app .focus\:ring-pink-500:focus,
.tour-app .focus\:ring-pink-600:focus,
.tour-app .focus\:ring-fuchsia-200:focus,
.tour-app .focus\:ring-fuchsia-300:focus,
.tour-app .focus\:ring-fuchsia-400:focus,
.tour-app .focus\:ring-fuchsia-500:focus,
.tour-app .focus\:ring-fuchsia-600:focus,
.tour-app .focus\:ring-violet-200:focus,
.tour-app .focus\:ring-violet-300:focus,
.tour-app .focus\:ring-violet-400:focus,
.tour-app .focus\:ring-violet-500:focus,
.tour-app .focus\:ring-violet-600:focus,
.tour-app .focus\:ring-indigo-200:focus,
.tour-app .focus\:ring-indigo-300:focus,
.tour-app .focus\:ring-indigo-400:focus,
.tour-app .focus\:ring-indigo-500:focus,
.tour-app .focus\:ring-indigo-600:focus { --tw-ring-color: rgb(255 79 31 / .45); }
.tour-app .shadow-purple-200,
.tour-app .shadow-purple-300,
.tour-app .shadow-purple-500,
.tour-app .shadow-pink-200,
.tour-app .shadow-pink-300,
.tour-app .shadow-pink-500,
.tour-app .shadow-fuchsia-200,
.tour-app .shadow-fuchsia-300,
.tour-app .shadow-fuchsia-500,
.tour-app .shadow-violet-200,
.tour-app .shadow-violet-300,
.tour-app .shadow-violet-500,
.tour-app .shadow-indigo-200,
.tour-app .shadow-indigo-300,
.tour-app .shadow-indigo-500,
.tour-app .shadow-purple-900\/40,
.tour-app .shadow-pink-900\/40,
.tour-app .shadow-fuchsia-900\/40,
.tour-app .shadow-violet-900\/40,
.tour-app .shadow-indigo-900\/40,
.tour-app .shadow-purple-500\/30,
.tour-app .shadow-pink-500\/30,
.tour-app .shadow-fuchsia-500\/30,
.tour-app .shadow-violet-500\/30,
.tour-app .shadow-indigo-500\/30 { --tw-shadow-color: rgb(20 19 18 / .22); --tw-shadow: var(--tw-shadow-colored); }
.tour-app [class*="bg-gradient-"][class*="from-purple-400"],
.tour-app [class*="bg-gradient-"][class*="from-purple-500"],
.tour-app [class*="bg-gradient-"][class*="from-purple-600"],
.tour-app [class*="bg-gradient-"][class*="from-purple-700"],
.tour-app [class*="bg-gradient-"][class*="from-pink-400"],
.tour-app [class*="bg-gradient-"][class*="from-pink-500"],
.tour-app [class*="bg-gradient-"][class*="from-pink-600"],
.tour-app [class*="bg-gradient-"][class*="from-pink-700"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-400"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-500"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-600"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-700"],
.tour-app [class*="bg-gradient-"][class*="from-violet-400"],
.tour-app [class*="bg-gradient-"][class*="from-violet-500"],
.tour-app [class*="bg-gradient-"][class*="from-violet-600"],
.tour-app [class*="bg-gradient-"][class*="from-violet-700"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-400"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-500"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-600"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-700"] { background-image: none !important; background-color: var(--ink) !important; color: var(--cotton) !important; }
.tour-app [class*="bg-gradient-"][class*="from-purple-400"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-purple-500"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-purple-600"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-purple-700"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-pink-400"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-pink-500"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-pink-600"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-pink-700"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-400"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-500"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-600"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-700"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-violet-400"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-violet-500"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-violet-600"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-violet-700"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-indigo-400"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-indigo-500"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-indigo-600"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-indigo-700"] .text-white,
.tour-app [class*="bg-gradient-"][class*="from-purple-400"] i,
.tour-app [class*="bg-gradient-"][class*="from-purple-500"] i,
.tour-app [class*="bg-gradient-"][class*="from-purple-600"] i,
.tour-app [class*="bg-gradient-"][class*="from-purple-700"] i,
.tour-app [class*="bg-gradient-"][class*="from-pink-400"] i,
.tour-app [class*="bg-gradient-"][class*="from-pink-500"] i,
.tour-app [class*="bg-gradient-"][class*="from-pink-600"] i,
.tour-app [class*="bg-gradient-"][class*="from-pink-700"] i,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-400"] i,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-500"] i,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-600"] i,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-700"] i,
.tour-app [class*="bg-gradient-"][class*="from-violet-400"] i,
.tour-app [class*="bg-gradient-"][class*="from-violet-500"] i,
.tour-app [class*="bg-gradient-"][class*="from-violet-600"] i,
.tour-app [class*="bg-gradient-"][class*="from-violet-700"] i,
.tour-app [class*="bg-gradient-"][class*="from-indigo-400"] i,
.tour-app [class*="bg-gradient-"][class*="from-indigo-500"] i,
.tour-app [class*="bg-gradient-"][class*="from-indigo-600"] i,
.tour-app [class*="bg-gradient-"][class*="from-indigo-700"] i { color: inherit !important; }
.tour-app [class*="bg-gradient-"][class*="from-purple-400"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-purple-500"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-purple-600"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-purple-700"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-pink-400"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-pink-500"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-pink-600"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-pink-700"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-400"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-500"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-600"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-700"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-violet-400"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-violet-500"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-violet-600"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-violet-700"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-indigo-400"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-indigo-500"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-indigo-600"]:hover,
.tour-app [class*="bg-gradient-"][class*="from-indigo-700"]:hover { background-color: var(--ink-deep) !important; }
.tour-app [class*="bg-gradient-"][class*="from-purple-50"],
.tour-app [class*="bg-gradient-"][class*="from-purple-100"],
.tour-app [class*="bg-gradient-"][class*="from-pink-50"],
.tour-app [class*="bg-gradient-"][class*="from-pink-100"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-50"],
.tour-app [class*="bg-gradient-"][class*="from-fuchsia-100"],
.tour-app [class*="bg-gradient-"][class*="from-violet-50"],
.tour-app [class*="bg-gradient-"][class*="from-violet-100"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-50"],
.tour-app [class*="bg-gradient-"][class*="from-indigo-100"] { background-image: none !important; background-color: #f7efe6 !important; }
.tour-app .bg-clip-text.text-transparent { background-image: none !important; color: var(--ink-text) !important; -webkit-text-fill-color: currentColor; }

/* revisione finale: niente eyebrow sopra i titoli, niente blob sfocati, niente ombre morbide colorate */
body.tour-app .fp-hero-dark p.uppercase[class*="tracking-[0.25em]"] { display: none; }
.tour-app .animate-blob.blur-3xl { display: none; }
.tour-app .fp-section-card { box-shadow: none; border: 1px solid #ddd3c2; }
.tour-app .shadow-lg, .tour-app .shadow-xl, .tour-app .shadow-2xl, .tour-app .hover\:shadow-xl:hover, .tour-app .hover\:shadow-lg:hover { --tw-shadow: 0 1px 0 rgb(20 19 18 / .08); --tw-shadow-colored: 0 1px 0 rgb(20 19 18 / .08); }
.tour-app [class*="bg-gradient-"][class*="from-green-100"], .tour-app [class*="bg-gradient-"][class*="from-blue-100"], .tour-app [class*="bg-gradient-"][class*="from-emerald-100"], .tour-app [class*="bg-gradient-"][class*="from-sky-100"] { background-image: none !important; background-color: #f6dccd !important; color: var(--ink-text) !important; }
.tour-app footer .fanproof-logo-fan, .tour-app footer .fanproof-logo-proof { color: var(--bone) !important; -webkit-text-fill-color: var(--bone) !important; }
.tour-app .shadow-md, .tour-app .shadow, .tour-app .hover\:shadow-md:hover, .tour-app [class*="shadow-orange-"], .tour-app [class*="shadow-pink-"], .tour-app [class*="shadow-purple-"] { --tw-shadow: 0 1px 0 rgb(20 19 18 / .08); --tw-shadow-colored: 0 1px 0 rgb(20 19 18 / .08); box-shadow: 0 1px 0 rgb(20 19 18 / .08) !important; }
body.tour-app .fp-hero-dark .rounded-2xl, body.tour-app .fp-hero-dark .rounded-3xl { border-radius: 3px; border: 1px dashed var(--stitch-strong); background-color: transparent; }
.tour-app form.bg-white, .tour-app .bg-white.rounded-2xl.shadow-lg { border: 1px solid #ddd3c2; }

/* ---------- pagine legali: etichetta di composizione ---------- */
.legal-wrap { width: min(1120px, 100% - 32px); margin-inline: auto; }
.legal-hero { padding: 108px 0 56px; }
.legal-title { font-family: var(--font-print); font-weight: 900; text-transform: uppercase; color: var(--bone); font-size: clamp(3.4rem, 9vw, 7rem); line-height: .82; margin: 0; text-shadow: .04em .03em 0 var(--ink); }
.legal-lede { color: var(--bone-dim); max-width: 58ch; font-size: 1.1rem; line-height: 1.55; margin: 18px 0 0; }
.legal-meta { font-family: var(--font-data); font-size: .8rem; color: var(--bone-dim); margin: 18px 0 0; }
.legal-meta a { color: var(--bone); }
.legal-body { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); padding: 48px 0 96px; align-items: start; }
.legal-toc { position: sticky; top: 84px; }
.legal-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: none; border-top: 2px solid var(--cotton); }
.legal-toc li a { display: block; padding: 9px 0; border-bottom: 1px dashed #c9bfae; color: #3b3833; text-decoration: none; font-size: .93rem; }
.legal-toc li a:hover { color: var(--ink-text); }
.legal-others { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.legal-others a { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; text-decoration: none; color: var(--cotton); border: 2px solid var(--cotton); padding: 5px 10px 4px; border-radius: 3px; }
.legal-others a:hover { background: var(--cotton); color: var(--bone); }
.legal-doc { background: var(--natural-2); border: 1px solid #ddd3c2; border-radius: 4px; padding: clamp(22px, 4vw, 48px); max-width: 72ch; }
.legal-doc section + section { margin-top: 36px; padding-top: 30px; border-top: 1px dashed #c9bfae; }
.legal-doc section { scroll-margin-top: 84px; }
.legal-doc h2 { font-family: var(--font-print); font-weight: 900; text-transform: uppercase; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: .95; margin: 0 0 14px; color: var(--cotton); }
.legal-doc p, .legal-doc li { color: #2f2c28; line-height: 1.68; font-size: 1rem; }
.legal-doc p { margin: 0 0 12px; }
.legal-doc ul { margin: 0 0 12px; padding-left: 1.2rem; list-style: square; }
.legal-doc li { margin: 6px 0; }
.legal-doc li::marker { color: var(--ink); }
.legal-doc b { color: var(--cotton); }
.legal-doc a { color: var(--ink-text); text-underline-offset: 3px; }
.legal-doc code { font-family: var(--font-data); font-size: .88em; background: #ebe2d2; padding: 1px 5px; border-radius: 2px; }
.legal-doc table { width: 100%; border-collapse: collapse; margin: 6px 0 12px; font-size: .95rem; }
.legal-doc th { text-align: left; font-family: var(--font-data); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: #6b665e; border-bottom: 2px solid var(--cotton); padding: 8px 10px 8px 0; }
.legal-doc td { border-bottom: 1px dashed #c9bfae; padding: 10px 10px 10px 0; vertical-align: top; color: #2f2c28; }
.consent-box { margin-top: 16px; padding: 16px; border: 2px solid var(--cotton); border-radius: 4px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.consent-box p { margin: 0 auto 0 0; font-weight: 600; }
.consent-box button { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1rem; padding: 9px 14px 8px; border-radius: 3px; border: 2px solid var(--cotton); background: var(--cotton); color: var(--bone); cursor: pointer; }
.consent-box button.alt { background: transparent; color: var(--cotton); }
@media (max-width: 860px) {
    .legal-body { grid-template-columns: minmax(0, 1fr); }
    .legal-toc { position: static; }
    .legal-hero { padding: 92px 0 40px; }
}

/* ---------- pagine di accesso (login, registrazione, reset, verifica) ---------- */
.fp-auth-bg { background: var(--cotton) url('../images/cotton-weave.png') repeat; }
.tour-app:has(.fp-auth-bg) { background: var(--cotton) !important; }
.tour-app:has(.fp-auth-bg) footer { position: relative; z-index: 1; }
.tour-app:has(.fp-auth-bg) .rounded-3xl.shadow-2xl {
    background: var(--natural-2) !important; border: 0 !important; border-radius: 4px !important;
    box-shadow: none !important; backdrop-filter: none !important;
    outline: 1px dashed #b7ad9b; outline-offset: -10px; position: relative;
}
.tour-app:has(.fp-auth-bg) .rounded-3xl.shadow-2xl h1,
.tour-app:has(.fp-auth-bg) .rounded-3xl.shadow-2xl h2 { font-family: var(--font-print) !important; font-weight: 900; text-transform: uppercase; letter-spacing: 0 !important; color: var(--cotton) !important; font-size: clamp(2.2rem, 6vw, 2.9rem) !important; line-height: .9 !important; }
.tour-app:has(.fp-auth-bg) .rounded-3xl.shadow-2xl img.rounded-2xl { border-radius: 4px; box-shadow: none; width: 52px; height: 52px; }
.tour-app:has(.fp-auth-bg) input[type="email"], .tour-app:has(.fp-auth-bg) input[type="password"], .tour-app:has(.fp-auth-bg) input[type="text"] {
    background: #fff !important; border: 1.5px solid #cfc5b4 !important; border-radius: 4px !important; font-family: var(--font-body);
}
.tour-app:has(.fp-auth-bg) input[type="email"]:focus, .tour-app:has(.fp-auth-bg) input[type="password"]:focus, .tour-app:has(.fp-auth-bg) input[type="text"]:focus {
    border-color: var(--ink) !important; box-shadow: 0 0 0 3px rgb(255 79 31 / .2) !important; outline: none;
}
.tour-app:has(.fp-auth-bg) button[type="submit"] { font-family: var(--font-print); text-transform: uppercase; letter-spacing: .05em; font-size: 1.25rem; border-radius: 3px !important; transform: none !important; }
.tour-app:has(.fp-auth-bg) .rounded-3xl.shadow-2xl ~ div, .tour-app:has(.fp-auth-bg) .max-w-md > .mt-8.text-center { color: var(--bone-dim); }
.tour-app:has(.fp-auth-bg) .max-w-md > .mt-8.text-center a:hover { color: var(--bone) !important; }

/* ---------- componenti app (dashboard, dettaglio evento/artista, profilo) ---------- */
.tw { width: min(1240px, 100% - 32px); margin-inline: auto; }
.tour-hero { position: relative; background: var(--cotton) url('../images/cotton-weave.png') repeat; color: var(--bone); padding: 104px 0 40px; margin-top: -5rem; border-bottom: 1px dashed var(--stitch-strong); }
@media (min-width: 640px) { .tour-hero { margin-top: -6rem; padding-top: 120px; } }
.tour-h1 { font-family: var(--font-print); font-weight: 900; text-transform: uppercase; line-height: .85; letter-spacing: 0; font-size: clamp(2.8rem, 7.5vw, 6rem); margin: 0; color: var(--bone); text-shadow: .04em .03em 0 var(--ink); overflow-wrap: anywhere; }
.tour-sub { color: var(--bone-dim); margin: 12px 0 0; max-width: 60ch; line-height: 1.5; }
.tour-hero-row { display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: flex-end; justify-content: space-between; }
.ledger-stats { display: flex; flex-wrap: wrap; margin: 28px 0 0; padding: 0; list-style: none; border-top: 2px solid var(--bone); }
.ledger-stats li { padding: 12px 22px 0 0; margin-right: 22px; border-right: 1px dashed var(--stitch-strong); min-width: 0; }
.ledger-stats li:last-child { border-right: 0; margin-right: 0; }
.ledger-stats b { display: block; font-family: var(--font-print); font-weight: 900; font-size: clamp(2rem, 4vw, 3rem); line-height: .9; color: var(--bone); font-variant-numeric: tabular-nums; max-width: 14ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ledger-stats span { font-family: var(--font-data); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bone-dim); }
.ledger-stats li.now b { color: var(--now); }
.tour-section { padding: 36px 0; }
.tour-section h2.sec { font-family: var(--font-print); font-weight: 900; text-transform: uppercase; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: .9; margin: 0 0 16px; color: var(--cotton); }
.strip { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; background: var(--natural-2); border: 1px solid #ddd3c2; border-radius: 4px; padding: 10px; text-decoration: none; color: inherit; transition: border-color .2s; }
.strip:hover { border-color: var(--cotton); }
.strip img, .strip .ph { width: 96px; height: 96px; object-fit: cover; border-radius: 2px; background: var(--cotton); }
.strip .k { font-family: var(--font-data); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-text); }
.strip .t { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: clamp(1.15rem, 2vw, 1.5rem); line-height: 1; margin: 4px 0; color: var(--cotton); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.strip .d { color: #4a4640; font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.strip .go { padding: 0 8px; color: var(--cotton); }
.toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.field-search { position: relative; flex: 1 1 260px; max-width: 420px; }
.field-search input { width: 100%; padding: 11px 14px 11px 40px; border: 1.5px solid #cfc5b4; border-radius: 4px; background: #fff; font: 500 1rem var(--font-body); color: var(--cotton); }
.field-search input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(255 79 31 / .2); }
.field-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #6b665e; }
.seg { display: inline-flex; border: 2px solid var(--cotton); border-radius: 3px; overflow: hidden; }
.seg button { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; padding: 7px 12px 6px; background: transparent; border: 0; color: var(--cotton); cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--cotton); color: var(--bone); }
.print-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 2px; background: var(--cotton); border: 2px solid var(--cotton); }
.print-wall a { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cotton); text-decoration: none; }
.print-wall img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.print-1bit { filter: url(#onebit); }
.print-wall a:hover img, .print-wall a:focus-visible img { filter: none; transform: scale(1.04); }
.print-wall .nm { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 8px 5px; background: var(--cotton); color: var(--bone); font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: .98rem; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.print-wall .ct { position: absolute; top: 6px; right: 6px; background: var(--cotton); color: var(--bone); font-family: var(--font-data); font-weight: 700; font-size: .72rem; padding: 3px 6px; border-radius: 2px; }
.print-wall a.top .ct { background: var(--now); color: var(--cotton); }
.print-wall .ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-family: var(--font-print); font-weight: 900; font-size: 3rem; color: var(--stitch-strong); }
@media (max-width: 640px) { .print-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); } .strip { grid-template-columns: 72px minmax(0,1fr); } .strip img, .strip .ph { width: 72px; height: 72px; } .strip .go { display: none; } .ledger-stats li { padding-right: 14px; margin-right: 14px; } }
.empty-tour { text-align: center; padding: 56px 16px; }
.empty-tour h2 { font-family: var(--font-print); font-weight: 900; text-transform: uppercase; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: .9; color: var(--cotton); margin: 0 0 12px; }
.empty-tour p { color: #4a4640; max-width: 52ch; margin: 0 auto 24px; line-height: 1.6; }
.btn-line { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-print); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1.05rem; padding: 10px 14px 9px; border: 2px solid currentColor; border-radius: 3px; text-decoration: none; color: var(--cotton); background: transparent; cursor: pointer; }
.btn-line:hover { background: var(--cotton); color: var(--bone); }
.tour-hero .btn-line { color: var(--bone); }
.tour-hero .btn-line:hover { background: var(--bone); color: var(--cotton); }
.tour-app .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.person-hero { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(20px, 4vw, 44px); align-items: end; }
.portrait { width: clamp(132px, 18vw, 220px); aspect-ratio: 1; padding: 0; border: 2px solid var(--bone); border-radius: 3px; background: var(--cotton); overflow: hidden; cursor: zoom-in; }
.portrait:disabled { cursor: default; }
.portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.portrait:hover img { filter: none; }
.portrait .ph { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-family: var(--font-print); font-weight: 900; font-size: 5rem; color: var(--stitch-strong); }
.stamp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.stamp-tags a, .stamp-tags span { display: inline-block; font-family: var(--font-data); font-weight: 700; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bone-dim); border: 1px solid var(--stitch-strong); padding: 4px 8px; border-radius: 2px; text-decoration: none; }
.stamp-tags a:hover { color: var(--bone); border-color: var(--bone-dim); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; align-items: center; }
.hero-actions form { margin: 0; }
.btn-line--sm { font-size: .92rem; padding: 6px 10px 5px; }
.btn-danger { color: #ff9b85 !important; }
.btn-danger:hover { background: #8a1c08 !important; color: var(--bone) !important; border-color: #8a1c08 !important; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 320px); gap: 0 40px; align-items: start; }
.detail-grid > :only-child { grid-column: 1 / -1; }
.sec-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ledger { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cotton); }
.ledger li a { display: grid; grid-template-columns: 8.5ch minmax(0, 1fr) minmax(0, 14ch); gap: 0 18px; align-items: baseline; padding: 11px 4px; border-bottom: 1px dashed #c9bfae; text-decoration: none; color: var(--cotton); transition: background-color .15s; }
.ledger li a:hover { background: var(--natural-2); }
.ledger .d { font-family: var(--font-data); font-size: .92rem; color: #6b665e; font-variant-numeric: tabular-nums; }
.ledger .a { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ledger .c { font-family: var(--font-data); font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #4a4640; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ledger li.now .d { color: var(--ink-text); font-weight: 700; }
@media (max-width: 640px) {
    .ledger li a { grid-template-columns: 7.6ch minmax(0, 1fr); }
    .ledger .c { grid-column: 2; text-align: left; margin-top: 4px; }
    .person-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 960px) { .detail-grid { grid-template-columns: minmax(0, 1fr); } }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.photo-grid .ap-photo { position: relative; aspect-ratio: 1; padding: 0; border: 0; border-radius: 3px; overflow: hidden; background: var(--cotton); cursor: zoom-in; }
.photo-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.photo-grid .ap-photo:hover img { transform: scale(1.05); }
.photo-grid .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 5px 8px 4px; background: var(--cotton); color: var(--bone); font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: .9rem; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.photo-grid .cap:empty { display: none; }
.tracklist { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cotton); }
.tracklist li { display: grid; grid-template-columns: 3ch 52px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px dashed #c9bfae; }
.tracklist .n { font-family: var(--font-data); font-weight: 700; color: var(--ink-text); }
.tracklist .cover { position: relative; width: 52px; height: 52px; background: var(--cotton); border-radius: 2px; overflow: hidden; }
.tracklist .cover img { width: 100%; height: 100%; object-fit: cover; }
.tracklist .play-btn { position: absolute; inset: 0; border: 0; background: rgb(20 19 18 / .55); color: var(--bone); cursor: pointer; opacity: 0; transition: opacity .2s; }
.tracklist li:hover .play-btn, .tracklist .play-btn:focus-visible { opacity: 1; }
.tracklist b { display: block; color: var(--cotton); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tracklist a { font-size: .85rem; color: #4a4640; }
.label-card { background: var(--natural-2); border: 1px solid #ddd3c2; border-radius: 4px; padding: 20px; outline: 1px dashed #c9bfae; outline-offset: -8px; }
.label-card p { color: #2f2c28; line-height: 1.6; margin: 0; }
.crumbs { font-family: var(--font-data); font-size: .74rem; letter-spacing: .06em; color: var(--bone-dim); margin-bottom: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crumbs a { color: var(--bone); }
.stub { width: clamp(120px, 15vw, 168px); aspect-ratio: 1; border: 2px solid var(--bone); border-radius: 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; color: var(--bone); background: var(--cotton); }
.stub::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: 22%; border-top: 2px dashed var(--stitch-strong); }
.stub .dd { font-family: var(--font-print); font-weight: 900; font-size: clamp(3.4rem, 6vw, 4.6rem); line-height: .8; }
.stub .mm { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: 1.3rem; letter-spacing: .08em; color: var(--ink); }
.stub .yy { font-family: var(--font-data); font-size: .8rem; color: var(--bone-dim); position: absolute; bottom: 6%; }
.stub--logo { background: var(--bone); padding: 14px; }
.stub--logo::after { display: none; }
.stub--logo img { width: 100%; height: 100%; object-fit: contain; }
.print-wall--lineup { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.wall-cell { position: relative; }
.wall-cell > a { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cotton); text-decoration: none; }
.wall-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.wall-cell a:hover img, .wall-cell a:focus-visible img { filter: none; transform: scale(1.04); }
.wall-cell .cell-del { position: absolute; top: 6px; left: 6px; width: 28px; height: 28px; border: 0; border-radius: 2px; background: var(--cotton); color: var(--bone); cursor: pointer; opacity: 0; transition: opacity .2s; }
.wall-cell:hover .cell-del, .wall-cell .cell-del:focus-visible { opacity: 1; }
@media (hover: none) { .wall-cell .cell-del { opacity: 1; } }
.photo-grid div.ap-photo { position: relative; aspect-ratio: 1; border-radius: 3px; overflow: hidden; background: var(--cotton); cursor: zoom-in; }
.photo-tools { position: absolute; top: 6px; right: 6px; display: flex; gap: 4px; opacity: 0; transition: opacity .2s; }
.ap-photo:hover .photo-tools, .ap-photo:focus-within .photo-tools { opacity: 1; }
@media (hover: none) { .photo-tools { opacity: 1; } }
.photo-tools button { width: 30px; height: 30px; border: 0; border-radius: 2px; background: var(--cotton); color: var(--bone); cursor: pointer; }
.empty-slot { border: 2px dashed #c9bfae; border-radius: 4px; padding: 28px; text-align: center; color: #4a4640; }
.empty-slot p { margin: 0 0 14px; }
.video-frame { position: relative; padding-top: 56.25%; background: var(--cotton); border-radius: 3px; overflow: hidden; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.note-card p { font-size: 1.05rem; }
.side-col { display: grid; gap: 14px; }
.facts { margin: 0; display: grid; gap: 12px; }
.facts div { display: grid; gap: 2px; }
.facts dt { font-family: var(--font-data); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #6b665e; }
.facts dd { margin: 0; font-weight: 600; color: var(--cotton); }
.facts dd a { color: var(--ink-text); }
.manage { display: grid; gap: 8px; }
.manage .btn-line { justify-content: flex-start; width: 100%; }
.btn-danger-light { color: #9c2a10 !important; }
.btn-danger-light:hover { background: #9c2a10 !important; color: var(--bone) !important; border-color: #9c2a10 !important; }
.portrait--self { position: relative; display: block; cursor: pointer; }
.portrait-edit { position: absolute; left: 0; right: 0; bottom: 0; padding: 6px; background: var(--cotton); color: var(--bone); font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: .9rem; text-align: center; transform: translateY(100%); transition: transform .25s var(--ease-out); }
.portrait--self:hover .portrait-edit, .portrait--self:focus-within .portrait-edit { transform: none; }
@media (hover: none) { .portrait-edit { transform: none; } }
.profile-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px 40px; }
.bars { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--cotton); }
.bars li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 10px 0; border-bottom: 1px dashed #c9bfae; }
.bars .lb { font-weight: 600; color: var(--cotton); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bars .vl { font-family: var(--font-data); font-weight: 700; color: var(--ink-text); }
.bars .tr { grid-column: 1 / -1; height: 6px; background: #e3d9c8; }
.bars .tr span { display: block; height: 100%; width: 0; background: var(--cotton); transition: width .9s var(--ease-out); }
.bars li:first-child .tr span { background: var(--ink); }
.patches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.patches li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 12px; align-items: center; padding: 14px; border: 2px dashed #c9bfae; border-radius: 6px; color: #6b665e; }
.patches li i { grid-row: 1 / span 2; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #e3d9c8; color: #8a8378; }
.patches li b { font-family: var(--font-print); font-weight: 800; text-transform: uppercase; font-size: 1.15rem; line-height: 1; color: #6b665e; }
.patches li span { font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.patches li.on { border-style: solid; border-color: var(--cotton); background: var(--natural-2); color: #2f2c28; outline: 1px dashed #b7ad9b; outline-offset: -6px; }
.patches li.on i { background: var(--ink); color: var(--cotton); }
.patches li.on b { color: var(--cotton); }
.settings-card { padding: 4px 18px; }
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px dashed #c9bfae; width: 100%; background: none; border-left: 0; border-right: 0; border-top: 0; text-align: left; font: inherit; color: inherit; text-decoration: none; }
.set-row:last-child { border-bottom: 0; }
.set-row b { display: block; color: var(--cotton); }
.set-row p { margin: 2px 0 0; color: #4a4640; font-size: .9rem; }
.set-row form { margin: 0; }
.set-link { cursor: pointer; }
.set-link:hover b { color: var(--ink-text); }
.set-link i { color: #6b665e; }
.set-row--link input { flex: 1; min-width: 0; font-family: var(--font-data); font-size: .82rem; padding: 9px 10px; border: 1.5px solid #cfc5b4; border-radius: 4px; background: #fff; color: #2f2c28; }
.state { font-family: var(--font-data); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: #6b665e; margin-left: 6px; }
.switch { position: relative; width: 44px; height: 26px; border-radius: 13px; border: 2px solid var(--cotton); background: #e3d9c8 !important; cursor: pointer; padding: 0; flex-shrink: 0; }
.switch span { position: absolute; top: 1px; left: 0; width: 20px; height: 20px; border-radius: 50%; background: var(--cotton); transition: transform .2s var(--ease-out); }
.switch[aria-pressed="true"] { background: var(--ink) !important; }
.switch-input { position: relative; flex-shrink: 0; cursor: pointer; }
.switch-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch-input span[aria-hidden] { display: block; width: 44px; height: 26px; border-radius: 13px; border: 2px solid var(--cotton); background: #e3d9c8; position: relative; transition: background-color .2s; }
.switch-input span[aria-hidden]::after { content: ""; position: absolute; top: 1px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--cotton); transition: transform .2s var(--ease-out); }
.switch-input input:checked + span { background: var(--ink); }
.switch-input input:checked + span::after { transform: translateX(16px); }
.switch-input input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 2px; }
.danger-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 18px; border: 2px solid #e2b4a6; border-radius: 4px; background: #f7e6df; }
.danger-card p { margin: 0; color: #5a2a1c; }
@media (max-width: 860px) { .legal-toc ol { display: none; } .legal-others { margin-top: 0; } }
