    :root{
      --bg: #071a3d;
      --bg-deep: #04112b;
      --ring: rgba(255,255,255,.16);
      --ring-strong: rgba(255,255,255,.34);
      --text: rgba(255,255,255,.88);
      --muted: rgba(255,255,255,.55);
      --glass: rgba(255,255,255,.05);
      --north: tomato;
      --south: #f2c94c;
      --center: #f7f1e3;
      --shadow: rgba(0,0,0,.35);
    }

    * { box-sizing: border-box; }

* {
margin: 0;
padding: 0;
}

html,
body {
width: 100%;
height: 100%;
background: #001535;
color: #ddd;
text-align: center;
}

body {
font: 1rem sans-serif;
line-height: 1.25;
-webkit-font-smoothing: antialiased;
}

a {
display: inline-block;
text-decoration: none;
color: #00a1ba;
}

a:hover,
a:focus,
a:active {
text-decoration: none;
color: aqua;
}

nav ul,
form ul,
footer ul {
list-style: none;
padding: 0;
}

#layout {
margin: 0 auto;
text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: bold;
font-family: Verdana, sans-serif;
line-height: 1.3;
padding-bottom: 1.5rem;
letter-spacing: -1px;
color: #eee;
}

p,
ul,
ol,
dl,
table,
form {
padding-bottom: 2.5rem;
}

header {
background-color: #001535;
background: url('aalto.svg') no-repeat 50% 100%, url('tausta.webp') no-repeat 50% 50%;
background-size: 100% 50px, cover;
color: #fff;
padding: 2rem 2rem 4rem 2rem;
text-align: center;
}

img#logo {
width: auto;
height: auto;
max-width: 100%;
user-select: none;
}

header nav,
header strong {
font-weight: bold;
}

header li {
display: inline-block;
position: relative;
margin-right: 0.5rem;
margin-bottom: 0.25rem;
}

header li:last-of-type {
margin-right: 0;
}

header li a {
color: #9eb2b4;
padding: 0.5rem;
backdrop-filter: blur(0.5rem);
border: 1px solid #677c8b;
border-radius: 0.25rem;
}

header li a:hover,
header li a:focus,
header li a:active {
color: #f6df57;
}

header li:has(ul):after {
content: '\21B4';
color: #9eb2b4;
}

header li ul {
display: none;
backdrop-filter: blur(0.5rem);
border: 0.25rem solid #9eb2b4;
border-radius: 0.25rem;
z-index: 999;
position: absolute;
right: 0;
min-width: 150px;
max-width: 250px;
padding: 1rem;
font-size: 0.9rem;
text-align: left;
}

header li ul.submenu.open {
display: block;
}

header li ul li,
header li ul li a {
display: block;
margin: 0;
border-radius: 0;
border: 0;
}

main {
padding: 7rem 2rem 5rem 2rem;
background: #001535 url('aalto2.svg') no-repeat 50% 0;
background-size: 100% 50px;
}

footer {
border-top: 1px solid #162a47;
color: #fff;
padding: 5rem 2rem 5rem 2rem;
}

footer div div {
display: inline-block;
vertical-align: top;
width: 49%;
min-width: 150px;
max-width: 300px;
}

footer h4,
footer h5,
footer h6 {
font-size: 1.25rem;
font-weight: normal;
text-transform: uppercase;
color: #eee;
}

footer li {
padding-bottom: 1rem;
}

footer li:last-of-type {
padding-bottom: 0;
}

footer a {
color: #fff;
padding: 0.25rem 0.1rem;
}

footer a:hover,
footer a:focus,
footer a:active {
color: #fcc;
}

footer div + nav {
padding: 1rem;
margin: 2rem auto 1rem auto;
background: #4b5b70;
font-size: 0.8rem;
font-weight: bold;
max-width: 1080px;
border-radius: 0.25rem;
}

footer div + nav ul {
padding: 0;
}

footer div + nav li {
display: inline-block;
padding: 0;
}

