:root {
    --thorne-bg: #FFFFFF;
    --thorne-surface: #F8FAFC;
    --thorne-tone: #0284C7;
    --thorne-tone-hover: #0369A1;
    --thorne-ink: #0F172A;
    --thorne-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --font-display: 'Playfair Display', serif;
    --font-body: 'Lato', sans-serif;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Gallery Interactivity */
.thorne-trigger-bank {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.thorne-frame {
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
    z-index: 1;
    pointer-events: none;
}

#view1:checked ~ .thorne-lens-area .part-1,
#view2:checked ~ .thorne-lens-area .part-2,
#view3:checked ~ .thorne-lens-area .part-3,
#view4:checked ~ .thorne-lens-area .part-4 {
    opacity: 1;
    z-index: 2;
    pointer-events: auto;
}

/* Thumbnail Styling */
.thorne-mini-box {
    opacity: 0.5;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.thorne-mini-box:hover {
    opacity: 0.8;
}

#view1:checked ~ .thorne-miniatures [for="view1"],
#view2:checked ~ .thorne-miniatures [for="view2"],
#view3:checked ~ .thorne-miniatures [for="view3"],
#view4:checked ~ .thorne-miniatures [for="view4"] {
    border-color: var(--thorne-tone) !important;
    opacity: 1;
    box-shadow: 0 2px 5px rgba(2, 132, 199, 0.3);
}

/* CTA Hover Effects */
.thorne-action-link {
    text-decoration: none;
    box-shadow: 0 4px 6px -1px rgba(2, 132, 199, 0.2);
}

.thorne-action-link:hover {
    background-color: var(--thorne-tone-hover) !important;
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.4);
    transform: translateY(-2px);
}

.thorne-action-link:active {
    transform: translateY(0);
    box-shadow: 0 4px 6px -1px rgba(2, 132, 199, 0.3);
}