@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/0569c822cab6c5100c.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/9bd8ba39c9d55e0658.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/18e69125ce1f964e60.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/8257aa2626c379cb6d.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/013fe10123fce3293b.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/7d62dda1d3895620ed.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/f5a22007f7fe04ac74.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/c67a6241b1e0d6ae2e.ttf) format('truetype');
}

:root{--green:#173d33;--orange:#ec672c;--cream:#f8f7f3;--muted:#65756d}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--green);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:5px}header{height:100px;margin:0 6%;border-bottom:1px solid #d8ded6;display:flex;align-items:center;justify-content:space-between}.monogram{font-family:'Playfair Display',serif;font-size:32px;color:var(--green);text-decoration:none}.monogram span{font-style:italic;color:var(--orange);font-size:23px}.occasion{text-align:center;letter-spacing:3px;font-size:12px}.occasion span{display:block;letter-spacing:2px;font-size:10px;margin-top:6px}.sound{background:none;border:1px solid #d5dcd5;border-radius:30px;padding:10px 15px;color:var(--green);font-size:12px}.sound span{font-weight:700;margin-left:6px}main{max-width:950px;margin:auto;padding:36px 25px 30px}.intro{text-align:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;margin:0 0 13px}h1{font-family:'Playfair Display',serif;font-weight:500;font-size:64px;letter-spacing:-2px;line-height:1.1;margin:0}h1 em{color:var(--orange);font-weight:500}.intro>p:last-child{font-size:15px;color:var(--muted);margin:18px 0 26px}.selection{max-width:735px;display:grid;grid-template-columns:1fr 35px 1fr;align-items:center;margin:auto;gap:16px}.character{background:white;border:1px solid #dce1d9;border-radius:14px;overflow:hidden;padding:0;color:var(--green);text-align:left;transition:transform .2s,border-color .2s,box-shadow .2s}.character:hover{transform:translateY(-4px)}.character.selected{border:2px solid var(--green);box-shadow:0 8px 30px #183d330d}.portrait{height:290px;background-image:url('couple.png');background-size:auto 100%;background-repeat:no-repeat;background-color:white}.portrait.fio{background-position:10% center}.portrait.andree{background-position:91% center}.character-info{display:flex;align-items:center;justify-content:space-between;padding:18px 23px;border-top:1px solid #e8ebe6}.team{font-size:10px;font-weight:700;letter-spacing:2px}h2{font-family:'Playfair Display',serif;font-size:30px;margin:4px 0 0;font-weight:500}.check{width:27px;height:27px;border:1px solid #d7ded6;border-radius:50%;text-align:center;line-height:25px;color:transparent}.selected .check{background:var(--green);color:white;border-color:var(--green)}.versus{font:italic 33px 'Playfair Display',serif;color:#9ca89b;text-align:center}.start-row{max-width:410px;margin:25px auto 0;text-align:center}.rules{display:flex;justify-content:center;align-items:center;gap:18px;font-size:12px;color:var(--muted);margin-bottom:18px}.rules b{color:var(--green);font-size:17px;margin-right:3px}.rules i{width:1px;height:15px;background:#d4dcd3}.primary{width:100%;border:0;background:var(--green);color:white;border-radius:7px;padding:17px 24px;font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:space-between;transition:background .2s}.primary:hover{background:#245b48}.primary span{font-size:23px;line-height:18px}.instruction,.keyboard{font-size:12px;color:var(--muted);margin:12px 0 0}footer{margin:0 6%;border-top:1px solid #d8ded6;padding:22px 0;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:2px}footer i{font-family:serif;color:var(--orange)}footer p{font-size:12px;letter-spacing:0;color:var(--muted)}[hidden]{display:none!important}#gameScreen{max-width:600px;margin:auto}.game-heading{display:flex;justify-content:space-between;align-items:center}.text-button{background:none;border:0;color:var(--green);padding:12px 0;font-size:14px}.hud{display:flex;justify-content:space-between;text-align:center;margin:18px 10px 10px}.hud>div{min-width:80px}.hud span{font-size:10px;letter-spacing:2px}.hud strong{display:block;font-size:35px;line-height:1.3}.hud strong span{font-size:18px;letter-spacing:0}.time-track{height:4px;background:#dde3d8;border-radius:5px;overflow:hidden;margin-bottom:12px}#timeBar{height:100%;width:100%;background:var(--orange)}.arena{height:350px;border-radius:12px;background:#edf0e6;position:relative;overflow:hidden}canvas{display:block;width:100%;height:100%}.avatar{position:absolute;width:160px;height:170px;bottom:5px;left:2%;background-image:url('couple.png');background-size:auto 100%;background-repeat:no-repeat;mix-blend-mode:multiply;transition:left .09s,transform .08s}.avatar.fio{background-position:10% center}.avatar.andree{background-position:91% center}.avatar.right{left:calc(98% - 160px)}.avatar.chop{transform:rotate(6deg) translateX(8px)}.avatar.right.chop{transform:rotate(-6deg) translateX(-8px)}#feedback{position:absolute;top:45%;left:0;width:100%;text-align:center;font-size:26px;font-weight:bold;color:var(--orange);pointer-events:none;text-shadow:0 2px 10px white}#countdown{position:absolute;inset:0;background:#173d33a8;display:grid;place-items:center;color:white;font-size:95px;font-family:'Playfair Display',serif}.game-tip{text-align:center;font-size:14px;margin:14px 0}.controls{display:flex;gap:12px}.controls button{width:50%;background:var(--green);border:0;border-radius:8px;color:white;padding:18px 12px;font-weight:600;font-size:20px;touch-action:manipulation;user-select:none}.controls button:active{background:var(--orange);transform:scale(.98)}.controls span{font-size:14px}.keyboard{text-align:center}#resultScreen{max-width:450px;text-align:center;margin:30px auto 65px}#resultScreen h1{font-size:55px}.result-score{margin:28px 0}.result-score strong{font-size:95px;font-weight:500;display:block;line-height:1}.result-score span{font-size:12px;letter-spacing:3px}#summary{color:var(--muted);margin:20px 0 30px}#change{margin-top:12px}@media(min-width:1300px){main{padding-top:44px}.portrait{height:320px}}@media(max-width:600px){header{height:76px;margin:0 6%}.occasion{font-size:10px;letter-spacing:2px}.occasion span{font-size:9px}.sound{font-size:10px;padding:9px}.monogram{font-size:27px}main{padding:28px 18px 24px}h1{font-size:44px;letter-spacing:-1.4px}.eyebrow{font-size:10px;letter-spacing:2.2px}.intro>p:last-child{font-size:14px;max-width:290px;margin:15px auto 23px}.selection{grid-template-columns:1fr 1fr;gap:12px}.versus{display:none}.portrait{height:220px}.portrait.fio{background-position:14% center}.portrait.andree{background-position:89% center}.character-info{padding:14px}.team{font-size:9px;letter-spacing:1.5px}h2{font-size:26px}.check{width:23px;height:23px;line-height:21px}.start-row{margin-top:23px}footer{padding:19px 0;font-size:10px}footer p{display:none}.arena{height:320px}.avatar{width:125px;height:150px;left:0}.avatar.right{left:calc(100% - 125px)}.controls button{padding:19px 5px}.controls span{font-size:12px}.hud{margin-top:12px}.game-heading .team{font-size:9px}#gameScreen+.result{margin:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:360px){.portrait{height:185px}h1{font-size:39px}.rules{gap:10px}}
/* The wedding selection remains; the match is now a roaming arcade. */
.portrait.fio{background-image:url('fio.png');background-position:center}.portrait.andree{background-image:url('andree.png');background-position:center}.portrait{background-size:contain}.portrait{height:320px}
#gameScreen{max-width:820px}.arena{height:440px;background:#f0f1e9;box-shadow:inset 0 0 0 1px #d7dece}#canvas{touch-action:none;cursor:crosshair;outline-offset:-4px}.arena-top{position:absolute;top:12px;left:14px;right:14px;display:flex;justify-content:space-between;gap:10px;pointer-events:none;font-size:12px;font-weight:600;color:#52664e}.arena-top span{background:#fffffff0;border-radius:30px;padding:7px 12px}.hud strong{font-size:30px}.hud>div{min-width:60px}.hud{margin:8px 12px 10px}#combo{color:var(--orange)}#feedback{font-size:16px;top:auto;bottom:10px;color:#173d33;text-shadow:none;min-height:24px;z-index:1}.arcade-controls{display:flex;align-items:center;justify-content:space-between;max-width:470px;margin:0 auto;gap:20px}.dpad{display:grid;grid-template-columns:46px 46px 46px;grid-template-rows:40px 40px;gap:5px}.dpad button{border:1px solid #cbd4c6;background:#fff;color:var(--green);border-radius:8px;font-size:22px;touch-action:none;user-select:none}.dpad button[data-dir=up]{grid-column:2}.dpad button[data-dir=left]{grid-column:1;grid-row:2}.dpad button[data-dir=down]{grid-column:2;grid-row:2}.dpad button[data-dir=right]{grid-column:3;grid-row:2}.dpad button:active,.dpad button.pressed{background:var(--green);color:white}.cut-control{display:flex;flex-direction:column;align-items:center;gap:6px}.cut-control>span{font-size:11px;color:var(--muted)}#cut{width:180px;height:64px;border:0;border-bottom:4px solid #b94419;border-radius:12px;background:var(--orange);color:white;font-size:23px;font-weight:bold;touch-action:none;user-select:none}#cut span{font-size:16px;letter-spacing:1px}#cut:active,#cut.pressed{transform:translateY(2px);border-bottom-width:2px;background:#d65a22}#pauseOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f8f7f3ed;z-index:3;gap:25px}#pauseOverlay h2{font-size:45px}#pauseOverlay button{width:230px}#countdown{z-index:4}.game-tip{min-height:20px}.result-details{display:flex;gap:12px;justify-content:center;margin:-10px 0 30px;font-size:13px;color:var(--muted)}.result-details span{border:1px solid #d8ded6;border-radius:8px;padding:12px}.result-details b{display:block;color:var(--green);font-size:22px;margin-bottom:4px}@media(min-width:1300px){.portrait{height:330px}}@media(max-width:600px){.portrait{height:225px}.portrait.fio,.portrait.andree{background-position:center}.arena{height:400px}.arena-top{top:9px;left:8px;right:8px;gap:4px;font-size:10px}.arena-top span{padding:6px 8px}.hud strong{font-size:27px}.hud span{font-size:9px;letter-spacing:1px}.game-tip{font-size:12px;line-height:1.5}.dpad{grid-template-columns:41px 41px 41px;grid-template-rows:38px 38px;gap:4px}#cut{width:145px;height:62px}.keyboard{font-size:10px;line-height:1.5}.game-heading .text-button{font-size:12px}.arcade-controls{gap:10px}.hud>div{min-width:48px}#gameScreen .game-heading{gap:6px}.arena-top span:last-child{font-size:9px}#feedback{font-size:13px}.result-details{font-size:12px}}
#instructionsScreen{max-width:520px;margin:12px auto 30px;text-align:center}#instructionsScreen h1{font-size:50px}.how-intro{color:var(--muted);font-size:16px;line-height:1.5}.how-steps{text-align:left;list-style:none;counter-reset:step;padding:0;margin:28px 0}.how-steps li{counter-increment:step;position:relative;padding:0 0 20px 47px}.how-steps li:before{content:counter(step);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--green);color:white;text-align:center;line-height:30px;font-size:14px}.how-steps b{font-size:16px}.how-steps p{font-size:14px;line-height:1.6;color:var(--muted);margin:6px 0 0}#instructionsBack{margin-top:12px}@media(max-width:600px),(pointer:coarse){.arcade-controls,#gameScreen .keyboard{display:none}#gameScreen .arena{height:clamp(360px,58svh,550px)}#instructionsScreen h1{font-size:42px}.how-steps{margin:24px 0}.how-steps li{padding-bottom:17px}.game-tip{font-size:14px;line-height:1.5}}
.guest-registration{text-align:left;margin:8px 0 22px;padding-top:20px;border-top:1px solid #d8ded6}.guest-registration label{display:block;font-size:16px;font-weight:600;margin-bottom:9px}.guest-registration input{width:100%;padding:14px 16px;border:1px solid #b8c5b2;border-radius:8px;background:white;font:inherit;font-size:16px;color:var(--green)}.guest-registration input:focus{outline:2px solid var(--green);outline-offset:2px}#guestNote{font-size:13px;line-height:1.5;color:var(--muted);margin:10px 0}#registerStatus,#saveStatus{font-size:14px;line-height:1.5}#registerStatus:empty{display:none}button:disabled{cursor:wait;opacity:.55}#saveStatus{margin:0 0 16px}#retrySave{display:block;margin:0 auto 15px;font-weight:700}
.podium-section{margin:24px -10px 30px;padding:24px 10px 0;border-top:1px solid #d8ded6}.podium-section h2{font-size:32px;margin:0 0 10px}.podium-section .eyebrow{margin-bottom:8px}.podium-note{font-size:13px;line-height:1.5;color:var(--muted);max-width:330px;margin:0 auto 15px}#podiumStatus{font-size:14px;line-height:1.5;color:var(--muted)}#podiumStatus:empty{display:none}.podium{list-style:none;padding:0;display:flex;align-items:flex-end;gap:10px;margin:25px 0 0}.podium-place{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}.place-1{order:2}.place-2{order:1}.place-3{order:3}.podium-medal{font-size:32px;margin-bottom:9px}.podium-name{font-size:15px;line-height:1.4;overflow-wrap:anywhere;max-width:100%}.podium-points{font-size:13px;color:var(--muted);margin:7px 0 13px}.podium-base{width:100%;display:flex;justify-content:center;padding-top:16px;border-radius:9px 9px 0 0;background:#dce4d6;color:var(--green);font:600 29px 'Playfair Display',serif;min-height:70px}.place-1 .podium-base{min-height:115px;background:var(--green);color:#fff}.place-2 .podium-base{min-height:85px}.place-3 .podium-base{min-height:60px;background:#e8ddcf}.empty-place .podium-medal{opacity:.35}.empty-place .podium-name{font-weight:400;color:var(--muted)}@media(max-width:600px){.podium{gap:7px}.podium-name{font-size:14px}.podium-points{font-size:12px}.podium-section{margin-left:0;margin-right:0;padding-left:0;padding-right:0}}

.wedding-logo{display:block;position:relative;width:86px;aspect-ratio:560/320;overflow:hidden;mix-blend-mode:multiply}.wedding-logo img{position:absolute;width:346.785714%;height:auto;max-width:none;left:-121.428571%;top:-65.625%}@media(max-width:600px){.wedding-logo{width:67px}}
