:root {
  color-scheme: dark;
  --ink: #f7edf7;
  --muted: #c6afc8;
  --panel: rgba(255,255,255,.055);
  --line: rgba(255,255,255,.13);
  --ember: #f05b72;
  --violet: #a96cf0;
}

* { box-sizing: border-box; }

html { min-height: 100%; background: #100813; }

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 16% 0%, rgba(180,55,91,.23), transparent 38rem),
    radial-gradient(circle at 94% 88%, rgba(112,61,167,.20), transparent 34rem),
    linear-gradient(145deg, #190c1b, #0d0911 65%);
}

button { font: inherit; }

.shell {
  width: min(100%, 64rem);
  min-height: 100vh;
  margin: auto;
  padding: max(3rem, env(safe-area-inset-top)) 1.25rem max(2rem, env(safe-area-inset-bottom));
  display: grid;
  align-items: center;
}

.screen { width: 100%; }
.eyebrow { color: var(--ember); text-transform: uppercase; letter-spacing: .19em; font-size: .72rem; font-weight: 800; }
h1 { max-width: 13ch; margin: .35rem 0 1rem; font-family: Georgia, serif; font-size: clamp(2.6rem, 8vw, 5.6rem); font-weight: 500; line-height: .98; }
.intro { max-width: 42rem; color: var(--muted); font-size: 1.03rem; line-height: 1.65; }

.choice-grid { display: grid; gap: 1rem; margin-top: 2rem; }

