:root {
    color-scheme: light;
}

html {
    min-width: 320px;
    scroll-behavior: smooth;
}

body.nug-front {
    --nug-red: #f2381f;
    --nug-red-deep: #d92616;
    --nug-orange: #ff761f;
    --nug-gold: #ffbd35;
    --nug-cream: #fff8eb;
    --nug-cream-deep: #ffedd2;
    --nug-brown: #5c1e16;
    --nug-muted: #9a5a47;
    --nug-line: rgba(236, 91, 37, 0.2);
    margin: 0;
    min-width: 320px;
    min-height: 100vh;
    color: var(--nug-brown);
    background:
        radial-gradient(circle at 14% 3%, rgba(255, 218, 147, 0.8), transparent 24rem),
        linear-gradient(180deg, #fff4df 0%, #fffaf2 44%, #fff3df 100%);
    font-family: "Microsoft YaHei", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.nug-front *,
.nug-front *::before,
.nug-front *::after {
    box-sizing: border-box;
}

.nug-front a {
    color: inherit;
    text-decoration: none;
}

.nug-front button,
.nug-front input,
.nug-front textarea {
    font: inherit;
}

.nug-front button,
.nug-front a {
    -webkit-tap-highlight-color: transparent;
}

.nug-front img {
    display: block;
    max-width: 100%;
}

.nug-page {
    min-height: 100vh;
    overflow: hidden;
}

.nug-main {
    min-height: 100vh;
}

.nug-campaign {
    position: relative;
    width: 100%;
    min-height: 100vh;
    padding: 0 12px max(24px, env(safe-area-inset-bottom));
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 11%, rgba(255, 206, 103, 0.48), transparent 17rem),
        linear-gradient(180deg, #ff3b18 0, #ff6b24 22rem, #fff1d8 38rem, #fffaf2 100%);
}

.nug-campaign::before,
.nug-campaign::after {
    position: absolute;
    z-index: 0;
    width: 18rem;
    height: 18rem;
    border: 1px solid rgba(255, 231, 174, 0.26);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.nug-campaign::before {
    top: -8rem;
    right: -8rem;
    box-shadow: 0 0 0 34px rgba(255, 238, 199, 0.08), 0 0 0 68px rgba(255, 238, 199, 0.06);
}

.nug-campaign::after {
    top: 19rem;
    left: -13rem;
    box-shadow: 0 0 0 42px rgba(255, 255, 255, 0.06);
}

.nug-hero {
    position: relative;
    z-index: 1;
    min-height: 510px;
    margin: 0 -12px;
    padding: max(20px, env(safe-area-inset-top)) 20px 52px;
    overflow: hidden;
    color: #fff;
}

.nug-hero::before {
    position: absolute;
    right: -8%;
    bottom: 7.5rem;
    left: -8%;
    height: 13rem;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(255, 238, 153, 0.64) 0%, rgba(255, 170, 47, 0.18) 44%, transparent 70%);
    content: "";
    filter: blur(10px);
}

.nug-hero__nav {
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.nug-round-link,
.nug-rule-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.58);
    color: #fff;
    background: rgba(186, 36, 14, 0.16);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(8px);
}

.nug-round-link {
    width: 44px;
    border-radius: 50%;
    font-size: 24px;
}

.nug-rule-link {
    gap: 2px;
    padding: 0 13px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
}

.nug-rule-link i {
    font-size: 18px;
}

.nug-hero__copy {
    position: relative;
    z-index: 4;
    width: min(82%, 320px);
    padding-top: 48px;
}

.nug-hero__eyebrow {
    display: inline-flex;
    padding: 8px 18px;
    border: 1px solid rgba(255, 240, 177, 0.84);
    border-radius: 6px;
    color: #fff7dc;
    background: linear-gradient(180deg, rgba(255, 119, 45, 0.94), rgba(235, 47, 20, 0.94));
    box-shadow: 0 8px 24px rgba(152, 28, 8, 0.22), inset 0 1px rgba(255, 255, 255, 0.34);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.nug-hero h1 {
    margin: 12px 0 0;
    color: #fffaf0;
    text-shadow: 0 5px 0 rgba(157, 35, 9, 0.16), 0 12px 26px rgba(149, 30, 7, 0.25);
    font-size: clamp(36px, 9.8vw, 44px);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -0.06em;
}

.nug-hero__lead {
    margin: 14px 0 0;
    color: #fff0be;
    font-size: clamp(19px, 5.4vw, 27px);
    font-weight: 800;
    line-height: 1.35;
}

.nug-hero__status {
    display: none;
    max-width: 100%;
    min-height: 34px;
    margin-top: 14px;
    padding: 7px 11px;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(255, 245, 208, 0.45);
    border-radius: 999px;
    color: #fff9df;
    background: rgba(117, 24, 8, 0.22);
    font-size: 12px;
    line-height: 1.45;
    backdrop-filter: blur(8px);
}

.nug-hero__status i {
    flex: 0 0 auto;
    color: #ffe066;
    font-size: 17px;
}

.nug-hero__status.is-claimed {
    border-color: rgba(222, 255, 223, 0.56);
    color: #effff1;
    background: rgba(25, 129, 70, 0.34);
}

.nug-hero__status.is-claimed i {
    color: #b7ffc4;
}

.nug-hero__actions {
    position: static;
    z-index: 6;
    display: flex;
    width: min(170px, 100%);
    margin-top: 18px;
    align-items: center;
    gap: 13px;
}

.nug-hero__actions .nug-primary {
    min-height: 44px;
    padding: 0 15px;
    font-size: 14px;
}

.nug-hero__actions .nug-primary i {
    width: 25px;
    height: 25px;
    font-size: 16px;
}

.nug-hero__actions .nug-text-link {
    display: none;
}

.nug-primary {
    display: inline-flex;
    width: 100%;
    min-height: 56px;
    padding: 0 19px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(180deg, #ff6530 0%, #ff251c 100%);
    box-shadow: 0 10px 24px rgba(183, 33, 14, 0.3), inset 0 2px rgba(255, 255, 255, 0.28);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.nug-primary i {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(177, 21, 12, 0.28);
    font-size: 20px;
}

.nug-primary.is-disabled {
    border-color: rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.76);
    background: rgba(127, 42, 24, 0.44);
    box-shadow: none;
    cursor: not-allowed;
}

.nug-primary.is-loading {
    opacity: 0.76;
    cursor: wait;
}

.nug-text-link {
    flex: 0 0 auto;
    color: #fff9de;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.nug-hero__visual {
    position: absolute;
    z-index: 2;
    right: -20px;
    bottom: 170px;
    width: min(66vw, 230px);
    pointer-events: none;
}

.nug-hero__visual img {
    position: relative;
    z-index: 2;
    width: 100%;
    filter: drop-shadow(0 25px 24px rgba(116, 25, 7, 0.28));
}

.nug-hero__halo {
    position: absolute;
    z-index: 1;
    right: 12%;
    bottom: 7%;
    width: 69%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 244, 161, 0.82) 0%, rgba(255, 179, 62, 0.28) 43%, transparent 69%);
    filter: blur(12px);
}

.nug-confetti {
    position: absolute;
    z-index: 3;
    width: 13px;
    height: 24px;
    border-radius: 3px;
    background: #ffe576;
    box-shadow: 0 3px 10px rgba(129, 25, 7, 0.16);
}

.nug-confetti.is-one {
    top: 8%;
    left: 10%;
    transform: rotate(38deg);
}

.nug-confetti.is-two {
    top: 17%;
    right: 18%;
    width: 9px;
    height: 18px;
    transform: rotate(-25deg);
}

.nug-confetti.is-three {
    right: 9%;
    bottom: 28%;
    width: 10px;
    height: 20px;
    background: #fff1a8;
    transform: rotate(62deg);
}

.nug-benefits {
    position: relative;
    z-index: 3;
    display: grid;
    gap: 14px;
    margin-top: -180px;
}

.nug-benefit,
.nug-account,
.nug-steps,
.nug-rules,
.nug-final-cta {
    border: 1px solid rgba(255, 255, 255, 0.96);
    border-radius: 25px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 246, 228, 0.97));
    box-shadow: 0 12px 32px rgba(166, 74, 27, 0.1), inset 0 1px rgba(255, 255, 255, 0.9);
}

