:root {
    color-scheme: dark;
    --bg: #08070b;
    --panel: rgba(10, 8, 14, .84);
    --panel-solid: #100c14;
    --text: #fff;
    --muted: rgba(255,255,255,.68);
    --pink: #ff00b8;
    --pink-soft: #ff4dd2;
    --purple: #8400c9;
    --line: rgba(255,0,190,.29);
    --glow: 0 0 26px rgba(255,0,190,.22), inset 0 0 14px rgba(255,255,255,.035);
    font-family: Arial, Helvetica, sans-serif;
    background: var(--bg);
    color: var(--text);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
    min-width: 320px;
    margin: 0;
    overflow-x: hidden;
    background:
        linear-gradient(rgba(0,0,0,.76),rgba(0,0,0,.9)),
        url("/online-exhibition-v2/voting-bg.png") center top / cover fixed,
        #08070b;
    color: var(--text);
}
body::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at 50% 25%,rgba(255,0,170,.18),transparent 58%);
    content: "";
}
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
[hidden] { display: none !important; }
.site-header {
    position: sticky;
    z-index: 10;
    top: 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 26px;
    min-height: 82px;
    padding: 10px clamp(18px,4vw,64px);
    border-bottom: 1px solid rgba(255,0,190,.22);
    background: rgba(0,0,0,.82);
    box-shadow: 0 8px 26px rgba(0,0,0,.38);
    backdrop-filter: blur(12px);
}
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; font-weight: 800; letter-spacing: .1em; }
.brand img { width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 0 11px rgba(255,0,190,.35)); }
.brand span { font-size: .96rem; }
.site-header nav { display: flex; justify-content: center; align-items: center; gap: clamp(14px,2.5vw,34px); }
.site-header nav a { padding: 12px 0; color: #ff37ca; font-size: .9rem; font-weight: 700; transition: color .2s,text-shadow .2s; }
.site-header nav a:hover { color: white; text-shadow: 0 0 12px var(--pink); }
.account-actions { display: flex; gap: 9px; }
.button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 18px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 12px;
    background: rgba(255,255,255,.04);
    color: white;
    font-size: .88rem;
    font-weight: 700;
    text-align: center;
    transition: transform .2s, box-shadow .2s, background .2s;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 0 18px rgba(255,0,190,.34); }
