:root{--porcelain: #f4f1ec;
            --paper: #fcfbf8;
            --soft-steel: #d9dee2;
            --graphite: #252a2e;
            --steel-gray: #66717a;
            --ink: #16191c;
            --burnt-copper: #a86442;
            --burnt-copper-soft: rgba(168, 100, 66, 0.16);
            --panel: rgba(252, 251, 248, 0.82);
            --border: rgba(37, 42, 46, 0.14);
            --shadow: 0 1.5rem 4rem rgba(37, 42, 46, 0.16);
            --radius: 0.3rem;
            --pointer-x: 50vw;
            --pointer-y: 50vh;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--lh-relaxed:1.7;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:17px;--fs-xl:20px;--btn-bg:#444746;--btn-fg:#fff;--btn-border:#444746}

        * {
            box-sizing: border-box;
        }

        html {
            min-height: 100%;
            background: var(--porcelain);
        }

        body {
            min-height: 100svh;
            margin: 0;
            overflow: hidden;
            color: var(--ink);
            background:
                radial-gradient(circle at var(--pointer-x) var(--pointer-y), var(--burnt-copper-soft), transparent 24rem),
                radial-gradient(circle at 50% 120%, rgba(102,113,122,0.14), transparent 42rem),
                var(--porcelain);
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
            text-rendering: optimizeLegibility;
        }

        button {
            font: inherit;
        }

        .noise,
        .scanline,
        .vignette {
            position: fixed;
            inset: 0;
            pointer-events: none;
        }

        .noise {
            z-index: 1;
            opacity: 0.024;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
        }

        .scanline {
            z-index: 0;
            background-image:
                linear-gradient(rgba(102,113,122,0.07) 1px, transparent 1px),
                linear-gradient(90deg, rgba(102,113,122,0.07) 1px, transparent 1px);
            background-size: 44px 44px;
            -webkit-mask-image: linear-gradient(to bottom, black, transparent 92%);
            mask-image: linear-gradient(to bottom, black, transparent 92%);
        }

        .vignette {
            z-index: 4;
            box-shadow: inset 0 0 9rem 2rem rgba(37,42,46,0.11);
        }

        .stage {
            position: relative;
            z-index: 2;
            display: grid;
            place-items: center;
            min-height: 100svh;
            padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
            isolation: isolate;
        }

        .orbit {
            position: absolute;
            inset: 0;
            overflow: hidden;
            pointer-events: none;
        }

        .emoji {
            --size: 2rem;
            --duration: 16s;
            --delay: 0s;
            --drift-x: 0px;
            --drift-y: -12rem;
            --rotation: 24deg;
            position: absolute;
            left: 0;
            top: 0;
            width: var(--size);
            height: var(--size);
            display: grid;
            place-items: center;
            color: var(--graphite);
            font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", "EmojiOne Color", "Android Emoji", "Segoe UI Symbol", "Symbola", sans-serif;
            font-size: var(--size);
            font-variant-emoji: emoji;
            line-height: 1;
            opacity: 0;
            filter: grayscale(1) saturate(0.12) contrast(0.96) drop-shadow(0 0.35rem 0.7rem rgba(37,42,46,0.22));
            will-change: transform, opacity;
            animation: float var(--duration) linear var(--delay) infinite;
            user-select: none;
        }

        .emoji-graphic {
            display: block;
            width: 86%;
            height: 86%;
            object-fit: cover;
            border-radius: 0.2em;
            box-shadow: inset 0 0 0 1px rgba(37, 42, 46, 0.06);
        }

        .emoji::after {
            content: "";
            position: absolute;
            inset: -0.35rem;
            border: 1px solid rgba(168,100,66,0.16);
            border-radius: 50%;
            opacity: 0;
            transform: scale(0.7);
            animation: pulse-ring 3.8s ease-in-out calc(var(--delay) * -0.3) infinite;
        }

        .panel {
            position: relative;
            width: min(42rem, calc(100vw - 2rem));
            padding: clamp(1.3rem, 4vw, 2.4rem);
            border: 1px solid var(--border);
            border-radius: var(--radius);
            background: linear-gradient(145deg, rgba(252,251,248,0.88), rgba(244,241,236,0.76));
            box-shadow: var(--shadow);
            backdrop-filter: blur(1.25rem) saturate(110%);
        }

        .panel::before {
            content: "";
            position: absolute;
            inset: -1px;
            z-index: -1;
            border-radius: inherit;
            background: linear-gradient(120deg, rgba(168,100,66,0.48), transparent 35%, rgba(37,42,46,0.12));
            opacity: 0.42;
            mask: linear-gradient(var(--ink) 0 0) content-box, linear-gradient(var(--ink) 0 0);
            mask-composite: exclude;
            padding: 1px;
        }

        .eyebrow {
            display: flex;
            align-items: center;
            gap: 0.65rem;
            margin: 0 0 1.25rem;
            color: var(--steel-gray);
            font-size: 0.72rem;
            letter-spacing: 0.18em;
            text-transform: uppercase;
        }

        .status-dot {
            width: 0.46rem;
            height: 0.46rem;
            border-radius: 50%;
            background: var(--burnt-copper);
            box-shadow: 0 0 0 0.28rem rgba(168,100,66,0.12), 0 0 1.1rem rgba(168,100,66,0.42);
            animation: status-pulse 2.4s ease-in-out infinite;
        }

        .hero {
            display: grid;
            grid-template-columns: auto 1fr;
            align-items: center;
            gap: clamp(1rem, 4vw, 1.8rem);
        }

        .hero-emoji {
            position: relative;
            display: grid;
            place-items: center;
            width: clamp(5.5rem, 17vw, 8rem);
            aspect-ratio: 1;
            border: 1px solid rgba(168,100,66,0.34);
            border-radius: 50%;
            background:
                radial-gradient(circle at 35% 30%, rgba(252,251,248,0.92), transparent 36%),
                rgba(252,251,248,0.92);
            color: var(--graphite);
            font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", "EmojiOne Color", "Android Emoji", "Segoe UI Symbol", "Symbola", sans-serif;
            font-size: clamp(3.2rem, 10vw, 5.4rem);
            font-variant-emoji: emoji;
            filter: grayscale(1) saturate(0.1) contrast(0.98);
            box-shadow: inset 0 0 2rem rgba(168,100,66,0.08), 0 0 2.4rem rgba(37,42,46,0.08);
            animation: breathe 4.5s ease-in-out infinite;
            cursor: pointer;
            user-select: none;
            overflow: hidden;
        }

        .hero-emoji .emoji-graphic {
            width: 86%;
            height: 86%;
            object-fit: cover;
            border-radius: inherit;
        }

        .hero-emoji:focus-visible {
            outline: 2px solid var(--burnt-copper);
            outline-offset: 0.3rem;
        }

        .hero-emoji::before,
        .hero-emoji::after {
            content: "";
            position: absolute;
            inset: -0.65rem;
            border: 1px solid rgba(168,100,66,0.18);
            border-radius: 50%;
            animation: radar 4s ease-out infinite;
        }

        .hero-emoji::after {
            animation-delay: 2s;
        }

        h1 {
            margin: 0;
            color: var(--ink);
            font-size: clamp(2rem, 8vw, 4.6rem);
            line-height: 0.94;
            letter-spacing: -0.07em;
        }

        h1 span {
            color: var(--burnt-copper);
        }

        .subtitle {
            margin: 0.85rem 0 0;
            max-width: 30rem;
            color: var(--graphite);
            font-size: clamp(0.78rem, 2vw, 0.95rem);
            line-height:var(--lh-relaxed);
        }

        .meta {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            margin-top: 1.5rem;
        }

        .chip {
            padding: 0.46rem 0.65rem;
            border: 1px solid rgba(37,42,46,0.12);
            border-radius: var(--radius);
            color: var(--steel-gray);
            background: rgba(252,251,248,0.62);
            font-size: 0.68rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            text-decoration: none;
        }

        .controls {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            margin-top: 1.7rem;
            padding-top: 1rem;
            border-top: 1px solid rgba(37,42,46,0.1);
        }

        .hint {
            color: var(--steel-gray);
            font-size: 0.7rem;
            line-height:var(--lh-normal);
        }

        .actions {
            display: flex;
            gap: 0.5rem;
        }

        .action {
            min-width: 2.55rem;
            min-height: 2.35rem;
            padding: 0.55rem 0.7rem;
            border: 1px solid rgba(37,42,46,0.14);
            border-radius: var(--radius);
            color: var(--graphite);
            background: rgba(252,251,248,0.76);
            cursor: pointer;
            transition: border-color 160ms ease, color 160ms ease, transform 160ms ease, background 160ms ease;
        }

        .action:hover {
            border-color: rgba(168,100,66,0.7);
            color: var(--ink);
            background: rgba(168,100,66,0.12);
            transform: translateY(-1px);
        }

        .action:focus-visible {
            outline: 2px solid var(--burnt-copper);
            outline-offset: 0.2rem;
        }

        .action[aria-pressed="false"] {
            color: var(--steel-gray);
        }

        .toast {
            position: fixed;
            left: 50%;
            bottom: max(1rem, env(safe-area-inset-bottom));
            z-index: 10;
            max-width: calc(100vw - 2rem);
            padding: 0.65rem 0.85rem;
            border: 1px solid rgba(168,100,66,0.32);
            border-radius: var(--radius);
            color: var(--graphite);
            background: rgba(252,251,248,0.96);
            box-shadow: 0 0.75rem 2.5rem rgba(37,42,46,0.18);
            font-size: 0.72rem;
            opacity: 0;
            pointer-events: none;
            transform: translate(-50%, 0.75rem);
            transition: opacity 180ms ease, transform 180ms ease;
        }

        .toast.is-visible {
            opacity: 1;
            transform: translate(-50%, 0);
        }

        .burst {
            position: fixed;
            z-index: 3;
            left: 0;
            top: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: calc(var(--burst-size, 0.4rem) + 0.12rem);
            height: calc(var(--burst-size, 0.4rem) + 0.12rem);
            font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", "EmojiOne Color", "Android Emoji", "Segoe UI Symbol", "Symbola", sans-serif;
            font-size: calc(var(--burst-size, 0.4rem) * 0.92);
            font-variant-emoji: emoji;
            line-height: 1;
            pointer-events: none;
            opacity: 0.72;
            filter: grayscale(0.9) saturate(0.06) drop-shadow(0 0.12rem 0.24rem rgba(37,42,46,0.12));
            transform: translate(-50%, -50%);
            will-change: transform, opacity;
            animation: burst 620ms cubic-bezier(0.16, 0.8, 0.2, 1) forwards;
        }

        .burst .emoji-graphic {
            width: 100%;
            height: 100%;
            object-fit: contain;
            border-radius: 0.2em;
        }

        @keyframes float {
            0% {
                opacity: 0;
                transform: translate3d(var(--start-x), calc(100svh + 5rem), 0) rotate(0deg) scale(0.78);
            }
            12% {
                opacity: 0.34;
            }
            50% {
                opacity: 0.16;
                transform: translate3d(calc(var(--start-x) + var(--drift-x)), 48svh, 0) rotate(calc(var(--rotation) * 0.5)) scale(1);
            }
            88% {
                opacity: 0.3;
            }
            100% {
                opacity: 0;
                transform: translate3d(calc(var(--start-x) + var(--drift-x) * 0.35), -7rem, 0) rotate(var(--rotation)) scale(0.84);
            }
        }

        @keyframes pulse-ring {
            0%, 100% { opacity: 0; transform: scale(0.72); }
            48% { opacity: 0.35; }
            70% { opacity: 0; transform: scale(1.3); }
        }

        @keyframes breathe {
            0%, 100% { transform: translateY(0) scale(1); }
            50% { transform: translateY(-0.3rem) scale(1.025); }
        }

        @keyframes radar {
            0% { opacity: 0.5; transform: scale(0.78); }
            100% { opacity: 0; transform: scale(1.38); }
        }

        @keyframes status-pulse {
            0%, 100% { opacity: 0.66; }
            50% { opacity: 1; }
        }

        @keyframes burst {
            0% {
                opacity: 0;
                transform: translate(-50%, -50%) scale(0.35) rotate(0deg);
            }
            16% {
                opacity: 0.55;
            }
            100% {
                opacity: 0;
                transform: translate(calc(-50% + var(--burst-x)), calc(-50% + var(--burst-y))) scale(0.8) rotate(var(--burst-r));
            }
        }

        @media (max-width: 36rem) {
            .hero {
                grid-template-columns: 1fr;
                text-align: center;
            }

            .hero-emoji {
                margin-inline: auto;
            }

            .meta,
            .controls {
                justify-content: center;
            }

            .controls {
                flex-direction: column;
            }

            .hint {
                text-align: center;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            *,
            *::before,
            *::after {
                scroll-behavior: auto !important;
                animation-duration: 1ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 1ms !important;
            }

            .emoji {
                opacity: 0.12;
            }
        }

/* Unified button appearance — authoritative, keep last. */
.btn,button,.btn-sm,.btn-xs,.page-link,.page-link--primary,
input[type=submit],input[type=button],.swal2-confirm,.swal2-cancel{
    border-color:var(--btn-border)!important;
    color:var(--btn-fg)!important;
    background:var(--btn-bg)!important;
}
.btn:hover,button:hover,.btn-sm:hover,.btn-xs:hover,.page-link:hover,
input[type=submit]:hover,input[type=button]:hover{
    border-color:var(--btn-border)!important;
    color:var(--btn-fg)!important;
    background:var(--btn-bg)!important;
    filter:brightness(1.18);
}
.btn:disabled,button:disabled,.btn-sm:disabled,.btn-xs:disabled,
input[type=submit]:disabled,input[type=button]:disabled{
    opacity:.55;
    filter:none;
}