.nug-benefit {
    position: relative;
    padding: 20px 15px 17px;
    overflow: hidden;
}

.nug-benefit::after {
    position: absolute;
    z-index: 0;
    right: -3rem;
    bottom: -3rem;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 169, 64, 0.15), transparent 70%);
    content: "";
    pointer-events: none;
}

.nug-section-title {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 12px;
}

.nug-section-title > strong {
    display: inline-flex;
    width: 62px;
    height: 46px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 15px 8px 15px 8px;
    color: #fff;
    background: linear-gradient(145deg, #ff7b2b, #f3321d);
    box-shadow: 0 7px 16px rgba(232, 55, 24, 0.2), inset 0 1px rgba(255, 255, 255, 0.32);
    font-size: 25px;
    font-weight: 900;
    letter-spacing: -0.04em;
}

.nug-section-title h2 {
    margin: 0;
    color: #5e1a13;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.15;
}

.nug-section-title p {
    margin: 5px 0 0;
    color: #854a3c;
    font-size: 13px;
    line-height: 1.45;
}

.nug-free-banner {
    position: relative;
    z-index: 1;
    min-height: 184px;
    margin-top: 15px;
    padding: 22px 144px 20px 20px;
    overflow: hidden;
    border: 1px solid rgba(243, 111, 45, 0.26);
    border-radius: 21px;
    background:
        radial-gradient(circle at 82% 20%, rgba(255, 196, 75, 0.34), transparent 42%),
        linear-gradient(135deg, #fffdf8 0%, #fff5e2 100%);
}

.nug-free-banner__copy {
    position: relative;
    z-index: 2;
}

.nug-free-banner__copy > p {
    display: flex;
    margin: 0;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.nug-free-banner__copy > p strong {
    color: #e9331d;
    font-size: 27px;
    font-weight: 900;
    letter-spacing: -0.06em;
}

.nug-free-banner__copy > p span {
    color: #8f3f2d;
    font-size: 12px;
    font-weight: 700;
}

.nug-free-banner__perks {
    display: flex;
    margin-top: 15px;
    flex-wrap: wrap;
    gap: 10px;
}

.nug-free-banner__perks span {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    color: #7b3828;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.nug-free-banner__perks i {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #f05023;
    background: #fff0dc;
    font-size: 17px;
}

.nug-free-banner__trigger {
    display: inline-flex;
    min-height: 40px;
    margin-top: 15px;
    padding: 0 18px;
    align-items: center;
    gap: 5px;
    border: 0;
    border-radius: 999px;
    color: #fff8d8;
    background: linear-gradient(180deg, #ff6732, #f0321d);
    box-shadow: 0 9px 18px rgba(216, 50, 24, 0.24), inset 0 1px rgba(255, 255, 255, 0.28);
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
}

.nug-free-banner__trigger i {
    font-size: 18px;
}

.nug-free-banner__art {
    position: absolute;
    z-index: 1;
    right: -70px;
    bottom: -36px;
    width: 238px;
    pointer-events: none;
}

.nug-free-banner__art img {
    filter: drop-shadow(0 15px 18px rgba(224, 55, 21, 0.18));
}

.nug-free-modal[hidden] {
    display: none;
}

.nug-free-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    padding: 16px;
    place-items: center;
}

.nug-free-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(69, 24, 16, 0.52);
    backdrop-filter: blur(5px);
}

.nug-free-modal__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(100%, 760px);
    max-height: min(760px, calc(100vh - 32px));
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 24px;
    background: #fffaf2;
    box-shadow: 0 24px 60px rgba(82, 25, 12, 0.3);
}

.nug-free-modal__header {
    display: flex;
    padding: 19px 20px 16px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(238, 99, 41, 0.13);
}

.nug-free-modal__header h2,
.nug-free-modal__header p {
    margin: 0;
}

.nug-free-modal__header h2 {
    color: #582016;
    font-size: 20px;
    font-weight: 900;
}

.nug-free-modal__header p {
    margin-top: 4px;
    color: #9b5a46;
    font-size: 12px;
}

.nug-free-modal__header button {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(238, 99, 41, 0.18);
    border-radius: 50%;
    color: #c64a2d;
    background: #fff;
    cursor: pointer;
    font-size: 21px;
}

.nug-free-modal__body {
    min-height: 196px;
    padding: 16px 20px 20px;
    overflow-y: auto;
}

.nug-free-modal__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.nug-free-modal__goods-item {
    display: grid;
    min-width: 0;
    min-height: 106px;
    overflow: hidden;
    grid-template-columns: 94px minmax(0, 1fr);
    align-items: stretch;
    border: 1px solid rgba(235, 93, 36, 0.15);
    border-radius: 15px;
    color: inherit;
    background: #fff;
    text-decoration: none;
}

.nug-free-modal__goods-item img {
    width: 100%;
    height: 94px;
    aspect-ratio: 1 / 1;
    align-self: center;
    object-fit: cover;
    background: #fff3df;
}

.nug-free-modal__goods-info {
    padding: 13px 14px;
}

.nug-free-modal__goods-info small,
.nug-free-modal__goods-info strong {
    display: block;
}

.nug-free-modal__goods-info small {
    color: #eb4e29;
    font-size: 10px;
}

.nug-free-modal__goods-info strong {
    display: -webkit-box;
    min-height: 34px;
    margin-top: 4px;
    overflow: hidden;
    color: #4d1e17;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.32;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.nug-free-modal__price {
    display: flex;
    gap: 8px;
    margin-top: 5px;
    align-items: baseline;
}

.nug-free-modal__price del {
    color: #a87d72;
    font-size: 11px;
}

.nug-free-modal__price b {
    color: #ed3e20;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
}

.nug-free-modal__empty {
    display: grid;
    min-height: 150px;
    place-items: center;
    color: #9c5f4c;
    font-size: 13px;
    text-align: center;
}

.nug-free-modal__footer {
    display: flex;
    padding: 12px 20px 16px;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(238, 99, 41, 0.13);
}

.nug-free-modal__footer span {
    color: #9b5a46;
    font-size: 12px;
}

.nug-free-modal__pager {
    display: flex;
    gap: 8px;
}

.nug-free-modal__pager button {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(231, 76, 30, 0.2);
    border-radius: 9px;
    color: #ce482a;
    background: #fff;
    cursor: pointer;
    font-size: 12px;
}

.nug-free-modal__pager button:disabled {
    color: #c8a496;
    background: #fff8f1;
    cursor: not-allowed;
}

body.nug-front.nug-free-modal-open {
    overflow: hidden;
}

.nug-coupon-showcase {
    position: relative;
    z-index: 2;
    margin-top: 16px;
}

.nug-coupon-list {
    display: grid;
    padding: 3px 2px 9px;
    grid-auto-columns: calc((100% - 16px) / 3);
    grid-auto-flow: column;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
}

.nug-coupon-list.is-single {
    grid-auto-columns: min(240px, 78vw);
    justify-content: center;
}

.nug-coupon-list.is-double {
    grid-auto-columns: calc((100% - 8px) / 2);
}

.nug-coupon-list::-webkit-scrollbar {
    height: 4px;
}

.nug-coupon-list::-webkit-scrollbar-track {
    border-radius: 999px;
    background: #ffe4cf;
}

.nug-coupon-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #f47b52;
}