.profile-form { max-width: 42rem; margin-top: 2rem; display: grid; gap: 1rem; }
.profile-form fieldset { margin: 0; padding: 1.25rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--panel); display: grid; gap: .7rem; }
.profile-form legend { padding: 0 .5rem; color: #ff8798; font-family: Georgia, serif; font-size: 1.35rem; }
.profile-form label { margin-top: .35rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
.profile-form input, .profile-form select { width: 100%; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: .7rem; color: var(--ink); background: #170d19; font: inherit; }
.profile-form input:focus, .profile-form select:focus { border-color: #c494ff; outline: 2px solid rgba(196,148,255,.16); }

.choice-card {
  min-height: 17rem;
  padding: 1.5rem;
  border: 1px solid var(--line);
  border-radius: 1.25rem;
  color: var(--ink);
  background: var(--panel);
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.choice-card:hover, .choice-card:focus-visible { transform: translateY(-4px); border-color: rgba(255,255,255,.36); outline: none; }
.choice-card--ember:hover, .choice-card--ember:focus-visible { background: rgba(240,91,114,.12); }
.choice-card--violet:hover, .choice-card--violet:focus-visible { background: rgba(169,108,240,.12); }
.choice-number { color: var(--muted); font-size: .75rem; letter-spacing: .16em; }
.choice-title { margin-top: 2rem; font-family: Georgia, serif; font-size: 1.8rem; }
.choice-copy { margin-top: .75rem; color: var(--muted); line-height: 1.5; }
.choice-action { margin-top: auto; padding-top: 1.5rem; font-weight: 800; }
.choice-card--ember .choice-action { color: #ff8798; }
.choice-card--violet .choice-action { color: #c494ff; }

.fate-button, .back-button {
  border: 0;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .3em;
}

.fate-button { display: block; margin: .55rem auto 0; padding: .5rem .75rem; }
.choice-grid + .fate-button { margin-top: 1.5rem; }
.consent-note { margin: 1.1rem auto 0; max-width: 38rem; color: #9d8ca0; font-size: .78rem; line-height: 1.5; text-align: center; }
.back-button { margin-bottom: 2rem; padding: .5rem 0; }
.confirmation-card { max-width: 42rem; margin-top: 2rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--panel); line-height: 1.6; }
.primary-button { width: 100%; margin-top: 1rem; padding: 1rem; border: 0; border-radius: .8rem; color: #180d18; background: linear-gradient(90deg, #ff7188, #bf8aff); font-weight: 900; cursor: pointer; }

@media (min-width: 760px) {
  .shell { padding-inline: 2rem; }
  .choice-grid { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.app-shell{width:min(100%,70rem);margin:auto;padding:2rem 1.25rem 3rem}.app-header,.section-heading,.plan-item{display:flex;align-items:center;justify-content:space-between;gap:1rem}.page-title{font-size:clamp(2.3rem,7vw,4.5rem)}.icon-button{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:var(--panel);text-decoration:none}.leader-banner{margin:1.5rem 0 2.5rem;padding:1rem 1.25rem;border:1px solid rgba(240,91,114,.3);border-radius:1rem;background:linear-gradient(100deg,rgba(240,91,114,.13),rgba(169,108,240,.09))}.leader-banner span{display:block;font-family:Georgia,serif;font-size:1.5rem}.leader-banner small,.category-card small{color:var(--muted)}.section-heading{margin:2.5rem 0 1rem}.section-heading h2{margin:.15rem 0 0;font-family:Georgia,serif;font-weight:500}.section-heading .eyebrow{margin:0}.text-button{border:0;color:#ff8798;background:transparent;font-weight:800;cursor:pointer}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.category-card{min-height:5rem;border:1px solid var(--line);border-radius:.9rem;color:#c494ff;background:var(--panel);font-size:1.35rem;cursor:pointer;display:grid;place-items:center}.category-card.is-selected{border-color:#ff7188;background:rgba(240,91,114,.12)}.filters{margin:1rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.filters label{color:var(--muted);font-size:.75rem}.filters select,.end-day-form textarea{width:100%;margin-top:.35rem;padding:.75rem;border:1px solid var(--line);border-radius:.7rem;color:var(--ink);background:#170d19;font:inherit}.count-pill{padding:.3rem .6rem;border-radius:999px;color:var(--muted);background:var(--panel)}.activity-list,#plan-list,.end-day-form{display:grid;gap:.8rem}.activity-card,.plan-item{padding:1.1rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel)}.activity-card h3,.plan-item h3{margin:.2rem 0;font-family:Georgia,serif;font-size:1.35rem}.activity-card p:not(.eyebrow){color:var(--muted)}.meta-row{display:flex;gap:.45rem;margin:.7rem 0}.meta-row span{padding:.25rem .55rem;border-radius:999px;background:rgba(255,255,255,.07);font-size:.72rem}.secondary-button,.mini-button{padding:.7rem .85rem;border:1px solid var(--line);border-radius:.7rem;color:var(--ink);background:rgba(255,255,255,.07);font-weight:800}.empty-message{padding:1.2rem;border:1px dashed var(--line);border-radius:1rem;color:var(--muted);text-align:center}.plan-item{margin-bottom:.6rem}.plan-item.is-complete{opacity:.55}.plan-item.is-complete h3{text-decoration:line-through}.mini-button{padding:.45rem;font-size:.72rem;margin-left:.25rem}.primary-link{display:block;margin-top:2rem;text-align:center;text-decoration:none}.activity-dialog{width:min(calc(100% - 1.5rem),38rem);max-height:88vh;padding:1.5rem;border:1px solid var(--line);border-radius:1.25rem;color:var(--ink);background:#180e1b}.activity-dialog::backdrop{background:rgba(5,2,7,.82);backdrop-filter:blur(5px)}.dialog-close{float:right;border:0;color:var(--muted);background:transparent;font-size:1.8rem}.dialog-actions{display:grid;gap:.6rem}.option-group{margin:0;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel);display:grid;gap:.6rem}.option-group legend{padding:0 .5rem;font-family:Georgia,serif}.option-group input{position:absolute;opacity:0}.option-group span{display:block;padding:.8rem;border:1px solid var(--line);border-radius:.7rem;color:var(--muted)}.option-group input:checked+span{border-color:#ff7188;color:var(--ink);background:rgba(240,91,114,.12)}

@media(min-width:700px){.category-grid{grid-template-columns:repeat(4,1fr)}.activity-list{grid-template-columns:repeat(2,1fr)}}

.dialogue-section{margin:1.25rem 0;padding:1rem;border-left:3px solid #ff7188;border-radius:0 .8rem .8rem 0;background:rgba(240,91,114,.09)}
.dialogue-section h3{margin:0 0 .65rem;color:#ff8798;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}
.dialogue-section blockquote{margin:.55rem 0;color:var(--ink);font-family:Georgia,serif;font-size:1.2rem;font-style:italic;line-height:1.45}

.search-panel{margin:2rem 0}.search-panel>label{display:block;margin-bottom:.5rem;color:var(--muted);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.search-box{display:flex;align-items:center;border:1px solid var(--line);border-radius:1rem;background:var(--panel);overflow:hidden}.search-box>span{padding-left:1rem;color:#c494ff;font-size:1.4rem}.search-box input{flex:1;min-width:0;padding:1rem;border:0;color:var(--ink);background:transparent;font:inherit;outline:0}.search-box button{margin-right:.5rem;border:0;color:#ff8798;background:transparent;cursor:pointer}.kink-browser{margin:1.5rem 0;padding:1.2rem;border:1px solid rgba(169,108,240,.3);border-radius:1.2rem;background:rgba(169,108,240,.06)}.kink-browser .section-heading{margin:0 0 1rem}.kink-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.kink-option,.fetish-option{min-height:6rem;padding:.8rem;border:1px solid var(--line);border-radius:.8rem;color:var(--ink);background:var(--panel);cursor:pointer}.kink-option{display:grid;place-items:center;text-align:center}.kink-option>span{color:#c494ff;font-size:1.4rem}.kink-option strong{font-family:Georgia,serif}.kink-option small{color:var(--muted)}.fetish-option{min-height:3.5rem}.fetish-option.is-selected{border-color:#ff7188;background:rgba(240,91,114,.12)}.active-filter-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.8rem}.active-filter-chips button{padding:.4rem .65rem;border:1px solid rgba(255,113,136,.4);border-radius:999px;color:#ff9aaa;background:rgba(240,91,114,.1);cursor:pointer}.safety-section{margin:1rem 0;padding:1rem;border:1px solid rgba(255,193,92,.3);border-radius:.8rem;background:rgba(255,193,92,.07)}.safety-section h3{margin-top:0;color:#ffd18a}.safety-section li{margin:.4rem 0;color:#e8d8bd}

@media(min-width:700px){.category-grid{grid-template-columns:repeat(5,1fr)}.kink-options{grid-template-columns:repeat(3,1fr)}}

.search-panel{margin:2.25rem 0 1.5rem;padding:1rem;border:1px solid rgba(196,148,255,.28);border-radius:1.1rem;background:linear-gradient(135deg,rgba(169,108,240,.10),rgba(240,91,114,.06))}.search-panel>label{margin:0 0 .7rem;color:#f4e8f5;font-size:1rem;font-weight:700;text-transform:none;letter-spacing:0}.search-box{min-height:3.75rem;border:1px solid rgba(255,255,255,.2);border-radius:.85rem;background:#0f0812;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.search-box:focus-within{border-color:#c494ff;box-shadow:0 0 0 3px rgba(196,148,255,.12)}.search-box>span{padding-left:1rem;font-size:1.6rem}.search-box input{height:3.65rem;padding:.8rem 1rem;font-size:1rem}.search-box input::placeholder{color:#8f7f93}.search-box button{padding:.55rem .7rem;border-radius:.55rem;background:rgba(255,113,136,.1)}.kink-option{min-height:8rem;padding:1rem}.kink-option strong{font-size:1.08rem}.kink-option small{margin-top:.25rem;line-height:1.35}.kink-browser{padding:1rem}.kink-options{grid-template-columns:1fr}

@media(min-width:560px){.kink-options{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.kink-options{grid-template-columns:repeat(3,1fr)}}

.kink-option em{margin-top:.5rem;color:#ff9aaa;font-size:.72rem;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.08em}

.build-marker{margin:1.5rem 0 0;color:#786a7b;font-size:.68rem;text-align:center}
