/* ============================================================
   VICE (0.10.0): front-page variant. Reykjavík at golden hour:
   sunset gradients, palms, loud display type.
   Loaded only on the front page when aurum_is_vice(); every rule
   is scoped to body.theme-vice so Lunar stays untouched.
   ============================================================ */
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/Anton-400.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Pacifico"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/Pacifico-400.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

body.theme-vice {
  --bg: #12081f; --bg-2: #180b2b; --bg-3: #20103a;
  --panel: #1b0d31; --panel-2: #25133f;
  --line: rgba(255, 170, 220, 0.14); --line-strong: rgba(255, 170, 220, 0.32);
  --gold: #ff5fa8; --gold-bright: #ff8a5c; --gold-deep: #b23cff;
  --gold-glow: rgba(255, 95, 168, 0.45); --gold-faint: rgba(255, 95, 168, 0.08);
  --silver: #f3d9ff; --silver-dim: #a98bc0;
  --ink: #fff5ee; --ink-soft: #dcc6e8; --ink-faint: #a58cbb;
  --vc-pink: #ff3f9b; --vc-orange: #ff8a3c; --vc-yellow: #ffd36b; --vc-violet: #8b3dff; --vc-teal: #2fe6d0;
  --vc-grad: linear-gradient(100deg, #ffd36b 0%, #ff8a3c 30%, #ff3f9b 66%, #a04bff 100%);
  --vc-grad-v: linear-gradient(180deg, #fff3c4 0%, #ffd36b 20%, #ff8a3c 46%, #ff3f9b 74%, #b450ff 100%);
  --vc-display: "Anton", "Inter", system-ui, sans-serif;
  --vc-script: "Pacifico", "Segoe Script", cursive;
  --vc-r: 20px;
  --glow: 0 0 40px rgba(255, 95, 168, 0.35);
  background: var(--bg); color: var(--ink-soft); overflow-x: clip;
}
body.theme-vice ::selection { background: var(--vc-pink); color: #fff; }

/* ---------- Page backdrop ---------- */
body.theme-vice .space-bg { background: var(--bg) !important; }
body.theme-vice .space-bg::after {
  inset: -20% !important; left: -20% !important; right: -20% !important; border: 0 !important; opacity: .9;
  background:
    radial-gradient(38% 30% at 12% 22%, rgba(255, 63, 155, .20), transparent 70%),
    radial-gradient(34% 28% at 88% 46%, rgba(139, 61, 255, .24), transparent 70%),
    radial-gradient(40% 30% at 30% 88%, rgba(255, 138, 60, .14), transparent 70%),
    radial-gradient(30% 24% at 78% 92%, rgba(47, 230, 208, .10), transparent 70%) !important;
  animation: vc-drift 26s ease-in-out infinite alternate !important;
}
body.theme-vice .space-bg::before { opacity: .09; mix-blend-mode: overlay; }
@keyframes vc-drift { from { transform: translate3d(-3%, -2%, 0) rotate(0deg); } to { transform: translate3d(3%, 3%, 0) rotate(6deg); } }

.vc-glow { position: fixed; left: 0; top: 0; width: 520px; height: 520px; margin: -260px 0 0 -260px; z-index: 0; pointer-events: none; opacity: 0;
  background: radial-gradient(circle, rgba(255, 95, 168, .16), rgba(255, 138, 60, .07) 40%, transparent 68%);
  transform: translate3d(var(--gx, 50vw), var(--gy, 50vh), 0); transition: opacity .6s; will-change: transform; }
.vc-glow.on { opacity: 1; }
body.theme-vice .site-main, body.theme-vice .site-footer { position: relative; z-index: 1; }

/* ---------- Header ---------- */
body.theme-vice .site-header { background: linear-gradient(180deg, rgba(18, 8, 31, .5), rgba(18, 8, 31, 0)) no-repeat !important; border-bottom-color: transparent !important; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background .4s, border-color .4s; }
body.theme-vice.vc-scrolled .site-header { background: rgba(18, 8, 31, .82) !important; backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4); border-bottom-color: var(--line) !important; }
body.theme-vice .site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--vc-grad); transform: scaleX(var(--vc-progress, 0)); transform-origin: left; }
body.theme-vice .nav-list a { color: #fff; font-weight: 600; text-shadow: 0 1px 12px rgba(18, 8, 31, .6); }
body.theme-vice .nav-list a:hover, body.theme-vice .nav-list .current-menu-item > a { color: var(--vc-yellow); }
body.theme-vice .nav-list a::after { background: var(--vc-grad) !important; height: 2px !important; }
body.theme-vice .brand-logo { filter: drop-shadow(0 0 14px rgba(255, 95, 168, .7)); }
body.theme-vice .agdaily-link:hover { color: var(--vc-yellow) !important; }
body.theme-vice .agdaily-link:hover .agdaily-icon { filter: drop-shadow(0 0 8px rgba(255, 211, 107, .7)) !important; }
body.theme-vice .lang-switch { border: 1px solid rgba(255, 255, 255, .5); padding: 4px 10px !important; border-radius: 999px !important; }
body.theme-vice .lang-switch::after { display: none; }
body.theme-vice .lang-switch:hover { background: var(--vc-grad); border-color: transparent; color: #1a0930 !important; text-shadow: none; }

/* ---------- Buttons ---------- */
body.theme-vice .btn { border-radius: 999px !important; font: 400 1.02rem/1 var(--vc-display) !important; letter-spacing: .06em !important; text-transform: uppercase !important; padding: 17px 30px; position: relative; overflow: hidden; }
body.theme-vice .btn-gold { background: var(--vc-grad) !important; background-size: 180% 100% !important; color: #1a0930 !important; border: 0 !important; box-shadow: 0 10px 30px -8px rgba(255, 63, 155, .7), inset 0 1px 0 rgba(255, 255, 255, .5) !important; transition: background-position .5s var(--ease), transform .25s var(--ease), box-shadow .3s !important; }
body.theme-vice .btn-gold:hover { background-position: 100% 0 !important; transform: translateY(-3px) !important; box-shadow: 0 18px 40px -8px rgba(255, 63, 155, .85), 0 0 0 4px rgba(255, 211, 107, .25) !important; }
body.theme-vice .btn-gold::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .65), transparent); transform: skewX(-20deg); animation: vc-shine 5.5s ease-in-out 3s infinite; }
body.theme-vice .btn-ghost { background: rgba(255, 255, 255, .1) !important; color: #fff !important; border: 1.5px solid rgba(255, 255, 255, .65) !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: background .3s, transform .25s var(--ease), border-color .3s !important; }
body.theme-vice .btn-ghost:hover { background: rgba(255, 255, 255, .2) !important; border-color: #fff !important; transform: translateY(-3px) !important; }
@keyframes vc-shine { 0%, 70% { left: -60%; } 100% { left: 130%; } }

/* ============================================================
   Hero scene
   ============================================================ */
.vc-hero { --horizon: 44%; --sun: clamp(230px, 28vw, 400px); --mx: 0; --sy: 0; position: relative; isolation: isolate; margin-top: -73px; min-height: max(820px, 100vh); min-height: max(820px, 100svh); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; background: #12081f; }
.vc-scene { position: absolute; inset: 0; z-index: -1; }
.vc-layer { position: absolute; translate: calc(var(--mx) * var(--d, 1) * -6px) calc(var(--sy) * var(--d, 1) * -0.022px); will-change: translate; }

.vc-sky { position: absolute; left: 0; right: 0; top: 0; height: calc(var(--horizon) + 2px);
  background: linear-gradient(180deg, #150c44 0%, #2f1778 16%, #6a229c 34%, #b92d95 52%, #f0517f 68%, #ff8a55 82%, #ffc46b 93%, #ffe19a 100%);
  animation: vc-dawn 3.2s ease-out both; }
@keyframes vc-dawn { from { filter: brightness(.45) saturate(.7) hue-rotate(-18deg); } to { filter: none; } }

.vc-starfield { position: absolute; left: 0; right: 0; top: 0; height: 34%; opacity: .9;
  background:
    radial-gradient(1.4px 1.4px at 8% 22%, #fff, transparent 60%), radial-gradient(1px 1px at 17% 58%, #fff, transparent 60%),
    radial-gradient(1.6px 1.6px at 27% 14%, #ffe9c4, transparent 60%), radial-gradient(1px 1px at 38% 40%, #fff, transparent 60%),
    radial-gradient(1.3px 1.3px at 49% 9%, #fff, transparent 60%), radial-gradient(1px 1px at 58% 46%, #fff, transparent 60%),
    radial-gradient(1.5px 1.5px at 67% 20%, #ffd9f0, transparent 60%), radial-gradient(1px 1px at 76% 52%, #fff, transparent 60%),
    radial-gradient(1.4px 1.4px at 86% 12%, #fff, transparent 60%), radial-gradient(1px 1px at 94% 36%, #fff, transparent 60%);
  -webkit-mask: linear-gradient(180deg, #000 30%, transparent); mask: linear-gradient(180deg, #000 30%, transparent);
  animation: vc-twinkle 4.5s ease-in-out infinite alternate; }
@keyframes vc-twinkle { from { opacity: .35; } to { opacity: .95; } }

/* Sun + AG mark */
.vc-sun-wrap { left: 50%; top: var(--horizon); width: var(--sun); aspect-ratio: 1; margin: calc(var(--sun) * -0.72) 0 0 calc(var(--sun) * -0.5); }
.vc-sun { position: absolute; inset: 0; animation: vc-rise 3.4s cubic-bezier(.16, .84, .3, 1) both; }
.vc-sun-disc { position: absolute; inset: 0; border-radius: 50% !important;
  background: radial-gradient(circle at 50% 46%, #fffbe2 0%, #fff0b0 26%, #ffd166 50%, #ffa24d 74%, #ff6f6a 100%);
}
.vc-sun::before { content: ""; position: absolute; inset: -95%; border-radius: 50% !important; pointer-events: none; mix-blend-mode: screen;
  background: radial-gradient(circle, rgba(255, 224, 150, .75) 0%, rgba(255, 170, 100, .5) 24%, rgba(255, 110, 120, .26) 42%, rgba(255, 80, 150, .1) 56%, rgba(255, 80, 150, 0) 68%);
  animation: vc-pulse 6s ease-in-out 3.4s infinite alternate; }
.vc-mark { position: absolute; left: 50%; top: 13%; width: 48%; aspect-ratio: 1800 / 1387; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a0b55 0%, #5a1478 60%, #a3246f 100%);
  -webkit-mask: url(images/ag-logo-white.png) center / contain no-repeat; mask: url(images/ag-logo-white.png) center / contain no-repeat;
  animation: vc-mark-in 1.6s var(--ease) 1.5s both; }
@keyframes vc-rise { from { transform: translateY(62%) scale(.86); } to { transform: none; } }
@keyframes vc-pulse { from { transform: scale(.94); opacity: .82; } to { transform: scale(1.1); opacity: 1; } }
@keyframes vc-mark-in { from { opacity: 0; transform: translateX(-50%) translateY(18%) scale(.9); } to { opacity: 1; transform: translateX(-50%); } }

/* Clouds */
.vc-clouds { left: 0; right: 0; height: clamp(110px, 20vh, 220px); }
.vc-clouds svg { display: block; width: max(200%, 2600px); height: 100%; }
.vc-clouds-far { top: 12%; opacity: .75; }
.vc-clouds-far svg { animation: vc-pan 140s linear infinite; }
.vc-clouds-near { top: 27%; }
.vc-clouds-near svg { animation: vc-pan 90s linear infinite; }
@keyframes vc-pan { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

/* Birds */
.vc-birds { position: absolute; inset: 0; pointer-events: none; }
.vc-bird { position: absolute; left: -60px; top: var(--y); width: calc(38px * var(--s)); height: auto; overflow: visible; animation: vc-fly var(--t) linear var(--delay) infinite; }
.vc-bird path { fill: none; stroke: #2a0d4e; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; transform-box: fill-box; transform-origin: 50% 80%; animation: vc-flap .7s ease-in-out infinite alternate; }
@keyframes vc-fly { from { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(calc(50vw + 60px), -5vh, 0); } to { transform: translate3d(calc(100vw + 120px), 2vh, 0); } }
@keyframes vc-flap { from { transform: scaleY(1); } to { transform: scaleY(.25); } }

/* Mountains + skyline: bottoms sit on the horizon */
.vc-range, .vc-city { left: 0; right: 0; bottom: calc(100% - var(--horizon) - 1px); }
.vc-range svg, .vc-city svg { display: block; width: 100%; }
.vc-range svg { height: clamp(70px, 9vw, 130px); }
.vc-city svg { aspect-ratio: 1600 / 300; min-height: 170px; }
.vc-range { animation: vc-up 2.6s var(--ease) .2s both; }
.vc-city { animation: vc-up 2.4s var(--ease) .5s both; }
@keyframes vc-up { from { transform: translateY(28%); opacity: 0; } to { transform: none; opacity: 1; } }
.vc-windows rect { animation: vc-window 5s steps(1, end) infinite; }
.vc-windows rect:nth-child(3n) { animation-delay: -1.7s; animation-duration: 7s; }
.vc-windows rect:nth-child(4n+1) { animation-delay: -3.1s; animation-duration: 9s; }
@keyframes vc-window { 0%, 100% { opacity: 1; } 62% { opacity: .25; } 70% { opacity: 1; } }
.vc-beacon { animation: vc-beacon 3.2s ease-in-out infinite; filter: drop-shadow(0 0 6px #fff3c4); }
.vc-beacon-b { animation-duration: 1.8s; filter: drop-shadow(0 0 5px #ff5f8f); }
@keyframes vc-beacon { 0%, 100% { opacity: .15; } 50% { opacity: 1; } }

/* Water */
.vc-water { position: absolute; left: 0; right: 0; top: var(--horizon); bottom: 0; overflow: hidden;
  background: linear-gradient(180deg, #ffb673 0%, #f2648a 7%, #b33593 20%, #5f1f86 40%, #2a1158 64%, #12081f 100%); }
.vc-reflect { position: absolute; left: 50%; top: 0; width: calc(var(--sun) * .8); height: 78%; transform: translateX(-50%);
  background: repeating-linear-gradient(180deg, rgba(255, 240, 180, .95) 0 3px, rgba(255, 240, 180, 0) 3px 11px);
  -webkit-mask: radial-gradient(60% 100% at 50% 0%, #000 0%, rgba(0,0,0,.55) 40%, transparent 78%); mask: radial-gradient(60% 100% at 50% 0%, #000 0%, rgba(0,0,0,.55) 40%, transparent 78%);
  animation: vc-shimmer 2.4s linear infinite, vc-breathe 5s ease-in-out infinite alternate; filter: blur(.6px); }
.vc-ripples { position: absolute; inset: 0;
  background: repeating-linear-gradient(180deg, rgba(255, 255, 255, .16) 0 1px, transparent 1px 17px);
  -webkit-mask: linear-gradient(180deg, #000, transparent 70%); mask: linear-gradient(180deg, #000, transparent 70%);
  animation: vc-ripple 7s linear infinite; }
@keyframes vc-shimmer { from { background-position: 0 0; } to { background-position: 0 22px; } }
@keyframes vc-breathe { from { transform: translateX(-50%) scaleX(.9); opacity: .75; } to { transform: translateX(-50%) scaleX(1.12); opacity: 1; } }
@keyframes vc-ripple { from { background-position: 0 0; } to { background-position: 0 34px; } }

/* Palms */
.vc-defs { position: absolute; }
.vc-palms { bottom: -3%; height: min(96%, 1000px); aspect-ratio: 620 / 940; color: #150726; animation: vc-palm-in 2.2s var(--ease) .9s both; }
.vc-palms svg { display: block; width: 100%; height: 100%; overflow: visible; }
.vc-palms-l { left: -5%; --from: -14%; }
.vc-palms-r { right: -5%; --from: 14%; }
.vc-sway { transform-box: fill-box; transform-origin: 50% 100%; animation: vc-sway var(--st, 7s) ease-in-out var(--sd, 0s) infinite alternate; }
@keyframes vc-sway { from { transform: rotate(calc(var(--sw) * -1)); } to { transform: rotate(var(--sw)); } }
@keyframes vc-palm-in { from { transform: translateX(var(--from)) rotate(calc(var(--from) * .3deg)); opacity: 0; } to { transform: none; opacity: 1; } }

/* Atmosphere */
.vc-haze { position: absolute; left: -10%; right: -10%; top: calc(var(--horizon) - 16%); height: 30%; pointer-events: none; mix-blend-mode: screen;
  background: radial-gradient(50% 50% at 50% 50%, rgba(255, 160, 110, .55), rgba(255, 90, 150, .2) 55%, transparent 75%); animation: vc-twinkle 7s ease-in-out infinite alternate; }
.vc-grain { position: absolute; inset: 0; pointer-events: none; opacity: .16; mix-blend-mode: overlay;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.vc-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 46%; pointer-events: none; background: linear-gradient(180deg, rgba(18, 8, 31, 0) 0%, rgba(18, 8, 31, .62) 45%, #12081f 100%); }

/* Hero copy */
.vc-hero-inner { position: relative; z-index: 2; padding-top: 150px; padding-bottom: clamp(120px, 15vh, 170px); }
.vc-greet { margin: 0 0 clamp(-18px, -1.2vw, -6px) 6px; position: relative; z-index: 1; }
.vc-greet span { display: inline-block; font: 400 clamp(1.5rem, 3.4vw, 2.9rem)/1.2 var(--vc-script); color: #fff; transform: rotate(-4deg); transform-origin: left bottom;
  text-shadow: 0 0 18px rgba(255, 63, 155, .95), 0 0 46px rgba(255, 63, 155, .6), 0 3px 0 rgba(26, 9, 48, .5);
  animation: vc-greet 1.2s var(--ease) 1.9s both, vc-neon 6s linear 4s infinite; }
@keyframes vc-greet { from { opacity: 0; transform: rotate(-9deg) translateY(20px) scale(.9); } to { opacity: 1; transform: rotate(-4deg); } }
@keyframes vc-neon { 0%, 100% { opacity: 1; } 47% { opacity: 1; } 48% { opacity: .55; } 49% { opacity: 1; } 50.5% { opacity: .7; } 51.5% { opacity: 1; } }

body.theme-vice .vc-title { margin: 0; font: 400 clamp(3.2rem, min(14.2vw, 15vh), 8.2rem)/1 var(--vc-display); letter-spacing: .005em; text-transform: uppercase; color: #fff; text-shadow: none;
  filter: drop-shadow(0 5px 0 rgba(26, 9, 48, .55)) drop-shadow(0 22px 44px rgba(18, 8, 31, .65)); }
.vc-line { display: block; overflow: hidden; margin: -.3em -.04em 0; padding: 0 .04em; }
.vc-line > span { display: inline-block; padding: .34em 0 .05em;
  background: linear-gradient(100deg, rgba(255,255,255,0) 42%, rgba(255,255,255,.9) 50%, rgba(255,255,255,0) 58%) 130% 0 / 260% 100% no-repeat, var(--vc-grad-v);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
  animation: vc-line-in 1.25s cubic-bezier(.2, .9, .2, 1) both, vc-sweep 7s ease-in-out 3.5s infinite; }
.vc-line:nth-child(1) > span { animation-delay: 1.15s, 3.5s; }
.vc-line:nth-child(2) > span { animation-delay: 1.35s, 3.8s; }
@keyframes vc-line-in { from { transform: translateY(112%) skewY(5deg); } to { transform: none; } }
@keyframes vc-sweep { 0%, 62% { background-position: 130% 0, 0 0; } 100% { background-position: -40% 0, 0 0; } }

.vc-hero-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; flex-wrap: wrap; margin-top: clamp(22px, 3vw, 38px); animation: vc-foot 1s var(--ease) 2.2s both; }
.vc-hero-foot .lede { margin: 0; max-width: 560px; font-size: clamp(1.02rem, 1.3vw, 1.16rem); line-height: 1.6; color: #fff5ee; text-shadow: 0 1px 14px rgba(18, 8, 31, .8); }
.vc-hero-foot .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@keyframes vc-foot { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Ticker band */
.vc-ticker { position: absolute; z-index: 3; left: -2%; right: -2%; bottom: 28px; padding: 13px 0; background: var(--vc-grad); transform: rotate(-1.4deg); box-shadow: 0 14px 40px -10px rgba(255, 63, 155, .7); overflow: hidden; }
.vc-ticker-track { display: flex; width: max-content; animation: vc-ticker 38s linear infinite; }
.vc-ticker-set { display: flex; align-items: center; flex: none; }
.vc-ticker b { font: 400 clamp(1rem, 1.5vw, 1.25rem)/1 var(--vc-display); letter-spacing: .09em; text-transform: uppercase; color: #1a0930; padding: 0 20px; white-space: nowrap; }
.vc-ticker i { font-style: normal; color: #fff; font-size: .9rem; text-shadow: 0 0 10px rgba(255, 255, 255, .8); }
@keyframes vc-ticker { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

/* ============================================================
   Sections
   ============================================================ */
body.theme-vice .lu-section { position: relative; }
body.theme-vice .lu-section h2, body.theme-vice .lu-cta h2 { font: 400 clamp(2.5rem, 6.4vw, 4.9rem)/1.04 var(--vc-display); letter-spacing: .01em; text-transform: uppercase; padding-top: .08em;
  background: var(--vc-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; width: fit-content; max-width: 100%; }
body.theme-vice .lu-head { position: relative; align-items: flex-end; padding-bottom: 18px; flex-wrap: wrap; }
body.theme-vice .lu-head::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--vc-grad); border-radius: 3px !important; transform-origin: left; transform: scaleX(0); transition: transform 1.1s var(--ease) .25s; }
body.theme-vice .lu-head.in::after, html:not(.js) body.theme-vice .lu-head::after { transform: scaleX(1); }
body.theme-vice .lu-more { color: var(--vc-yellow); border: 0; font-weight: 600; padding: 0; transition: color .25s, letter-spacing .3s var(--ease); }
body.theme-vice .lu-more:hover { color: #fff; letter-spacing: .03em; }

/* Five stars that light up beside "Selected work" */
.vc-stars5 { display: inline-flex; gap: 6px; margin: 0 auto 10px 18px; }
.vc-stars5 i { font-style: normal; font-size: clamp(1.1rem, 2vw, 1.6rem); line-height: 1; color: rgba(255, 255, 255, .16); }
.lu-head.in .vc-stars5 i { animation: vc-star .5s var(--ease) both; }
.lu-head.in .vc-stars5 i:nth-child(1) { animation-delay: .5s; } .lu-head.in .vc-stars5 i:nth-child(2) { animation-delay: .72s; }
.lu-head.in .vc-stars5 i:nth-child(3) { animation-delay: .94s; } .lu-head.in .vc-stars5 i:nth-child(4) { animation-delay: 1.16s; }
.lu-head.in .vc-stars5 i:nth-child(5) { animation-delay: 1.38s; }
@keyframes vc-star { 0% { color: rgba(255, 255, 255, .16); transform: scale(1); } 55% { color: #fff; transform: scale(1.7) rotate(18deg); text-shadow: 0 0 22px #ffd36b; } 100% { color: #ffd36b; transform: none; text-shadow: 0 0 14px rgba(255, 211, 107, .8); } }

/* About */
body.theme-vice .lu-lead { color: var(--ink); }
body.theme-vice .lu-portrait, html.js body.theme-vice .lu-portrait.in { transform: rotate(-2.5deg); transition: transform .6s var(--ease), opacity .6s var(--ease); }
body.theme-vice .lu-portrait:hover, html.js body.theme-vice .lu-portrait.in:hover { transform: rotate(0deg) scale(1.02); }
body.theme-vice .lu-portrait-frame { border: 4px solid transparent; border-radius: 28px !important; aspect-ratio: 4 / 5;
  background: linear-gradient(var(--panel), var(--panel)) padding-box, linear-gradient(160deg, #ffd36b, #ff8a3c 30%, #ff3f9b 65%, #8b3dff) border-box;
  box-shadow: 0 30px 70px -20px rgba(255, 63, 155, .55), 0 0 0 1px rgba(255, 255, 255, .06); }
body.theme-vice .lu-portrait-frame img { border-radius: 24px !important; filter: saturate(1.2) contrast(1.06) brightness(1.02); }
body.theme-vice .lu-portrait:hover .lu-portrait-frame img { filter: saturate(1.3) contrast(1.08) brightness(1.06); transform: scale(1.04); }
body.theme-vice .lu-portrait-frame::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 24px !important; pointer-events: none; mix-blend-mode: soft-light;
  background: linear-gradient(200deg, rgba(255, 211, 107, .75) 0%, rgba(255, 63, 155, .55) 55%, rgba(80, 30, 200, .8) 100%); }
body.theme-vice .lu-portrait-frame::after { content: "● REYKJAVÍK  64°N"; inset: auto auto 16px 16px; z-index: 2; background: rgba(18, 8, 31, .6); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  color: #fff; font: 600 .72rem/1 var(--font-body); letter-spacing: .12em; padding: 9px 13px; border-radius: 999px !important; white-space: pre; }
body.theme-vice .lu-list { border-top: 0; }
body.theme-vice .lu-focus-list { gap: 14px; border: 0; }
body.theme-vice .lu-focus-list li, body.theme-vice .lu-focus-list li:first-child { --c: var(--vc-pink); border: 1px solid var(--line) !important; border-top: 3px solid var(--c) !important; border-radius: var(--vc-r) !important; background: linear-gradient(180deg, color-mix(in srgb, var(--c) 14%, transparent), transparent 70%), var(--panel); padding: 24px 22px 26px !important; transition: transform .35s var(--ease), box-shadow .35s; }
body.theme-vice .lu-focus-list li:nth-child(2) { --c: var(--vc-orange); }
body.theme-vice .lu-focus-list li:nth-child(3) { --c: var(--vc-yellow); }
body.theme-vice .lu-focus-list li:nth-child(4) { --c: var(--vc-teal); }
body.theme-vice .lu-focus-list li:hover { transform: translateY(-6px); box-shadow: 0 20px 40px -18px var(--c); }
body.theme-vice .lu-focus-list b { font: 400 1.5rem/1.1 var(--vc-display); letter-spacing: .03em; text-transform: uppercase; color: var(--c); }

/* Selected work: mission cards */
body.theme-vice .lu-cases { gap: 16px; border: 0; perspective: 1200px; }
body.theme-vice .lu-case, body.theme-vice .lu-case:first-child { position: relative; overflow: hidden; border: 1px solid transparent !important; border-radius: var(--vc-r) !important; padding: 26px 24px 32px;
  background: linear-gradient(var(--panel), var(--panel)) padding-box, linear-gradient(150deg, rgba(255, 211, 107, .55), rgba(255, 63, 155, .5) 45%, rgba(139, 61, 255, .55)) border-box; }
html.js body.theme-vice .lu-case.in { transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0)); transition: transform .25s ease-out, box-shadow .35s, opacity .6s var(--ease); }
body.theme-vice .lu-case::before { content: ""; position: absolute; inset: 0; opacity: 0; transition: opacity .35s; pointer-events: none;
  background: radial-gradient(340px circle at var(--px, 50%) var(--py, 0%), rgba(255, 95, 168, .3), rgba(255, 138, 60, .12) 40%, transparent 70%); }
body.theme-vice .lu-case:hover { --ty: -8px; background: linear-gradient(var(--panel-2), var(--panel-2)) padding-box, var(--vc-grad) border-box; box-shadow: 0 26px 50px -22px rgba(255, 63, 155, .75); }
body.theme-vice .lu-case:hover::before { opacity: 1; }
body.theme-vice .lu-case > * { position: relative; }
body.theme-vice .lu-num { font: 400 clamp(3.6rem, 6.6vw, 5.6rem)/1 var(--vc-display); letter-spacing: 0; -webkit-text-stroke: 1.5px var(--vc-pink); color: transparent; transition: color .3s, -webkit-text-stroke-color .3s, text-shadow .3s; }
body.theme-vice .lu-case:hover .lu-num { color: var(--vc-yellow); -webkit-text-stroke-color: var(--vc-yellow); text-shadow: 0 0 30px rgba(255, 211, 107, .6); }
body.theme-vice .lu-case h3 { font-size: 1.22rem; letter-spacing: -0.01em; }

/* Notes */
body.theme-vice .note-list { border-top: 0; display: grid; gap: 10px; }
body.theme-vice .note-list li { border: 0; }
body.theme-vice .note-item { position: relative; padding: 22px 22px 22px 26px; border: 1px solid var(--line); border-radius: var(--vc-r) !important; background: rgba(27, 13, 49, .7); overflow: hidden; }
body.theme-vice .note-item::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--vc-grad-v); transition: width .35s var(--ease); opacity: .9; }
body.theme-vice .note-item:hover { background: var(--panel-2); padding-inline: 34px 22px; border-color: var(--line-strong); }
body.theme-vice .note-item:hover::before { width: 10px; }
body.theme-vice .note-item time { color: var(--vc-orange); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; }
body.theme-vice .note-item:hover .note-item-arrow { color: var(--vc-yellow); transform: translateX(6px); }

/* Projects */
body.theme-vice .lu-products { gap: 16px; border: 0; perspective: 1400px; }
body.theme-vice .lu-prod { position: relative; overflow: hidden; border: 1px solid var(--line) !important; border-radius: var(--vc-r) !important; background: var(--panel); transition: transform .4s var(--ease), box-shadow .4s, border-color .3s, background .3s; }
html.js body.theme-vice .lu-prod.in { transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0)); transition: transform .25s ease-out, box-shadow .4s, border-color .3s, background .3s, opacity .6s var(--ease); }
body.theme-vice .lu-prod:hover { --ty: -8px; background: var(--panel-2); border-color: rgba(255, 138, 60, .7) !important; box-shadow: 0 30px 60px -26px rgba(255, 138, 60, .7); }
body.theme-vice .lu-prod-media { position: relative; border-bottom: 0; }
body.theme-vice .lu-prod-media img { filter: saturate(1.1) contrast(1.02); }
body.theme-vice .lu-prod:hover .lu-prod-media img { filter: saturate(1.25) contrast(1.05); transform: scale(1.06); }
body.theme-vice .lu-prod-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(139, 61, 255, .12), rgba(255, 63, 155, .05) 60%, rgba(27, 13, 49, .9) 100%); mix-blend-mode: normal; transition: opacity .5s; }
body.theme-vice .lu-prod:hover .lu-prod-media::after { opacity: .55; }
body.theme-vice .lu-prod h3 { font: 400 1.9rem/1.05 var(--vc-display); letter-spacing: .02em; text-transform: uppercase; color: #fff; }
body.theme-vice .lu-prod:not(.lu-prod-lg) { background: linear-gradient(160deg, rgba(255, 63, 155, .13), transparent 55%), var(--panel); }
body.theme-vice .lu-prod:not(.lu-prod-lg) .lu-prod-body::before { content: "→"; position: absolute; right: 22px; top: 20px; font-size: 1.3rem; color: var(--vc-yellow); transition: transform .3s var(--ease); }
body.theme-vice .lu-prod:not(.lu-prod-lg):hover .lu-prod-body::before { transform: translate(4px, -4px) rotate(-45deg); }

/* Timeline */
body.theme-vice .lu-timeline { border-top: 0; position: relative; padding-left: 30px; }
body.theme-vice .lu-timeline::before { content: ""; position: absolute; left: 6px; top: 12px; bottom: 12px; width: 2px; background: var(--vc-grad-v); border-radius: 2px !important; opacity: .8; }
body.theme-vice .lu-timeline li { position: relative; border-bottom: 1px dashed var(--line); transition: padding .3s var(--ease); }
body.theme-vice .lu-timeline li::before { content: ""; position: absolute; left: -30px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50% !important; background: var(--bg); border: 3px solid var(--vc-pink); box-shadow: 0 0 14px rgba(255, 63, 155, .8); transition: transform .3s var(--ease), background .3s; }
body.theme-vice .lu-timeline li:hover { padding-left: 10px; }
body.theme-vice .lu-timeline li:hover::before { transform: scale(1.35); background: var(--vc-yellow); border-color: var(--vc-yellow); }
body.theme-vice .lu-timeline time { color: var(--vc-orange); font-weight: 600; }
body.theme-vice .lu-more-roles summary { color: var(--vc-yellow); font-weight: 600; }
body.theme-vice .lu-more-roles summary::before { color: var(--vc-pink); }

/* CTA: full sunset */
body.theme-vice .lu-cta { position: relative; overflow: hidden; border: 0; border-radius: 32px !important; padding: clamp(40px, 7vw, 96px);
  background: linear-gradient(160deg, #ffd36b 0%, #ff9a4a 28%, #ff4f8f 62%, #7a2fd6 100%); background-size: 160% 160%; animation: vc-cta 12s ease-in-out infinite alternate;
  box-shadow: 0 40px 90px -30px rgba(255, 63, 155, .75); }
@keyframes vc-cta { from { background-position: 0% 0%; } to { background-position: 100% 100%; } }
body.theme-vice .lu-cta::before { content: ""; position: absolute; right: -6%; bottom: -30%; width: min(46%, 420px); aspect-ratio: 1; border-radius: 50% !important; background: radial-gradient(circle, #fff6cf, #ffe08a 45%, rgba(255, 224, 138, 0) 70%); opacity: .9; }
body.theme-vice .lu-cta::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 34%; pointer-events: none;
  background: repeating-linear-gradient(180deg, rgba(26, 9, 48, .22) 0 2px, transparent 2px 12px); -webkit-mask: linear-gradient(180deg, transparent, #000); mask: linear-gradient(180deg, transparent, #000); animation: vc-ripple 6s linear infinite; }
body.theme-vice .lu-cta > * { position: relative; z-index: 1; }
body.theme-vice .lu-cta h2 { font-size: clamp(2.6rem, 7.6vw, 6.2rem) !important; background: none; -webkit-text-fill-color: #1a0930; color: #1a0930; text-shadow: 0 2px 0 rgba(255, 255, 255, .25); }
body.theme-vice .lu-cta p { color: #2a0f45; font-weight: 500; font-size: 1.1rem; }
body.theme-vice .lu-cta .btn-gold { background: #1a0930 !important; color: #fff !important; box-shadow: 0 16px 34px -12px rgba(26, 9, 48, .8) !important; text-transform: none !important; letter-spacing: .03em !important; }
body.theme-vice .lu-cta .btn-gold:hover { background: #2c1150 !important; box-shadow: 0 22px 44px -12px rgba(26, 9, 48, .9), 0 0 0 4px rgba(255, 255, 255, .35) !important; }

/* Footer */
body.theme-vice .site-footer { background: var(--vc-grad) top / 100% 3px no-repeat, #0d0518 !important; border-top: 0 !important; }
body.theme-vice .footer-nav a:hover, body.theme-vice .footer-social a:hover { color: var(--vc-yellow); }
body.theme-vice .footer-dot { border-radius: 50% !important; background: var(--vc-pink) !important; box-shadow: 0 0 10px var(--vc-pink) !important; }
body.theme-vice .footer-payments svg { filter: none; opacity: .9; border-radius: 4px !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  body.theme-vice .lu-case:nth-child(n) { border-top: 1px solid transparent !important; }
}
@media (max-width: 760px) {
  .vc-hero { --horizon: 41%; --sun: 220px; }
  .vc-palms { height: 56%; bottom: 14%; }
  .vc-palms-l { left: -36%; }
  .vc-palms-r { right: -40%; }
  .vc-city { left: -10%; right: -40%; }
  .vc-clouds-far { top: 9%; } .vc-clouds-near { top: 20%; }
  .vc-fade { height: 58%; }
  .vc-hero-inner { padding-bottom: 116px; }
  .vc-hero-foot { flex-direction: column; align-items: flex-start; }
  body.theme-vice .btn { padding: 15px 24px; }
  body.theme-vice .lu-portrait { max-width: 340px; margin-inline: auto; }
  body.theme-vice .lu-focus-list li, body.theme-vice .lu-focus-list li:first-child { padding: 22px 20px 24px !important; }
  body.theme-vice .lu-timeline li:hover { padding-left: 0; }
  .vc-stars5 { margin-left: 0; flex-basis: 100%; order: 3; }
  .vc-glow { display: none; }
}

@media (max-width: 860px) {
  body.theme-vice .lang-switch { display: inline-block; margin: 12px 0; }
}
/* Short laptop screens: keep the buttons above the fold */
@media (max-height: 800px) and (min-width: 761px) {
  .vc-hero { --horizon: 40%; --sun: clamp(220px, 24vw, 320px); min-height: max(680px, 100vh); min-height: max(680px, 100svh); }
  body.theme-vice .vc-title { font-size: clamp(3.2rem, min(14.2vw, 13vh), 8.2rem); }
  .vc-hero-inner { padding-bottom: 104px; }
  .vc-hero-foot { margin-top: 18px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .vc-hero *, .vc-hero *::before, .vc-hero *::after,
  body.theme-vice .space-bg::after, body.theme-vice .btn-gold::after, body.theme-vice .lu-cta, body.theme-vice .lu-cta::after, .lu-head.in .vc-stars5 i { animation: none !important; }
  .vc-layer { translate: none !important; }
  .vc-stars5 i { color: #ffd36b; }
  body.theme-vice .lu-head::after { transform: none; transition: none; }
  html.js body.theme-vice .lu-case.in, html.js body.theme-vice .lu-prod.in { transform: none; transition: none; }
  body.theme-vice .lu-portrait, html.js body.theme-vice .lu-portrait.in { transition: none; }
  .vc-glow { display: none; }
}
.vc-hero.vc-paused *, .vc-hero.vc-paused *::before, .vc-hero.vc-paused *::after { animation-play-state: paused !important; }
