html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: "Comic Sans MS", "Trebuchet MS", Verdana, sans-serif;
    color: #001b44;
    background:
    linear-gradient(45deg, rgba(255,255,255,0.18) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.18) 50%, rgba(255,255,255,0.18) 75%, transparent 75%, transparent),
    linear-gradient(135deg, #0070ff, #00d9ff, #8fe8ff, #ffffff, #74c0ff, #005eff);
    background-size: 30px 30px, cover;
    background-attachment: fixed;
    animation: bg-drift 8s linear infinite;
}
.side-image {
    position: absolute;
    top: 22px;
    width: 90px;
    height: auto;
    z-index: 2;
    image-rendering: pixelated;
    animation: blink 1.2s steps(1) infinite;
}
.side-image-left {
    left: 120px;
}

.side-image-right {
    right: 120px;
}
.noise {
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0.18;
    background-image:
    radial-gradient(circle at 20% 20%, #ffffff 1px, transparent 1px),
    radial-gradient(circle at 80% 30%, #d6f7ff 1px, transparent 1px),
    radial-gradient(circle at 40% 70%, #ffffff 1px, transparent 1px),
    radial-gradient(circle at 70% 80%, #bde8ff 1px, transparent 1px);
    background-size: 18px 18px, 22px 22px, 24px 24px, 30px 30px;
    mix-blend-mode: screen;
    z-index: 0;
}

.page-wrap {
    position: relative;
    z-index: 1;
    width: min(1120px, calc(100% - 20px));
    margin: 10px auto 30px;
    border: 8px ridge #ffffff;
    background:
    linear-gradient(to bottom, rgba(255,255,255,0.78), rgba(202,241,255,0.92));
    box-shadow:
    0 0 0 6px #3cb9ff,
    0 0 0 12px #ffffff,
    0 0 50px rgba(0, 95, 190, 0.5);
}

.top-marquee,
.mid-marquee,
.bottom-marquee {
    display: block;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    letter-spacing: 1px;
    font-size: 1rem;
    padding: 10px 0;
    text-transform: uppercase;
}

.top-marquee {
    background: linear-gradient(90deg, #001cff, #00cfff, #ffffff, #00cfff, #001cff);
    color: #fff700;
    text-shadow: 2px 2px #001b5e;
    border-bottom: 4px dashed #ffffff;
}

.mid-marquee {
    background: linear-gradient(90deg, #ffffff, #7bddff, #ffffff);
    color: #003b8f;
    border-top: 3px solid #00b7ff;
    border-bottom: 3px solid #00b7ff;
}

.bottom-marquee {
    background: linear-gradient(90deg, #002b7f, #29cfff, #ffffff, #29cfff, #002b7f);
    color: #fffb00;
    text-shadow: 2px 2px #003399;
    border-top: 4px dotted #ffffff;
}

.hero {
    position: relative;
    text-align: center;
    padding: 30px 18px 24px;
    overflow: hidden;
    background:
    radial-gradient(circle at top left, rgba(255,255,255,0.95), transparent 25%),
    radial-gradient(circle at top right, rgba(255,255,255,0.95), transparent 25%),
    linear-gradient(135deg, #003cff, #01baff, #d7fbff, #0095ff, #004cff);
    border-bottom: 8px double #ffffff;
}

.rainbow-title {
    margin: 0;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: clamp(2.4rem, 6vw, 4.8rem);
    line-height: 0.95;
    text-transform: uppercase;
    color: #ffffff;
    text-shadow:
    2px 2px 0 #005bff,
    4px 4px 0 #00c8ff,
    6px 6px 0 #ffffff,
    8px 8px 0 #0047a7;
    animation: hueParty 5s linear infinite;
}

.rainbow-title span {
    color: #fff200;
}

.subtitle {
    margin: 14px 0 0;
    font-size: 1.1rem;
    font-weight: bold;
    color: #001f66;
    text-transform: uppercase;
    background: rgba(255,255,255,0.65);
    display: inline-block;
    padding: 6px 12px;
    border: 3px outset #ffffff;
}

.construction-row {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.gif-box {
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: 1rem;
    color: #003b88;
    background: linear-gradient(180deg, #fff700, #ffffff, #83d9ff);
    padding: 8px 14px;
    border: 4px outset #ffffff;
    box-shadow: 4px 4px 0 #0098db;
}

.spin-badge {
    position: absolute;
    top: 14px;
    left: 18px;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    text-align: center;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: 1rem;
    color: #ffffff;
    background:
    radial-gradient(circle, #ffffff 0 12%, #00bfff 12% 38%, #0054ff 38% 70%, #ffffff 70%);
    border: 4px solid #fff700;
    box-shadow: 0 0 20px rgba(255,255,255,0.9);
    animation: spin 4s linear infinite;
}

.spin-badge.alt {
    left: auto;
    right: 18px;
    animation-direction: reverse;
    background:
    radial-gradient(circle, #ffffff 0 12%, #fffb00 12% 38%, #00c8ff 38% 70%, #ffffff 70%);
    color: #003399;
}

.main-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 16px;
    table-layout: fixed;
}

.sidebar-cell {
    width: 280px;
    vertical-align: top;
}

.content-cell {
    vertical-align: top;
}

.panel,
.content-panel,
.mini-box {
    background:
    linear-gradient(180deg, rgba(255,255,255,0.95), rgba(193,239,255,0.95));
    border-top: 5px solid #ffffff;
    border-left: 5px solid #ffffff;
    border-right: 5px solid #3ea4ff;
    border-bottom: 5px solid #3ea4ff;
    padding: 12px;
    box-shadow: 6px 6px 0 rgba(0, 82, 176, 0.35);
}

.panel {
    margin-bottom: 16px;
}

.panel h2,
.content-panel h2,
.mini-box h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #0037a6;
    text-shadow: 1px 1px #ffffff, 2px 2px #8fe1ff;
}

.nav-list {
    margin: 0;
    padding-left: 22px;
    list-style: square;
}

.nav-list li {
    margin-bottom: 8px;
}

a {
    color: #004dff;
    text-decoration: underline;
    font-weight: bold;
}

a:hover {
    color: #00b7ff;
    background: #fff600;
}

.neon-panel {
    background:
    repeating-linear-gradient(
        45deg,
        #e7fbff 0 10px,
        #ffffff 10px 20px
    );
}

.counter-panel {
    text-align: center;
}

.counter {
    font-family: "Courier New", monospace;
    font-size: 2rem;
    letter-spacing: 3px;
    color: #ffffff;
    background: #003ea8;
    border: 4px inset #ffffff;
    padding: 12px 8px;
    box-shadow: inset 0 0 12px rgba(255,255,0,0.25);
}

.webring-panel {
    text-align: center;
}

.tiny-panel .tiny {
    font-size: 0.75rem;
}

.content-panel {
    margin-bottom: 18px;
}

.exploding {
    background:
    radial-gradient(circle at center, #ffffff 0, #dff7ff 30%, #7dd8ff 60%, #ffffff 100%);
}

.checker {
    background:
    linear-gradient(45deg, rgba(255,255,255,0.35) 25%, transparent 25%, transparent 75%, rgba(255,255,255,0.35) 75%, rgba(255,255,255,0.35)),
    linear-gradient(45deg, rgba(255,255,255,0.35) 25%, transparent 25%, transparent 75%, rgba(255,255,255,0.35) 75%, rgba(255,255,255,0.35)),
    linear-gradient(180deg, #9ee8ff, #ffffff);
    background-position: 0 0, 12px 12px, 0 0;
    background-size: 24px 24px, 24px 24px, auto;
}

.starburst {
    background:
    conic-gradient(from 0deg, #ffffff, #00cfff, #ffffff, #7be0ff, #ffffff, #00cfff, #ffffff);
}

.inner-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 10px;
    table-layout: fixed;
}

.mini-box {
    vertical-align: top;
    background:
    linear-gradient(180deg, #ffffff, #d8f4ff);
}

.rainbow-box {
    background:
    linear-gradient(90deg, #ffffff, #d5f6ff, #9fe5ff, #ffffff, #9fe5ff, #d5f6ff, #ffffff);
}

.award-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.award {
    display: inline-block;
    padding: 10px 12px;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    color: #003a99;
    background: linear-gradient(180deg, #fff600, #ffffff, #84ddff);
    border: 4px outset #ffffff;
    transform: rotate(-2deg);
}

.award:nth-child(even) {
    transform: rotate(2deg);
}

.buttons-panel {
    background:
    linear-gradient(180deg, #ffffff, #dff7ff);
}

.button-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.site-button {
    width: 88px;
    min-height: 31px;
    display: grid;
    place-items: center;
    text-align: center;
    font-family: Tahoma, Verdana, sans-serif;
    font-size: 0.63rem;
    line-height: 1.1;
    text-decoration: none;
    color: #ffffff;
    background:
    linear-gradient(90deg, #003cb4, #00b7ff);
    border: 3px outset #ffffff;
    text-transform: uppercase;
    padding: 4px;
}

.site-button:hover {
    color: #003ea8;
    background: linear-gradient(90deg, #fff600, #ffffff);
}

.guestbook-panel {
    background:
    repeating-linear-gradient(
        90deg,
        #ffffff 0 8px,
        #daf5ff 8px 16px
    );
}

.fake-form {
    display: grid;
    gap: 12px;
}

.fake-form label {
    display: grid;
    gap: 6px;
    font-weight: bold;
    color: #003b99;
}

input,
textarea,
button {
    font: inherit;
}

input,
textarea {
    background: #ffffff;
    border-top: 4px inset #ffffff;
    border-left: 4px inset #ffffff;
    border-right: 4px inset #71cfff;
    border-bottom: 4px inset #71cfff;
    padding: 8px;
    color: #00295f;
}

button {
    justify-self: start;
    padding: 10px 16px;
    font-weight: bold;
    color: #003899;
    background: linear-gradient(180deg, #fff600, #ffffff);
    border: 4px outset #ffffff;
    cursor: pointer;
    text-transform: uppercase;
}

button:hover {
    background: linear-gradient(180deg, #ffffff, #8fe4ff);
}

.footer {
    text-align: center;
    padding: 18px;
    background: linear-gradient(90deg, #00339c, #00b7ff, #ffffff, #00b7ff, #00339c);
    color: #fff700;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    border-top: 8px ridge #ffffff;
    text-shadow: 2px 2px #00338f;
}

.blink {
    animation: blink 0.8s steps(1) infinite;
}

.blink2 {
    animation: blink 0.5s steps(1) infinite;
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes hueParty {
    from {
        filter: hue-rotate(0deg);
    }
    to {
        filter: hue-rotate(360deg);
    }
}

code {
    background: #fff600;
    color: #003b8f;
    padding: 1px 4px;
}

/* ========================================
   PHOTO ALBUM SECTION
   ======================================== */

.photo-panel {
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(255,255,255,0.4) 0 8px,
            rgba(180,235,255,0.4) 8px 16px
        ),
        linear-gradient(180deg, #ffffff, #cdf0ff);
}

.photo-panel h2 {
    text-align: center;
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    color: #cc00cc;
    text-shadow: 2px 2px 0 #0037a6, 4px 4px 0 #8fe1ff;
    animation: hueParty 4s linear infinite;
}

.photo-marquee {
    display: block;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: 0.9rem;
    color: #003b8f;
    background: linear-gradient(90deg, #fff700, #ffffff, #7be0ff, #ffffff, #fff700);
    border-top: 3px double #0037a6;
    border-bottom: 3px double #0037a6;
    padding: 6px 0;
    margin-bottom: 16px;
    letter-spacing: 1px;
}

.photo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.photo-frame {
    margin: 0;
    text-align: center;
    background: linear-gradient(180deg, #ffffff, #dff7ff);
    border: 6px outset #ffffff;
    box-shadow: 4px 4px 0 #0052b0, 8px 8px 0 #ffffff;
    padding: 8px;
    transform: rotate(-1deg);
    transition: transform 0.1s;
}

.photo-frame:nth-child(even) {
    transform: rotate(1.5deg);
}

.photo-frame:hover {
    transform: rotate(0deg) scale(1.03);
    z-index: 5;
    position: relative;
}

.photo-frame img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    border: 3px inset #7bd6ff;
}

.photo-frame figcaption {
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: 0.75rem;
    color: #0037a6;
    text-transform: uppercase;
    margin-top: 6px;
    letter-spacing: 0.5px;
}

.placeholder-frame .coming-soon-img {
    width: 100%;
    height: 180px;
    display: grid;
    place-items: center;
    background:
        repeating-linear-gradient(
            45deg,
            #e8f8ff 0 10px,
            #c0edff 10px 20px
        );
    border: 3px inset #7bd6ff;
    font-family: Impact, Haettenschweiler, "Arial Black", sans-serif;
    font-size: 2.5rem;
    color: #aaccee;
    animation: blink 1.5s steps(1) infinite;
    box-sizing: border-box;
}

/* glitch bar for mysterious.html */
.glitch-bar {
    height: 6px;
    background: repeating-linear-gradient(
        90deg, #000 0 3px, #00ffff 3px 6px, #ff00ff 6px 9px
    );
    animation: blink 0.12s steps(1) infinite;
    margin: 10px 0;
}

@media (max-width: 900px) {
    .main-table,
    .main-table tr,
    .main-table td,
    .inner-table,
    .inner-table tr,
    .inner-table td {
        display: block;
        width: 100%;
    }

    .main-table {
        border-spacing: 0;
    }

    .sidebar-cell,
    .content-cell {
        box-sizing: border-box;
    }

    .sidebar-cell {
        padding: 12px 12px 0;
        width: auto;
    }

    .content-cell {
        padding: 0 12px 12px;
    }

    /* Hide decorative side images — they overlap content on mobile */
    .side-image {
        display: none;
    }

    /* Spin badges: go inline so they sit side-by-side, centered */
    .spin-badge,
    .spin-badge.alt {
        position: static;
        display: inline-grid;
        width: 60px;
        height: 60px;
        font-size: 0.75rem;
        margin: 0 6px 10px;
    }

    /* Hero: less padding, allow overflow after badges go static */
    .hero {
        padding: 12px 10px 18px;
        overflow: visible;
    }

    /* Inner table mini-boxes need spacing now that border-spacing is gone */
    .mini-box {
        margin-bottom: 12px;
        box-sizing: border-box;
    }

    /* Reduce border weight on small screens */
    .page-wrap {
        border-width: 4px;
        box-shadow:
            0 0 0 3px #3cb9ff,
            0 0 0 6px #ffffff,
            0 0 20px rgba(0, 95, 190, 0.5);
        width: calc(100% - 12px);
        margin: 6px auto 16px;
    }

    /* Photo grid: 2 columns on mobile */
    .photo-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    /* Straighten frames — rotation looks bad when cramped */
    .photo-frame,
    .photo-frame:nth-child(even) {
        transform: none;
    }

    .photo-frame img,
    .placeholder-frame .coming-soon-img {
        height: 130px;
    }
}
