*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--gold:#b8860b;--gold-light:#d4a42a;--gold-glow:#b8860b40;--parchment:#f5edd8;--parchment-dim:#f5edd8b3;--parchment-ghost:#f5edd859;--surface:#f5edd80a;--border:#b8860b38;--border-active:#b8860b8c;--rune-red:#8b1a1a;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font-display:"Cinzel Decorative", serif;--font-body:"Cormorant Garamond", Georgia, serif}html{scroll-behavior:smooth}body{color:var(--parchment);font-family:var(--font-body);min-height:100dvh;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);background:#0d0a05;overflow-x:hidden}.bg{pointer-events:none;z-index:0;background:radial-gradient(60% 40% at 20% 15%,#b8860b12 0%,#0000 70%),radial-gradient(50% 35% at 80% 85%,#8b1a1a12 0%,#0000 70%),#0d0a05;position:fixed;inset:0}.bg:after{content:"";background-image:radial-gradient(1px 1px at 12% 18%,#f5edd88c 0%,#0000 100%),radial-gradient(1px 1px at 28% 42%,#f5edd866 0%,#0000 100%),radial-gradient(1px 1px at 47% 8%,#f5edd880 0%,#0000 100%),radial-gradient(1px 1px at 63% 72%,#f5edd866 0%,#0000 100%),radial-gradient(1px 1px at 77% 28%,#f5edd88c 0%,#0000 100%),radial-gradient(1px 1px at 88% 58%,#f5edd84d 0%,#0000 100%),radial-gradient(2px 2px at 72% 45%,#d4a42a73 0%,#0000 100%),radial-gradient(2px 2px at 32% 32%,#d4a42a59 0%,#0000 100%);position:absolute;inset:0}.container{z-index:1;max-width:860px;margin:0 auto;padding:0 1.25rem 5rem;position:relative}header{text-align:center;padding:3rem 0 2.5rem}.rune-row{letter-spacing:.45em;color:var(--gold);opacity:.55;-webkit-user-select:none;user-select:none;margin:.6rem 0;font-size:1rem}h1{font-family:var(--font-display);color:var(--gold-light);letter-spacing:.15em;text-shadow:0 0 40px #d4a42a59,0 2px 6px #000000e6;font-size:clamp(2rem,7vw,3.8rem);font-weight:700;line-height:1.1}.tagline{color:var(--parchment-ghost);letter-spacing:.06em;margin-top:.4rem;font-size:1.05rem;font-style:italic}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:1.25rem;padding:1.75rem;position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:radial-gradient(at 0 0,#b8860b0d,#0000 55%);border-radius:14px;position:absolute;inset:0}.step-label{font-family:var(--font-display);letter-spacing:.3em;color:var(--gold);text-transform:uppercase;opacity:.75;margin-bottom:.9rem;font-size:.65rem}.upload-zone{text-align:center;cursor:pointer;border:2px dashed #b8860b4d;border-radius:10px;padding:2.5rem 1.5rem;transition:border-color .25s,background .25s}.upload-zone:hover,.upload-zone.drag{border-color:var(--gold-light);background:var(--gold-glow)}.upload-zone input{display:none}.upload-glyph{opacity:.5;margin-bottom:.6rem;font-size:2.8rem;display:block}.upload-primary{color:var(--parchment-dim);font-size:1.05rem;font-style:italic}.upload-secondary{color:var(--parchment-ghost);margin-top:.3rem;font-size:.82rem}#canvas-wrap{cursor:crosshair;border:1px solid var(--border);touch-action:none;border-radius:8px;display:none;position:relative;overflow:hidden}#rune-canvas{background:#000;width:100%;height:auto;max-height:460px;display:block}.canvas-hint{color:#f5edd8cc;pointer-events:none;white-space:nowrap;background:#0d0a05e0;border:1px solid #b8860b66;border-radius:20px;padding:5px 16px;font-size:.8rem;font-style:italic;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}#center-marker{pointer-events:none;position:absolute}.status-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.9rem;display:flex}.chip{border:1px solid var(--border);color:var(--parchment-ghost);background:#b8860b14;border-radius:20px;padding:3px 12px;font-size:.8rem;font-style:italic;transition:all .2s}.chip.ok{border-color:var(--border-active);color:var(--gold-light);background:#b8860b24}.btn-text{color:var(--parchment-ghost);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-style:italic;text-decoration:underline;transition:color .2s}.btn-text:hover{color:var(--parchment-dim)}.privacy-note{color:#f5edd838;text-align:center;margin-top:.75rem;font-size:.75rem;font-style:italic}textarea{border:1px solid var(--border);width:100%;color:var(--parchment);font-family:var(--font-body);resize:vertical;background:#f5edd808;border-radius:8px;outline:none;min-height:80px;padding:.8rem 1rem;font-size:1rem;transition:border-color .2s}textarea:focus{border-color:var(--border-active)}textarea::placeholder{color:#f5edd840;font-style:italic}.spread-grid{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:.5rem;margin-top:.5rem;display:grid}.spread-btn{background:var(--surface);border:1px solid var(--border);color:var(--parchment-ghost);font-family:var(--font-body);cursor:pointer;text-align:center;border-radius:8px;padding:.6rem .5rem;font-size:.9rem;font-style:italic;transition:all .2s}.spread-btn:hover{border-color:var(--gold);color:var(--parchment);background:var(--gold-glow)}.spread-btn.active{border-color:var(--gold-light);color:var(--gold-light);background:#b8860b1f}.btn-oracle{border:1px solid var(--gold);width:100%;color:var(--gold-light);font-family:var(--font-display);letter-spacing:.18em;cursor:pointer;text-shadow:0 0 14px #d4a42a4d;background:#b8860b1f;border-radius:10px;margin-top:1.5rem;padding:1rem;font-size:.9rem;transition:all .3s;display:block}.btn-oracle:hover:not(:disabled){background:#b8860b40;box-shadow:0 0 22px #b8860b2e}.btn-oracle:disabled{opacity:.35;cursor:not-allowed}#rate-info{color:var(--parchment-ghost);text-align:right;min-height:1rem;margin-top:.4rem;font-size:.78rem;font-style:italic}.error-box{color:#f5a0a0;background:#8b1a1a21;border:1px solid #8b1a1a66;border-radius:8px;margin-top:1rem;padding:.9rem 1.1rem;font-size:.92rem;display:none}.ad-slot{color:#f5edd826;background:#f5edd805;border:1px dashed #f5edd814;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:90px;margin-bottom:1.25rem;font-size:.75rem;font-style:italic;display:flex;overflow:hidden}#loading{text-align:center;padding:2.5rem 1rem}.spinner-rune{font-size:3rem;animation:2.4s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.9}}.loading-msg{color:var(--parchment-ghost);letter-spacing:.05em;margin-top:1rem;font-size:.95rem;font-style:italic}#interp-section{animation:.8s both rise}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.interp-header{align-items:center;gap:.9rem;margin-bottom:1.5rem;display:flex}.interp-glyph{color:var(--gold);opacity:.7;flex-shrink:0;font-size:1.5rem}.interp-title{font-family:var(--font-display);color:var(--gold-light);letter-spacing:.12em;font-size:1rem}#interp-body{color:#f5edd8de;font-size:1.08rem;font-weight:300;line-height:1.9}#interp-body h3{font-family:var(--font-display);color:var(--gold);letter-spacing:.25em;opacity:.85;margin:1.6rem 0 .5rem;font-size:.72rem}#interp-body p{margin-bottom:.9rem}#interp-body strong{color:var(--gold-light);font-weight:500}#interp-body em{color:#f5edd8b3;font-style:italic}footer{text-align:center;color:#f5edd82e;letter-spacing:.04em;margin-top:3rem;font-size:.78rem;font-style:italic;line-height:2}footer a{color:#f5edd84d;text-decoration:none}footer a:hover{color:var(--gold)}#install-banner{bottom:calc(1rem + var(--safe-bottom));border:1px solid var(--gold);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#140e04f2;border-radius:12px;align-items:center;gap:1rem;width:calc(100% - 2rem);max-width:380px;padding:.85rem 1.25rem;font-size:.88rem;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0009}#install-banner p{color:var(--parchment-dim);flex:1}#install-banner button{border:1px solid var(--gold);color:var(--gold-light);font-family:var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:4px 12px;font-size:.85rem}#install-banner .dismiss{color:var(--parchment-ghost);border:none;padding:2px 6px;font-size:1.1rem}@media (width<=560px){.container{padding:0 .9rem 4rem}.card{padding:1.25rem}h1{font-size:1.9rem}.spread-grid{grid-template-columns:1fr 1fr}}