footer div + nav a {
padding: 0.5rem;
}

.content {
margin: 0 auto;
max-width: 1080px;
}

article ul,
article ol {
list-style-position: outside;
padding-left: 1.15rem;
max-width: 400px;
}

article ul li,
article ol li {
padding-bottom: 1.5rem;
}

article ul li:last-of-type,
article ol li:last-of-type {
padding-bottom: 0;
}

article h1 {
text-transform: uppercase;
}

article p:has(img) {
padding-bottom: 2.5rem;
}

article p.oikealla {
float: right;
padding-left: 2rem;
}

article p.vasemmalla {
float: left;
padding-right: 2rem;
}

article p img {
max-width: 450px;
width: 100%;
height: auto;
border-radius: 1.25rem;
}

article h1,
div.johdanto,
div.tekija {
text-align: center;
max-width: 680px;
margin: 0 auto;
}

div.tekija img {
max-width: 200px;
user-select: none;
touch-action: none;
}

div.tekija p:first-of-type {
padding-bottom: 1rem;
}

div.tekija p:nth-of-type(2) {
padding-bottom: 0;
}

div.tekija p {
font-size: 0.8rem;
}

div.johdanto p {
font-weight: bold;
max-width: 400px;
margin: 0 auto;
}

div.johdanto {
padding-bottom: 5rem;
}

p.cta,
ul.cta {
font-size: 1.25rem;
text-align: center;
list-style: none;
max-width: 100%;
}

ul.cta li {
display: inline-block;
padding: 0 1rem 1rem 1rem;
}

.cta a {
display: inline-block;
padding: 0.75rem 1.25rem;
border: 2px solid #fff;
border-radius: 0.25rem;
color: #fff;
backdrop-filter: blur(0.5rem);
}

.cta.sininen {
text-align: left;
padding-bottom: 3rem;
}

.cta.sininen a {
background: #28a1ba;
border: 2px outset #28a1ba;
}

.cta.sininen a:hover,
.cta.sininen a:focus,
.cta.sininen a:active {
box-shadow: 0 0 2rem aqua, 0 -1rem 2rem indigo;
}

hr {
border: 0;
border-top: 1px solid #4b5b70;
margin: 2rem 0 3rem 0;
}

div.artikkelit {
margin-top: 1rem;
margin-bottom: 5rem;
}

div.artikkelit article {
display: inline-block;
vertical-align: top;
width: calc(33% - 3rem);
text-align: center;
background: rgba(53, 160, 231, 0.25);
margin: 0 2rem 2rem 0;
border-radius: 0.25rem;
padding-bottom: 1.5rem;
border: 1px solid aqua;
min-width: 150px;
}

div.artikkelit article:nth-of-type(3+3n) {
margin-right: 0;
}

div.artikkelit p {
padding: 0;
}

div.artikkelit img {
border-radius: 0.25rem;
}

div.artikkelit h3 {
padding: 1rem;
text-align: center;
}

div.artikkelit h3 + p {
font-size: 0.8rem;
padding: 0 1rem 2rem 1rem;
}

div.artikkelit p:last-of-type {
padding-left: 1rem;
padding-right: 1rem;
}

.keskella {
text-align: center;
}

.alamarginaali {
margin-bottom: 5rem;
}

mark {
display: inline-block;
padding: 0.1rem 0.25rem;
background: lightgreen;
border-radius: 0.15rem;
}

div.pelit {
display: block;
clear: both;
padding: 10rem 0 5rem 0;
text-align: center;
}

div.pelit ul {
list-style: none;
padding: 0;
font-size: 0.85rem;
max-width: 100%;
}

div.pelit li {
display: inline-block;
vertical-align: top;
width: 25%;
max-width: 300px;
margin: 1rem 1rem 2rem 1rem;
text-align: center;
}

div.pelit a {
display: block;
margin: 0 1rem;
}

