:root{font-family:Poppins,Arial,sans-serif;color:#fff;background:transparent;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{display:flex;justify-content:center;align-items:center;min-height:100svh;background:transparent}.game{position:relative;width:min(100vw,56.25svh);aspect-ratio:9/16;overflow:hidden;background:#172121;container-type:inline-size;isolation:isolate}.card{position:absolute;inset:0;transform-origin:50% 90%}.portrait,.shade{position:absolute;width:100%;height:100%;inset:0}.portrait{object-fit:cover;object-position:50% 38%}.shade{background:linear-gradient(180deg,rgba(0,0,0,.04) 20%,rgba(0,0,0,.05) 37%,rgba(0,10,12,.25) 47%,rgba(0,10,12,.7) 73%,rgba(0,10,12,.83) 100%)}.content{position:absolute;left:8.2%;right:7.2%;bottom:19.6%}h1{font-size:10cqw;line-height:1.12;letter-spacing:-.04em;margin:0 0 .65cqw;color:#f5ff00;text-transform:uppercase;white-space:nowrap}.name{font-weight:900}.age{font-weight:400}.headline{display:flex;align-items:center;gap:1.5cqw;margin:0;color:#f5ff00;font-size:6.65cqw;font-weight:900;letter-spacing:-.035em;line-height:1.2;white-space:nowrap}.headline span{color:#d83c36;background:#fff;border-radius:1.7cqw;padding:.2cqw 1.8cqw .5cqw;letter-spacing:-.015em}.role{display:table;max-width:100%;background:#f5ff00;color:#050705;padding:1.3cqw 2cqw;margin:3cqw 0 5.8cqw;font-size:3.35cqw;line-height:1.35;font-weight:400}.role strong{font-weight:800;font-style:italic;text-transform:uppercase}.description{font-size:3.5cqw;line-height:1.25;font-weight:500;margin:0;min-height:12.9cqw;white-space:pre-line}.actions{position:absolute;bottom:6.4%;left:0;right:0;display:flex;justify-content:center;gap:2cqw;z-index:2}.action{display:grid;place-items:center;border:0;border-radius:50%;width:14.6cqw;aspect-ratio:1;color:white;cursor:pointer;text-decoration:none;transition:transform .18s,filter .18s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.reject{background:#d73c36}.like{background:#00c785}.action svg{width:58%;height:58%;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.action:hover{transform:translateY(-3px) scale(1.04);filter:brightness(1.08)}.action:active{transform:scale(.94)}.action:focus-visible,button:focus-visible{outline:3px solid white;outline-offset:5px}.action[aria-disabled=true]{pointer-events:none}.card.leaving{animation:leave .2s ease-in forwards}.card.entering{animation:enter .25s ease-out}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes leave{to{transform:translateX(-55%) rotate(-12deg);opacity:0}}@keyframes enter{from{transform:translateX(12%) rotate(3deg);opacity:0}to{transform:none;opacity:1}}dialog{max-width:min(90vw,380px);border:0;border-radius:18px;padding:30px;color:#182522;font-family:inherit;box-shadow:0 20px 80px #0006}dialog::backdrop{background:#00120bb8}dialog h2{font-size:26px;margin:8px 0}dialog p{font-size:14px;line-height:1.6}.dialog-label{font-size:11px;font-weight:800;letter-spacing:.12em;color:#a3342c}#close-demo{position:absolute;right:12px;top:6px;border:0;background:none;font-size:30px;cursor:pointer;color:#182522}#continue{font:600 14px Poppins,sans-serif;background:#f5ff00;border:0;border-radius:8px;padding:12px 16px;cursor:pointer}.noscript{position:absolute;inset:20%;font-size:18px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Telefoonframe: schaalt mee binnen dezelfde 9:16-verhouding. */
.game{border-radius:8% / 4.5%}
.game::after{content:"";position:absolute;inset:0;z-index:4;border:2.8cqw solid #000;border-radius:8cqw;pointer-events:none}
.game::before{content:"";position:absolute;top:2.5cqw;left:32%;width:36%;height:4.8cqw;z-index:5;background:#000;border-radius:0 0 3.2cqw 3.2cqw;pointer-events:none}
.role{border-radius:999px}
.action{background:radial-gradient(circle at 35% 25%,#fff 0%,#fff 30%,#f3f3f3 68%,#dcdcdc 100%);box-shadow:inset 0 1px 2px #fff, inset 0 -2px 4px #00000012,0 4px 12px #00000030}
.reject{color:#d73c36}
.like{color:#00c785}

/* Matchscherm na een like. */
.match-dialog{width:min(84vw,47.25svh);max-width:none;padding:10cqw 5cqw 6cqw;border-radius:5cqw;background:#122822;color:#fff;text-align:center;box-shadow:0 3cqw 12cqw #0008}
.match-dialog::backdrop{background:#00130fbb;backdrop-filter:blur(5px)}
.match-heart{display:block;width:19cqw;height:19cqw;margin:0 auto 4cqw;fill:#00c785;filter:drop-shadow(0 1cqw 3cqw #00c78533)}
.match-dialog h2{font-size:8cqw;line-height:1.12;font-weight:800;letter-spacing:-.035em;margin:0 0 7cqw}
.match-dialog h2 span{color:#f5ff00}
.vacancy-button{display:block;border-radius:999px;padding:3cqw 2cqw;background:#f5ff00;color:#122822;text-decoration:none;font-size:3.3cqw;font-weight:700;line-height:1.4}
.vacancy-button:hover{background:#fff}
.vacancy-button:focus-visible{outline:3px solid white;outline-offset:4px}
.match-dialog #close-demo{color:#fff;font-size:7cqw;right:3cqw;top:1cqw}
.match-dialog #continue{background:transparent;color:#fff;font-size:3cqw;text-decoration:underline;text-underline-offset:.6cqw;padding:3cqw 0 0}
.match-dialog #vacancy-note{font-size:2.9cqw;line-height:1.5;margin:3cqw 0 0;color:#d6e5df}

/* Fotogalerij en rustige, afwisselende aandacht voor de actieknoppen. */
.card{touch-action:pan-y}
.portrait{user-select:none;-webkit-user-drag:none}
.photo-navigation[hidden]{display:none}
.photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:8cqw;height:8cqw;display:grid;place-items:center;padding:0;background:#0005;color:#fff;border:0;border-radius:50%;cursor:pointer;touch-action:manipulation}
.photo-prev{left:5%}.photo-next{right:5%}
.photo-arrow svg{width:4cqw;height:4cqw;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.photo-arrow:hover{background:#0009}
.photo-count{position:absolute;top:9cqw;left:50%;transform:translateX(-50%);padding:.7cqw 2cqw;border-radius:999px;background:#0006;color:#fff;font-size:2.8cqw;pointer-events:none}
@keyframes button-invite{0%,40%,100%{scale:1}20%{scale:1.1}}
.actions .action{animation:button-invite 4s ease-in-out infinite}
.actions .like{animation-delay:2s}
.actions:hover .action,.actions:focus-within .action,.game:has(dialog[open]) .action{animation:none}
@media(prefers-reduced-motion:reduce){.actions .action{animation:none}}
