:root{--ink: #15110c;--ink2: #1b1610;--panel: #211a12;--panel2: #2a2118;--gold: #cda44d;--gold-bright: #d8b256;--gold-dim: #9c7e3a;--gold-soft: rgba(205, 164, 77, .2);--gold-line: rgba(205, 164, 77, .12);--cream: #f1e8d6;--cream2: #bcae93;--faint: #8a7d64;--cobalt: #5a9cbd;--blood: #bb4a42;--green: #7bbf6e;--serif: "Hoefler Text", "Iowan Old Style", Palatino, Georgia, "Times New Roman", serif;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--gold);text-decoration:none}h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:1.15}.app{min-height:100%;display:flex;flex-direction:column}.wrap{width:100%;max-width:940px;margin:0 auto;padding:22px 18px 48px}.narrow{max-width:480px}.eyebrow{font-variant:small-caps;letter-spacing:1.5px;font-size:12px;color:var(--gold)}.serif{font-family:var(--serif)}.title{font-family:var(--serif);font-size:clamp(30px,7vw,46px)}.subtitle{font-family:var(--serif);font-style:italic;color:var(--cream2)}.muted{color:var(--cream2)}.faint{color:var(--faint)}.center{text-align:center}.small{font-size:13px}.deco-rule{display:flex;align-items:center;gap:10px;margin:18px 0}.deco-rule span{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5}.deco-rule i{width:8px;height:8px;transform:rotate(45deg);border:1px solid var(--gold);flex:none}.card{background:var(--panel);border:1px solid var(--gold-soft);border-radius:14px;padding:16px}.card+.card{margin-top:12px}.card-accent-gold{border-left:3px solid var(--gold)}.card-accent-cobalt{border-left:3px solid var(--cobalt)}.card-accent-blood{border-left:3px solid var(--blood)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;border:1px solid var(--gold-soft);background:transparent;color:var(--cream);font-size:15px;padding:11px 16px;cursor:pointer;font-family:var(--sans)}.btn:hover{border-color:var(--gold)}.btn-gold{background:var(--gold);color:var(--ink);border:none}.btn-gold:hover{background:var(--gold-bright)}.btn-danger{color:var(--blood);border-color:#bb4a4273}.btn-block{width:100%}.btn-sm{padding:8px 12px;font-size:13px}.btn:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{width:100%;background:var(--ink2);border:1px solid var(--gold-soft);color:var(--cream);border-radius:10px;padding:11px 12px;font-size:15px;font-family:var(--sans)}textarea{resize:vertical;min-height:70px;line-height:1.5}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}label{display:block;font-size:13px;color:var(--cream2);margin-bottom:6px}.field{margin-bottom:14px}.badge{font-variant:small-caps;letter-spacing:.6px;font-size:12px;color:var(--gold);border:1px solid var(--gold-soft);border-radius:20px;padding:2px 11px;display:inline-block}.codebig{font-family:var(--serif);font-size:40px;letter-spacing:7px;color:var(--gold)}.row{display:flex;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack>*+*{margin-top:10px}.grid{display:grid;gap:12px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-on{background:var(--green);box-shadow:0 0 6px #7bbf6e99}.dot-off{background:var(--faint)}.err{color:var(--blood);font-size:14px}.spin{color:var(--cream2);padding:30px 0;text-align:center}.pnav{position:fixed;bottom:0;left:0;right:0;display:flex;max-width:480px;margin:0 auto;background:#100c08;border-top:1px solid var(--gold-soft);padding:12px 0 16px}.pnav-item{flex:1;background:transparent;border:none;font-size:13px;font-family:var(--sans);cursor:pointer;font-variant:small-caps;letter-spacing:.6px}.brackets{position:absolute;top:22px;right:22px;bottom:22px;left:22px;pointer-events:none}.brackets i{position:absolute;width:30px;height:30px;border:1.5px solid var(--gold);opacity:.5}.brackets i.tl{top:0;left:0;border-right:none;border-bottom:none}.brackets i.tr{top:0;right:0;border-left:none;border-bottom:none}.brackets i.bl{bottom:0;left:0;border-right:none;border-top:none}.brackets i.br{bottom:0;right:0;border-left:none;border-top:none}
