/* Shared by the app (/play/) and the landing page (/). Fonts are bundled locally. */
/* ---------- fonts (bundled locally, offline) ---------- */
@font-face{font-family:'Playfair Display';src:url(fonts/PlayfairDisplay-Var.woff2) format('woff2');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(fonts/PlayfairDisplay-Italic-Var.woff2) format('woff2');font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:'Cinzel';src:url(fonts/Cinzel-Var.woff2) format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'Lato';src:url(fonts/Lato-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Lato';src:url(fonts/Lato-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Lato';src:url(fonts/Lato-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ---------- printed-card visual identity (from style.css, rescaled: 1in = 40cqw, 1pt = .5556cqw) ---------- */
.card3d{container-type:inline-size;position:relative;width:var(--cw,280px);aspect-ratio:5/7;perspective:1600px;flex:none;user-select:none;-webkit-user-select:none;cursor:pointer}
.flipper{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.3,.7,.2,1)}
.card3d.flipped .flipper{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:4.8cqw;overflow:hidden;
  box-shadow:0 3cqw 9cqw #000a,0 1px 0 #ffffff10}
.face.b{transform:rotateY(180deg)}
.pc{width:100%;height:100%;position:relative;overflow:hidden}
.pc.front{color:var(--a);font-family:'Playfair Display',serif}
.pc .b1{position:absolute;inset:5.2cqw;border:max(1px,.5cqw) solid var(--a);border-radius:2.78cqw;opacity:.95}
.pc .b2{position:absolute;inset:7.2cqw;border:max(.6px,.2cqw) solid var(--a);border-radius:1.67cqw;opacity:.6}
.pc .fin{position:absolute;inset:7.2cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8cqw 6.4cqw}
.pc .lab{position:absolute;top:12cqw;left:0;right:0;font-family:'Cinzel',serif;font-size:4.17cqw;letter-spacing:1.44cqw;text-transform:uppercase}
.pc .foot{position:absolute;bottom:10.4cqw;left:0;right:0;font-family:'Cinzel',serif;font-size:3.11cqw;letter-spacing:1.11cqw;text-transform:uppercase;opacity:.8}
.pc .numb{font-size:34.4cqw;font-style:italic;font-weight:400;line-height:1;margin-top:2cqw}
.pc .div{display:flex;align-items:center;gap:3.33cqw;width:52cqw;margin:4.44cqw auto 5cqw}
.pc .div i{flex:1;height:max(.6px,.28cqw);background:var(--a);opacity:.8}.pc .div em{font-style:normal;font-size:3.33cqw}
.pc .ttl{text-wrap:balance;font-size:9.44cqw;line-height:1.12;color:#f6ecd9;font-weight:500;max-width:74cqw}
.pc .idx{position:absolute;font-family:'Playfair Display',serif;font-size:6.67cqw;line-height:1;text-align:center;font-style:italic}
.pc .idx small{display:block;font-family:'Cinzel';font-style:normal;font-size:3.06cqw;letter-spacing:.56cqw;margin-top:.56cqw}
.pc .idx.tl{top:4cqw;left:4cqw}.pc .idx.br{bottom:4cqw;right:4cqw;transform:rotate(180deg)}
.pc .orn{color:var(--a);margin-bottom:3.33cqw}.pc .orn svg{width:30cqw;display:block}.pc .orn.big svg{width:38cqw}
.pc .ctop{position:absolute;top:12cqw;left:0;right:0;font-family:'Cinzel';font-size:3.33cqw;letter-spacing:1.33cqw;text-transform:uppercase}
.pc .ctitle{font-size:13.9cqw;line-height:1.02;color:#f6ecd9;font-weight:500}
.pc .ctitle span{display:block;font-style:italic;font-size:7.22cqw;color:var(--a);margin-bottom:1.1cqw}
.pc .csub{font-family:'Cinzel';font-size:4.72cqw;letter-spacing:1.33cqw;text-transform:uppercase}
.pc .sub2{font-family:'Lato';font-size:4.17cqw;letter-spacing:.28cqw;color:#e9dcc4;font-style:italic}
.pc.back{background:#f8f2e7;color:#2a2622;font-family:'Lato',sans-serif}
.pc .bb{position:absolute;inset:5.2cqw;border:max(1px,.44cqw) solid var(--k);border-radius:2.78cqw}
.pc .hd{position:absolute;top:5.2cqw;left:5.2cqw;right:5.2cqw;height:31.2cqw;background:var(--k);border-radius:2.78cqw 2.78cqw 0 0;text-align:center;display:flex;flex-direction:column;justify-content:center;padding:0 4cqw}
.pc .hl{font-family:'Cinzel';font-size:3.5cqw;letter-spacing:1.22cqw;text-transform:uppercase;color:var(--a);margin-bottom:1.67cqw}
.pc .ht{text-wrap:balance;font-family:'Playfair Display';font-size:7.5cqw;line-height:1.1;color:#f6ecd9;font-weight:500}
.pc .body{position:absolute;top:40cqw;bottom:16.8cqw;left:10cqw;right:10cqw;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.pc .fit{line-height:1.38;font-size:4.78cqw}
.pc .fit p{margin-bottom:.55em}
.pc .fit p:last-child,.pc .fit ul:last-child{margin-bottom:0}
.pc .fit b{color:var(--k);font-weight:700}
.pc .fit ul{list-style:none;margin:0 0 .55em 0}
.pc .fit li{padding-left:.9em;position:relative;margin-bottom:.3em}
.pc .fit li:before{content:"\25C6";position:absolute;left:0;font-size:.55em;top:.45em;color:var(--k)}
.pc .try{font-family:'Playfair Display';font-style:italic;font-size:1.05em;line-height:1.3;color:var(--k);border-left:max(1px,.67cqw) solid var(--a);padding-left:.6em}
.pc .try span{display:block;font-family:'Cinzel';font-style:normal;font-size:.62em;letter-spacing:.89cqw;text-transform:uppercase;color:#8a7650;margin-bottom:.56cqw}
.pc .small{font-size:.85em;font-style:italic;color:#6a5f55}
.pc .blanks{margin:.2em 0 .7em}
.pc .blanks div{display:flex;align-items:flex-end;gap:2.78cqw;height:1.55em}
.pc .blanks b{white-space:nowrap}
.pc .blanks span{flex:1;border-bottom:max(.6px,.28cqw) solid #9a8b78;margin-bottom:.25em}
.pc .bf{position:absolute;bottom:8.4cqw;left:0;right:0;text-align:center;font-family:'Cinzel';font-size:2.78cqw;letter-spacing:1cqw;text-transform:uppercase;color:#8a7650}

