@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-cyrillic-ext-wght-normal-Bg62sWL9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-cyrillic-wght-normal-BWCqVJN0.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-vietnamese-wght-normal-CDLFB6hb.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-latin-ext-wght-normal-ltf1AbuM.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-latin-wght-normal-CUoBjw-S.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond Variable;font-style:italic;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-cyrillic-ext-wght-italic-1rG_WyvK.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond Variable;font-style:italic;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-cyrillic-wght-italic-C5ZlGLFt.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond Variable;font-style:italic;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-vietnamese-wght-italic-1M78L1Br.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond Variable;font-style:italic;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-latin-ext-wght-italic-PWzi_-0y.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond Variable;font-style:italic;font-display:swap;font-weight:300 700;src:url(/assets/cormorant-garamond-latin-wght-italic-C-nL33vl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#fae9df;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--serif:"Cormorant Garamond Variable", Georgia, serif;--muted:#cfbacb;--gold:#edcf9a;--pink:#f3a8bb;--border:#bb98a546;background:#141322;font-family:DM Sans Variable,sans-serif}*,:before,:after{box-sizing:border-box}body{min-width:280px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.night-sky{pointer-events:none;background:linear-gradient(160deg,#10102118,#1411240a 56%,#14112433),url(/assets/rosengarten-BjMxND1U.jpg) bottom/cover;position:fixed;inset:0;overflow:hidden}.star{aspect-ratio:1;background:#fae1b4;border-radius:50%;width:3px;animation:4s ease-in-out infinite alternate twinkle;position:absolute;box-shadow:0 0 9px #fce1bb9e}.star--bright{clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);border-radius:0;width:13px}@keyframes twinkle{0%{opacity:.28;transform:scale(.72)}to{opacity:.97;transform:scale(1.15)}}.sky-heart{color:#ffc1d8;opacity:.36;text-shadow:0 0 5px #f99abfa8,0 0 12px #ef82b280;font:400 10px/1 Georgia,Segoe UI Symbol,serif;animation:6s ease-in-out infinite sky-heart-shimmer;position:absolute}@keyframes sky-heart-shimmer{0%,to{opacity:.15;transform:scale(.8)}45%{opacity:.8;transform:scale(1.15)}64%{opacity:.55;transform:scale(1.04)}}.moon{aspect-ratio:1;filter:drop-shadow(0 0 12px #f7d49688);background:radial-gradient(circle,#f6cf8c2c,#f6cf8c00 71%);border-radius:50%;width:clamp(62px,8vw,104px);animation:10s ease-in-out infinite alternate moon-float;position:absolute;top:clamp(26px,8vh,95px);right:max(48%,430px)}.moon:after{content:"";background:linear-gradient(140deg,#fff1d0,#f1c788);border-radius:50%;position:absolute;inset:8%;-webkit-mask-image:radial-gradient(circle at 69% 31%,#0000 55%,#000 56%);mask-image:radial-gradient(circle at 69% 31%,#0000 55%,#000 56%)}@keyframes moon-float{0%{transform:translateY(0)rotate(-9deg)}to{transform:translateY(-14px)rotate(4deg)}}.constellation{width:clamp(180px,23vw,252px);height:auto;animation:linear both constellation-reveal;position:absolute;top:clamp(13px,3.6vh,34px);left:max(18px,50vw - 516px)}@keyframes constellation-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0)}8%{opacity:1}27%,76%{opacity:1;clip-path:inset(0)}to{opacity:0;clip-path:inset(0)}}.shooting-star{background:linear-gradient(90deg,#0000,#f1cf936b 54%,#fff4cf);border-radius:50%;width:clamp(44px,11vw,120px);height:2px;animation:ease-out both shooting-star-flight;position:absolute;top:clamp(18px,4vh,38px);left:max(45%,50vw + 44px);box-shadow:0 0 6px #f6cb9a70}.shooting-star:after{content:"";background:#fff4d6;border-radius:50%;width:4px;height:4px;position:absolute;top:-1px;right:0;box-shadow:0 0 10px 2px #f6d9a9bd}.shooting-star--roses{background:linear-gradient(90deg,#0000,#f49fbc55 53%,#ffd0e2b0);width:clamp(64px,15vw,148px);height:1px;box-shadow:0 0 6px #f9a0c08a}.shooting-star--roses:after{content:none}.rose-trail-bloom{aspect-ratio:1;background:radial-gradient(at 55% 47%,#ffd2de 0 10%,#cf5c85 12% 19%,#0000 21%),radial-gradient(at 33% 31%,#fac0d0 0 20%,#0000 23%),radial-gradient(at 70% 30%,#ed95af 0 22%,#0000 24%),radial-gradient(at 35% 70%,#ea88a7 0 28%,#0000 31%),radial-gradient(at 69% 66%,#d9678e 0 30%,#0000 34%),#b94e76;border-radius:46% 52% 47% 54%;animation:.42s ease-out both rose-bloom-reveal;position:absolute;top:50%;box-shadow:0 0 8px #f29abb9c}.rose-trail-bloom:nth-child(odd){top:-3px}.rose-trail-bloom:after{content:"";border:1px solid #ffd8e49e;border-color:#ffd8e49e #0000 #a8396190 #ffd8e49e;border-radius:48%;position:absolute;inset:24%;transform:rotate(-28deg)}@keyframes rose-bloom-reveal{0%{opacity:0;transform:translate(-50%,-50%)rotate(-34deg)scale(.45)}to{opacity:1;transform:translate(-50%,-50%)rotate(-10deg)scale(1)}}@keyframes shooting-star-flight{0%{opacity:0;transform:translate(-22px,-12px)rotate(23deg)}24%{opacity:.92}to{opacity:0;transform:translate(min(22vw,155px),min(9vw,60px))rotate(23deg)}}.garden{grid-template-columns:minmax(0,1fr) minmax(330px,418px);align-items:center;gap:clamp(32px,7vw,110px);width:min(100% - 96px,1032px);min-height:100svh;margin-inline:auto;padding-block:clamp(100px,15vh,142px) clamp(86px,13vh,135px);display:grid;position:relative}.game-name{color:var(--gold);letter-spacing:.19em;text-transform:uppercase;align-items:center;gap:10px;font-size:.77rem;font-weight:700;display:flex}.game-name span{font-size:1rem}.intro h1{font-family:var(--serif);letter-spacing:-.058em;text-shadow:0 7px 34px #110b1ccc;margin:19px 0 0;font-size:clamp(5rem,8.9vw,9rem);font-weight:600;line-height:.77}.intro h1 span{color:var(--gold);font-size:.66em;font-weight:500}.intro h1 em{color:var(--pink);font-weight:600}.panel{background:linear-gradient(155deg,#2a2239f7,#1a172bf7 79%);border:1px solid #a4879770;border-radius:22px;width:100%;padding:clamp(22px,4vw,35px);position:relative;box-shadow:0 24px 60px #0b091a80,inset 0 1px #f0cfbe18}.panel:before{content:"✦";color:var(--gold);text-shadow:0 0 13px #ffd5a27d;font-size:22px;line-height:22px;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.panel h2{color:#fbeddf;font:650 3rem/.95 var(--serif);letter-spacing:-.045em;margin:0 0 21px}.loading-panel{min-height:300px;color:var(--muted);place-items:center;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend,.password-label{color:var(--muted);padding:0;font-size:.91rem;font-weight:550}.role-options{grid-template-columns:1fr 1fr;gap:12px;margin-top:9px;display:grid}.role-option{cursor:pointer;min-width:0;position:relative}.role-option input{opacity:0;width:1px;height:1px;position:absolute}.role-tile{border:1px solid var(--border);background:#1a1528aa;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:60px;transition:border-color .16s,background-color .16s;display:flex}.role-option:hover .role-tile{border-color:#dda4ba}.role-option input:checked+.role-tile{background:#74465d52;border-color:#e1a4b8}.role-option input:focus-visible+.role-tile{outline:2px solid var(--gold);outline-offset:3px}.role-option input:disabled+.role-tile{opacity:.65;cursor:default}.token{flex:none;place-items:center;width:1em;height:1em;font-size:1.45rem;line-height:1;display:inline-grid}.token--x{color:var(--gold);text-shadow:0 0 .5em #f2cb876b;font-family:Georgia,Segoe UI Symbol,serif}.token--o{color:#f79bb5;text-shadow:0 0 .5em #ed73976b;font-family:Georgia,serif}.password-label{margin:19px 0 7px;display:block}.password-input{border:1px solid var(--border);width:100%;min-height:48px;color:inherit;background:#141124;border-radius:10px;padding:9px 12px}.primary-button{color:#2e1b2b;background:linear-gradient(100deg,#f4b3c4,#e5a6bd);border:1px solid #f2bac9;border-radius:10px;width:100%;min-height:48px;margin-top:18px;padding:10px 16px;font-weight:750;transition:filter .16s}.primary-button:hover:not(:disabled){filter:brightness(1.09)}.primary-button:disabled{opacity:.52}.error{color:#ffc0cc;margin:12px 0 0;font-size:.88rem;line-height:1.45}.match-panel{padding-block:clamp(20px,3vw,29px)}.match-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.identity{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.identity .token{font-size:1.2rem}.text-button{color:#efc6d1;text-underline-offset:3px;background:0 0;border:0;padding:6px 0 6px 6px;font-size:.84rem;text-decoration:underline}.text-button:disabled{opacity:.55}.match-status{color:#fbeddf;min-height:1.25em;font:650 clamp(1.5rem, 3vw, 2.1rem)/1.05 var(--serif);letter-spacing:-.025em;margin:12px 0 14px}.board{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.board-cell{aspect-ratio:1;border:1px solid var(--border);background:#110e1e70;border-radius:12px;min-width:0;transition:background-color .16s,border-color .16s;display:flex}.board-cell [role=button]{border-radius:inherit}.board-cell--playable:hover,.board-cell--playable:focus-within{background:#59374f;border-color:#d99fb5}.board-cell--winning{background:#5f424f;border-color:#ebc789}.board-cell .token{font-size:clamp(2.5rem,6vw,3.55rem)}.empty-cell{background:#d3acc28a;width:5px;height:5px;transform:rotate(45deg)}.score{border-block:1px solid var(--border);text-align:center;grid-template-columns:1fr 1.25fr 1fr;margin:15px 0 0;padding-block:10px;display:grid}.score div+div{border-left:1px solid var(--border)}.score dt{color:var(--muted);font-size:.72rem}.score dd{color:#f9e4d1;font:650 1.45rem/1 var(--serif);font-variant-numeric:lining-nums tabular-nums;margin:2px 0 0}.match-panel .primary-button{margin-top:13px}@media (width<=760px){.garden{grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:34px;width:min(100% - 36px,440px);padding-block:65px 62px}.night-sky{background-position:0 100%}.moon{top:27px;right:7%}.constellation{width:min(182px,57vw);top:2px;left:max(12px,50vw - 220px)}.shooting-star{top:12px;left:29%}.intro{text-align:center}.game-name{justify-content:center;font-size:.68rem}.intro h1{margin-top:14px;font-size:clamp(4.15rem,13vw,6rem)}}@media (width<=350px){.garden{width:calc(100% - 24px)}.panel{padding-inline:15px}}@media (prefers-reduced-motion:reduce){.star,.sky-heart,.moon{animation:none}.constellation,.shooting-star{display:none}.role-tile,.primary-button,.board-cell{transition:none}}