.button-primary { border-color: transparent; background: linear-gradient(110deg,#ff00a8,#a000d8); box-shadow: 0 0 20px rgba(255,0,190,.32); }
.button-outline { border-color: rgba(255,0,190,.55); color: #ff5bd0; }
.button-quiet { background: rgba(255,0,180,.12); }
.hero {
    position: relative;
    display: flex;
    min-height: 510px;
    align-items: center;
    overflow: hidden;
    padding: clamp(58px,8vw,108px) clamp(24px,9vw,140px);
    border-bottom: 1px solid var(--line);
    background:
        linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.5) 55%,rgba(0,0,0,.16) 100%),
        url("/online-exhibition-v2/voting-bg.png") center 43% / cover no-repeat,
        #0a0710;
}
.hero::before { position:absolute; inset:0; background:radial-gradient(ellipse at 75% 50%,rgba(255,0,190,.22),transparent 46%); pointer-events:none; content:""; }
.hero::after { position:absolute; right:-10vw; bottom:-31vw; width:60vw; aspect-ratio:1; border:1px solid rgba(255,0,190,.19); border-radius:50%; box-shadow:0 0 0 5vw rgba(255,0,190,.035),0 0 0 11vw rgba(255,0,190,.025); content:""; }
.hero-content { position:relative; z-index:1; width:min(100%,850px); }
.hero-watermark { position:absolute; right:8%; top:50%; color:rgba(255,255,255,.045); font-size:clamp(11rem,30vw,27rem); font-weight:900; line-height:1; transform:translateY(-50%) skew(-8deg); user-select:none; }
.eyebrow { margin:0; color:#ff38c7; font-size:.75rem; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.hero h1 { max-width:880px; margin:22px 0 17px; font-size:clamp(2.7rem,7.2vw,6rem); font-weight:900; line-height:.97; letter-spacing:-.045em; text-shadow:0 5px 25px #000; }
.hero h1 span { display:block; margin-top:8px; color:#ff26bf; text-shadow:0 0 24px rgba(255,0,190,.56); }
.hero-subtitle { max-width:690px; margin:0; color:#f2e8f3; font-size:clamp(1.12rem,2.4vw,1.5rem); }
.hero-intro { max-width:670px; margin:16px 0 0; color:var(--muted); font-size:1rem; line-height:1.75; white-space:pre-line; }
.status-pill { display:inline-flex; align-items:center; gap:9px; padding:8px 13px; border:1px solid rgba(255,255,255,.2); border-radius:999px; background:rgba(0,0,0,.42); color:#f5edf5; font-size:.82rem; }
.status-pill>span:first-child { width:9px; height:9px; border-radius:50%; background:#50e294; box-shadow:0 0 12px #50e294; }
.status-pill.off>span:first-child { background:#9e9e9e; box-shadow:none; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.voting-status { display:flex; max-width:650px; align-items:flex-start; gap:12px; margin-top:24px; padding:15px 18px; border:1px solid rgba(255,0,190,.34); border-radius:14px; background:rgba(8,5,12,.72); color:#eee2ee; line-height:1.6; box-shadow:var(--glow); }
.voting-mark { color:#ff38c7; font-size:1.15rem; }
.hero-banner { position:absolute; z-index:1; right:6%; bottom:7%; width:min(28vw,340px); max-height:185px; border:1px solid var(--line); border-radius:16px; object-fit:cover; box-shadow:0 14px 38px #0009; }
.section { padding:clamp(54px,7vw,90px) clamp(20px,7vw,112px); }
.section-muted { border-block:1px solid rgba(255,0,190,.23); background:linear-gradient(110deg,rgba(6,4,9,.92),rgba(22,5,24,.9),rgba(5,4,8,.93)); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:0 auto 31px; max-width:1400px; }
.section-heading h2 { margin:7px 0 0; font-size:clamp(1.8rem,4vw,3rem); font-weight:900; letter-spacing:-.035em; text-shadow:0 3px 18px #000; }
.section-heading>p { max-width:500px; margin:0; color:var(--muted); line-height:1.65; text-align:right; }
.car-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; max-width:1400px; margin:auto; }
.car-card,.archive-card,.podium-card,.detail-card { position:relative; overflow:hidden; border:1px solid rgba(255,0,190,.3); border-radius:22px; background:linear-gradient(145deg,rgba(18,11,21,.94),rgba(3,3,6,.96)); box-shadow:0 14px 45px rgba(0,0,0,.65),0 0 18px rgba(255,0,190,.09),inset 0 0 13px rgba(255,255,255,.035); }
.car-card { transition:transform .28s,border-color .28s,box-shadow .28s; }
.car-card:hover { z-index:2; transform:translateY(-7px); border-color:rgba(255,0,190,.76); box-shadow:0 25px 60px #000b,0 0 34px rgba(255,0,190,.28); }
.car-card::after { position:absolute; z-index:1; inset:0; border-radius:inherit; background:radial-gradient(circle at top,rgba(255,0,190,.1),transparent 58%); content:""; pointer-events:none; }
.car-card-inner { position:relative; z-index:2; }
.car-image { position:relative; display:block; height:245px; overflow:hidden; background:#141019; }
.car-image img { width:100%; height:100%; object-fit:cover; transition:transform .38s; }
.car-card:hover .car-image img { transform:scale(1.045); }
.image-placeholder { display:grid; width:100%; height:100%; place-items:center; background:radial-gradient(ellipse,rgba(255,0,190,.1),transparent 70%); color:var(--muted); font-size:.92rem; }
.image-count,.rank-badge { position:absolute; z-index:2; padding:7px 11px; border:1px solid rgba(255,0,190,.42); border-radius:10px; background:rgba(0,0,0,.78); color:white; font-size:.76rem; font-weight:800; backdrop-filter:blur(6px); }
.image-count { right:11px; bottom:11px; }
.rank-badge { top:12px; left:12px; color:#ff63d3; font-size:1rem; box-shadow:0 0 16px rgba(255,0,190,.25); }
.car-photo-control { position:absolute; z-index:3; top:50%; display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.32); border-radius:50%; background:rgba(0,0,0,.65); color:#fff; font-size:1.45rem; cursor:pointer; transform:translateY(-50%); }
.car-photo-control:hover { border-color:var(--pink); background:rgba(255,0,180,.72); }
.car-photo-prev { left:10px; }
.car-photo-next { right:10px; }
.car-body { padding:18px 20px 21px; }
.car-body .eyebrow { margin-bottom:7px; font-size:.69rem; }
.car-body h3 { margin:0; font-size:1.35rem; line-height:1.2; }
.car-meta { display:flex; flex-wrap:wrap; gap:9px 14px; margin:13px 0; color:var(--muted); font-size:.88rem; }
.owner-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 11px; border:1px solid rgba(255,0,190,.2); border-radius:10px; background:rgba(255,0,190,.09); color:#ff68d5; font-size:.82rem; font-weight:700; }
.car-links { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:15px; }
.car-link { color:#ff61d0; font-weight:800; }
.car-vote-link { color:#fff; font-size:.82rem; font-weight:700; }
.podium { display:grid; grid-template-columns:1fr 1.14fr 1fr; align-items:center; gap:24px; max-width:1250px; margin:auto; }
.podium-card { display:flex; flex-direction:column; transition:transform .28s,border-color .28s,box-shadow .28s; }
.podium-card:hover { transform:translateY(-8px); border-color:var(--pink); box-shadow:0 20px 55px #000b,0 0 35px rgba(255,0,190,.33); }
.podium-card.place-2 { order:1; }
.podium-card.place-1 { order:2; border-color:rgba(255,0,190,.65); box-shadow:0 20px 65px #000b,0 0 40px rgba(255,0,190,.26); }
.podium-card.place-3 { order:3; }
.podium-media { position:relative; display:block; height:clamp(190px,22vw,285px); overflow:hidden; background:#17111a; }
.place-1 .podium-media { height:clamp(230px,28vw,340px); }
.podium-media img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.podium-card:hover .podium-media img { transform:scale(1.06); }
.podium-rank { position:absolute; top:12px; left:12px; display:grid; width:58px; height:58px; place-items:center; border:2px solid rgba(255,255,255,.75); border-radius:50%; background:linear-gradient(135deg,#ff00b2,#7c00bf); color:#fff; font-size:1.55rem; font-weight:900; box-shadow:0 0 25px rgba(255,0,190,.55); }
.place-1 .podium-rank { width:70px; height:70px; font-size:1.9rem; }
.podium-body { padding:18px 20px 22px; }
.podium-body .eyebrow { margin-bottom:6px; font-size:.68rem; }
.podium-body h3 { margin:0 0 8px; font-size:clamp(1.12rem,2vw,1.5rem); }
.podium-body p,.podium-body strong { margin:0; color:var(--muted); }
.podium-body strong { color:#ff5ccd; }
.podium-body small { color:var(--muted); font-weight:400; }
.vote-rules { max-width:850px; margin:28px auto 0; padding:14px 18px; border:1px solid rgba(255,0,190,.23); border-radius:12px; background:rgba(0,0,0,.32); color:var(--muted); text-align:center; line-height:1.6; }
.archives { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:1400px; margin:auto; }
.archive-card { padding:22px; }
.archive-card h3 { margin:9px 0 5px; font-size:1.3rem; }
.archive-card ol { display:grid; gap:11px; margin:17px 0 0; padding-left:26px; }
.archive-card li { padding-left:4px; }
.archive-card li::marker { color:#ff43c8; font-weight:800; }
.archive-result { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; }
.archive-result span { color:var(--muted); }
.empty,.loading,.error-message { grid-column:1/-1; margin:0; padding:24px; border:1px dashed rgba(255,0,190,.28); border-radius:16px; background:rgba(0,0,0,.35); color:var(--muted); text-align:center; line-height:1.65; }
.error-message { border-color:#ff537488; color:#ffb5c8; }
.site-footer { display:grid; grid-template-columns:1fr 1fr; gap:25px; padding:34px clamp(20px,7vw,112px) 20px; border-top:1px solid var(--line); background:rgba(0,0,0,.82); color:var(--muted); }
.footer-brand .brand { color:white; }
.footer-brand>p { max-width:340px; margin:10px 0 0; line-height:1.6; }
.footer-contact { justify-self:end; }
.footer-contact .eyebrow { margin:7px 0 14px; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:12px 22px; }
.site-footer nav a:hover,.footer-bottom a:hover { color:#ff4dca; }
.footer-bottom { display:flex; grid-column:1/-1; justify-content:space-between; gap:16px; padding-top:15px; border-top:1px solid rgba(255,255,255,.11); font-size:.85rem; }
dialog { position:fixed; width:min(96vw,1280px); max-width:none; max-height:94vh; padding:58px 62px 28px; border:1px solid rgba(255,0,190,.45); border-radius:18px; background:rgba(5,4,8,.97); color:white; box-shadow:0 0 60px rgba(255,0,190,.2); }
dialog::backdrop { background:rgba(0,0,0,.88); backdrop-filter:blur(7px); }
dialog img { display:block; max-width:100%; max-height:76vh; margin:auto; object-fit:contain; }
.lightbox-close,.lightbox-prev,.lightbox-next { position:absolute; z-index:2; display:grid; width:46px; height:46px; place-items:center; border:1px solid rgba(255,0,190,.42); border-radius:50%; background:rgba(14,10,17,.9); color:white; cursor:pointer; }
.lightbox-close { top:10px; right:12px; font-size:1.7rem; }
.lightbox-prev,.lightbox-next { top:50%; font-size:2rem; transform:translateY(-50%); }
.lightbox-prev { left:10px; }
.lightbox-next { right:10px; }
#lightbox-caption { margin:12px 0 0; color:var(--muted); text-align:center; }
.detail-card { grid-column:1/-1; width:100%; min-width:0; max-width:1200px; margin:auto; padding:clamp(20px,4vw,44px); }
.back-link { display:inline-block; margin-bottom:25px; color:#ff5bd0; font-weight:700; }
.detail-card h2 { margin:9px 0; font-size:clamp(2rem,6vw,4rem); letter-spacing:-.04em; overflow-wrap:anywhere; }
.detail-description { max-width:850px; color:#e6dce6; line-height:1.8; white-space:pre-line; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:28px 0; }
.gallery-photo { position:relative; height:clamp(150px,22vw,270px); overflow:hidden; padding:0; border:1px solid rgba(255,0,190,.28); border-radius:13px; background:#17111a; cursor:zoom-in; }
.gallery-photo img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.gallery-photo:hover img { transform:scale(1.06); }
.vote-panel { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px; border:1px solid rgba(255,0,190,.44); border-radius:16px; background:rgba(255,0,180,.08); }
.vote-panel h3 { margin:5px 0; }
.vote-panel p { color:var(--muted); }
.voting-copy { max-width:430px; color:#f3e8f2; line-height:1.65; }
.gallery-photo .image-placeholder { height:100%; }
@media (max-width:1080px) {
    .site-header { grid-template-columns:auto 1fr; gap:12px 20px; }
    .site-header nav { grid-column:1/-1; grid-row:2; justify-content:flex-start; overflow:auto; }
    .site-header .account-actions { grid-column:2; grid-row:1; justify-self:end; }
    .podium { gap:15px; }
    .car-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
    .site-header { position:relative; padding:10px 16px; }
    .brand img { width:46px; height:46px; }
    .site-header nav { gap:20px; margin:0 -16px -10px; padding:0 16px 8px; border-top:1px solid rgba(255,0,190,.13); }
    .site-header nav { scrollbar-width:none; }
    .site-header nav::-webkit-scrollbar { display:none; }
    .site-header nav a { flex:none; font-size:.84rem; }
    .site-header .button { min-height:40px; padding:0 12px; font-size:.8rem; }
    .hero { display:block; min-height:0; padding:58px 22px 46px; }
    .hero h1 { font-size:clamp(2.5rem,12vw,4.4rem); }
    .hero-watermark { right:-5%; top:20%; font-size:45vw; }
    .hero-banner { position:relative; right:auto; bottom:auto; width:100%; max-height:200px; margin-top:23px; }
    .section { padding:53px 18px; }
    .section-heading { align-items:flex-start; flex-direction:column; gap:9px; }
    .section-heading>p { text-align:left; }
    .podium { grid-template-columns:1fr; max-width:560px; gap:17px; }
    .podium-card.place-1 { order:1; }
    .podium-card.place-2 { order:2; }
    .podium-card.place-3 { order:3; }
    .podium-media,.place-1 .podium-media { height:clamp(220px,60vw,340px); }
    .archives { grid-template-columns:1fr; }
    .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .vote-panel { align-items:flex-start; flex-direction:column; }
    .site-footer { grid-template-columns:1fr; padding:28px 20px 18px; }
    .footer-contact { justify-self:start; }
    .footer-bottom { grid-column:1; }
}
@media (max-width:520px) {
    .site-header { column-gap:10px; }
    .account-actions { gap:6px; }
    .site-header .button { padding-inline:9px; font-size:.76rem; }
    .site-header .brand { gap:7px; }
    .site-header .brand span { font-size:.82rem; }
    .hero { padding-inline:18px; }
    .hero h1 { font-size:clamp(2.35rem,12.5vw,3.65rem); }
    .hero-actions { flex-direction:column; align-items:stretch; }
    .hero-actions .button { width:100%; }
    .section { padding:46px 15px; }
    .car-grid { grid-template-columns:1fr; gap:18px; }
    .car-image { height:240px; }
    .podium-body { padding:15px 17px 18px; }
    .gallery { gap:9px; }
    .gallery-photo { height:160px; }
    .site-footer nav { gap:12px 16px; }
    dialog { width:100%; max-width:100%; max-height:100dvh; padding:56px 42px 22px; border-radius:12px; }
    dialog img { max-height:78dvh; }
    .lightbox-prev { left:4px; }
    .lightbox-next { right:4px; }
}
@media (max-width:380px) {
    .site-header .brand span { display:none; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
