:root{--font-sans: "Courier New", ui-monospace, SFMono-Regular, Menlo, monospace;--font-spirit: Georgia, "Times New Roman", serif;--a: #9b1927;--a-glow: rgba(155, 25, 39, .42);--r: #d32f3f;--r-glow: rgba(211, 47, 63, .38);--cyan: #94a6a3;--success: #5dffa8;--warning: #ff7a00;--bg: #050505;--bg-card: rgba(12, 12, 12, .94);--p: rgba(255, 255, 255, .045);--p-hover: rgba(255, 255, 255, .08);--l: rgba(255, 255, 255, .09);--l-bright: rgba(255, 255, 255, .18);--tx: #c5c1bc;--tx-bright: #e8e1d8;--mu: #706d69;--mood-calmo: #9b1927;--mood-furioso: #ff3b5c;--mood-hambriento: #ff7a00;--mood-burlon: #2eea8a;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;color-scheme:dark;background:var(--bg)}body{font-family:var(--font-sans);background:var(--bg);color:var(--tx);line-height:1.55;letter-spacing:.015em;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(500px 380px at 50% -10%,rgba(90,13,19,.13),transparent 70%),linear-gradient(112deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:auto,47px 47px;pointer-events:none;z-index:-1}.app{min-height:100dvh;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;position:relative;isolation:isolate}.intro-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;align-content:center;gap:12px;background:#050505;color:var(--tx);text-align:center;cursor:pointer}.intro-screen:before{content:"";position:absolute;top:8vw;right:8vw;bottom:8vw;left:8vw;border:1px solid rgba(155,25,39,.25);box-shadow:inset 0 0 90px #5a0a1229;pointer-events:none}.intro-mark{display:grid;place-items:center;width:92px;height:92px;border:1px solid var(--r);color:var(--r);font:700 58px/1 Georgia,serif;text-shadow:0 0 24px rgba(211,47,63,.5)}.intro-title{margin:18px 0 0;color:var(--tx-bright);font:600 clamp(28px,5vw,60px)/1 var(--font-sans);letter-spacing:.28em;text-indent:.28em}.intro-subtitle{margin:0;color:var(--mu);font:11px/1.4 var(--font-sans);letter-spacing:.25em}.intro-enter{min-width:140px;min-height:48px;margin-top:26px;padding:0 28px;border:1px solid var(--r);background:transparent;color:var(--tx-bright);font:600 12px var(--font-sans);letter-spacing:.18em;cursor:pointer}.mesa-status-mark{width:8px;height:8px;border-radius:50%;background:var(--r);box-shadow:0 0 14px var(--r)}.mesa-offering-icon{display:inline-flex;color:var(--r);vertical-align:middle;margin-left:8px}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.08;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");mix-blend-mode:screen}.card{background:var(--bg-card);border:1px solid var(--l);border-radius:4px;padding:24px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);box-shadow:0 22px 60px -25px #000000fa,inset 0 1px #ffffff09;transition:border-color .25s ease,box-shadow .25s ease}.card:hover{border-color:var(--l-bright)}.card-highlight{border-color:var(--a-glow);box-shadow:0 0 30px -5px var(--a-glow),inset 0 1px #ffffff26}.btn{background:#68151d;color:#fff;font-family:var(--font-sans);font-weight:600;padding:13px 22px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.15);cursor:pointer;font-size:15px;letter-spacing:.01em;box-shadow:0 5px #300a0e;transition:transform .15s ease,box-shadow .2s ease,filter .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:hover{filter:brightness(1.12);box-shadow:0 5px #300a0e,inset 0 0 0 1px #ffffff29}.btn:active{transform:scale(.97)}.btn.ghost{background:#ffffff08;border:1px solid var(--l);box-shadow:none;color:var(--tx)}.btn.ghost:hover{border-color:var(--a);background:#9b192729;color:#fff}.btn.danger{background:linear-gradient(135deg,var(--r) 0%,#b81434 100%);box-shadow:0 4px 20px -2px var(--r-glow)}.btn.danger:hover{box-shadow:0 6px 26px 0 var(--r-glow)}.input-dark{padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--l);background:#07040cb3;color:#fff;width:100%;font-size:16px;font-family:var(--font-sans);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.input-dark:focus{border-color:var(--a);box-shadow:0 0 15px -3px var(--a-glow)}.title{font-family:var(--font-spirit);font-size:clamp(38px,9vw,80px);letter-spacing:.02em;font-weight:700;line-height:1.05;margin:12px 0;color:#d5cec4;text-shadow:2px 2px 0 #2b0a0d}.spirit-text{font-family:var(--font-spirit);font-style:italic;font-size:1.25rem;letter-spacing:.03em;color:#f3ecff}.meter{height:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:99px;overflow:hidden;margin:12px 0;position:relative}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--a),var(--r));width:0;border-radius:99px;box-shadow:0 0 12px var(--a-glow);transition:width .4s cubic-bezier(.16,1,.3,1)}.cup-w{position:relative;width:180px;height:180px;margin:auto;perspective:600px}.glow{position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;border-radius:50%;background:conic-gradient(var(--a),var(--r),var(--cyan),var(--a));filter:blur(24px);opacity:.25;animation:sp 7s linear infinite;transition:opacity .35s ease,filter .35s ease}.cup-w.on .glow{opacity:.9;filter:blur(28px);animation-duration:1.6s}.cup{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;display:grid;place-items:center;text-align:center;font-weight:700;font-size:13px;color:#fff;transition:transform .15s ease,filter .3s ease,box-shadow .3s ease;background:radial-gradient(circle,#ffffff0f,#9b192738 52%,#140c0eeb 70%,#ffffff38 73%,#9b19271f 82%,#ffffff0a);border:2px solid rgba(255,255,255,.35);box-shadow:inset 0 0 30px #fff3,inset 0 -16px 34px #8b6cff73,0 20px 45px #000000b3,0 0 0 6px #ffffff0d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cup .in{position:absolute;top:17%;right:17%;bottom:17%;left:17%;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.2),transparent 60%);box-shadow:inset 0 0 24px #8b6cff80}.cup .hl{position:absolute;top:9%;left:13%;width:48%;height:24%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.7),transparent);transform:rotate(-28deg)}.cup span{position:relative;text-shadow:0 0 12px rgba(0,0,0,.9);letter-spacing:.08em;line-height:1.35;font-family:var(--font-sans);text-transform:uppercase}.cup-w.on .cup{filter:brightness(1.4) saturate(1.2);box-shadow:inset 0 0 35px #ffffff59,inset 0 -16px 40px #8b6cffb3,0 20px 50px #000c,0 0 25px #8b6cff80}.nav-tabs{display:inline-flex;padding:5px;background:#120c1ebf;border:1px solid var(--l);border-radius:2px;gap:5px;margin-bottom:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 6px 20px -4px #0006}.nav-tab{padding:10px 18px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--mu);font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:7px;-webkit-user-select:none;user-select:none}.nav-tab:hover{color:var(--tx);background:#ffffff0d}.nav-tab.active{color:#fff;background:#75151d47;border-color:#9b19278c;box-shadow:inset 0 -2px 0 var(--r)}.sigil{color:var(--r);font-weight:700;font-size:18px;border:1px solid var(--r);padding:0 5px;line-height:1.2}.status-mark{width:7px;height:7px;border-radius:50%;background:var(--r);box-shadow:0 0 0 3px #9b192726}.ghost-mark{color:#a79e93;font:700 14px/1 var(--font-sans);letter-spacing:.3em;opacity:.55}.consent-box{display:flex;align-items:flex-start;gap:12px;margin-top:16px;padding:14px;border-radius:var(--radius-md);background:#ffffff05;border:1px solid var(--l);cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease}.consent-box:hover{border-color:#8b6cff66;background:#8b6cff08}.consent-box input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--mu);background:#00000080;outline:none;cursor:pointer;margin-top:2px;flex-shrink:0;position:relative;transition:all .2s ease}.consent-box input[type=checkbox]:checked{background:var(--a);border-color:var(--a);box-shadow:0 0 12px var(--a-glow)}.consent-box input[type=checkbox]:checked:after{content:"✓";position:absolute;color:#fff;font-size:13px;font-weight:700;top:50%;left:50%;transform:translate(-50%,-50%)}.vt{padding:14px 18px;background:#ffffff08;border:1px solid var(--l);border-radius:var(--radius-md);color:var(--tx);font-size:15px;font-weight:600;font-family:var(--font-sans);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.vt:hover{border-color:var(--r-glow);background:#ff3b5c14;transform:translate(4px)}.vt.me{border-color:var(--r);background:#ff3b5c40;box-shadow:0 0 20px -3px var(--r-glow);color:#fff}.ofr{display:inline-flex;align-items:center;justify-content:center;font-size:38px;width:64px;height:64px;padding:12px;border-radius:4px;background:#ffffff0a;border:1px solid var(--l);cursor:grab;-webkit-user-select:none;user-select:none;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease}.offering-current{display:grid;place-items:center;width:86px;height:86px;margin:12px auto;color:var(--r);border:1px solid rgba(211,47,63,.48);background:#480a1038;box-shadow:inset 0 0 24px #9b192724}.ofr:hover{transform:translateY(-6px) scale(1.1);border-color:var(--a);box-shadow:0 10px 20px -5px var(--a-glow)}.ofr:active{cursor:grabbing;transform:translateY(-2px) scale(.95)}@media (max-width: 560px){.app{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.card{padding:18px 14px;width:100%;overflow:hidden}.session-header{gap:10px;margin-bottom:12px!important}.session-header>div:first-child{min-width:0}.session-header>div:first-child>div:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-header>div:last-child{flex:0 0 auto}.nav-tabs{width:calc(100vw - 24px)!important;justify-content:flex-start!important;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{flex:0 0 auto;min-height:44px;padding:10px 13px;scroll-snap-align:start;white-space:nowrap}.screen-panel h2{font-size:clamp(22px,7vw,30px)!important}.screen-panel h3{line-height:1.2}.input-dark{min-height:50px}.btn{width:100%;min-height:50px}.screen-panel .btn+.btn{margin-top:8px}.cup-stage{width:min(72vw,220px)!important;height:min(72vw,220px)!important;margin:18px auto!important}.cup-stage>div,.cup-stage canvas{max-width:100%;max-height:100%}.ritual-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.ritual-actions .btn{width:100%!important;flex:none!important}.screen-panel>div[style*="display: flex"]{flex-wrap:wrap}.screen-panel>div[style*="display: flex"]>.btn{flex:1 1 100%!important}.cup-w,.cup-w .cup{width:188px;height:188px}.screen-panel canvas{height:132px!important}}@media (hover: none) and (pointer: coarse){.btn:hover,.nav-tab:hover,.card:hover,.ofr:hover{filter:none;transform:none}.btn:active{transform:scale(.975)}}@keyframes hb{0%,70%,to{transform:scale(1)}14%{transform:scale(1.08)}28%{transform:scale(1.02)}42%{transform:scale(1.12)}}@keyframes sp{to{transform:rotate(360deg)}}@keyframes sh{0%,to{transform:translate(0)}25%{transform:translate(-3px) rotate(-1deg)}75%{transform:translate(3px) rotate(1deg)}}@keyframes bl{50%{opacity:0}}@keyframes fl2{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(-6px);opacity:.3}}@keyframes pulseGlow{0%,to{filter:drop-shadow(0 0 15px rgba(139,108,255,.4))}50%{filter:drop-shadow(0 0 30px rgba(139,108,255,.8))}}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