div.pelit img {
border-radius: 0.25rem;
width: 100%;
height: auto;
filter: brightness(0.8);
margin-bottom: 0.5rem;
}

div.pelit a:hover img {
filter: brightness(1);
}

caption,
#ylos span {
display: none;
}

#ylos {
position: fixed;
right: 1rem;
bottom: 0.65rem;
z-index: 400;
padding: 0;
}

#casino #ylos {
bottom: 6.5rem;
}

#ylos a {
color: #fff;
background: #466675;
border-radius: 0.25rem;
display: inline-block;
padding: 1rem;
}

#ylos a:after {
content: '\21E1';
}

p.tarjous {
text-align: center;
padding: 1rem;
border: 1px solid snow;
color: snow;
font-weight: bold;
font-size: 0.9rem;
margin-bottom: 2.5rem;
border-radius: 0.25rem;
}

p.tarjous b {
font-weight: normal;
padding-right: 1rem;
}

p.tarjous a,
div.samanlaisia p:last-of-type a {
padding: 0.55rem 1.5rem;
color: #fff;
text-decoration: none;
background: #1ad41e;
border-radius: 0.25rem;
border-bottom: 2px solid darkgreen;
}

p.tarjous a:hover,
p.tarjous a:focus,
p.tarjous a:active,
div.samanlaisia p:last-of-type a:hover,
div.samanlaisia p:last-of-type a:focus,
div.samanlaisia p:last-of-type a:active {
background: green;
}

article.seuraavaksi {
text-align: center;
font-size: 1.25rem;
padding: 10rem 0;
}

article.seuraavaksi ul {
list-style: none;
padding: 0;
max-width: 100%;
}

article.seuraavaksi li {
display: inline-block;
padding: 1rem
}

div#faktat div {
border-bottom: 1px solid snow;
margin-bottom: 1rem;
}

div#faktat div:last-of-type {
margin-bottom: 2.5rem;
}

div#faktat dl {
padding-bottom: 0;
}

div#faktat dt,
div#faktat dd {
display: inline-block;
vertical-align: top;
width: 50%;
min-width: 100px;
padding-bottom: 1.5rem;
}

div#faktat dt:after {
content: ':';
}

div#faktat div:nth-of-type(2) dt:last-of-type,
div#faktat div:nth-of-type(2) dd:last-of-type {
font-size: 1.5rem;
font-weight: bold;
padding-top: 1.5rem;
}

div.johdanto + div.samanlaisia {
padding-top: 0;
}

div.samanlaisia {
padding: 5rem 0;
display: block;
clear: both;
text-align: center;
}

div.samanlaisia ul {
max-width: 100%;
list-style: none;
padding-left: 0;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 1rem;
max-width: calc(4 * 200px + 3 * 1rem);
list-style: none;
text-align: center;
margin: 0 auto;
}

div.samanlaisia li {
display: inline-block;
vertical-align: top;
padding: 1rem;
border: 3px solid rgba(53, 160, 231, 0.25);
margin: 1rem;
border-radius: 0.25rem;
}

div.samanlaisia h4,
div.samanlaisia p {
padding-bottom: 0;
}

div.samanlaisia img {
border-radius: 0.25rem;
margin: 0.25rem 0;
}

div.samanlaisia p:nth-of-type(2) {
padding-bottom: 1rem;
}

div.samanlaisia p:last-of-type {
padding: 2rem 0 1rem 0;
}

