html,body,#root{margin:0;min-height:100%;background:#000;font-family:Pitch,ui-sans-serif,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}html{overflow-x:hidden}.title-ascii{display:block;font-family:IosevkaCustom,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(3px,calc((100vw - 48px) / 92),10px);white-space:pre;line-height:1;margin:0 auto;max-width:100%;overflow:hidden;font-weight:100;box-sizing:border-box}.layer>p{max-width:80ch;text-align:center}.layer{position:relative;z-index:1;min-height:100dvh;min-height:100svh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;padding:max(24px,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));gap:18px}.layer.isReading{height:100dvh;height:100svh;overflow:hidden;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom));gap:8px}.shuffle-wrap{display:flex;flex-direction:column;align-items:center;gap:16px}@font-face{font-family:IosevkaCustom;src:url(/IosevkaCustom-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Pitch;src:url(/Pitch.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--font-ui: "Pitch", ui-sans-serif, system-ui, sans-serif;--font-mono: "IosevkaCustom", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--card-font: 8px;--card-line: 1}html,body{margin:0;font-family:var(--font-ui);background:#000;color:#fff}pre.stars-ascii{position:fixed;inset:0;margin:0;padding:0;font-family:var(--font-mono);display:flex;flex-direction:column;align-items:center;justify-content:center;white-space:pre;font-size:16px;line-height:10px;text-align:center;background-color:#000;color:#fff;opacity:.2;transform-origin:center;overflow:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.visuallyHidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.header{text-align:center;font-size:15px;margin-top:0;width:min(100%,720px);padding-top:36px;position:relative;z-index:1}.layer.isReading .header{flex:0 0 auto}.subTitle{opacity:.8;font-size:clamp(13px,2.4vw,18px);font-family:var(--font-ui);margin:8px 0 0}.subTitle i{display:block;font-family:var(--font-ui);font-style:italic}.ritual-hint{margin-top:8px;margin-bottom:10px;opacity:1;text-align:center;max-width:36ch;padding:0 12px}.modeToggle{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:9999;display:flex;gap:8px;background-color:#0000008d}.modeToggle button,.spreadToggle button,.meaningSheetClose,.meaningSheetArrow{font-family:var(--font-ui);background:#0000008c;border:1px solid rgba(255,255,255,.18);color:#fff;padding:6px 10px;border-radius:999px;cursor:pointer;touch-action:manipulation}.modeToggle button:disabled,.spreadToggle button:disabled{opacity:.5;cursor:not-allowed}.modeToggle{align-items:center;border-radius:999px;padding:4px 4px 4px 10px}.modeToggleLabel{font-family:var(--font-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ffffff8c;white-space:nowrap}.modeToggle button{border-color:#ffffff52;color:#ffffffb8;font-size:13px}.modeToggle button.active{background:#4300797c;border-color:#ffffff8c;color:#fff}.modeToggle button.active:disabled{opacity:.85}.stage{position:relative;width:100%;flex:1 1 auto;min-height:0;overflow:hidden;font-family:var(--font-mono);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.stage.isRitual{overflow:visible;z-index:4}.stage.isRitual>.fade.fade-in{overflow:visible}.stage.isRitual .spreadToggle{z-index:1}.stage.isRitual .ritualMain,.stage.isRitual .shuffle-wrap,.stage.isRitual .deckPress{position:relative;z-index:12}.stage.isRitual .deck{z-index:13;isolation:isolate}.stage>.fade{width:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.fade{transition:opacity .9s ease,transform .9s ease}.stage>.fade.fade-out,.fade-out{opacity:0;transform:scale(.98);pointer-events:none;position:absolute;inset:0}.stage>.fade.fade-in,.fade-in{position:relative;opacity:1}.boardFade.fade-in{flex:1 1 auto;width:100%;min-height:0;height:100%}.flipCard{display:inline-block;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ascii.cardAscii{font-size:var(--card-font);line-height:var(--card-line)}.flipInner{display:grid;transform-style:preserve-3d;transition:transform 1.5s cubic-bezier(.22,1,.36,1)}.flipCard.isFlipped .flipInner{transform:rotateY(180deg)}.flipSide{grid-area:1 / 1;background:#000c;height:calc(var(--card-rows, 87) * var(--card-font));display:inline-flex;align-items:center;justify-content:center;backface-visibility:hidden;transform-style:preserve-3d;pointer-events:none;color:#fffc}.flipBack{color:#ffffffb3}.flipFront{color:#ffffffeb}.flipBack{transform:translateZ(1px)}.flipFront{--rev-rot: 0deg;transform:rotateY(180deg) translateZ(1px) rotate(var(--rev-rot))}.flipFront.rev{--rev-rot: 180deg}.ascii{font-family:var(--font-mono);white-space:pre;line-height:1;font-variant-ligatures:none;font-size:8px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dealRow{display:flex;gap:32px;margin-top:0}.dealCard{--delay: calc(var(--i) * .18s);animation:dealIn .7s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--delay);perspective:1400px;opacity:0;transform:translateY(-220px) translate(40px) rotate(-6deg) scale(.96)}@keyframes dealIn{0%{opacity:0;transform:translateY(-220px) translate(40px) rotate(-6deg) scale(.96)}60%{opacity:1}to{opacity:1;transform:translateY(0) translate(0) rotate(0) scale(1)}}.tiltOuter{perspective:1400px;display:inline-block;position:relative;z-index:0}.cardHover{transform-style:preserve-3d;transition:transform .22s cubic-bezier(.22,1,.36,1);will-change:transform}@media(hover:hover)and (pointer:fine){.tiltOuter:hover .cardHover{transform:scale(1.01);filter:drop-shadow(0 10px 18px rgba(0,0,0,.55)) drop-shadow(0 0 14px rgba(255,255,255,.1))}}.cardColumn{position:relative;display:flex;flex-direction:column;align-items:center;z-index:0}.slotLabel{letter-spacing:1.5px;font-size:12px;white-space:nowrap;font-family:var(--font-ui)}.meaningWindow,.meaningTitle{--suit: rgba(255, 255, 255, .35)}.suit-major{--suit: #976b00}.suit-cups{--suit: #6a0000}.suit-pentacles{--suit: #053e13}.suit-swords{--suit: #33677a}.suit-wands{--suit: #5a0099}.meaningWindow{position:absolute;left:50%;top:100%;transform:translate(-50%,10px);padding:10px 12px;background:color-mix(in srgb,var(--suit) 25%,rgba(0,0,0,.75));border-radius:10px;opacity:0;pointer-events:none;z-index:1000;transition:opacity .18s ease,transform .18s ease}.meaningTitle{display:inline-block;padding:4px 12px;margin-bottom:6px;letter-spacing:.06em;text-transform:uppercase;color:#fff;border-radius:999px;background:color-mix(in srgb,var(--suit) 100%,rgba(0,0,0,.35))}.spreadBoard.cc .meaningWindow{max-width:175px;padding:10px}.spreadBoard.cc .meaningTitle{font-size:12px;width:150px;text-align:center}.spreadBoard.ppf .meaningWindow{max-width:350px;padding:10px}.spreadBoard.ppf .meaningTitle{font-size:14px;width:300px;text-align:center}.cardFrame{display:inline-block}.cardHitArea{position:relative;display:inline-block}@media(hover:hover)and (pointer:fine){.cardHitArea:hover .meaningWindow{opacity:1;transform:translate(-50%,16px)}}.spreadToggle{position:relative;z-index:10;margin-bottom:48px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.spreadToggle button{margin-bottom:0;border:1px solid rgba(255,255,255,.104)}.spreadToggle button.active{background:#4300797c;color:#fff;border-color:#0000007b;transition:all .5s ease-in-out}.spreadBoard{position:relative;z-index:0;overflow:visible}.slot{position:absolute;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:var(--slot-z, 1)}.slot.isFocused,.slot:hover{z-index:9999}.slot{transition:opacity .32s ease,filter .32s ease}.spreadBoard.isFocusing .slot:not(.isFocused){opacity:.3;filter:saturate(.55)}.spreadBoard.isFocusing .slot:not(.isFocused) .slotLabel{opacity:.6}.spreadBoard.cc .cc-2>.cardColumn>.slotLabel{opacity:1;color:#fff}.ritual-ui{font-family:var(--font-ui);display:flex;flex-direction:column;align-items:center;margin-top:12px;width:100%}.ritualMain{display:flex;flex-direction:column;align-items:center;min-height:min(520px,58dvh);overflow:visible}.deckPress{display:inline-block;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;position:relative;z-index:1;overflow:visible}.ritualKeys{max-width:min(420px,90vw);width:100%;height:auto}.boardViewport{position:relative;width:100%;flex:1 1 auto;min-height:min(70dvh,900px);height:100%;overflow:hidden;overscroll-behavior:none}.boardViewport.isExplorable{touch-action:none;cursor:grab}.boardViewport.isExplorable:active{cursor:grabbing}.boardWorld{position:absolute;left:50%;top:50%;width:0;height:0;transform-origin:0 0;will-change:transform}.boardWorld.isAnimating{transition:transform .52s cubic-bezier(.22,1,.36,1)}.boardCanvas{position:absolute;left:0;top:0;transform:translate(-50%,-50%)}.boardHint{transition:opacity .25s ease;position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom));transform:translate(-50%);margin:0;padding:4px 10px;border-radius:999px;font-family:var(--font-ui);font-size:12px;letter-spacing:.04em;color:#ffffffbf;background:#0000008c;pointer-events:none;z-index:2}body:has(.meaningSheet) .boardHint{opacity:0}.meaningSheet{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(560px,100%);box-sizing:border-box;padding:14px 16px calc(16px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--suit, #444) 14%,rgba(0,0,0,.4));border:1px solid rgba(255,255,255,.08);border-bottom:none;border-top-left-radius:16px;border-top-right-radius:16px;z-index:10000;font-family:var(--font-ui);-webkit-user-select:text;user-select:text}.meaningSheetBar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.meaningSheetClose{flex:0 0 auto;min-width:auto;width:auto;height:auto;padding:4px 10px;font-size:14px;line-height:1;letter-spacing:.02em;text-transform:lowercase}.meaningSheetSlot{margin:8px 0 0;opacity:.7;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.meaningSheetBody{margin:8px 0 0;line-height:1.45;font-size:15px}.meaningSheetNav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:14px}.meaningSheetArrowPrev{justify-self:start}.meaningSheetArrowNext{justify-self:end}.meaningSheetArrowSpacer{display:block}.meaningSheetArrow{font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;padding:6px 10px;min-width:auto;height:auto;line-height:1}.meaningSheetProgress{justify-self:center;font-size:12px;letter-spacing:.12em;opacity:.7}.layer.isReading .title-ascii{font-size:clamp(3.5px,1.1vw + 1.5px,8px)}@media(prefers-reduced-motion:reduce){.flipInner,.fade,.boardWorld.isAnimating,.cardHover,.slot{transition-duration:1ms}.dealCard{animation-duration:1ms}}@media(max-width:420px){.modeToggleLabel{display:none}.modeToggle{padding:4px;gap:6px}.modeToggle button{padding:5px 8px;font-size:12px}}@media(max-height:520px){.subTitle{display:none}.header{padding-top:4px}.title-ascii{font-size:clamp(2px,calc((100vw - 48px) / 220),4px)}.spreadToggle{margin-bottom:10px}.ritual-ui{margin-top:4px}.layer{gap:8px}}@media(min-width:800px)and (max-height:800px){.header{padding-top:12px}.title-ascii{font-size:clamp(3px,calc((100vw - 48px) / 150),7px)}.spreadToggle{margin-bottom:20px}}.deck{--fan-x: 80px;--fan-y: 48px;--card-w: 300px;--shuffle-font: 4px;position:relative;font-size:var(--shuffle-font);width:calc(var(--card-w) + var(--fan-x));height:calc(83em + var(--fan-y));margin:24px auto;overflow:visible;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.cardBack{position:absolute;left:calc(50% - var(--fan-x) / 2);top:calc(50% - var(--fan-y) / 2);width:var(--card-w);height:83em;overflow:visible;background:transparent;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(var(--s));transform-origin:center;will-change:transform;transition:transform .75s ease}.cardBack .shuffleFace{margin:0;display:inline-block;box-sizing:border-box;font-size:1em;line-height:1;white-space:pre;font-family:IosevkaCustom,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-variant-ligatures:none;background:#000c;color:#fffc;pointer-events:none;-webkit-user-select:none;user-select:none}.cardBack.flingOverlay{transition:none;animation:flingToBack 1s cubic-bezier(.22,1,.36,1)}@keyframes flingToBack{0%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(var(--s))}55%{transform:translate(calc(-50% + var(--x) + 40%),calc(-50% + var(--y) - 30%)) rotate(calc(var(--r) + 30deg)) scale(calc(var(--s) + .08))}to{transform:translate(calc(-50% + var(--bx)),calc(-50% + var(--by))) rotate(var(--br)) scale(var(--bs))}}
