.star-rating { color: var(--amber); }
    .star-rating button { width: 38px; height: 38px; padding: 0; border: 0; border-radius: 10px; color: var(--amber); background: transparent; cursor: pointer; }
    .star-rating button.active { color: #ffb21c; background: color-mix(in srgb, var(--amber) 13%, transparent); }
    .star-rating button.active i, .star-rating button i.fa-solid { color: #ffb21c; filter: drop-shadow(0 0 5px rgba(255,178,28,.42)); }
    .star-rating button:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; background: color-mix(in srgb, var(--amber) 12%, transparent); }
    .star-rating i { font-size: 1.5rem; transition: all 0.2s ease; }
    .star-rating button:hover i, .star-rating button.active i {
        transform: scale(1.2);
        text-shadow: 0 0 10px var(--amber);
    }

    .card-panel {
        border: 1px solid var(--line);
        background: linear-gradient(180deg, var(--panel), rgba(4, 15, 34, 0.66));
        backdrop-filter: blur(20px);
    }

    [data-theme='light'] .card-panel {
        background: linear-gradient(180deg, var(--panel), rgba(255, 255, 255, 0.62));
        border-color: rgba(16, 85, 150, 0.12);
    }

    .card-panel:hover {
        box-shadow: 0 8px 32px rgba(24, 217, 255, 0.1);
    }

    .primary-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.65rem;
        min-height: 3rem;
        padding: 0 1.45rem;
        border-radius: 999px;
        font-weight: 700;
        color: white;
        background: linear-gradient(135deg, #0ad4ff, #3e7cff 45%, #bf45ff);
        box-shadow: 0 8px 24px rgba(38, 116, 255, 0.32);
        transition: transform 0.22s ease, box-shadow 0.22s ease;
        text-decoration: none;
        border: none;
        cursor: pointer;
    }

    .primary-button:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 32px rgba(38, 116, 255, 0.45);
    }

    .ghost-button {
        border: 1px solid var(--line);
        color: var(--text);
        background: rgba(0, 0, 0, 0.2);
        padding: 0.5rem 1rem;
        border-radius: 999px;
        font-weight: 600;
        transition: all 0.2s ease;
        text-decoration: none;
    }

    .ghost-button:hover {
        border-color: var(--cyan);
        color: var(--cyan);
        background: rgba(24, 217, 255, 0.1);
    }

    .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.35rem 0.9rem;
        border: 1px solid var(--line);
        border-radius: 999px;
        font-weight: 700;
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .hero-copy h1 {
        font-family: 'Space Grotesk', Inter, sans-serif;
        line-height: 1.1;
        margin-bottom: 0;
    }

    .card-panel a img:hover {
        transform: scale(1.05);
    }

    .trip-modal-body { display: grid; gap: 16px; }
    .trip-modal-place { display: flex; gap: 12px; align-items: center; padding: 13px 14px; border: 1px solid var(--td-line, var(--line)); border-radius: 13px; background: color-mix(in srgb, var(--violet) 8%, transparent); }
    .trip-modal-place > span { display: grid; flex: 0 0 38px; height: 38px; place-items: center; border-radius: 11px; color: var(--cyan); background: color-mix(in srgb, var(--cyan) 14%, transparent); }
    .trip-modal-place div { display: grid; min-width: 0; gap: 2px; }
    .trip-modal-place small { color: var(--muted); font-size: .68rem; }
    .trip-modal-place strong { overflow: hidden; color: var(--text); font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
    .trip-select-label { margin-bottom: -8px; color: var(--text); font-size: .76rem; font-weight: 700; }
    .trip-select-wrap { position: relative; display: flex; height: 52px; align-items: center; border: 1px solid var(--td-line, var(--line)); border-radius: 13px; color: var(--muted); background: color-mix(in srgb, var(--td-solid, var(--panel)) 92%, transparent); transition: .2s ease; }
    .trip-select-wrap:focus-within { border-color: var(--violet); box-shadow: 0 0 0 4px color-mix(in srgb, var(--violet) 12%, transparent); }
    .trip-select-wrap > i:first-child { display: grid; width: 46px; place-items: center; color: var(--violet); }
    .trip-select-wrap > i:last-child { position: absolute; right: 16px; pointer-events: none; font-size: .68rem; }
    .trip-select { width: 100%; height: 50px; padding: 0 44px 0 0; border: 0; outline: 0; color: var(--text); font: inherit; font-size: .78rem; font-weight: 600; background: transparent; appearance: none; cursor: pointer; }
    .trip-select option { color: #17213a; background: #fff; }
    [data-theme='dark'] .trip-select option { color: #f5f7ff; background: #10213d; }
    .trip-modal-hint { display: flex; gap: 7px; margin: -7px 1px 0; color: var(--muted); font-size: .67rem; line-height: 1.5; }
    .trip-modal-hint i { margin-top: 2px; color: var(--cyan); }
    .trip-modal-empty { display: flex; gap: 14px; padding: 17px; border: 1px dashed color-mix(in srgb, var(--violet) 38%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--violet) 7%, transparent); }
    .trip-modal-empty > span { display: grid; flex: 0 0 44px; height: 44px; place-items: center; border-radius: 13px; color: var(--violet); font-size: 1.05rem; background: color-mix(in srgb, var(--violet) 13%, transparent); }
    .trip-modal-empty strong { color: var(--text); font-size: .82rem; }
    .trip-modal-empty p { margin: 4px 0 0; color: var(--muted); font-size: .7rem; line-height: 1.55; }
    .trip-create-link { display: inline-flex; width: fit-content; gap: 7px; align-items: center; color: var(--cyan); font-size: .74rem; font-weight: 700; text-decoration: none; }
    .trip-create-link:hover { color: var(--violet); }
    .trip-add-button { border: 0; }
    .review-moderation-popup { position: fixed; z-index: 1500; inset: 0; padding: 20px; display: grid; place-items: center; visibility: hidden; opacity: 0; background: rgba(3, 12, 29, .7); backdrop-filter: blur(10px); transition: opacity .24s ease, visibility .24s ease; }
    .review-moderation-popup.is-visible { visibility: visible; opacity: 1; }
    .review-moderation-dialog { position: relative; width: min(100%, 420px); padding: 30px 28px 26px; border: 1px solid var(--td-line, var(--line)); border-radius: 22px; color: var(--td-text, var(--text)); background: var(--td-solid, var(--panel)); box-shadow: 0 34px 90px rgba(0, 0, 0, .38); text-align: center; transform: translateY(18px) scale(.96); transition: transform .24s ease; }
    .review-moderation-popup.is-visible .review-moderation-dialog { transform: none; }
    .review-moderation-close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--td-muted, var(--muted)); background: color-mix(in srgb, var(--td-line, var(--line)) 45%, transparent); cursor: pointer; }
    .review-moderation-icon { width: 68px; height: 68px; margin: 0 auto 17px; display: grid; place-items: center; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #15b96b, #168cff, #724cff); box-shadow: 0 16px 34px rgba(61, 93, 224, .28); font-size: 1.65rem; }
    .review-moderation-dialog>small { color: var(--td-green, #24a968); font-size: .62rem; font-weight: 850; text-transform: uppercase; letter-spacing: .09em; }
    .review-moderation-dialog h2 { margin: .5rem 0 .7rem; font-family: "Space Grotesk", Inter, sans-serif; font-size: 1.35rem; }
    .review-moderation-dialog p { margin: 0; color: var(--td-muted, var(--muted)); font-size: .76rem; line-height: 1.7; }
    .review-moderation-confirm { width: 100%; min-height: 46px; margin-top: 1.25rem; border: 0; border-radius: 13px; color: #fff; background: linear-gradient(135deg, #168cff, #724cff); box-shadow: 0 12px 26px rgba(82, 76, 235, .25); font-weight: 800; cursor: pointer; }
    @media(max-width:480px){.review-moderation-dialog{padding:26px 20px 21px}.review-moderation-icon{width:60px;height:60px}.review-moderation-dialog h2{font-size:1.2rem}}

.virtual-tour-launch { min-height:38px; padding:0; border:0; display:inline-flex; align-items:center; gap:.65rem; color:var(--blue,#168cff); background:transparent; font-size:.8rem; font-weight:800; cursor:pointer; transition:color .2s ease,transform .2s ease; }
.virtual-tour-launch span { display:inline-flex; align-items:center; gap:.45rem; }
.virtual-tour-launch>i { font-size:.68rem; transition:transform .2s ease; }
.virtual-tour-launch:hover { color:var(--violet,#724cff); transform:translateY(-1px); }
.virtual-tour-launch:hover>i { transform:translate(2px,-2px); }
body.virtual-tour-open { overflow:hidden; }
.virtual-tour-modal { position:fixed; z-index:3000; inset:0; padding:clamp(8px,1.5vw,22px); visibility:hidden; opacity:0; background:rgba(2,8,20,.82); backdrop-filter:blur(16px); transition:opacity .35s ease,visibility .35s ease; }
.virtual-tour-modal.is-visible { visibility:visible; opacity:1; }
.virtual-tour-shell { width:100%; height:100%; border:1px solid rgba(148,185,255,.22); border-radius:clamp(14px,2vw,24px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; color:#f6f9ff; background:#071329; box-shadow:0 35px 100px rgba(0,0,0,.55),0 0 80px rgba(50,94,255,.12); transform:translateY(18px) scale(.985); transition:transform .42s cubic-bezier(.22,1,.36,1); }
.virtual-tour-modal.is-visible .virtual-tour-shell { transform:none; }
.virtual-tour-header { min-height:72px; padding:12px clamp(14px,2.4vw,30px); border-bottom:1px solid rgba(148,185,255,.14); display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(110deg,rgba(14,32,70,.98),rgba(24,25,68,.96)); }
.virtual-tour-heading { min-width:0; display:flex; align-items:center; gap:.85rem; }
.virtual-tour-heading>span { width:43px; height:43px; border-radius:13px; display:grid; flex:0 0 43px; place-items:center; color:#fff; background:linear-gradient(135deg,#06b8ff,#5965ff,#a94bff); box-shadow:0 10px 24px rgba(65,92,255,.3); }
.virtual-tour-heading div { min-width:0; }
.virtual-tour-heading small { display:block; margin-bottom:.18rem; color:#70cfff; font-size:.58rem; font-weight:800; text-transform:uppercase; letter-spacing:.11em; }
.virtual-tour-heading h2 { overflow:hidden; margin:0; color:#fff; font-family:"Space Grotesk",Inter,sans-serif; font-size:clamp(.85rem,1.5vw,1.1rem); text-overflow:ellipsis; white-space:nowrap; }
.virtual-tour-actions { display:flex; gap:.45rem; }
.virtual-tour-actions a,.virtual-tour-actions button { width:42px; height:42px; border:1px solid rgba(148,185,255,.2); border-radius:12px; display:grid; place-items:center; color:#d9e6ff; background:rgba(255,255,255,.06); cursor:pointer; text-decoration:none; transition:.2s ease; }
.virtual-tour-actions a:hover { border-color:#46c7ff; color:#fff; background:rgba(70,199,255,.15); transform:translateY(-2px); }
.virtual-tour-actions button:hover { border-color:#ff6684; color:#fff; background:rgba(255,70,105,.18); transform:rotate(6deg); }
.virtual-tour-stage { position:relative; min-height:0; overflow:hidden; background:#030814; }
.virtual-tour-stage::before { position:absolute; z-index:0; inset:0; background:radial-gradient(circle at 50% 45%,rgba(66,92,255,.2),transparent 38%); content:""; }
.virtual-tour-stage iframe { position:relative; z-index:1; width:100%; height:100%; border:0; display:block; opacity:1; background:#050a14; }
.virtual-tour-loader { position:absolute; z-index:2; inset:0; display:grid; place-content:center; justify-items:center; gap:.8rem; color:#b9c8e5; background:#050b19; transition:opacity .3s ease,visibility .3s ease; }
.virtual-tour-loader i { color:#55caff; font-size:2rem; }
.virtual-tour-loader span { font-size:.72rem; font-weight:700; letter-spacing:.03em; }
.virtual-tour-loader.is-hidden { visibility:hidden; opacity:0; }
.virtual-tour-footer { min-height:40px; padding:0 clamp(14px,2.4vw,30px); border-top:1px solid rgba(148,185,255,.12); display:flex; align-items:center; justify-content:space-between; gap:1rem; color:#8799b9; background:#09152b; font-size:.62rem; }
.virtual-tour-footer span { display:flex; align-items:center; gap:.45rem; }
.virtual-tour-footer i { color:#4ecaff; }
.virtual-tour-footer kbd { padding:.18rem .4rem; border:1px solid rgba(148,185,255,.22); border-radius:5px; color:#b9c8e5; background:rgba(255,255,255,.06); font-size:.55rem; }
@media(max-width:600px){.virtual-tour-modal{padding:0}.virtual-tour-shell{border:0;border-radius:0}.virtual-tour-header{min-height:64px}.virtual-tour-heading>span{width:38px;height:38px;flex-basis:38px}.virtual-tour-actions a{display:none}.virtual-tour-actions button{width:40px;height:40px}.virtual-tour-footer{min-height:36px}.virtual-tour-footer kbd{display:none}}
@media(prefers-reduced-motion:reduce){.virtual-tour-modal,.virtual-tour-shell,.virtual-tour-launch,.virtual-tour-actions a,.virtual-tour-actions button{transition:none}}