.nug-coupon-card {
    position: relative;
    display: block;
    min-width: 0;
    padding: 0;
    border: 0;
    color: #5d2018;
    background: transparent;
    scroll-snap-align: start;
    text-align: center;
}

.nug-coupon-card__base {
    display: block;
    width: 100%;
    height: auto;
}

.nug-coupon-card__content {
    position: absolute;
    top: 9%;
    right: 9%;
    bottom: 30%;
    left: 9%;
    display: flex;
    min-height: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.nug-coupon-card__content > strong {
    max-width: 100%;
    overflow: hidden;
    color: #ef301c;
    font-size: clamp(24px, 7vw, 38px);
    font-weight: 900;
    letter-spacing: -0.06em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nug-coupon-card h3 {
    display: -webkit-box;
    max-width: 100%;
    margin: 4px 0 0;
    overflow: hidden;
    color: #64251b;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.nug-coupon-card button {
    display: inline-flex;
    max-width: 100%;
    min-height: 28px;
    margin-top: 7px;
    padding: 4px 10px;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid rgba(236, 72, 39, 0.24);
    border-radius: 999px;
    color: #dd4628;
    background: rgba(255, 255, 255, 0.72);
    font-size: 10px;
    font-weight: 800;
}

.nug-coupon-card button {
    cursor: pointer;
}

.nug-benefit__note {
    position: relative;
    z-index: 2;
    display: flex;
    margin: 7px 3px 0;
    align-items: center;
    gap: 6px;
    color: #8f5d4e;
    font-size: 11px;
    line-height: 1.55;
}

.nug-benefit__note i {
    flex: 0 0 auto;
    color: #e6522c;
    font-size: 17px;
    line-height: 1;
}

.nug-points-showcase {
    position: relative;
    z-index: 2;
    min-height: 120px;
    margin-top: 10px;
    padding-right: 76px;
}

.nug-points-summary {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 6px;
}

.nug-points-summary article {
    display: grid;
    min-height: 52px;
    padding: 7px;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(237, 91, 39, 0.14);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.72);
}

.nug-points-summary article > i {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #ff9c13;
    background: #fff0b9;
    font-size: 22px;
}

.nug-points-summary small,
.nug-points-summary strong {
    display: block;
}

.nug-points-summary small {
    color: #a16958;
    font-size: 10px;
}

.nug-points-summary strong {
    margin-top: 2px;
    color: #5b251b;
    font-size: 12px;
    line-height: 1.4;
}

.nug-points-showcase__art {
    position: absolute;
    z-index: 1;
    right: -45px;
    bottom: -35px;
    width: 172px;
}

.nug-points-showcase__art img {
    filter: drop-shadow(0 14px 17px rgba(223, 58, 23, 0.16));
}

.nug-account {
    position: relative;
    z-index: 3;
    display: flex;
    margin-top: 14px;
    padding: 17px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.nug-account__summary {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.nug-account__summary > i {
    color: #21a66b;
    font-size: 36px;
}

.nug-account__summary small,
.nug-account__summary h2,
.nug-account__summary p {
    display: block;
    margin: 0;
}

.nug-account__summary small {
    color: #a06d5c;
    font-size: 10px;
}

.nug-account__summary h2 {
    margin-top: 2px;
    font-size: 16px;
}

.nug-account__summary p {
    margin-top: 4px;
    color: #966858;
    font-size: 10px;
}

.nug-account__details {
    flex: 0 0 auto;
    text-align: right;
}

.nug-account__details span,
.nug-account__details strong {
    display: block;
}

.nug-account__details span {
    color: #a06d5c;
    font-size: 10px;
}

.nug-account__details strong {
    margin-top: 3px;
    color: #ef3c20;
    font-size: 22px;
}

.nug-steps {
    position: relative;
    z-index: 3;
    margin-top: 14px;
    padding: 18px 12px;
}

.nug-steps > header {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
}

.nug-steps > header span {
    height: 1px;
    background: linear-gradient(90deg, transparent, #f5a36c);
}

.nug-steps > header span:last-child {
    background: linear-gradient(90deg, #f5a36c, transparent);
}

.nug-steps h2 {
    margin: 0;
    font-size: 19px;
    font-weight: 900;
}

.nug-steps ol {
    display: grid;
    margin: 15px 0 0;
    padding: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    list-style: none;
}

.nug-steps li {
    position: relative;
    display: flex;
    min-height: 94px;
    padding: 13px 5px 9px;
    flex-direction: column;
    align-items: center;
    border: 1px solid rgba(238, 112, 59, 0.13);
    border-radius: 14px;
    background: rgba(255, 245, 231, 0.72);
    text-align: center;
}

.nug-steps li:not(:last-child)::after {
    position: absolute;
    z-index: 2;
    top: 39px;
    right: -10px;
    width: 14px;
    height: 14px;
    border-top: 2px solid #f7a16c;
    border-right: 2px solid #f7a16c;
    content: "";
    transform: rotate(45deg);
}

.nug-steps li b {
    position: absolute;
    top: 7px;
    left: 7px;
    display: inline-flex;
    width: 19px;
    height: 19px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: #f43a20;
    font-size: 10px;
}

.nug-steps li > i {
    color: #f05a29;
    font-size: 28px;
}

.nug-steps li strong,
.nug-steps li p {
    display: block;
}

.nug-steps li strong {
    margin-top: 6px;
    font-size: 11px;
}

.nug-steps li p {
    margin: 3px 0 0;
    color: #9a6656;
    font-size: 9px;
    line-height: 1.4;
}

.nug-rules {
    position: relative;
    z-index: 3;
    margin-top: 14px;
    padding: 18px;
    scroll-margin-top: 18px;
}

.nug-rules header {
    display: flex;
    align-items: center;
    gap: 7px;
}

.nug-rules header i {
    color: #ef4a25;
    font-size: 24px;
}

.nug-rules h2 {
    margin: 0;
    font-size: 18px;
}

.nug-rules ul {
    display: grid;
    margin: 12px 0 0;
    padding: 0 0 0 20px;
    gap: 7px;
    color: #8a5e50;
    font-size: 12px;
    line-height: 1.6;
}

.nug-final-cta {
    position: relative;
    z-index: 3;
    margin-top: 14px;
    padding: 15px;
}

.nug-final-cta > div {
    margin-bottom: 10px;
    text-align: center;
}

.nug-final-cta > div small,
.nug-final-cta > div strong {
    display: block;
}

.nug-final-cta > div small {
    color: #ba725d;
    font-size: 10px;
}

.nug-final-cta > div strong {
    margin-top: 3px;
    font-size: 13px;
}

.nug-final-cta .nug-primary {
    min-height: 58px;
    font-size: 19px;
}

.nug-final-cta .nug-primary:not(.is-disabled) {
    color: #fff8d8;
}

.nug-footer {
    position: relative;
    z-index: 3;
    display: flex;
    padding: 17px 5px 4px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 7px 16px;
    color: #a67461;
    font-size: 10px;
}

.nug-footer span,
.nug-footer a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.nug-footer a {
    width: 100%;
    justify-content: center;
    color: #8e5d4e;
}

.nug-state {
    display: flex;
    width: min(calc(100% - 30px), 520px);
    min-height: 390px;
    margin: 9vh auto;
    padding: 42px 25px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(237, 91, 39, 0.18);
    border-radius: 28px;
    color: #5b241b;
    background: rgba(255, 252, 246, 0.94);
    box-shadow: 0 22px 60px rgba(148, 63, 25, 0.13);
    text-align: center;
}

.nug-state > i {
    color: #ed4e28;
    font-size: 62px;
}

.nug-state h1 {
    margin: 18px 0 0;
    font-size: 23px;
}

.nug-state p {
    margin: 10px 0 0;
    color: #8f6557;
    font-size: 13px;
    line-height: 1.7;
}

.nug-state a {
    display: inline-flex;
    min-height: 44px;
    margin-top: 20px;
    padding: 0 20px;
    align-items: center;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(180deg, #ff6530, #f0321d);
    font-weight: 800;
}

.nug-toast {
    position: fixed;
    z-index: 80;
    right: 16px;
    bottom: max(22px, calc(env(safe-area-inset-bottom) + 14px));
    left: 16px;
    max-width: 430px;
    margin: auto;
    padding: 13px 16px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 13px;
    color: #fff;
    background: rgba(74, 33, 23, 0.94);
    box-shadow: 0 14px 36px rgba(71, 23, 10, 0.25);
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
    backdrop-filter: blur(12px);
}

.nug-toast.is-error {
    background: rgba(186, 40, 23, 0.96);
}

.nug-copy-helper {
    position: fixed;
    top: -9999px;
    left: -9999px;
    opacity: 0;
}

.nug-front :focus-visible {
    outline: 3px solid rgba(255, 205, 73, 0.96);
    outline-offset: 3px;
}

@media (min-width: 560px) {
    .nug-campaign {
        padding-right: 20px;
        padding-left: 20px;
    }

    .nug-hero {
        margin-right: -20px;
        margin-left: -20px;
        padding-right: 34px;
        padding-left: 34px;
    }

    .nug-hero__actions {
        right: 34px;
        left: 34px;
    }

    .nug-benefit {
        padding: 24px;
    }

    .nug-free-banner {
        min-height: 214px;
        padding: 28px 220px 24px 24px;
    }

    .nug-free-banner__copy > p strong {
        font-size: 34px;
    }

    .nug-free-banner__art {
        right: -32px;
        bottom: -48px;
        width: 312px;
    }

    .nug-points-showcase {
        padding-right: 230px;
    }

    .nug-points-showcase__art {
        right: -20px;
        width: 290px;
    }

    .nug-steps li strong {
        font-size: 13px;
    }

    .nug-steps li p {
        font-size: 11px;
    }
}

@media (min-width: 768px) {
    body.nug-front {
        padding: 24px;
    }

    .nug-campaign {
        width: min(100%, 1080px);
        min-height: 0;
        margin: 0 auto;
        padding: 0 28px 30px;
        border: 1px solid rgba(255, 255, 255, 0.78);
        border-radius: 34px;
        background:
            radial-gradient(circle at 78% 9%, rgba(255, 218, 116, 0.56), transparent 25rem),
            linear-gradient(180deg, #ff3a17 0, #ff6d25 30rem, #fff0d5 42rem, #fffaf2 100%);
        box-shadow: 0 34px 90px rgba(142, 53, 22, 0.2);
    }

    .nug-hero {
        display: grid;
        min-height: 500px;
        margin: 0 -28px;
        padding: 31px 48px 40px;
        grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
        align-items: center;
    }

    .nug-hero__nav {
        position: absolute;
        top: 28px;
        right: 44px;
        left: 44px;
    }

    .nug-hero__copy {
        width: 100%;
        max-width: 470px;
        padding-top: 35px;
    }

    .nug-hero h1 {
        font-size: clamp(54px, 5.2vw, 68px);
        font-weight: 900;
    }

    .nug-hero__actions {
        position: static;
        display: flex;
        max-width: 430px;
        margin-top: 20px;
    }

    .nug-hero__actions .nug-primary {
        width: auto;
        min-width: 225px;
    }

    .nug-hero__actions .nug-text-link {
        display: inline-flex;
    }

    .nug-hero__visual {
        position: relative;
        right: auto;
        bottom: auto;
        width: min(100%, 540px);
        margin: 64px -54px 0 auto;
        align-self: center;
    }

    .nug-hero__status {
        display: inline-flex;
    }

    .nug-benefits {
        gap: 20px;
        margin-top: -22px;
    }

    .nug-benefit,
    .nug-account,
    .nug-steps,
    .nug-rules,
    .nug-final-cta {
        border-radius: 29px;
    }

    .nug-benefit {
        padding: 31px;
    }

    .nug-section-title > strong {
        width: 72px;
        height: 52px;
        font-size: 29px;
    }

    .nug-section-title h2 {
        font-size: 29px;
    }

    .nug-section-title p {
        font-size: 15px;
    }

    .nug-free-banner {
        min-height: 254px;
        padding: 34px 340px 30px 34px;
    }

    .nug-free-banner__copy > p strong {
        font-size: 40px;
    }

    .nug-free-banner__perks {
        margin-top: 19px;
        gap: 16px;
    }

    .nug-free-banner__perks i {
        width: 38px;
        height: 38px;
        font-size: 20px;
    }

    .nug-free-banner__trigger {
        min-height: 46px;
        margin-top: 19px;
        padding: 0 23px;
        font-size: 16px;
    }

    .nug-free-banner__art {
        right: -18px;
        bottom: -56px;
        width: 402px;
    }

    .nug-coupon-list {
        padding: 7px 2px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-columns: auto;
        grid-auto-flow: row;
        overflow: visible;
    }

    .nug-coupon-list.is-single {
        grid-template-columns: minmax(240px, 310px);
        justify-content: center;
    }

    .nug-coupon-list.is-double {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nug-coupon-card__content > strong {
        font-size: clamp(26px, 3vw, 38px);
    }

    .nug-coupon-card h3 {
        font-size: 12px;
    }

    .nug-coupon-card button {
        min-height: 40px;
        font-size: 11px;
    }

    .nug-points-showcase {
        display: grid;
        min-height: 300px;
        padding-right: 0;
        grid-template-columns: minmax(0, 1fr) minmax(310px, 0.78fr);
        align-items: center;
        gap: 20px;
    }

    .nug-points-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nug-points-summary article {
        min-height: 86px;
        padding: 13px;
        grid-template-columns: 52px minmax(0, 1fr);
    }

    .nug-points-summary article > i {
        width: 52px;
        height: 52px;
        font-size: 30px;
    }

    .nug-points-summary small {
        font-size: 11px;
    }

    .nug-points-summary strong {
        font-size: 14px;
    }

    .nug-points-showcase__art {
        position: relative;
        right: auto;
        bottom: auto;
        width: 100%;
        margin: -22px -25px -34px auto;
    }

    .nug-account,
    .nug-steps,
    .nug-rules,
    .nug-final-cta {
        margin-top: 20px;
    }

    .nug-account {
        padding: 24px 28px;
    }

    .nug-steps {
        padding: 25px 28px;
    }

    .nug-steps li {
        min-height: 120px;
        padding-top: 20px;
    }

    .nug-steps li > i {
        font-size: 36px;
    }

    .nug-steps li strong {
        font-size: 15px;
    }

    .nug-steps li p {
        font-size: 12px;
    }

    .nug-rules {
        padding: 25px 28px;
    }

    .nug-rules ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 34px;
        font-size: 13px;
    }

    .nug-final-cta {
        display: flex;
        padding: 18px 22px;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .nug-final-cta > div {
        min-width: 0;
        margin: 0;
        text-align: left;
    }

    .nug-final-cta > div strong {
        overflow: hidden;
        font-size: 14px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nug-final-cta .nug-primary {
        width: auto;
        min-width: 250px;
    }

    .nug-footer a {
        width: auto;
    }
}

@media (min-width: 1080px) {
    .nug-campaign {
        padding-right: 34px;
        padding-left: 34px;
    }

    .nug-hero {
        margin-right: -34px;
        margin-left: -34px;
        padding-right: 64px;
        padding-left: 64px;
    }

    .nug-hero__nav {
        right: 58px;
        left: 58px;
    }

    .nug-benefits {
        margin-top: -100px;
    }
}

@media (hover: hover) and (pointer: fine) {
    .nug-round-link:hover,
    .nug-rule-link:hover {
        border-color: rgba(255, 255, 255, 0.9);
        background: rgba(157, 24, 7, 0.28);
    }

    .nug-primary:hover {
        background: linear-gradient(180deg, #ff7440 0%, #f73524 100%);
        box-shadow: 0 12px 28px rgba(183, 33, 14, 0.35), inset 0 2px rgba(255, 255, 255, 0.34);
    }

    .nug-free-banner__trigger:hover,
    .nug-state a:hover {
        background: linear-gradient(180deg, #ff7440, #ef3d24);
    }

    .nug-free-modal__goods-item:hover {
        border-color: rgba(233, 70, 28, 0.42);
        box-shadow: 0 10px 20px rgba(170, 56, 24, 0.12);
    }

    .nug-coupon-card button:hover {
        background: rgba(255, 255, 255, 0.25);
    }
}

@media (pointer: coarse) {
    .nug-coupon-card button,
    .nug-free-banner__trigger,
    .nug-free-modal__pager button {
        min-height: 44px;
    }

    .nug-free-modal__header button {
        width: 44px;
        height: 44px;
    }
}

@media (max-width: 767px) {
    body.nug-front {
        font-family: "PingFang SC", "HarmonyOS Sans SC", "Noto Sans CJK SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
        -webkit-font-smoothing: auto;
        font-synthesis: weight;
    }

    .nug-front h1,
    .nug-front h2,
    .nug-front h3,
    .nug-front strong,
    .nug-front b,
    .nug-front .nug-primary,
    .nug-front .nug-rule-link,
    .nug-front .nug-hero__eyebrow,
    .nug-front .nug-hero__lead,
    .nug-front .nug-text-link,
    .nug-front .nug-free-banner__copy > p strong,
    .nug-front .nug-free-banner__copy > p span,
    .nug-front .nug-free-banner__perks span,
    .nug-front .nug-free-banner__trigger,
    .nug-front .nug-free-modal__header h2,
    .nug-front .nug-free-modal__goods-info strong,
    .nug-front .nug-free-modal__goods-info span,
    .nug-front .nug-coupon-card__content > strong,
    .nug-front .nug-coupon-card h3,
    .nug-front .nug-coupon-card button,
    .nug-front .nug-state a {
        font-weight: bold;
        -webkit-text-stroke: 0.18px currentColor;
    }

    .nug-hero__lead {
        font-size: clamp(16px, 4.3vw, 24px);
    }

    .nug-hero__eyebrow {
        padding: 6px 12px;
        font-size: 14px;
        letter-spacing: 0.03em;
    }

    .nug-section-title > strong {
        width: 54px;
        height: 42px;
        border-radius: 13px 7px 13px 7px;
        font-size: 22px;
    }

    .nug-section-title h2 {
        font-size: 21px;
    }

    .nug-free-modal {
        padding: 12px;
    }

    .nug-free-modal__dialog {
        max-height: calc(100vh - 24px);
        border-radius: 20px;
    }

    .nug-free-modal__header,
    .nug-free-modal__body,
    .nug-free-modal__footer {
        padding-right: 14px;
        padding-left: 14px;
    }

    .nug-free-modal__grid {
        gap: 10px;
    }

    .nug-free-modal__goods-item {
        min-height: 94px;
        grid-template-columns: 84px minmax(0, 1fr);
    }

    .nug-free-modal__goods-item img {
        height: 84px;
    }

    .nug-free-modal__goods-info {
        padding: 11px 12px;
    }
}

@media (max-width: 374px) {
    .nug-hero__copy {
        width: 88%;
    }

    .nug-hero h1 {
        font-size: 36px;
    }

    .nug-hero__visual {
        right: -26px;
        width: 244px;
    }

    .nug-section-title > strong {
        width: 54px;
        font-size: 22px;
    }

    .nug-section-title h2 {
        font-size: 21px;
    }

    .nug-free-banner {
        padding-right: 118px;
    }

    .nug-free-banner__art {
        right: -88px;
        width: 234px;
    }

    .nug-coupon-card__content > strong {
        font-size: 22px;
    }

    .nug-coupon-card h3 {
        font-size: 9px;
    }

    .nug-steps li {
        padding-right: 3px;
        padding-left: 3px;
    }
}

html[data-theme="dark"] body.nug-front {
    --nug-brown: #fff0e3;
    --nug-muted: #d5a893;
    --nug-line: rgba(255, 152, 99, 0.24);
    background: linear-gradient(180deg, #2b1713 0%, #1f1412 100%);
}

html[data-theme="dark"] .nug-campaign {
    background:
        radial-gradient(circle at 78% 9%, rgba(255, 189, 53, 0.25), transparent 23rem),
        linear-gradient(180deg, #d72f19 0, #bc391e 29rem, #2c1a16 42rem, #211513 100%);
}

html[data-theme="dark"] .nug-benefit,
html[data-theme="dark"] .nug-account,
html[data-theme="dark"] .nug-steps,
html[data-theme="dark"] .nug-rules,
html[data-theme="dark"] .nug-final-cta,
html[data-theme="dark"] .nug-state {
    border-color: rgba(255, 172, 126, 0.15);
    color: #fff0e3;
    background: linear-gradient(145deg, rgba(55, 31, 26, 0.98), rgba(43, 25, 21, 0.98));
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.22);
}

html[data-theme="dark"] .nug-section-title h2,
html[data-theme="dark"] .nug-free-modal__header h2,
html[data-theme="dark"] .nug-free-modal__goods-info strong,
html[data-theme="dark"] .nug-points-summary strong,
html[data-theme="dark"] .nug-account__summary h2,
html[data-theme="dark"] .nug-steps h2,
html[data-theme="dark"] .nug-rules h2 {
    color: #fff1e6;
}

html[data-theme="dark"] .nug-section-title p,
html[data-theme="dark"] .nug-benefit__note,
html[data-theme="dark"] .nug-account__summary p,
html[data-theme="dark"] .nug-rules ul,
html[data-theme="dark"] .nug-footer {
    color: #d5a893;
}

html[data-theme="dark"] .nug-free-banner,
html[data-theme="dark"] .nug-free-modal__dialog,
html[data-theme="dark"] .nug-free-modal__goods-item,
html[data-theme="dark"] .nug-points-summary article,
html[data-theme="dark"] .nug-steps li {
    border-color: rgba(255, 147, 89, 0.16);
    background: rgba(82, 43, 33, 0.58);
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