div.samanlaisia p {
font-size: 0.8rem;
line-height: 1;
}

    .scene {
      position: relative;
      max-width: 300px;
margin: 0 auto 5rem auto;
      aspect-ratio: 1;
      display: grid;
      place-items: center;
      animation: sceneReveal 1s cubic-bezier(.2,.8,.2,1) both;
    }

    .scene::before,
    .scene::after {
      content: "";
      position: absolute;
      inset: auto;
      border-radius: 50%;
      pointer-events: none;
    }

    .scene::before {
      width: 78%;
      height: 78%;
      background: radial-gradient(circle, rgba(255,255,255,.07), transparent 68%);
      filter: blur(16px);
      opacity: .8;
      animation: pulseGlow 6s ease-in-out infinite;
    }

    .scene::after {
      width: 92%;
      height: 92%;
      border: 1px solid rgba(255,255,255,.05);
      opacity: .6;
    }

    .compass {
      position: relative;
      width: 100%;
      aspect-ratio: 1;
      border-radius: 50%;
      background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.12), transparent 26%),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.04), transparent 58%),
        linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
      border: 1px solid rgba(255,255,255,.12);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        inset 0 -24px 40px rgba(0,0,0,.18),
        0 30px 60px rgba(0,0,0,.28);
      backdrop-filter: blur(10px);
      overflow: hidden;
    }

    .compass-face {
      position: absolute;
      inset: 7%;
      border-radius: 50%;
      border: 1px solid var(--ring);
      background:
        radial-gradient(circle, transparent 0 38%, rgba(255,255,255,.035) 38.5%, transparent 39%),
        radial-gradient(circle, transparent 0 67%, rgba(255,255,255,.04) 67.4%, transparent 68%),
        radial-gradient(circle at center, rgba(255,255,255,.03), transparent 72%);
    }

    .compass-face::before {
      content: "";
      position: absolute;
      inset: 2.5%;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,.08);
    }

    .ticks {
      position: absolute;
      inset: 0;
      border-radius: 50%;
    }

    .tick {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 2px;
      height: 50%;
      transform-origin: center top;
      opacity: .8;
    }

    .tick::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 7%;
      transform: translateX(-50%);
      width: 1.5px;
      height: 12px;
      border-radius: 999px;
      background: rgba(255,255,255,.25);
    }

    .tick.major::before {
      width: 2.5px;
      height: 22px;
      background: var(--ring-strong);
    }

    .labels {
      position: absolute;
      inset: 0;
      font-family: "Cinzel", serif;
      letter-spacing: .22em;
      font-weight: 700;
      color: rgba(255,255,255,.84);
      text-shadow: 0 1px 0 rgba(0,0,0,.25);
      user-select: none;
    }

    .label {
      position: absolute;
      left: 50%;
      top: 50%;
      font-size: clamp(0.9rem, 1.5vw, 1.15rem);
    }

    .label.n { transform: translate(-50%, -50%) translateY(-185px); }
    .label.s { transform: translate(-50%, -50%) translateY(165px); }
    .label.e { transform: translate(-50%, -50%) translateX(170px); }
    .label.w { transform: translate(-50%, -50%) translateX(-182px); }

    .needle-wrap {
      position: absolute;
      inset: 14%;
      display: grid;
      place-items: center;
      animation: swing 4.2s cubic-bezier(.45,0,.55,1) infinite;
      will-change: transform;
    }

    .needle {
      position: relative;
      width: 20px;
      height: 100%;
      filter: drop-shadow(0 10px 14px rgba(0,0,0,.28));
    }

    .needle::before,
    .needle::after {
      content: "";
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      clip-path: polygon(50% 0, 100% 100%, 0 100%);
      width: 100%;
    }

    .needle::before {
      top: 0;
      height: calc(50% - 8px);
      background: linear-gradient(180deg, #ff8a74 0%, var(--north) 55%, #c73f2c 100%);
      border-radius: 10px 10px 0 0;
    }

    .needle::after {
      bottom: 0;
      height: calc(50% - 8px);
      transform: translateX(-50%) rotate(180deg);
      background: linear-gradient(180deg, #ffe28a 0%, var(--south) 58%, #c89d11 100%);
      border-radius: 10px 10px 0 0;
    }

    .needle-spine {
      position: absolute;
      left: 50%;
      top: 7%;
      transform: translateX(-50%);
      width: 2px;
      height: 86%;
      background: linear-gradient(180deg, rgba(255,255,255,.45), rgba(255,255,255,.18));
      opacity: .8;
      border-radius: 999px;
    }

    .center-cap {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 30px;
      height: 30px;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background:
        radial-gradient(circle at 35% 35%, #ffffff, #efe6d8 45%, #b7a99a 100%);
      box-shadow:
        0 0 0 6px rgba(255,255,255,.06),
        0 10px 20px rgba(0,0,0,.22),
        inset 0 1px 2px rgba(255,255,255,.5);
      z-index: 3;
    }

    .center-cap::after {
      content: "";
      position: absolute;
      inset: 7px;
      border-radius: 50%;
      border: 1px solid rgba(0,0,0,.12);
    }

    .ornament {
      position: absolute;
      inset: 18%;
      border-radius: 50%;
      pointer-events: none;
    }

    .ornament::before,
    .ornament::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 50%;
      background:
        linear-gradient(0deg, transparent 49.5%, rgba(255,255,255,.06) 50%, transparent 50.5%),
        linear-gradient(90deg, transparent 49.5%, rgba(255,255,255,.06) 50%, transparent 50.5%);
      mask: radial-gradient(circle, transparent 0 58%, #000 58.5%);
      opacity: .6;
    }

    @keyframes swing {
      0%   { transform: rotate(-24deg); }
      12%  { transform: rotate(-11deg); }
      26%  { transform: rotate(20deg); }
      40%  { transform: rotate(8deg); }
      54%  { transform: rotate(-16deg); }
      68%  { transform: rotate(-6deg); }
      82%  { transform: rotate(11deg); }
      100% { transform: rotate(-24deg); }
    }

    @keyframes pulseGlow {
      0%, 100% { transform: scale(1); opacity: .7; }
      50% { transform: scale(1.04); opacity: .95; }
    }

    @keyframes sceneReveal {
      from { opacity: 0; transform: translateY(18px) scale(.985); }
      to   { opacity: 1; transform: translateY(0) scale(1); }
    }

    @keyframes fadeUp {
      from { opacity: 0; transform: translateX(-50%) translateY(10px); }
      to   { opacity: 1; transform: translateX(-50%) translateY(0); }
    }

    @media (max-width: 640px) {
      .scene { width: min(86vw, 420px); }
      .label.n { transform: translate(-50%, -50%) translateY(-145px); }
      .label.s { transform: translate(-50%, -50%) translateY(130px); }
      .label.e { transform: translate(-50%, -50%) translateX(132px); }
      .label.w { transform: translate(-50%, -50%) translateX(-145px); }
      .title { bottom: -4.2rem; }
    }

table {
border-collapse: collapse;
width: 100%;
margin-bottom: 2.5rem;
}

table a {
display: block;
}

tbody td {
border-bottom:2px solid #0b3b54;
padding: 1rem 1rem 1rem 0;
}

tbody td:last-of-type {
padding-right: 0;
}

table img {
max-width: 100px;
border-radius: 0.25rem;
}

.casinos td:nth-of-type(2),
.casinos td:last-of-type {
white-space: nowrap;
}

.casinos td:nth-of-type(3) {
text-align: center;
max-width: 250px;
}

.casinos b {
color: #ff8d52;
}

@media (max-width: 800px) {
div#faktat div:first-of-type dt,
div#faktat div:first-of-type dd {
width: auto;
display: block;
}
div#faktat div:first-of-type dt {
font-weight: bold;
font-size: 1.15rem;
border-top: 1px solid snow;
padding-top: 1rem;
}
article p.oikealla {
float: none;
padding-left: 0;
}
article p.vasemmalla {
float: none;
padding-right: 0;
}
table {
display: block;
overflow-x: auto;
border-right: 5px dotted #0b3b54;
padding-bottom: 0;
margin-bottom: 2.5rem;
}
tbody td:last-of-type {
padding-right: 1rem;
}
div.artikkelit article {
display: block;
width: auto;
margin-right: 0;
}
div.pelit li {
width: auto;
}
footer nav {
padding-bottom: 2.5rem;
}
}