:root{--gold: #c9974a;--gold-light: #e8c07a;--gold-dim: rgba(201,151,74,.15);--gold-border: rgba(201,151,74,.28);--bg: #0e0b1e;--bg2: #13102a;--bg3: #1a162f;--surface: rgba(255,255,255,.04);--surface2: rgba(255,255,255,.07);--border: rgba(255,255,255,.07);--text: #f0e6d3;--text-dim: #a09070;--text-faint: #5a4a38;--blue: #4a7a9b;--blue-dim: rgba(74,122,155,.15);--green: #4a8a6a;--green-dim: rgba(74,138,106,.15);--rose: #9b4a6a;--rose-dim: rgba(155,74,106,.15);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow: 0 4px 24px rgba(0,0,0,.4);--transition: all .2s ease;--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Lato", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;background-image:radial-gradient(ellipse at 15% 15%,rgba(201,151,74,.07) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(74,122,155,.05) 0%,transparent 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:var(--font-sans);border:none;outline:none}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}textarea,input{font-family:var(--font-sans);font-size:14px;outline:none;resize:vertical}a{color:var(--gold);text-decoration:none}img{max-width:100%}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c9974a4d;border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.animate-fade-up{animation:fadeUp .4s ease both}.animate-fade-in{animation:fadeIn .3s ease both}.app-shell{display:flex;flex-direction:column;min-height:100vh;max-width:600px;margin:0 auto}.main-content{flex:1;padding:20px 16px 100px;overflow-x:hidden}.app-header{position:sticky;top:0;z-index:100;background:#0e0b1ee0;border-bottom:1px solid var(--gold-border);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.header-eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:2px}.header-title{font-family:var(--font-serif);font-size:17px;color:var(--text)}.week-badge{background:var(--gold-dim);border:1px solid var(--gold-border);border-radius:20px;padding:5px 13px;font-size:11px;color:var(--gold);letter-spacing:.5px;white-space:nowrap}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:600px;background:#0e0b1ef2;border-top:1px solid var(--gold-border);display:flex;z-index:100;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px 4px 12px;background:none;border:none;color:var(--text-faint);font-size:10px;gap:4px;letter-spacing:.5px;text-transform:uppercase;transition:var(--transition);-webkit-tap-highlight-color:transparent}.nav-item .nav-icon{font-size:20px;transition:var(--transition)}.nav-item.active{color:var(--gold)}.nav-item.active .nav-icon{transform:translateY(-2px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.card-gold{border-color:var(--gold-border);background:#c9974a0d}.card-blue{border-color:#4a7a9b4d;background:var(--blue-dim)}.card-green{border-color:#4a8a6a4d;background:var(--green-dim)}.card-rose{border-color:#9b4a6a4d;background:var(--rose-dim)}.card-hero{position:relative;overflow:hidden;border-color:var(--gold-border);background:linear-gradient(135deg,#c9974a14,#0e0b1e99);padding:20px}.card-hero:before{content:"";position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(201,151,74,.12),transparent 70%);pointer-events:none}.label{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:700}.label-blue{color:var(--blue)}.label-green{color:var(--green)}.label-dim{color:var(--text-faint)}h1{font-family:var(--font-serif);font-size:26px;font-weight:700}h2{font-family:var(--font-serif);font-size:21px;font-weight:600;line-height:1.3}h3{font-family:var(--font-serif);font-size:16px;font-weight:600}p{font-size:14px;color:#c8b89a;line-height:1.75}.text-gold{color:var(--gold)}.text-dim{color:var(--text-dim)}.text-faint{color:var(--text-faint)}.text-serif{font-family:var(--font-serif)}.italic{font-style:italic}.btn{display:block;width:100%;background:linear-gradient(135deg,var(--gold),#9a6828);border:none;border-radius:var(--radius);padding:14px 20px;color:#fff;font-size:14px;font-weight:700;letter-spacing:.5px;margin-top:14px;transition:var(--transition)}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:active{transform:translateY(0);opacity:1}.btn:disabled{background:var(--surface2);color:var(--text-faint);cursor:not-allowed;transform:none}.btn-blue{background:linear-gradient(135deg,var(--blue),#2d5a7a)}.btn-green{background:linear-gradient(135deg,var(--green),#2d6a4a)}.btn-outline{background:transparent;border:1px solid var(--gold-border);color:var(--gold);font-weight:400}.btn-sm{width:auto;display:inline-block;padding:8px 18px;font-size:12px;margin-top:0}.mood-grid{display:flex;flex-wrap:wrap;gap:7px}.mood-btn{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 13px;font-size:13px;color:var(--text);transition:var(--transition);-webkit-tap-highlight-color:transparent}.mood-btn:hover{border-color:var(--gold-border)}.mood-btn.her{background:#9b4a6a33;border-color:#9b4a6a80}.mood-btn.his{background:#4a7a9b38;border-color:#4a7a9b80}.mood-btn.int{background:var(--gold-dim);border-color:var(--gold-border)}.commit-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;cursor:pointer;transition:var(--transition);-webkit-tap-highlight-color:transparent}.commit-item:hover{border-color:var(--gold-border)}.commit-item.done{background:#4a8a6a1a;border-color:#4a8a6a4d}.check-circle{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px;transition:var(--transition)}.commit-item.done .check-circle{background:var(--green);border-color:var(--green);color:#fff}.response-box{background:#c9974a12;border:1px solid var(--gold-border);border-radius:var(--radius-lg);padding:20px;margin-top:16px;animation:fadeUp .4s ease both}.response-icon{font-size:30px;margin-bottom:10px}.response-title{font-family:var(--font-serif);font-size:18px;color:var(--gold);margin-bottom:8px}.response-text{font-size:14px;line-height:1.85;color:var(--text);margin-bottom:14px}.action-bar{background:#c9974a1f;border-left:3px solid var(--gold);padding:10px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:13px;color:var(--text);margin-bottom:12px}.reflect-q{font-style:italic;font-size:13px;color:var(--text-dim);padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day-dot{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;transition:var(--transition);border:1px solid var(--border);background:var(--surface);color:var(--text-faint);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.day-dot.done{background:#4a8a6a40;border-color:#4a8a6a66;color:var(--green)}.day-dot.today{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);font-weight:700}.day-dot:hover{border-color:var(--gold-border)}.phrase-row{display:flex;gap:8px;align-items:center;padding:9px 12px;background:var(--surface);border-radius:var(--radius-sm);margin-bottom:6px;font-size:13px}.phrase-from{flex:1;color:#c86464cc;text-decoration:line-through}.phrase-to{flex:1;color:#7abf8a}.phrase-sep{color:var(--text-faint);font-size:11px}.week-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.week-tab{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 4px;text-align:center;cursor:pointer;transition:var(--transition);font-size:11px;color:var(--text-dim);line-height:1.4;-webkit-tap-highlight-color:transparent}.week-tab.active{background:var(--gold-dim);border-color:var(--gold-border);color:var(--text)}.week-tab .wk-num{font-family:var(--font-serif);font-size:20px;color:var(--gold);display:block;margin-bottom:1px}.pattern-chart{display:flex;gap:5px;align-items:flex-end;height:80px;margin:12px 0 8px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}.bar-her,.bar-his{width:100%;border-radius:4px 4px 0 0;transition:height .5s ease;min-height:4px}.bar-her{background:#9b4a6a8c}.bar-his{background:#4a7a9b8c}.bar-day{font-size:10px;color:var(--text-faint);margin-top:2px}.nonneg{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;background:#9b4a4a14;border:1px solid rgba(155,74,74,.2);border-radius:var(--radius-sm);margin-bottom:7px;font-size:13px;color:#d4a0a0}.field{width:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:13px 14px;color:var(--text);font-size:14px;line-height:1.7;min-height:90px;margin-top:8px;transition:border-color .2s}.field:focus{border-color:var(--gold-border)}.divider{border:none;border-top:1px solid var(--border);margin:18px 0}.history-item{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px;gap:8px}.history-item:last-child{border-bottom:none}.intensity-pill{background:var(--gold-dim);border-radius:10px;padding:2px 9px;font-size:11px;color:var(--gold);white-space:nowrap}.end-q{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surface);border-radius:var(--radius-sm);margin-bottom:8px;font-size:14px;color:#c8b89a;gap:12px}.yn-pair{display:flex;gap:6px;flex-shrink:0}.yn{padding:5px 14px;border-radius:20px;font-size:12px;border:1px solid;font-family:var(--font-sans);transition:var(--transition)}.yn-y{border-color:#4a8a6a66;color:var(--green);background:var(--green-dim)}.yn-n{border-color:#9b4a4a66;color:#9b4a4a;background:#9b4a4a1a}.yn.sel-y{background:#4a8a6a59;border-color:var(--green)}.yn.sel-n{background:#9b4a4a4d;border-color:#9b4a4a}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%) translateY(10px);background:#4a8a6af2;color:#fff;padding:9px 22px;border-radius:20px;font-size:13px;z-index:999;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .3s,transform .3s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;text-align:center;max-width:480px;margin:0 auto;animation:fadeIn .6s ease}.landing-logo{font-size:56px;margin-bottom:20px;animation:pulse 3s ease-in-out infinite}.landing-eyebrow{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:12px}.landing h1{font-size:32px;line-height:1.25;margin-bottom:8px;background:linear-gradient(135deg,var(--gold-light),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-sub{font-size:15px;color:var(--text-dim);margin-bottom:32px;line-height:1.6}.landing-features{width:100%;text-align:left;margin-bottom:28px}.landing-feature{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;font-size:13px;color:#c8b89a}.landing-feature span:first-child{font-size:20px;flex-shrink:0}@media (max-width: 360px){.week-tab .wk-num{font-size:16px}h2{font-size:18px}}@media (min-width: 600px){.bottom-nav{border-radius:0}}
