@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-cyrillic-400-normal-BMzJvInZ.woff2)format("woff2"),url(/assets/manrope-cyrillic-400-normal-Dvx59UGC.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-cyrillic-500-normal-B1OEZity.woff2)format("woff2"),url(/assets/manrope-cyrillic-500-normal-CNwnNrRC.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-cyrillic-600-normal-DvRl3Mj-.woff2)format("woff2"),url(/assets/manrope-cyrillic-600-normal-It4mZcQk.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2)format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2)format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oswald-cyrillic-500-normal-Dz4ZC46J.woff2)format("woff2"),url(/assets/oswald-cyrillic-500-normal-CjKr_ZfC.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oswald-cyrillic-600-normal-OIkAk3Qq.woff2)format("woff2"),url(/assets/oswald-cyrillic-600-normal-B7zyAoGs.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oswald-latin-500-normal-B-eyT0Dw.woff2)format("woff2"),url(/assets/oswald-latin-500-normal-DM85Di4w.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oswald-latin-600-normal-plFmSr5g.woff2)format("woff2"),url(/assets/oswald-latin-600-normal-DRToI_2E.woff)format("woff")}:root{color:#eeeeed;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090a0b;--panel:#141517;--control:#1e2023;--text:#eeeeed;--muted:#a7a9af;--line:#303237;--red:#a52b37;--red-hover:#bb3542;--ink:#e48c94;--display:clamp(64px, 18vw, 92px);--h1:clamp(32px, 8vw, 42px);--h2:28px;--h3:20px;--body:16px;--small:14px;--caption:12px;--radius:4px;--motion:.18s;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);background:#090a0b;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:280px;margin:0}button,input,select{font:inherit}button,input,select,a{touch-action:manipulation}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;transition:background-color var(--motion), color var(--motion), opacity var(--motion), transform var(--motion);background:0 0;border:0}button:disabled{cursor:default;opacity:.4}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--text);outline-offset:4px}label:has(input[type=file]:focus-visible){outline:2px solid var(--text);outline-offset:4px}input,a{color:var(--text)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Oswald,system-ui,sans-serif;font-weight:500;line-height:1.18}h1{font-size:var(--h1);letter-spacing:-.7px}h2{font-size:var(--h2)}h3{font-size:var(--h3)}p{font-size:var(--body);line-height:1.6}svg{flex-shrink:0}.sigil{width:100%;height:100%;display:block}.muted{color:var(--muted)}.small{font-size:var(--small)}.tiny,.eyebrow{font-size:var(--caption);color:var(--muted);line-height:1.5}.eyebrow{letter-spacing:.08em;text-transform:uppercase}.full-width{width:100%}.app-frame{background:var(--bg);max-width:560px;min-height:100dvh;padding-bottom:calc(94px + var(--safe-bottom));margin:auto;position:relative}.app-header{padding:calc(12px + var(--safe-top)) 20px 12px;justify-content:space-between;align-items:center;min-height:76px;display:flex}.wordmark{align-items:center;gap:10px;min-height:48px;padding:0;display:flex}.wordmark .sigil{width:32px;height:32px;color:var(--ink)}.wordmark span{letter-spacing:.08em;font:600 28px Oswald,sans-serif}.header-actions{align-items:center;gap:8px;display:flex}.adult-badge{font-size:var(--caption);color:var(--muted)}.icon-button{min-width:48px;min-height:48px;color:var(--muted);border-radius:var(--radius);justify-content:center;align-items:center;display:inline-flex}.icon-button:hover,.icon-button.selected{background:var(--control);color:var(--text)}.button{border-radius:var(--radius);min-height:52px;font-size:var(--small);justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 18px;font-weight:600;line-height:1.4;display:flex}.button.primary,.danger-button{color:var(--text);background:var(--red)}.button.primary:hover:not(:disabled),.danger-button:hover:not(:disabled){background:var(--red-hover)}.button.primary>span{margin-left:auto}.button.ghost{background:var(--control);color:var(--text)}.button.ghost:hover:not(:disabled){background:var(--line)}.button.quiet{color:var(--muted)}.button.quiet:hover{color:var(--text);background:var(--panel)}.text-button{min-height:48px;font-size:var(--small);color:var(--muted);text-underline-offset:4px;padding:10px 0;text-decoration:underline}.text-button:hover{color:var(--text)}.hero{border-bottom:1px solid var(--line);min-height:242px;margin:0 20px;padding:28px 0 32px;position:relative;overflow:hidden}.hero-copy{z-index:1;position:relative}.hero-note{color:var(--muted);font-size:var(--caption);margin-bottom:14px}.hero h1{text-transform:uppercase;letter-spacing:-1px;max-width:245px;font-size:clamp(42px,12vw,58px);line-height:1.08}.hero-seal{color:var(--red);opacity:.65;pointer-events:none;width:260px;height:260px;position:absolute;top:8px;right:-105px;transform:rotate(-14deg)}.catalog-section{padding:24px 20px 0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-heading h2{font-family:Manrope,sans-serif;font-size:var(--h3);letter-spacing:-.5px;font-weight:600}.search-row{gap:8px;display:flex}.search-field{background:var(--panel);border-radius:var(--radius);min-width:0;color:var(--muted);border:1px solid var(--line);flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.search-field input{width:100%;min-width:0;min-height:48px;font-size:var(--small);outline-offset:0;background:0 0;border:0}.search-field input::placeholder{color:var(--muted)}.search-field button{place-items:center;width:32px;min-height:48px;display:grid}.sort-field{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:48px;color:var(--muted);place-items:center;display:grid;position:relative}.sort-field select{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.sort-field:focus-within{outline:2px solid var(--text);outline-offset:3px}.sort-field option{background:var(--control)}.categories{scrollbar-width:none;scroll-snap-type:x proximity;gap:20px;margin:14px 0 0;display:flex;overflow:auto hidden}.categories::-webkit-scrollbar{display:none}.categories button{scroll-snap-align:start;min-height:48px;color:var(--muted);font-size:var(--small);flex-shrink:0;padding:8px 0;position:relative}.categories button[aria-pressed=true]{color:var(--text)}.categories button[aria-pressed=true]:after{content:"";background:var(--red-hover);height:2px;position:absolute;bottom:0;left:0;right:0}.categories button:hover{color:var(--text)}.catalog-caption{color:var(--muted);font-size:var(--caption);justify-content:space-between;padding:20px 0 8px;display:flex}.ritual-grid{flex-direction:column;display:flex}.ritual-card{border-bottom:1px solid var(--line);position:relative}.card-main{text-align:left;align-items:center;gap:16px;width:100%;min-height:112px;padding:16px 40px 16px 0;display:flex}.card-main:hover{background:var(--panel)}.card-art{color:#b95661;flex:0 0 64px;width:64px;height:64px;position:relative}.card-copy{flex:1;min-width:0}.card-chapter{color:var(--muted);font-size:var(--caption);margin-bottom:4px;display:block}.card-copy h3{font-family:Manrope,sans-serif;font-size:var(--body);font-weight:600;line-height:1.45}.card-theme{color:#b0adb1;margin-top:5px;font-size:12px;line-height:1.5}.card-copy>div{margin-top:6px}.card-price{font-size:var(--small);color:var(--text);font-variant-numeric:tabular-nums}.card-star{width:48px;height:48px;color:var(--muted);place-items:center;margin-top:-24px;display:grid;position:absolute;top:50%;right:-8px}.card-star[aria-pressed=true]{color:var(--ink)}.card-star:hover{color:var(--text)}.owned-mark{background:var(--control);color:var(--text);border-radius:50%;padding:4px;position:absolute;bottom:0;right:0}.grimoire-teaser{text-align:left;background:var(--panel);border-radius:8px;align-items:center;gap:20px;width:calc(100% - 40px);margin:24px 20px 0;padding:24px;display:flex}.grimoire-teaser:hover{background:var(--control)}.grimoire-teaser strong{font:500 var(--h2) Oswald;margin:8px 0;display:block}.grimoire-teaser small{color:var(--muted);font-size:var(--caption);line-height:1.5;display:block}.teaser-price{font-size:var(--body);white-space:nowrap;gap:14px;display:grid}.catalog-footnote{font-size:var(--caption);color:var(--muted);margin:24px 20px 0}.page-section{padding:26px 20px}.page-intro{color:var(--muted);margin:14px 0 28px}.all-inclusive{text-align:left;background:var(--panel);border-radius:8px;width:100%;padding:28px 24px;display:block;position:relative;overflow:hidden}.all-inclusive:hover{background:var(--control)}.bundle-seal{width:290px;height:290px;color:var(--red);opacity:.5;position:absolute;top:-15px;right:-130px}.all-inclusive-content{position:relative}.all-inclusive h2{max-width:70%;margin:16px 0 12px;font-size:36px}.all-inclusive p{color:var(--muted);max-width:85%;font-size:var(--small)}.all-inclusive-content>div{align-items:center;gap:12px;margin-top:28px;display:flex}.all-inclusive-content>div>svg{margin-left:auto}.all-inclusive strong{font-size:24px;font-weight:500}.badge,.discount{font-size:var(--caption);color:var(--ink);display:inline-block}.bundle-list{margin-top:24px}.bundle-card{text-align:left;border-bottom:1px solid var(--line);align-items:center;gap:16px;width:100%;padding:22px 0;display:flex}.bundle-card:hover{background:var(--panel)}.bundle-art{color:#b95661;flex:0 0 62px;height:62px}.bundle-copy{flex:1;min-width:0}.bundle-copy h3{margin:6px 0}.bundle-copy p{font-size:var(--small);color:var(--muted)}.bundle-copy>div{gap:12px;margin-top:12px;display:flex}.bundle-copy strong{font-size:var(--body);font-weight:500}.archive-item{border-bottom:1px solid var(--line);position:relative}.archive-open{text-align:left;align-items:center;gap:16px;width:100%;padding:20px 40px 20px 0;display:flex}.archive-open:hover{background:var(--panel)}.archive-thumb{flex:0 0 60px;width:60px;height:60px}.archive-thumb img{object-fit:cover;border-radius:var(--radius);width:100%;height:100%}.archive-open>div:nth-child(2){flex:1;min-width:0}.archive-open h3{margin:7px 0}.archive-open p{font-size:var(--small);overflow-wrap:anywhere}.archive-open>svg{display:none}.archive-delete{margin-top:-24px;position:absolute;top:50%;right:-8px}.empty-state{text-align:center;padding:48px 20px}.empty-state>svg{width:72px;height:72px;color:var(--ink);margin:auto auto 24px}.empty-state p{color:var(--muted);margin:12px 0 24px}.settings-page h1{margin-bottom:32px}.settings-page h2{font-family:Manrope,sans-serif;font-size:var(--small);margin-bottom:14px}.segmented{background:var(--panel);border-radius:var(--radius);gap:4px;padding:4px;display:flex}.segmented button{min-height:44px;color:var(--muted);font-size:var(--small);border-radius:3px;flex:1;padding:8px}.segmented button[aria-pressed=true]{color:var(--text);background:var(--line)}.segmented button:hover{color:var(--text)}.settings-group{margin-top:24px}.setting-row{width:100%;min-height:64px;font-size:var(--small);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:16px 0;display:flex}.setting-row>span{text-align:left;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.setting-row small{width:100%;font-size:var(--caption);color:var(--muted);margin-top:-4px;display:block}button.setting-row:hover{background:var(--panel)}input[role=switch]{appearance:none;background:var(--line);cursor:pointer;border:1px solid #62656d;border-radius:20px;flex:0 0 44px;width:44px;height:26px;margin:0;position:relative}input[role=switch]:after{content:"";background:var(--muted);width:18px;height:18px;transition:transform var(--motion);border-radius:50%;position:absolute;top:3px;left:3px}input[role=switch]:checked{background:var(--red);border-color:var(--red-hover)}input[role=switch]:checked:after{background:var(--text);transform:translate(18px)}.music-caption,.settings-version{color:var(--muted);font-size:var(--caption);margin-top:18px;line-height:1.6}.settings-version{margin-top:32px}.danger{color:var(--ink)}.bottom-nav{z-index:5;background:var(--bg);border-top:1px solid var(--line);width:100%;max-width:560px;padding:6px 8px calc(8px + var(--safe-bottom));display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:6px;min-height:62px;padding:12px 2px 6px;font-size:11px;display:flex;position:relative}.bottom-nav button.active{color:var(--text)}.bottom-nav button.active:before{content:"";background:var(--red-hover);width:24px;height:2px;position:absolute;top:-7px}.bottom-nav button:hover{color:var(--text)}.modal{width:min(100%,560px);max-width:100%;max-height:calc(100dvh - var(--safe-top));color:var(--text);background:var(--panel);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border:0;border-radius:18px 18px 0 0;margin:auto auto 0;padding:0}.modal::backdrop{background:#000c}.modal-inner{padding-bottom:var(--safe-bottom)}.modal-top{z-index:3;background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:68px;padding:12px 12px 12px 20px;display:flex;position:sticky;top:0}.modal-top>span{font-size:var(--small);color:var(--muted)}.sheet-content{padding:24px 20px}.sheet-content>h1{margin-bottom:16px}.sheet-content>h3{margin-top:24px}.sheet-content>.button{margin-top:12px}.sheet-content>.text-button{margin:8px auto 0;display:block}.detail-art{background:var(--bg);color:#b95661;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:180px;display:flex;position:relative}.detail-art .sigil{width:115px;height:115px}.detail-art>span{color:var(--muted);font-size:var(--caption)}.ritual-description{color:var(--muted)}.ritual-lore{border-left:2px solid #71303b;margin-top:24px;padding-left:16px}.ritual-lore-label{color:#bcb2b2;margin-bottom:8px;font-size:12px}.ritual-lore h2{margin-bottom:10px;font-family:Manrope,sans-serif;font-size:17px;font-weight:600;line-height:1.5}.detail-meta{color:var(--muted);font-size:var(--caption);flex-wrap:wrap;gap:12px;margin:20px 0;display:flex}.detail-meta>span{align-items:center;gap:6px;display:flex}.included-list{margin:20px 0;padding:0;list-style:none}.included-list li{font-size:var(--small);align-items:center;gap:12px;margin:14px 0;line-height:1.5;display:flex}.included-list svg{color:var(--ink)}.disclosure,.notice{color:var(--muted);font-size:var(--caption);margin:20px 0;line-height:1.6}.prominent{background:var(--control);border-radius:var(--radius);font-size:var(--small);padding:16px}.notice{font-size:var(--small)}.error{color:var(--ink);font-size:var(--small);border-radius:var(--radius);background:#29181c;margin:16px 0;padding:14px}.bundle-included{margin:24px 0}.bundle-included>div{border-bottom:1px solid var(--line);font-size:var(--small);align-items:center;gap:12px;padding:13px 0;display:flex}.bundle-included .sigil{width:34px;height:34px;color:var(--ink)}.bundle-included>div>span:nth-child(2){flex:1}.bundle-included>div>span:last-child{color:var(--muted);flex-shrink:0}.price-breakdown{font-size:var(--small);color:var(--muted);justify-content:space-between;align-items:center;margin:14px 0;display:flex}.price-breakdown.total{color:var(--text);margin:20px 0}.price-breakdown strong{font:500 32px Oswald}.field-label{font-size:var(--small);margin:24px 0 12px;display:block}.field-label input{border-radius:var(--radius);background:var(--bg);width:100%;min-height:56px;font-size:var(--body);border:1px solid #62656d;margin-top:12px;padding:14px;display:block}.photo-picker{border-radius:var(--radius);cursor:pointer;min-height:124px;color:var(--muted);font-size:var(--small);border:1px dashed #62656d;align-items:center;gap:16px;padding:20px;display:flex;position:relative}.photo-picker input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.photo-picker img{object-fit:cover;border-radius:var(--radius);width:88px;height:88px}.private-hint{font-size:var(--caption);align-items:center;gap:6px;margin:12px 0;display:flex}.check-row{min-height:48px;font-size:var(--small);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 0;line-height:1.5;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--red);cursor:pointer;flex-shrink:0;margin:1px 0 0}.checkout-target{align-items:center;gap:14px;margin-bottom:24px;display:flex}.checkout-target img,.checkout-target .sigil{object-fit:cover;width:60px;height:60px;color:var(--ink);border-radius:var(--radius)}.checkout-target span{overflow-wrap:anywhere}.completion-modal{background:#090a0b}.completion-modal .modal-top{background:#090a0b;border-bottom:0;min-height:56px;padding-block:4px}.completion{text-align:center;padding:4px 24px 24px}.completion-heading p{color:#b3a8a9;letter-spacing:.07em;margin-bottom:8px;font-size:10px}.completion-heading h1{letter-spacing:-.5px;font-size:clamp(30px,8vw,40px);line-height:1.2}.completion-altar{isolation:isolate;max-width:380px;margin:20px auto 10px;position:relative}.completion-shadows{z-index:-1;object-fit:fill;opacity:.27;pointer-events:none;width:100%;height:100%;position:absolute;top:3%;left:0;-webkit-mask-image:linear-gradient(#0000,#000 22% 75%,#0000);mask-image:linear-gradient(#0000,#000 22% 75%,#0000)}.sealed-leaf{width:min(100%,302px);margin-inline:auto;padding-bottom:12px;animation:.9s cubic-bezier(.2,.65,.25,1) both leaf-arrival;position:relative}.sealed-leaf-paper{filter:brightness(.67)saturate(.65);pointer-events:none;width:100%;height:calc(100% - 12px);position:absolute;inset:0}.sealed-leaf-content{color:#ede4d9;text-shadow:0 1px 4px #090606;flex-direction:column;justify-content:center;align-items:center;gap:11px;min-height:350px;padding:30px 32px 70px;display:flex;position:relative}.sealed-leaf-brand{letter-spacing:.32em;margin-bottom:2px;font:500 12px Oswald,sans-serif}.sealed-leaf-content .sealed-mark{color:#bc8e8f;opacity:.8;width:70px;height:70px}.sealed-name{overflow-wrap:anywhere;max-width:100%;font:400 clamp(28px,8vw,36px)/1.2 Georgia,Times New Roman,serif}.sealed-name[data-long=true]{font-size:23px}.sealed-leaf-content h2{overflow-wrap:anywhere;max-width:100%;font-size:22px;line-height:1.25}.sealed-leaf-content time{color:#c0b7af;margin-top:3px;font-size:11px;line-height:1.5}.sealed-portrait{background:#1a1717;border:1px solid #75625e;width:118px;height:132px;padding:4px;transform:rotate(-2deg);box-shadow:2px 4px 10px #0007}.sealed-portrait img{object-fit:contain;filter:grayscale(.8)sepia(.12)brightness(.9);width:100%;height:100%;display:block}.with-portrait .sealed-leaf-content{gap:9px;padding-top:26px}.with-portrait .sealed-name{font-size:27px}.with-portrait .sealed-name[data-long=true]{font-size:21px}.sealed-wax{width:96px;height:96px;animation:.65s cubic-bezier(.2,.7,.3,1) .22s both wax-impression;position:absolute;bottom:-7px;left:calc(50% - 48px)}.sealed-wax img{filter:brightness(.8);width:100%;height:100%;position:relative}.sealed-wax .sigil{color:#be7c83;opacity:.8;filter:drop-shadow(0 1px #21090c);width:60%;height:60%;position:absolute;inset:20%;transform:rotate(-10deg)}.completion-reference{color:#a9a3a0;margin:20px 0 18px;font-size:10px;line-height:1.6}.completion-reference span{white-space:nowrap;margin-left:5px}.completion-actions{max-width:370px;margin-inline:auto}.completion-share{color:#1a1618;background:#ded9d2;border:1px solid #ded9d2;min-height:52px;font-size:13px}.completion-share:hover{background:#f2eeea;border-color:#f2eeea}.completion-secondary{grid-template-columns:1fr 1fr;margin-top:8px;display:grid}.completion-secondary button{color:#c0b9b6;justify-content:center;align-items:center;gap:8px;min-height:48px;font-size:12px;display:flex}.completion-secondary button:hover{color:#fff}.completion-disclosure{color:#a9a3a0;max-width:290px;margin:12px auto 0;font-size:10px;line-height:1.6}@keyframes leaf-arrival{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes wax-impression{0%{opacity:0;transform:scale(1.14)rotate(-4deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (width<=359px){.detail-art{gap:6px;height:136px}.detail-art .sigil{width:84px;height:84px}.completion{padding-inline:18px}.sealed-leaf-content{padding-inline:28px}.completion-heading h1{font-size:30px}}.share-editor{padding-top:16px}.share-preview{place-items:center;min-height:300px;margin:20px 0 12px;display:grid}.share-preview img{width:auto;max-width:100%;height:min(49dvh,450px);display:block;box-shadow:0 12px 32px #00000073}.share-identity{align-items:center;margin:6px 0}.share-identity small{font-size:var(--caption);color:var(--muted);margin-top:4px;display:block}.share-editor .quiet{margin-top:2px}.legal-copy p{color:var(--muted);margin-top:20px}.loading-ring{border:2px solid var(--line);border-top-color:var(--text);border-radius:50%;width:32px;height:32px;animation:1s linear infinite turn}.toast{z-index:50;bottom:calc(100px + var(--safe-bottom));background:var(--text);width:max-content;max-width:min(90vw,510px);color:var(--bg);font-size:var(--small);border-radius:var(--radius);padding:16px 20px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0008}.boot{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;display:flex}.boot .sigil{width:80px;height:80px;color:var(--ink)}.boot span{letter-spacing:.1em;font:600 32px Oswald}.ceremony{z-index:25;max-width:560px;padding-top:var(--safe-top);isolation:isolate;background:#090a0b;flex-direction:column;margin:auto;display:flex;position:fixed;inset:0;overflow:auto}.ceremony-top{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px 0 24px;display:flex}.ceremony-top>span{letter-spacing:.12em;color:#c7c6c9;font:500 20px Oswald}.ceremony-top>div{gap:2px;display:flex}.ceremony-top .icon-button{color:var(--muted)}.ceremony-content{min-height:0;padding:12px 24px calc(12px + var(--safe-bottom));text-align:center;flex-direction:column;flex:1;display:flex}.ceremony-heading{flex-shrink:0}.ceremony-heading .eyebrow{letter-spacing:.12em;color:#a7a9af;font-size:9px}.ceremony-heading h1{text-transform:uppercase;margin:8px 0 0;font-size:clamp(25px,6.5vw,34px);line-height:1.2}.ceremony-visual{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:min-content;margin:0 -24px;display:flex;overflow:hidden}.ritual-stage{aspect-ratio:4/5;contain:layout paint;--paper-opacity:.48;--paper-y:0px;--identity-opacity:0;--portrait-develop:1;--portrait-opacity:.3;--portrait-shadow:0;--binding-reveal:0;--name-opacity:.65;--hands-opacity:0;--hands-scale:1.12;--hands-y:-36px;--seal-opacity:0;--seal-scale:.64;--glyph-reveal:0;--paper-heat:0;background:radial-gradient(at 50% 62%,#281b202b,#0000 67%);flex-shrink:0;width:min(100vw,80dvh - 236.8px,460px);min-width:216px;position:relative}.ritual-paper{z-index:1;width:50%;height:62%;opacity:var(--paper-opacity);transform:translateY(var(--paper-y));position:absolute;top:17%;left:25%;container-type:inline-size}.portrait-layout .ritual-paper{width:60%;height:72%;top:12%;left:20%}.ritual-paper:after{content:"";opacity:var(--paper-heat);pointer-events:none;background:radial-gradient(#0000 45%,#c75c32aa);position:absolute;inset:0;-webkit-mask-image:url(/assets/ritual/charred-paper.webp);mask-image:url(/assets/ritual/charred-paper.webp);-webkit-mask-size:100% 100%;mask-size:100% 100%}.ritual-paper-texture{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.ritual-portrait{width:80%;height:57%;opacity:var(--portrait-opacity);clip-path:polygon(1% 0,34% 1%,66% 0,99% 1%,100% 34%,99% 65%,100% 98%,64% 100%,32% 99%,0 100%,1% 67%,0 33%);background:#272023;position:absolute;top:8%;left:10%;transform:rotate(-2deg);box-shadow:0 2px 6px #0008}.ritual-portrait-image{-webkit-mask-image:radial-gradient(ellipse at 38% 35%, #000 calc(var(--portrait-develop) * 95%), transparent calc(var(--portrait-develop) * 155% + 3%));mask-image:radial-gradient(ellipse at 38% 35%, #000 calc(var(--portrait-develop) * 95%), transparent calc(var(--portrait-develop) * 155% + 3%));background:#171316;position:absolute;inset:3%}.ritual-portrait img{object-fit:contain;filter:grayscale(.94)sepia(.2)contrast(1.1)brightness(.93);width:100%;height:100%;display:block}.ritual-portrait-edges{opacity:calc(.48 + var(--portrait-shadow) * .5);background:linear-gradient(90deg,#130c1399,#0000 17% 83%,#130c1399),linear-gradient(#130c1366,#0000 13% 76%,#170d18bb);position:absolute;inset:2%;box-shadow:inset 0 0 8px 2px #0d070999}.ritual-portrait-edges:after{content:"";opacity:.09;background:repeating-linear-gradient(112deg,#0000 0 13px,#cfc0b8 13px 13.5px,#0000 13.5px 31px);position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 20% 80%,#000);mask-image:linear-gradient(90deg,#000,#0000 20% 80%,#000)}.ritual-portrait-binding{fill:none;stroke:#a06c69;stroke-width:1.1px;width:100%;height:100%;opacity:var(--binding-reveal);position:absolute;inset:0}.ritual-portrait-binding path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--binding-reveal))}.ritual-name-marks{fill:none;stroke:#af7774;stroke-width:1.4px;width:86%;height:50%;opacity:calc(var(--identity-opacity) * .7);position:absolute;top:17%;left:7%}.ritual-name-marks path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--binding-reveal))}.ritual-inscription{width:82%;opacity:var(--name-opacity);color:#e3d9cf;text-shadow:0 1px 2px #0c080a;overflow-wrap:anywhere;margin:0;font:500 clamp(10px,3.2vw,16px)/1.3 Manrope;position:absolute;top:59%;left:9%}.name-altar .ritual-inscription{text-transform:uppercase;font:500 clamp(16px,5.5vw,26px)/1.4 Oswald;top:31%}.name-altar[data-long-name=true] .ritual-inscription{font-size:clamp(13px,4vw,19px)}.has-portrait .ritual-inscription{width:84%;font:500 clamp(10px,5.8cqi,15px)/1.25 Manrope;top:68%;left:8%}.has-portrait[data-long-name=true] .ritual-inscription{font-size:clamp(9px,4.8cqi,12px)}.photo-mode-hint{margin:12px 0 8px;line-height:1.55}.ritual-hands{z-index:0;width:100%;height:100%;opacity:var(--hands-opacity);transform:translateY(var(--hands-y)) scale(var(--hands-scale));object-fit:fill;pointer-events:none;position:absolute;inset:0}.ritual-canvas{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ritual-seal{aspect-ratio:1;width:45%;opacity:var(--seal-opacity);transform:scale(var(--seal-scale)) rotate(-8deg);filter:drop-shadow(1px 5px 4px #0009);position:absolute;top:74%;left:27.5%}.has-portrait .ritual-seal{width:31%;transform:scale(var(--seal-scale)) rotate(9deg);top:90%;left:58%}.ritual-wax{width:100%;height:100%;position:absolute;inset:0}.ritual-glyph{color:#d8a89c;position:absolute;inset:7%}.ritual-glyph .sigil{width:100%;height:100%}.ritual-glyph path,.ritual-glyph circle:not([fill]){stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--glyph-reveal))}.ritual-glyph circle[fill]{opacity:var(--glyph-reveal)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ceremony-footer{flex-shrink:0}.ceremony-status{min-height:100px}.ceremony-act{letter-spacing:.2em;color:#c17d86;font-variant-numeric:tabular-nums;margin-bottom:7px;font-size:10px;display:block}.ceremony-status h2{margin:0;font:500 23px Oswald}.ceremony-status p{color:var(--muted);max-width:320px;margin:9px auto 0;font-size:12px;line-height:1.6}.ritual-progress{grid-template-columns:repeat(4,1fr);gap:5px;width:min(100%,320px);height:2px;margin:16px auto 6px;display:grid}.ritual-progress>span{background:#292326;height:100%;overflow:hidden}.ritual-progress i{transform-origin:0;background:#c5828c;width:100%;height:100%;display:block}.ritual-skip{color:var(--muted);text-underline-offset:4px;min-height:44px;font-size:11px}.ritual-begin{justify-content:space-between;max-width:360px;margin:14px auto 10px}.ritual-exit{padding:20px 24px 24px}.ritual-exit h2{font-size:26px}.ritual-exit p{color:var(--muted);margin:16px 0 24px}.ritual-exit .button{margin-top:12px}@media (height<=650px){.ceremony-content{padding-top:4px}.ceremony-heading h1{font-size:24px}.ceremony-heading .eyebrow{font-size:8px}.ritual-stage{width:min(100vw,80dvh - 203.2px);min-width:200px}.ritual-inscription{font-size:10px}.ceremony-status{min-height:79px}.ceremony-status h2{font-size:21px}.ceremony-status p{margin-top:6px;font-size:11px}.ceremony-act{margin-bottom:3px}.ritual-progress{margin-top:10px}}.welcome{z-index:20;background:var(--bg);max-width:560px;margin:auto;position:fixed;inset:0;overflow:auto}.welcome-content{z-index:1;min-height:100%;padding:calc(24px + var(--safe-top)) 28px calc(28px + var(--safe-bottom));flex-direction:column;justify-content:center;display:flex;position:relative}.welcome-languages{color:var(--muted);align-items:center;gap:12px;margin-bottom:40px;display:flex}.welcome-languages button{min-width:48px;min-height:48px;font-size:var(--small);color:var(--muted)}.welcome-languages button[aria-pressed=true]{color:var(--text)}.welcome-brand{font:600 var(--display) Oswald;letter-spacing:-.04em;margin-bottom:20px;line-height:1}.welcome-content>h1{font-size:var(--h2);margin:36px 0 16px}.welcome-content>p:not(.eyebrow){color:var(--muted)}.welcome .check-row{margin-top:28px}.welcome .button{margin-top:12px}.welcome-note{font-size:var(--caption);margin-top:20px}.welcome-seal{width:350px;height:350px;color:var(--red);opacity:.45;pointer-events:none;position:absolute;top:60px;right:-190px}@keyframes turn{to{transform:rotate(360deg)}}@media (width>=600px){.app-frame,.ceremony{border-inline:1px solid var(--panel)}.modal{border-radius:12px;max-height:min(94dvh,1000px);margin:auto}}@media (width<=359px){.app-header,.catalog-section,.page-section,.sheet-content{padding-left:16px;padding-right:16px}.hero{margin-inline:16px}.hero h1{max-width:190px}.hero-seal{opacity:.4;right:-140px}.categories{gap:16px}.card-main{gap:12px}.card-art{flex-basis:48px;width:48px;height:48px}.grimoire-teaser{flex-wrap:wrap}.bundle-art{flex-basis:48px;height:48px}.bottom-nav button{font-size:10px}.share-preview img{height:min(45dvh,390px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}[data-reduced=true] *,[data-reduced=true] :before,[data-reduced=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (forced-colors:active){.button,.segmented button,.categories button[aria-pressed=true],input[role=switch]{border:1px solid buttontext}.card-art,.detail-art,.hero-seal{color:canvastext}}.language-picker{color:var(--muted);align-items:center;gap:7px;max-width:100%;min-height:44px;display:inline-flex}.welcome{overflow-x:hidden}body:has(.welcome){overflow:hidden}.language-picker select{border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;border-radius:4px;max-width:100%;min-height:44px;padding:9px 6px;font-size:13px}.header-actions .language-picker{gap:0}.header-actions .language-picker>svg{display:none}.header-actions .language-picker select{max-width:140px}.header-actions .adult-badge{display:none}.welcome-legal{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:22px;font-size:12px;display:flex}.welcome-legal a,.web-footer a{text-underline-offset:4px;text-decoration:underline}.web-footer{color:var(--muted);padding:40px 20px 12px;font-size:12px;line-height:1.7}.web-footer p{max-width:65ch;margin-bottom:12px}.web-footer>div{flex-wrap:wrap;gap:16px;margin-top:20px;display:flex}.web-footer>div span{margin-left:auto}.settings-page .language-picker{margin-bottom:12px}@media (width>=900px){html[data-platform=web] .app-frame{border:0;max-width:1120px;padding:0 36px 120px}html[data-platform=web] .app-header{min-height:100px;padding:28px 0}html[data-platform=web] .wordmark span{font-size:34px}html[data-platform=web] .header-actions .adult-badge{display:block}html[data-platform=web] .header-actions{gap:18px}html[data-platform=web] .hero{min-height:330px;margin:0;padding:42px 0 64px}html[data-platform=web] .hero h1{max-width:650px;font-size:80px}html[data-platform=web] .hero-seal{opacity:.44;width:360px;height:360px;top:-16px;right:-34px}html[data-platform=web] .catalog-section{padding:36px 0 0}html[data-platform=web] .ritual-grid{grid-template-columns:1fr 1fr;column-gap:40px;display:grid}html[data-platform=web] .page-section{max-width:820px;margin:auto;padding:36px 0}html[data-platform=web] .bottom-nav{border:1px solid var(--line);border-radius:12px 12px 0 0;width:calc(100% - 48px);max-width:680px;left:50%;right:auto;transform:translate(-50%)}html[data-platform=web] .welcome{background:var(--bg);max-width:1120px}html[data-platform=web] .welcome-content{max-width:620px;min-height:100dvh;padding:60px}html[data-platform=web] .welcome-seal{opacity:.36;width:620px;height:620px;top:calc(50% - 310px);right:-150px}html[data-platform=web] .welcome-brand{font-size:110px}html[data-platform=web] .web-footer{padding:50px 0 0}}@media (width<=359px){.wordmark span{font-size:24px}.wordmark{gap:6px}.header-actions{gap:2px}.header-actions .language-picker select{max-width:106px;font-size:11px}.header-actions .icon-button{min-width:40px}.welcome-legal{gap:12px}}html[data-platform=web] .web-purchases{background:#111013;border:1px solid #343035;border-radius:14px;margin:22px 0;padding:22px}html[data-platform=web] .web-purchases h3{margin:0 0 16px}html[data-platform=web] .web-purchases form{margin-top:20px}html[data-platform=web] .web-purchases .button{margin-top:8px}html[data-platform=web] .recovery-box{margin:16px 0}html[data-platform=web] .recovery-box textarea{color:#eee;resize:none;overflow-wrap:anywhere;background:#09090b;border:1px solid #514047;border-radius:8px;width:100%;margin:8px 0;padding:12px;font:14px/1.5 monospace;display:block}
