:root{color-scheme:dark;--bg:#0e0e0e;--panel:#171717;--ink:#fceee6;--muted:#aaa09b;--line:#ffffff14;--rose:#d9487a;--accent:#d9487a;--deep:#e879a1;--tint:#d9487a15;--serif:Didot,"Bodoni MT","Times New Roman",serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:15px;min-height:100vh;line-height:1.6}.site-glow{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 95% 0%,#54273a22,transparent 55%),radial-gradient(ellipse at 0 80%,#4b39201a,transparent 50%);pointer-events:none}
.app-shell{max-width:620px;padding:0 24px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:7px 0 52px;min-height:50px}.brand{display:flex;align-items:center;gap:10px;color:#e8d7c9;text-decoration:none}.brand img{width:52px;height:40px}.brand span{font-family:var(--serif);font-size:16px;letter-spacing:.15em;white-space:nowrap}.brand b{font-weight:400;color:#fceee6}.header-link{font-size:12px;text-decoration:none;white-space:nowrap;color:var(--muted)}.header-link span{margin-left:8px;color:var(--rose)}a{color:#ed95b3}a:hover{color:#f5bfd1}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;color:var(--ink)}h1{font-size:clamp(38px,8vw,51px);line-height:1.08;margin:0 0 22px}h1 em{color:#e8d7c9;font-weight:400}h2{font-size:27px;line-height:1.2}p{margin:0 0 18px}.eyebrow{color:#dc789a;font-size:9px;font-weight:600;letter-spacing:.23em;margin-bottom:22px}.intro-copy{color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:28px}.pink{color:var(--rose)}.quiet-note{color:var(--muted);font-size:11px;line-height:1.8;margin:16px 0 0}.text-muted{color:var(--muted)!important}
.auth-card{max-width:430px;margin:0 auto}.stack-form{display:grid;gap:20px}.stack-form>label,.invite-card>label{display:block;font-size:12px;color:#d6ccc6;letter-spacing:.015em}.form-control,.form-select{color:var(--ink);background:#191919;border:1px solid #363132;border-radius:11px;padding:13px 15px;font-size:14px;margin-top:8px;min-height:48px;box-shadow:none}.form-control::placeholder{color:#807977}.form-control:focus,.form-select:focus{background:#1d191b;color:var(--ink);border-color:#d9487a;box-shadow:0 0 0 3px #d9487a1b}.form-control[readonly]{background:#191719}.form-select option{background:#191919}.sex-field{padding:0;margin:0;border:0}.sex-field legend{font-size:12px;float:none;width:auto;margin:0 0 8px;color:#d6ccc6}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{position:relative;cursor:pointer}.choice input{position:absolute;left:14px;top:18px;accent-color:var(--rose)}.choice span{display:block;border:1px solid #363132;background:#191919;border-radius:11px;padding:12px 18px 12px 39px;min-height:48px;font-size:13px;color:#c2b9b4}.choice:has(input:checked) span{background:#d9487a12;border-color:#bf416c;color:#fceee6}.choice:has(input:focus-visible) span{outline:2px solid #ed95b3;outline-offset:3px}
.btn{border-radius:11px;padding:13px 20px;font-size:13px;font-weight:600;min-height:47px;transition:background .2s,transform .2s;border-width:1px}.btn-primary{background:#c33467;border-color:#c33467;color:white;box-shadow:0 7px 24px #bf2d5e16}.btn-primary:hover,.btn-primary:focus-visible{background:#d9487a;border-color:#d9487a;color:white;transform:translateY(-1px)}.btn-primary:disabled{background:#815164;border-color:#815164;color:#ddd}.btn-primary span{float:right;margin-left:18px;font-weight:400}.btn-outline-dark{background:transparent;color:#e8d7c9;border-color:#51454a}.btn-outline-dark:hover{background:#ffffff08;color:white;border-color:#b17c8e}.btn-sm{min-height:38px;font-size:12px;padding:8px 14px}.btn-link{color:#e8d7c9}.auth-switch{font-size:12px;color:var(--muted);text-align:center;margin-top:29px}.auth-switch a{margin-left:6px;color:#e8d7c9;text-underline-offset:4px}.auth-card form>.quiet-note{text-align:center;margin:0}
.form-card{background:linear-gradient(145deg,#1b191a,#151515);border:1px solid var(--line);border-radius:19px;padding:26px;margin:18px 0}.form-card p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.85}.step-label{display:block;font-size:9px;letter-spacing:.18em;color:#b48c9a;margin-bottom:14px}.form-card h2{margin-bottom:14px}.or-divider{display:flex;align-items:center;gap:16px;justify-content:center;color:#7d7478;font-size:11px;margin:23px 0}.or-divider:before,.or-divider:after{content:"";height:1px;background:var(--line);flex:1}.subtle-link{display:block;text-align:center;font-size:12px;margin-top:25px;color:#c2aaa9;text-underline-offset:5px}
.invitation-input{font-family:ui-monospace,Consolas,monospace;letter-spacing:.07em;font-size:13px}.invite-card{text-align:center}.invite-card>label{text-align:left}.couple-seal{width:105px;height:105px;border:1px solid #d9487a33;border-radius:50%;display:grid;place-items:center;margin:0 0 30px;background:#d9487a08}.couple-seal img{width:90px}.connection-state{font-size:12px;display:flex;align-items:center;gap:9px;margin-bottom:18px;color:#d7c5cb}.connection-state>span{height:6px;width:6px;background:#82b997;border-radius:50%;box-shadow:0 0 10px #82b99755}
.site-footer{text-align:center;margin:52px 0 10px;padding-top:24px;border-top:1px solid #ffffff09}.site-footer>span{font-family:var(--serif);color:#8b7f7c;letter-spacing:.25em;font-size:10px}.site-footer p{color:#7d7571;font-size:10px;margin:9px 0}.nav-menu{position:relative;z-index:5}.nav-menu>summary{list-style:none;cursor:pointer;width:43px;height:43px;display:grid;align-content:center;gap:7px;padding:11px;border:1px solid #ffffff1a;border-radius:50%}.nav-menu>summary::-webkit-details-marker{display:none}.nav-menu>summary span{height:1px;background:#e8d7c9;width:19px;display:block}.nav-menu[open]>summary{border-color:#d9487a99}.nav-menu nav{position:absolute;right:0;top:54px;background:#211b1f;border:1px solid #46363d;padding:14px;border-radius:16px;box-shadow:0 20px 60px #000a;width:230px}.nav-menu nav a,.nav-menu nav button{display:block;text-align:left;padding:11px 10px;font-size:13px;color:#e8d7c9;text-decoration:none;border:0;background:none;width:100%;border-radius:8px}.nav-menu nav a:hover,.nav-menu nav button:hover{background:#ffffff08}.menu-greeting{font-size:10px!important;color:#c27995;letter-spacing:.06em;padding:4px 10px 10px;margin:0;border-bottom:1px solid var(--line)}.nav-menu nav form{border-top:1px solid var(--line);margin-top:8px}
.alert{border:1px solid #514148;border-radius:12px;font-size:13px;padding:13px 16px}.alert-danger{background:#54233355;color:#f9bbc9}.alert-success{background:#20332977;color:#c3dfc8}.form-check-input{background-color:#383035;border-color:#74616a}.form-check-input:checked{background-color:#c33467;border-color:#c33467}.form-check-label{font-size:14px}
.category-complicite{--accent:#8faa90;--deep:#b4c9b5;--tint:#8faa9012}.category-romance{--accent:#d9789a;--deep:#efb4c7;--tint:#d9789a12}.category-jeu-surprise{--accent:#cba56c;--deep:#e1c596;--tint:#cba56c12}.category-aventure-decouverte{--accent:#7eaaa3;--deep:#acd0ca;--tint:#7eaaa312}.category-sensualite{--accent:#d09270;--deep:#e6b798;--tint:#d0927012}.category-intimite-desirs{--accent:#a08bbd;--deep:#c9b7df;--tint:#a08bbd12}.category-coquin-sexuel{--accent:#c7667a;--deep:#e9a1b0;--tint:#c7667a12}.category-bonus-extras{--accent:#c1a166;--deep:#dfc28d;--tint:#c1a16612}
.badge-category{display:inline-flex;align-items:center;gap:7px;border-radius:30px;background:var(--tint);border:1px solid color-mix(in srgb,var(--accent),transparent 70%);color:var(--deep);padding:5px 10px;font-size:10px;letter-spacing:.03em}.badge-category svg,.category-guide svg{width:15px;height:15px}.challenge-card{padding:27px;border:1px solid #ffffff1d;border-top:2px solid var(--accent);border-radius:21px;background:radial-gradient(ellipse at 85% 0,var(--tint),transparent 65%),#191718;box-shadow:0 25px 65px #0003}.card-topline,.card-bottomline{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-edition{font-size:8px;letter-spacing:.14em;color:#9c888f}.category-emblem{width:72px;height:72px;margin:33px auto 27px;border:1px solid color-mix(in srgb,var(--accent),transparent 65%);border-radius:50%;display:grid;place-items:center;background:var(--tint);color:var(--accent)}.category-emblem svg{width:30px;height:30px}.challenge-title{font-size:39px;text-align:center;color:var(--deep);outline:none}.challenge-instruction{font-size:14px;line-height:1.9;color:#c0b0b3;text-align:center;overflow-wrap:anywhere}.challenge-details{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-top:25px}.challenge-details>span{font-size:10px;color:#a99a9f}.challenge-details>span+span{border-left:1px solid var(--line);padding-left:19px}.challenge-details strong{display:block;font-size:13px;font-weight:500;color:var(--deep);margin-top:6px}.card-bottomline{margin-top:17px;font-size:10px;color:#a29097}.history-item{padding:20px;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:15px;background:#191718;margin:14px 0}.history-item h2{font-size:25px;margin:12px 0 4px}.history-item small,.status{font-size:11px;color:#a49b99}.status{float:right}.category-guide{display:flex;align-items:center;gap:8px;color:var(--deep);font-size:13px}.category-guide+dd{font-size:12px;color:var(--muted);margin:5px 0 16px}
.welcome-card{text-align:center;padding:25px 0}.welcome-card .couple-seal{margin:0 auto 30px}.welcome-card h1{font-size:46px}.welcome-card .btn{margin-top:10px;min-width:220px}.couple-caption{font-size:11px;color:#b9a6ad;margin:0 0 25px}
.draw-scene{text-align:center}.draw-intro{margin-bottom:29px}.draw-intro h1{font-size:40px}.draw-intro>p:last-child{font-size:13px;color:var(--muted)}.card-stage{position:relative;perspective:1400px;max-width:420px;margin:auto}.card-stage:before,.card-stage:after{content:"";position:absolute;inset:4px 3px -3px;border:1px solid #55424a;border-radius:21px;background:#1d181a;transform:rotate(-3deg)}.card-stage:after{transform:rotate(3deg);background:#1a1718}.flip-card{position:relative;display:grid;z-index:1;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.22,.7,.22,1)}.card-face{grid-area:1/1;min-width:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:21px}.card-back{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:365px;background:radial-gradient(ellipse at 50% 35%,#39222d,#191517 75%);border:1px solid #61404d;color:#e8d7c9;padding:35px}.card-back:before{content:"";position:absolute;inset:12px;border:1px solid #c6849c22;border-radius:13px}.back-ornament{width:125px;margin:0 auto 20px}.back-ornament img{width:100%}.back-brand{font-family:var(--serif);font-size:24px;letter-spacing:.15em;margin:0 0 13px}.back-caption{font-size:8px;line-height:1.9;letter-spacing:.22em;color:#ba8d9d}.card-corner{position:absolute;font-size:20px;color:#bc7c94}.corner-top{top:25px;left:25px}.corner-bottom{bottom:25px;right:25px}.card-front{transform:rotateY(180deg);visibility:hidden}.card-front .challenge-card{height:100%}.flip-card.is-revealed{transform:rotateY(180deg)}.flip-card.is-revealed .card-front{visibility:visible}.draw-actions{margin-top:28px}.draw-button{min-width:230px}.draw-status{font-size:12px;color:#bd8f9f;min-height:20px;margin:18px 0}.card-stage.is-shuffling{animation:shuffle-card .6s ease-in-out infinite}
@keyframes shuffle-card{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-7px) rotate(-2deg)}70%{transform:translateX(7px) rotate(2deg)}}
:focus-visible{outline:2px solid #e791ae;outline-offset:4px}summary{cursor:pointer}.page-create details{color:#c4afb7}.page-create .form-card label{display:block;margin-bottom:18px}
@media(min-width:760px){.page-login .app-shell,.page-register .app-shell{max-width:850px}.auth-card{padding:32px 38px;border:1px solid #ffffff10;border-radius:24px;background:linear-gradient(135deg,#21191d44,#15151599);max-width:490px}.site-header{margin-bottom:45px}}
@media(max-width:380px){.app-shell{padding:0 18px}.brand span{font-size:13px}.brand img{width:42px}.site-header{gap:10px;margin-bottom:40px}.form-card,.challenge-card{padding:21px}.invitation-input{font-size:11px}.card-edition{display:none}h1{font-size:39px}.welcome-card h1{font-size:39px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:#fceee6;-webkit-box-shadow:0 0 0 1000px #191919 inset;caret-color:#fceee6}

.admin-catalog{display:grid;gap:16px}.admin-item{background:#171717;border:1px solid #45333b;border-radius:20px;padding:20px}.admin-item summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer}.admin-item small{display:block;color:#c3abae;margin-top:6px}.admin-form{display:grid;gap:18px;margin-top:24px}.admin-form label{display:grid;gap:8px}.admin-durations{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:550px){.admin-durations{grid-template-columns:1fr}}
