:root { --ink:#0a2425; --deep:#0b3031; --teal:#2f7773; --foam:#e9efe7; --paper:#f6f0e2; --red:#a84635; --gold:#c49a4c; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--foam); font-family:"Noto Serif TC","Songti TC",Georgia,serif; overflow-x:hidden; }
@media (min-width:1200px) { body { zoom:1.12; } }
.route-hidden{display:none!important}.app-route-shrine .nav,.app-route-fortune .nav,.app-route-attendance .nav,.app-route-rewards .nav{position:relative;background:#071e20}.nav a.active{color:#d6b967}.fortune-empty{min-height:calc(100vh - 88px);padding:120px 25px;text-align:center;background:linear-gradient(#e9efe7,#dfe9e1)}.fortune-empty h2{font-size:40px;letter-spacing:.12em}.fortune-empty>p:not(.eyebrow){color:#657774}.sealed-fortune{width:100px;height:100px;margin:0 auto 28px;display:grid;place-items:center;border:4px double #a84635;color:#a84635;font-size:42px;transform:rotate(-5deg)}.fortune-empty .primary{background:#a84635;color:white;border:0}
a { color:inherit; text-decoration:none; }
.nav { height:88px; padding:0 max(5vw,24px); display:flex; align-items:center; justify-content:space-between; position:absolute; width:100%; z-index:5; color:#f6f0e2; }
.brand { display:flex; gap:12px; align-items:center; letter-spacing:.18em; font-weight:700; }
.brand small { display:block; font:9px/1.8 Arial,sans-serif; opacity:.65; letter-spacing:.24em; }
.crest { width:42px; height:42px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50% 42% 50% 42%; font-weight:400; }
.spirit-crest { border-radius:48% 52% 46% 54%; color:#d7bc72; background:radial-gradient(circle at 35% 35%,#62342e,#101c1d 68%); box-shadow:inset 0 0 0 3px #111,0 0 18px #d4ad5240; transform:rotate(-3deg); }
nav { display:flex; gap:36px; font-size:14px; letter-spacing:.15em; }
.hero { min-height:820px; padding:190px max(7vw,28px) 100px; position:relative; overflow:hidden; color:#f6f0e2; background:radial-gradient(circle at 72% 31%,#3d716c 0 6%,transparent 24%),linear-gradient(180deg,#061719,#0a2929 58%,#061617); }
.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(92deg,transparent 0 3px,#ffffff05 4px),radial-gradient(ellipse at 50% 100%,transparent 0 35%,#020d0eb8 78%);pointer-events:none;z-index:1}
.hero:after { content:""; position:absolute; inset:auto -10% -135px; height:280px; background:var(--foam); border-radius:50% 50% 0 0; opacity:.96; }
.eyebrow { color:#c8a65d; font:600 11px/1.4 Arial,sans-serif; letter-spacing:.3em; text-transform:uppercase; }
h1 { margin:20px 0; font-size:clamp(45px,6vw,82px); line-height:1.16; letter-spacing:.05em; font-weight:500; position:relative; z-index:2; }
h1 em { color:#d2b36b; font-style:normal; }
.intro { line-height:2; color:#cbd6d0; letter-spacing:.08em; position:relative; z-index:2; }
.primary { display:inline-flex; margin-top:34px; padding:15px 23px; gap:35px; border:1px solid #bda764; color:#e8d89f; font-size:13px; letter-spacing:.16em; position:relative; z-index:3; }
.shrine-art { position:absolute; right:2vw; top:95px; width:52vw; height:610px; opacity:.95; }
.moon { position:absolute; width:290px; height:290px; right:13%; top:12%; border-radius:50%; background:radial-gradient(circle,#b0d0c4,#63928b 60%,transparent 62%); opacity:.55; filter:blur(1px); }
.torii { position:absolute; z-index:4; width:430px; height:300px; top:140px; right:8%; border-top:25px solid #7e2c27; filter:drop-shadow(0 15px 12px #020b0c); }
.torii:before { content:""; position:absolute; left:-30px; right:-30px; top:-48px; height:18px; background:#8f352e; border-radius:60% 60% 0 0; transform:perspective(300px) rotateX(-8deg); box-shadow:0 7px #321b19; }
.torii i,.torii b { position:absolute; top:-10px; width:30px; height:290px; background:linear-gradient(90deg,#4d211e,#91362f,#421b19); }
.torii i { left:54px; transform:rotate(2deg); }.torii b { right:54px; transform:rotate(-2deg); }
.water-lines { position:absolute; inset:auto 0 40px; height:70px; border-top:1px solid #74a49c; border-bottom:1px solid #74a49c; opacity:.35; transform:skewY(-3deg); }
.forest{position:absolute;left:-8%;right:-8%;bottom:80px;height:420px;clip-path:polygon(0 45%,5% 12%,8% 46%,13% 2%,17% 45%,23% 18%,28% 48%,34% 5%,40% 45%,47% 22%,52% 47%,58% 0,64% 45%,70% 16%,76% 46%,83% 4%,88% 45%,94% 15%,100% 47%,100% 100%,0 100%)}.forest-back{background:#183b39;opacity:.55;transform:scale(.9);bottom:145px;filter:blur(1px)}.forest-front{background:#041516;opacity:.9}.stone-path{position:absolute;z-index:2;left:29%;right:22%;bottom:22px;height:315px;background:repeating-linear-gradient(170deg,#7c8580 0 42px,#414f4c 44px 49px);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);opacity:.55}.stone-path i{position:absolute;left:10%;right:10%;height:1px;background:#b5c2b8;transform:rotate(-5deg)}.stone-path i:nth-child(1){top:25%}.stone-path i:nth-child(2){top:45%}.stone-path i:nth-child(3){top:67%}.stone-path i:nth-child(4){top:86%}.stone-lantern{position:absolute;z-index:5;bottom:115px;width:80px;height:170px}.lantern-left{left:16%}.lantern-right{right:8%}.stone-lantern:before{content:"";position:absolute;left:30px;bottom:0;width:23px;height:100px;background:linear-gradient(90deg,#3a4743,#718078,#303c39)}.stone-lantern:after{content:"";position:absolute;left:12px;top:41px;width:60px;height:45px;background:#424f4a;clip-path:polygon(10% 0,90% 0,100% 25%,84% 100%,16% 100%,0 25%)}.stone-lantern i{position:absolute;z-index:2;left:24px;top:51px;width:36px;height:25px;background:#e2b85d;box-shadow:0 0 18px 8px #e3a94866;animation:lanternGlow 2.5s ease-in-out infinite}.stone-lantern b{position:absolute;left:5px;top:25px;width:74px;height:15px;background:#58645e;clip-path:polygon(10% 100%,25% 0,75% 0,90% 100%)}.lantern-right i{animation-delay:1.1s}.shimenawa{position:absolute;left:95px;right:95px;top:18px;height:25px;border-bottom:8px double #c7af75;border-radius:50%;display:flex;justify-content:space-around}.shimenawa u{width:20px;height:38px;margin-top:22px;background:#e7dfc8;clip-path:polygon(0 0,100% 0,60% 32%,100% 32%,45% 68%,80% 68%,20% 100%);text-decoration:none}.fireflies i{position:absolute;z-index:6;width:4px;height:4px;border-radius:50%;background:#f8d873;box-shadow:0 0 10px 4px #f0c65d;animation:firefly 5s ease-in-out infinite}.fireflies i:nth-child(1){left:15%;top:22%}.fireflies i:nth-child(2){left:32%;top:50%;animation-delay:1s}.fireflies i:nth-child(3){right:20%;top:35%;animation-delay:2s}.fireflies i:nth-child(4){right:4%;top:65%;animation-delay:3s}.fireflies i:nth-child(5){left:45%;top:12%;animation-delay:4s}.fireflies i:nth-child(6){left:8%;top:72%;animation-delay:2.5s}@keyframes lanternGlow{50%{opacity:.65;box-shadow:0 0 28px 12px #e3a94888}}@keyframes firefly{0%,100%{opacity:.15;transform:translate(0,0)}35%{opacity:1;transform:translate(18px,-25px)}70%{opacity:.4;transform:translate(-12px,-38px)}}
.mist { position:fixed; width:40vw; height:40vw; border-radius:50%; filter:blur(90px); pointer-events:none; z-index:10; opacity:.08; background:white; }
.mist-one { top:10%; left:-20%; }.mist-two { right:-20%; bottom:0; }
.ritual { padding:70px max(9vw,28px) 120px; display:grid; grid-template-columns:.8fr 1.2fr; gap:10vw; align-items:center; }
.number { color:#b7c6bd; font-size:70px; float:left; margin-right:25px; line-height:1; }
.section-copy h2,.guide h2 { font-size:42px; margin:8px 0 22px; letter-spacing:.12em; font-weight:500; }
.section-copy>p:last-child { color:#566b68; line-height:2; clear:both; }
.offering-card { background:#fbf8ef; border:1px solid #d7d4c5; padding:44px; box-shadow:0 25px 60px #183e3520; position:relative; }
.bell { text-align:center; color:var(--gold); font-size:55px; height:70px; }.bell span { display:block; width:1px; height:34px; background:var(--gold); margin:-16px auto 0; }
label { display:block; font-size:13px; letter-spacing:.15em; margin:20px 0 10px; }
.name-row { display:flex; gap:10px; }
input { min-width:0; flex:1; border:0; border-bottom:1px solid #a7afa7; background:transparent; padding:14px 8px; font:16px inherit; outline:none; }
input:focus { border-color:var(--teal); }
button { border:0; cursor:pointer; font:14px inherit; letter-spacing:.12em; }
.name-row button { color:white; background:var(--red); padding:0 25px; }
.name-row button:disabled { opacity:.6; }
.hint { font-size:11px; color:#83908d; margin:15px 0 0; }
.fortune-wrap { padding:50px 20px 120px; background:var(--deep); }
.omikuji { max-width:800px; margin:auto; padding:52px; background:var(--paper); position:relative; box-shadow:0 25px 70px #001414; border:8px double #d7cbb0; text-align:center; animation:reveal .8s ease both; }
.omikuji:before { content:""; position:absolute; inset:14px; border:1px solid #b98d5844; pointer-events:none; }
@keyframes reveal { from { opacity:0; transform:translateY(30px) rotate(.6deg); } }
.fortune-top { display:flex; justify-content:space-between; font-size:11px; letter-spacing:.14em; color:#796f60; }
.rank { width:126px; height:126px; margin:35px auto 18px; border:2px solid var(--rank-color,var(--red)); border-radius:50%; display:grid; place-items:center; color:var(--rank-color,var(--red)); }
.rank span { font-size:46px; font-weight:600; letter-spacing:.05em; }
.fortune-for { color:#827667; font-size:12px; letter-spacing:.12em; }
.omikuji h2 { font-size:34px; letter-spacing:.2em; margin:18px 0 8px; }.verse { color:#7d6a54; letter-spacing:.15em; }.summary { margin:25px auto 35px; max-width:580px; line-height:1.9; }
.advice-grid { border-top:1px solid #d5c9b2; border-bottom:1px solid #d5c9b2; display:grid; grid-template-columns:repeat(3,1fr); text-align:left; }
.advice-grid article { display:flex; gap:13px; padding:25px 16px; }.advice-grid article+article { border-left:1px solid #d5c9b2; }
.advice-grid article>span { flex:0 0 33px; height:33px; border-radius:50%; display:grid; place-items:center; color:white; background:var(--teal); }
.advice-grid h3 { margin:4px 0 8px; font-size:15px; }.advice-grid p { margin:0; font-size:12px; line-height:1.75; color:#645e54; }
.lucky { display:flex; justify-content:center; flex-wrap:wrap; gap:16px 30px; margin:28px 0; color:#786c5d; font-size:12px; }.lucky b { color:var(--ink); margin-left:7px; }
.save-button { padding:13px 26px; color:var(--red); background:transparent; border:1px solid var(--red); }
.fortune-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }.share-button { padding:13px 26px; color:white; background:#5865f2; border:1px solid #7580f4; }.share-button:disabled { opacity:.6; cursor:default; }
.guide { padding:120px max(8vw,28px); text-align:center; }
.attendance { padding:110px max(8vw,24px); background:#0a2a2b;color:#f2ecdd; }.attendance-heading{max-width:960px;margin:0 auto 35px;display:flex;align-items:end;justify-content:space-between}.attendance-heading h2{margin:8px 0 10px;font-size:42px;letter-spacing:.12em;font-weight:500}.attendance-heading>div>p:last-child{color:#9bb3aa}.attendance-count{display:flex;align-items:center;gap:12px;color:#c8ae6c}.attendance-count b{font-size:48px;font-weight:400}.attendance-count span{width:45px;font-size:11px;line-height:1.5;letter-spacing:.1em}.calendar-card{max-width:960px;margin:auto;padding:32px;background:#f5efdf;color:#173b39;border:6px double #bca873;box-shadow:0 25px 60px #001819}.calendar-nav{display:flex;align-items:center;justify-content:center;gap:30px;margin-bottom:25px}.calendar-nav h3{min-width:190px;margin:0;text-align:center;font-size:25px;letter-spacing:.16em}.calendar-nav button{width:38px;height:38px;border:1px solid #9eb0a8;background:transparent;color:#426961}.calendar-nav button:disabled{opacity:.25}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday-row{border-bottom:1px solid #bdc7be;color:#788a83;font-size:11px}.weekday-row span{text-align:center;padding:11px}.calendar-day{min-height:105px;padding:9px;border-right:1px solid #d9d8cb;border-bottom:1px solid #d9d8cb;position:relative;background:#fbf7ea}.calendar-day:nth-child(7n){border-right:0}.calendar-day.empty{background:#eeeade}.calendar-day.future{color:#adb5af;background:#f3f0e6}.day-number{font:13px Arial,sans-serif}.day-stamp{position:absolute;left:50%;top:48%;width:54px;height:54px;transform:translate(-50%,-50%) rotate(-9deg);display:grid;place-items:center;border:2px solid #a84635;border-radius:50%;color:#a84635;font-size:24px;opacity:.9}.day-rank{position:absolute;left:5px;right:5px;bottom:6px;text-align:center;color:#8e4135;font-size:10px;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-legend{display:flex;justify-content:space-between;align-items:center;margin-top:22px;color:#72847d;font-size:11px}.stamp-mini{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:7px;border:1px solid #a84635;border-radius:50%;color:#a84635;font-style:normal;transform:rotate(-7deg)}
.calendar-day.today .day-number{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#2f7773;color:white}.calendar-loading{grid-column:1/-1;padding:70px;text-align:center;color:#82938c;font-size:13px}
.rewards{padding:110px max(8vw,24px);background:#e7ece4}.rewards-head{max-width:1040px;margin:auto;display:flex;align-items:center;justify-content:space-between}.rewards-head h2{margin:8px 0;font-size:42px;letter-spacing:.12em;font-weight:500}.rewards-head>div>p:last-child{color:#687a75}.point-purse{display:flex;align-items:center;gap:15px;padding:18px 25px;background:#102f30;color:#d3b765;border:1px solid #927b42}.point-purse>span{font-size:34px}.point-purse b,.point-purse small{display:block}.point-purse b{font:35px Georgia}.point-purse small{font-size:10px;letter-spacing:.1em}.guild-progress{max-width:1040px;margin:38px auto;padding:25px 30px;background:#f6f1e4;border-left:4px solid #a84635}.guild-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:14px}.guild-progress span{letter-spacing:.12em}.guild-progress b{color:#a84635}.progress-track{height:8px;background:#d8d8ca;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#2f7773,#c3a552);transition:width .6s}.guild-progress small{display:block;margin-top:11px;color:#788984}.reward-catalog{max-width:1040px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.reward-item{padding:25px;background:#f8f4e8;border:1px solid #d3cebd;position:relative}.reward-icon{width:55px;height:55px;display:grid;place-items:center;border:1px solid #9c8160;border-radius:50%;color:#a84635;font-size:22px}.reward-item h3{margin:18px 0 8px}.reward-item p{min-height:45px;color:#697872;font-size:12px;line-height:1.7}.reward-item footer{padding:0;background:none;color:inherit;display:flex;justify-content:space-between;text-align:left;letter-spacing:0}.reward-cost{color:#9b772d}.reward-item button{padding:9px 13px;background:#a84635;color:white}.reward-item button:disabled{background:#81908b}.reward-item.equipped{box-shadow:inset 0 0 0 2px #2f7773}.reward-item.equipped:after{content:'裝備中';position:absolute;right:12px;top:12px;color:#2f7773;font-size:10px}.reward-ledger{max-width:1040px;margin:28px auto 0;background:#f6f1e4;border:1px solid #d3cebd}.reward-ledger summary{padding:17px 22px;cursor:pointer;color:#506963}.ledger-row{display:grid;grid-template-columns:110px 1fr 70px;padding:12px 22px;border-top:1px solid #ddd7c7;font-size:12px}.ledger-row b{text-align:right}.ledger-row .plus{color:#28715d}.ledger-row .minus{color:#a84635}
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; margin-top:55px; }.steps article { padding:40px 28px; border-top:1px solid #9eb2a7; position:relative; }.steps article>b { position:absolute; left:0; top:-10px; background:var(--foam); padding-right:12px; color:#789188; font:11px Arial; }.steps article>span { display:grid; place-items:center; width:70px; height:70px; border:1px solid #9ab1a8; border-radius:50%; margin:auto; color:var(--teal); font-size:25px; }.steps h3 { letter-spacing:.12em; }.steps p { color:#657774; font-size:13px; line-height:1.8; }
footer { color:#c7d1cb; background:#071e20; padding:50px max(8vw,28px); display:flex; align-items:center; justify-content:center; gap:18px; letter-spacing:.12em; text-align:center; } footer small { display:block; opacity:.5; margin-top:10px; font-size:10px; }
.mobile-logout{display:none;margin-top:15px;color:#d1b86f;font-size:11px}
@media (max-width:760px) { body{padding-bottom:58px}.nav{height:72px}.nav nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:60;left:0;right:0;bottom:0;height:58px;background:#071e20;border-top:1px solid #4f6b63;gap:0}.nav nav a{display:grid;place-items:center;font:10px Arial,sans-serif;letter-spacing:.05em}.nav nav #member-link{display:none}.hero{min-height:680px;padding-top:150px}.shrine-art{width:75vw;right:-30vw;opacity:.35}.desktop{display:none}.ritual{grid-template-columns:1fr;padding-top:50px}.offering-card{padding:28px 22px}.name-row{flex-direction:column}.name-row button{padding:15px}.omikuji{padding:38px 22px}.advice-grid{grid-template-columns:1fr}.advice-grid article+article{border-left:0;border-top:1px solid #d5c9b2}.steps{grid-template-columns:1fr}.fortune-top{gap:15px}.hero:after{bottom:-180px}.fortune-empty h2{font-size:29px} }
@media (max-width:760px){.mobile-logout{display:block}}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; } }

/* Interactive shrine ritual */
.ritual-game { padding:90px max(6vw,24px) 120px; color:#eee7d7; background:radial-gradient(circle at 50% 20%,#214442,#06191b 65%); text-align:center; position:relative; overflow:hidden; }
.ritual-game:before,.ritual-game:after{content:"";position:absolute;top:0;bottom:0;width:90px;background:repeating-linear-gradient(90deg,#061314 0 28px,#152c2b 29px 33px);opacity:.7}.ritual-game:before{left:0}.ritual-game:after{right:0;transform:scaleX(-1)}
.ritual-heading,.ritual-progress,.ritual-stage,.restart-ritual{position:relative;z-index:2}
.returning-visit { padding:105px 25px; text-align:center; background:linear-gradient(#e9efe7,#dfe9e1); }.returning-seal { width:80px;height:80px;margin:0 auto 25px;display:grid;place-items:center;border:3px double #a84635;border-radius:50%;color:#a84635;font-size:35px;transform:rotate(-7deg); }.returning-visit h2{font-size:44px;letter-spacing:.15em;margin:10px 0}.returning-visit>p:not(.eyebrow){color:#647774}.returning-fortune{width:min(380px,90vw);margin:30px auto;display:flex;align-items:center;text-align:left;border-top:1px solid #afbeb5;border-bottom:1px solid #afbeb5;padding:18px}.returning-fortune>span{font-size:36px;color:#a84635;padding:0 25px 0 8px;border-right:1px solid #afbeb5}.returning-fortune div{padding-left:22px}.returning-fortune small,.returning-fortune b{display:block}.returning-fortune small{color:#82938c;margin-bottom:6px}.returning-fortune b{font-size:19px;letter-spacing:.12em}.returning-button{margin-top:0;background:#a84635;color:white;border:0}.tomorrow-note{display:block;margin-top:24px;color:#82938c;font-size:11px;letter-spacing:.08em}
.ritual-heading h2 { margin:10px 0 12px; font-size:clamp(30px,4vw,48px); font-weight:500; letter-spacing:.1em; }
.ritual-heading>p:last-child { color:#9fb4ac; font-size:13px; }
.ritual-progress { max-width:780px; margin:50px auto 34px; padding:0; display:flex; list-style:none; position:relative; justify-content:space-between; }
.ritual-progress:before { content:""; position:absolute; top:17px; left:10%; right:10%; height:1px; background:#728b80; }
.ritual-progress li { width:90px; display:grid; justify-items:center; gap:9px; color:#8a9a93; position:relative; font-size:11px; letter-spacing:.12em; transition:.4s; }
.ritual-progress b { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; background:#0d2929; border:1px solid #718a80; font-weight:400; transition:.4s; }
.ritual-progress li.active,.ritual-progress li.done { color:#184d4b; }.ritual-progress li.active b { color:#f5ead0; background:#a84635; border-color:#a84635; box-shadow:0 0 0 6px #a8463520; }.ritual-progress li.done b { color:white; background:#397a70; border-color:#397a70; }
.ritual-stage { max-width:960px; min-height:620px; margin:auto; color:#f4eee0; background:radial-gradient(circle at 50% 25%,#295956,#0a2c2d 65%); position:relative; overflow:hidden; box-shadow:0 30px 80px #123f3630; border:1px solid #6c9085; }
.ritual-stage:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 49.8%,#d6bb7630 50%,transparent 50.2%),repeating-linear-gradient(110deg,transparent 0 80px,#ffffff05 81px 82px); pointer-events:none; }
.stage-panel { display:none; min-height:620px; padding:40px 50px 36px; position:relative; isolation:isolate; }.stage-panel.active { display:flex; flex-direction:column; animation:stageIn .65s ease both; }
@keyframes stageIn { from { opacity:0; transform:translateX(30px); } }
.stage-copy { position:relative; z-index:4; }.stage-copy>span { color:#d1af61; font-size:11px; letter-spacing:.35em; }.stage-copy h3 { margin:10px 0; font-size:27px; letter-spacing:.12em; font-weight:500; }.stage-copy p { color:#b7cbc4; font-size:13px; }
.stage-action { min-width:180px; align-self:center; margin-top:auto; padding:14px 25px; color:#f5ead2; background:#a84635; border:1px solid #ce7765; box-shadow:0 8px 25px #001a1b80; position:relative; z-index:8; }.stage-action:hover { background:#bd5845; }.stage-action:disabled { opacity:.45; cursor:default; }
.stage-toast { position:fixed; z-index:50; left:50%; bottom:35px; transform:translate(-50%,15px); color:#f2dfaa; background:#051c1df2; border:1px solid #8b9f9170; padding:12px 22px; font-size:12px; letter-spacing:.12em; opacity:0; transition:.3s; pointer-events:none; }.stage-toast.show { opacity:1; transform:translate(-50%,0); }
.restart-ritual { margin-top:22px; color:#638078; background:none; border-bottom:1px solid #9bb0a8; padding:7px; font-size:11px; }

.chozu-scene { flex:1; min-height:350px; position:relative; }.basin { position:absolute; left:50%; bottom:48px; width:min(520px,75%); height:125px; transform:translateX(-50%); background:linear-gradient(90deg,#71847c,#9aaba0 50%,#657a72); border-radius:18px 18px 45% 45%; border:12px solid #536a64; box-shadow:0 28px 30px #001a1b80; }.basin .water { position:absolute; left:10px; right:10px; top:-8px; height:45px; border-radius:50%; background:#72aca8; overflow:hidden; box-shadow:inset 0 0 20px #d3e8dd; }.water i { position:absolute; width:90px; height:20px; border:1px solid #d8eee1; border-radius:50%; animation:ripple 3s infinite; }.water i:nth-child(2){left:42%;top:10px;animation-delay:1s}.water i:nth-child(3){right:8%;top:3px;animation-delay:2s}.basin>span { position:absolute; bottom:20px; font-size:24px; color:#3c534e; }.bamboo { position:absolute; width:28px; height:230px; bottom:110px; background:repeating-linear-gradient(#668c62 0 65px,#3d6644 66px 70px); }.bamboo-one{left:11%;transform:rotate(-5deg)}.bamboo-two{right:13%;height:190px;transform:rotate(7deg)}
.ladle { position:absolute; left:50%; top:100px; width:250px; height:90px; transform:translateX(-50%) rotate(-8deg); background:none; z-index:4; transition:transform .55s ease; }.ladle i { position:absolute; width:180px; height:13px; right:0; top:39px; background:#c7ae79; border-radius:8px; }.ladle b { position:absolute; width:76px; height:55px; left:0; top:18px; background:#c7ae79; border-radius:5px 5px 45% 45%; box-shadow:inset 0 8px #897650; }.ladle .pour { display:none; position:absolute; left:20px; top:62px; width:8px; height:110px; background:linear-gradient(#d9fff7dd,transparent); border-radius:50%; transform-origin:top; }
.ladle.wash-left { transform:translateX(-78%) translateY(48px) rotate(-28deg); }
.ladle.wash-right { transform:translateX(-22%) translateY(48px) rotate(28deg) scaleX(-1); }
.ladle.wash-left .pour,.ladle.wash-right .pour { display:block; animation:waterPour 1s ease; }
.ladle.rinse-handle { transform:translateX(-50%) translateY(18px) rotate(88deg); }
.ladle.rinse-handle .pour { display:block; left:60px; top:42px; height:185px; transform:rotate(-88deg); animation:handlePour 1s ease; }
.hands i { position:absolute; bottom:112px; width:105px; height:30px; background:#d9b08b; border-radius:45%; opacity:.8; z-index:6; transition:left .55s ease,right .55s ease,bottom .55s ease,transform .55s ease,box-shadow .4s; }
.left-hand{left:29%;transform:rotate(12deg)}.right-hand{right:29%;transform:rotate(-12deg)}.hands i.clean { box-shadow:0 0 24px #bcebe1; }
.chozu-scene.grip-right .right-hand { right:26%; bottom:214px; transform:rotate(2deg) scale(.82); box-shadow:0 0 0 3px #c7ae7955; }
.chozu-scene.grip-right .left-hand { left:24%; bottom:112px; transform:rotate(12deg); }
.chozu-scene.grip-left .left-hand { left:27%; bottom:214px; transform:rotate(-2deg) scale(.82); box-shadow:0 0 0 3px #c7ae7955; }
.chozu-scene.grip-left .right-hand { right:24%; bottom:112px; transform:rotate(-12deg); }
.ladle.rinse-handle + .hands .left-hand { left:44%; bottom:122px; transform:rotate(78deg) scale(.82); }
.ladle.rinse-handle + .hands .right-hand { right:20%; bottom:105px; opacity:.55; }
@keyframes waterPour { from{height:0;opacity:0} 30%{height:110px;opacity:1} 75%{opacity:1} to{opacity:0} }
@keyframes handlePour { from{height:0;opacity:0} 30%{height:185px;opacity:1} 75%{opacity:1} to{opacity:0} }
@keyframes ripple { from{transform:scale(.4);opacity:.8}to{transform:scale(1.8);opacity:0} }

.offering-scene { flex:1; min-height:350px; position:relative; }.shrine-roof { position:absolute; width:80%; height:60px; left:10%; top:30px; background:#061d1f; border-top:12px solid #8d3a31; clip-path:polygon(5% 0,95% 0,100% 70%,70% 50%,65% 100%,35% 100%,30% 50%,0 70%); }.saisen { position:absolute; width:350px; height:150px; left:50%; bottom:48px; transform:translateX(-50%) perspective(500px) rotateX(8deg); background:#806b4c; border:9px solid #4c3a28; box-shadow:0 25px 30px #001a1b; }.saisen-slats { height:55px; background:repeating-linear-gradient(90deg,#2a2118 0 14px,#9b8763 15px 30px); transform:perspective(250px) rotateX(38deg); transform-origin:top; }.saisen b { display:block; padding:25px; color:#e8d29c; letter-spacing:.5em; }.coin { position:absolute; width:70px; height:70px; left:calc(50% - 35px); top:100px; border-radius:50%; border:5px double #e3bd5f; background:#a97525; color:#f5d785; font-size:22px; box-shadow:0 8px 18px #001515; z-index:5; transition:.7s cubic-bezier(.5,0,.8,.3); }.coin span { display:grid; place-items:center; margin:auto; width:25px; height:25px; background:#163e39; border-radius:50%; }.coin.tossed { top:310px; transform:scale(.35) rotateY(720deg); opacity:0; }.coin-ripple { position:absolute; display:none; left:50%; bottom:130px; width:40px; height:20px; border:2px solid #f0cf77; border-radius:50%; transform:translateX(-50%); }.coin-ripple.show { display:block; animation:coinWave .8s ease; } @keyframes coinWave { to { width:160px;height:60px;opacity:0; } }

.bell-scene { flex:1; min-height:350px; position:relative; }.big-bell { position:absolute; z-index:3; top:38px; left:50%; width:150px; height:115px; transform:translateX(-50%); background:linear-gradient(90deg,#735625,#d5ad51,#6b4d20); clip-path:polygon(18% 0,82% 0,92% 72%,100% 88%,100% 100%,0 100%,0 88%,8% 72%); transform-origin:50% 0; }.big-bell i { position:absolute; left:65px; bottom:-20px; width:20px; height:28px; border-radius:50%; background:#322613; }.bell-rope { position:absolute; top:120px; left:50%; width:90px; height:245px; transform:translateX(-50%); background:none; z-index:2; }.bell-rope i { position:absolute; left:42px; top:0; width:9px; height:190px; background:repeating-linear-gradient(45deg,#e4e0c9 0 5px,#9f3340 6px 11px); box-shadow:0 4px 6px #00191a; }.bell-rope b { position:absolute; left:24px; bottom:8px; width:45px; height:55px; background:#9c3540; clip-path:polygon(20% 0,80% 0,65% 45%,100% 100%,0 100%,35% 45%); }.bell-scene.ringing .big-bell { animation:bellSwing .18s ease-in-out 5 alternate; }.bell-scene.ringing .bell-rope { animation:ropePull .45s ease 2 alternate; }.sound-wave { position:absolute; opacity:0; top:50px; left:50%; width:160px; height:120px; border:2px solid #e6c76c; border-radius:50%; transform:translateX(-50%); }.bell-scene.ringing .sound-wave { animation:sound 1.2s ease-out; }.bell-scene.ringing .wave-two { animation-delay:.25s; } @keyframes bellSwing { to{transform:translateX(-50%) rotate(8deg)}} @keyframes ropePull { to{transform:translate(-50%,35px)}} @keyframes sound { from{opacity:.8;transform:translateX(-50%) scale(.3)}to{opacity:0;transform:translateX(-50%) scale(2.6)} }

.prayer-scene { flex:1; min-height:300px; position:relative; }.spirit-light { position:absolute; left:50%; top:25px; width:230px; height:230px; transform:translateX(-50%); border-radius:50%; background:radial-gradient(circle,#d8c26f55,transparent 65%); animation:breathe 3s ease-in-out infinite; }.worshipper { position:absolute; left:50%; bottom:15px; width:150px; height:230px; transform:translateX(-50%); transform-origin:50% 100%; transition:.4s; }.head { position:absolute; left:50px; top:5px; width:50px; height:55px; border-radius:50%; background:#061b1d; }.body { position:absolute; left:28px; top:55px; width:95px; height:165px; background:linear-gradient(90deg,#091e20,#163638,#091e20); clip-path:polygon(18% 0,82% 0,100% 100%,0 100%); }.worshipper span { position:absolute; top:83px; width:70px; height:18px; background:#0b2527; border-radius:10px; transform-origin:100% 50%; transition:.25s; }.arm-left { left:5px; transform:rotate(-20deg); }.arm-right { right:5px; transform:rotate(200deg); transform-origin:0 50%!important; }.worshipper.bowing { transform:translateX(-50%) rotateX(55deg) translateY(20px); }.worshipper.clapping .arm-left { transform:rotate(8deg) translateX(26px); }.worshipper.clapping .arm-right { transform:rotate(172deg) translateX(-26px); }.clap-flash { position:absolute; left:50%; top:115px; width:12px; height:12px; border-radius:50%; transform:translateX(-50%); }.prayer-scene.clap .clap-flash { animation:clapFlash .45s ease; }.prayer-controls { position:relative; z-index:5; display:flex; justify-content:center; }.prayer-controls .stage-action { margin:0; }.wish-form { position:relative; z-index:10; max-width:560px; margin:0 auto; padding:20px 26px; background:#f4eddd; color:#173c3b; box-shadow:0 8px 30px #00191a; }.wish-form label { margin:0 0 8px; }.wish-form input { color:#173c3b; }.wish-form .hint { color:#6f7f79; }.wish-form .name-row button { min-width:130px; }
@keyframes breathe { 50%{transform:translateX(-50%) scale(1.15);opacity:.55} } @keyframes clapFlash { from{box-shadow:0 0 0 0 #f8dc78;opacity:1}to{box-shadow:0 0 0 80px transparent;opacity:0} }

/* More legible bowing and prayer motion */
.prayer-scene { perspective:700px; }
.altar-mark { position:absolute; left:50%; top:72px; width:74px; height:74px; transform:translateX(-50%); display:grid; place-items:center; color:#d7bd7655; border:1px solid #d7bd7633; border-radius:48% 52% 45% 55%; font-size:28px; box-shadow:0 0 45px #d9bd6550; }
.floor-shadow { position:absolute; left:50%; bottom:7px; width:135px; height:23px; transform:translateX(-50%); border-radius:50%; background:#020d0e99; filter:blur(5px); transition:.35s; }
.worshipper { transition:none; transform-style:preserve-3d; }
.worshipper .head { z-index:4; transform-origin:50% 100%; box-shadow:inset -9px -3px #020e0f; }
.worshipper .head em { position:absolute; right:5px; top:27px; width:8px; height:3px; border-radius:50%; background:#d3b86888; }
.worshipper .body { z-index:2; transform-origin:50% 92%; border-top:5px solid #254c4b; }
.worshipper .body em { position:absolute; left:45%; top:18px; width:10%; height:125px; background:linear-gradient(#b1914f66,transparent); }
.worshipper .arm-left,.worshipper .arm-right { z-index:5; box-shadow:inset 0 -5px #06191a; }
.prayer-hands { position:absolute; z-index:7; left:68px; top:94px; width:14px; height:31px; border-radius:8px; background:#d9b08b; opacity:0; transform:scale(.6); transition:.25s; text-decoration:none; }
.worshipper.bowing { transform:translateX(-50%); }
.worshipper.bowing .head { animation:headBow .95s cubic-bezier(.45,0,.25,1) both; }
.worshipper.bowing .body { animation:torsoBow .95s cubic-bezier(.45,0,.25,1) both; }
.worshipper.bowing .arm-left { animation:leftSleeveBow .95s cubic-bezier(.45,0,.25,1) both; }
.worshipper.bowing .arm-right { animation:rightSleeveBow .95s cubic-bezier(.45,0,.25,1) both; }
.prayer-scene.bow .floor-shadow { animation:bowShadow .95s ease both; }
.worshipper.clapping .prayer-hands { opacity:1; transform:scale(1); }
.worshipper.clapping .arm-left { transform:rotate(20deg) translate(32px,3px); }
.worshipper.clapping .arm-right { transform:rotate(160deg) translate(-32px,-3px); }
@keyframes torsoBow { 0%,100%{transform:translateY(0) rotateX(0);height:165px} 42%,62%{transform:translateY(27px) rotateX(-58deg);height:138px} }
@keyframes headBow { 0%,100%{transform:translate(0,0) rotate(0)} 42%,62%{transform:translate(21px,55px) rotate(32deg) scale(.92)} }
@keyframes leftSleeveBow { 0%,100%{transform:rotate(-20deg)} 42%,62%{transform:translate(13px,45px) rotate(8deg)} }
@keyframes rightSleeveBow { 0%,100%{transform:rotate(200deg)} 42%,62%{transform:translate(-13px,45px) rotate(172deg)} }
@keyframes bowShadow { 0%,100%{width:135px;opacity:.65} 42%,62%{width:205px;opacity:1;filter:blur(8px)} }

/* First-person prayer view */
.prayer-scene { overflow:hidden; border-top:1px solid #cbb46b30; perspective:900px; background:linear-gradient(#061719 0 68%,#0c2929 69%); }
.first-person-world { position:absolute; inset:0; transform-origin:50% 80%; transform-style:preserve-3d; }
.inner-roof { position:absolute; left:7%; right:7%; top:0; height:90px; background:#071416; border-top:9px solid #79352f; clip-path:polygon(0 0,100% 0,92% 100%,8% 100%); box-shadow:0 20px 35px #000b; }
.inner-roof:after { content:""; position:absolute; left:5%; right:5%; bottom:8px; height:8px; background:#b18b49; box-shadow:0 13px #321d18; }
.inner-roof i { position:absolute; top:20px; bottom:0; width:12px; background:#251b17; }.inner-roof i:first-child{left:20%}.inner-roof i:nth-child(2){left:50%}.inner-roof i:last-child{right:20%}
.first-person-world .spirit-light { top:50px; width:190px; height:190px; }
.first-person-world .altar-mark { top:73px; z-index:2; }
.altar-table { position:absolute; z-index:3; left:50%; top:154px; width:220px; height:70px; transform:translateX(-50%) perspective(400px) rotateX(5deg); background:linear-gradient(90deg,#39271b,#765536 50%,#39271b); border:5px solid #24170f; box-shadow:0 15px 25px #000a; }
.altar-table b { display:grid; place-items:center; width:40px; height:40px; margin:10px auto; color:#d9bf78; border:1px solid #b69a5b; font-weight:400; }.altar-table span { position:absolute; left:-14px; right:-14px; top:-10px; height:8px; background:#a37a43; }
.shrine-floor { position:absolute; left:-8%; right:-8%; top:220px; height:180px; transform-origin:top; transform:perspective(350px) rotateX(62deg); background:repeating-linear-gradient(90deg,#142e2d 0 58px,#0a1f20 59px 63px); border-top:2px solid #80633d; }
.shrine-floor i { position:absolute; left:12%; right:12%; height:1px; background:#60746b44; }.shrine-floor i:first-child{top:25%}.shrine-floor i:nth-child(2){top:52%}.shrine-floor i:last-child{top:80%}
.first-person-hands.worshipper { position:absolute; z-index:12; inset:auto 0 -8px; width:100%; height:165px; transform:none; pointer-events:none; }
.first-person-hands.worshipper .arm-left,.first-person-hands.worshipper .arm-right { position:absolute; top:auto; bottom:-18px; width:155px; height:135px; background:linear-gradient(90deg,#061719,#173637); border-radius:55% 55% 0 0; transform-origin:bottom; transition:.35s cubic-bezier(.25,.7,.25,1); box-shadow:inset 0 0 0 2px #31504b55; }
.first-person-hands.worshipper .arm-left { left:7%; transform:rotate(18deg); }.first-person-hands.worshipper .arm-right { right:7%; transform:rotate(-18deg); }
.first-person-hands .arm-left i,.first-person-hands .arm-right i { position:absolute; top:-14px; width:55px; height:74px; background:linear-gradient(90deg,#c18d69,#e0b08c); border-radius:48% 48% 42% 42%; box-shadow:inset -7px -5px #8b5e49; }
.first-person-hands .arm-left i { right:-5px; transform:rotate(5deg); }.first-person-hands .arm-right i { left:-5px; transform:rotate(-5deg); box-shadow:inset 7px -5px #8b5e49; }
.first-person-hands .prayer-hands { display:none; }
.bow-vignette { position:absolute; z-index:15; inset:0; background:linear-gradient(#001011cc,transparent 35%,#000a); opacity:0; pointer-events:none; }
.prayer-scene.bow .first-person-world { animation:firstPersonBow .95s cubic-bezier(.45,0,.25,1) both; }
.first-person-hands.worshipper.bowing { transform:none; }
.first-person-hands.bowing .arm-left { animation:firstSleeveBow .95s ease both; }.first-person-hands.bowing .arm-right { animation:firstSleeveBowRight .95s ease both; }
.prayer-scene.bow .bow-vignette { animation:bowVignette .95s ease both; }
.first-person-hands.worshipper.clapping .arm-left { left:calc(50% - 205px); transform:translateY(-34px) rotate(8deg); }
.first-person-hands.worshipper.clapping .arm-right { right:calc(50% - 160px); transform:translateY(-34px) rotate(-8deg); }
.first-person-hands.worshipper.clapping .arm-left i,.first-person-hands.worshipper.clapping .arm-right i { transform:rotate(0); }
.prayer-scene .clap-flash { z-index:20; top:52%; }
@keyframes firstPersonBow { 0%,100%{transform:translateY(0) rotateX(0) scale(1)} 40%,64%{transform:translateY(-92px) rotateX(18deg) scale(1.12)} }
@keyframes firstSleeveBow { 0%,100%{transform:rotate(18deg) translateY(0)} 40%,64%{transform:rotate(8deg) translateY(55px)} }
@keyframes firstSleeveBowRight { 0%,100%{transform:rotate(-18deg) translateY(0)} 40%,64%{transform:rotate(-8deg) translateY(55px)} }
@keyframes bowVignette { 0%,100%{opacity:0} 40%,64%{opacity:.65} }
@media (max-width:760px) { .first-person-hands.worshipper .arm-left{left:-5%;width:125px}.first-person-hands.worshipper .arm-right{right:-5%;width:125px}.first-person-hands.worshipper.clapping .arm-left{left:calc(50% - 175px);transform:translateY(-34px) rotate(8deg)}.first-person-hands.worshipper.clapping .arm-right{right:calc(50% - 130px);transform:translateY(-34px) rotate(-8deg)} }
@media (max-width:760px) { .ritual-game{padding-left:12px;padding-right:12px}.ritual-stage{min-height:650px}.stage-panel{min-height:650px;padding:32px 18px 28px}.ritual-progress li{width:65px}.stage-copy h3{font-size:22px}.basin{width:92%}.left-hand{left:12%!important}.right-hand{right:12%!important}.bamboo{opacity:.45}.saisen{width:280px}.wish-form{padding:16px}.wish-form .name-row{gap:8px}.wish-form .name-row button{min-width:0}.ritual-heading h2{font-size:29px} }
@media (max-width:760px) { .attendance{padding:75px 10px}.attendance-heading{padding:0 12px;align-items:center}.attendance-heading h2{font-size:29px}.attendance-heading>div>p:last-child{display:none}.attendance-count b{font-size:38px}.calendar-card{padding:18px 8px}.calendar-day{min-height:72px;padding:5px}.day-stamp{width:38px;height:38px;font-size:17px}.day-rank{font-size:8px}.calendar-legend{padding:0 6px}.calendar-nav{gap:15px} }
@media (max-width:760px) { .chozu-scene.grip-right .right-hand{right:18%!important;bottom:214px}.chozu-scene.grip-right .left-hand{left:12%!important}.chozu-scene.grip-left .left-hand{left:18%!important;bottom:214px}.chozu-scene.grip-left .right-hand{right:12%!important} }
@media (max-width:760px) { .ladle.rinse-handle + .hands .left-hand{left:41%!important;bottom:122px}.ladle.rinse-handle + .hands .right-hand{right:10%!important;bottom:105px} }
@media print { body>*:not(main),main>*:not(.fortune-wrap){display:none!important}.fortune-wrap{display:block!important;padding:0;background:white}.omikuji{box-shadow:none} }
.omikuji.shrine-border-border_blackstar{border-color:#aa8438;box-shadow:0 0 0 5px #171d1c,0 25px 70px #000}.omikuji.shrine-border-border_blackstar:after{content:'✦';position:absolute;right:24px;top:24px;color:#a67c2f;font-size:30px}.omikuji.shrine-border-border_ocean{border-color:#4b8f91;box-shadow:0 0 35px #4b9a9a66,0 25px 70px #001414}.omikuji.shrine-border-border_ocean:after{content:'〜';position:absolute;right:24px;top:24px;color:#3e8c8f;font-size:32px}.shrine-stamp-stamp_blackstone .day-stamp{font-size:0;border-radius:42% 58% 48% 52%;background:#182827;color:#d3b665;border-color:#4a5954}.shrine-stamp-stamp_blackstone .day-stamp:after{content:'◆';font-size:20px}.shrine-stamp-stamp_horse .day-stamp{font-size:0;border-radius:45%;border-color:#765837;color:#765837}.shrine-stamp-stamp_horse .day-stamp:after{content:'駿';font-size:20px}.shrine-theme-theme_redmoon .hero{background:radial-gradient(circle at 72% 36%,#873e38 0 7%,transparent 30%),linear-gradient(135deg,#180b0d,#462322 62%,#1d1716)}.shrine-theme-theme_redmoon .ritual-stage{background:radial-gradient(circle at 50% 25%,#70413c,#231719 65%)}.shrine-theme-theme_snow .hero{background:radial-gradient(circle at 72% 36%,#dbe8e4 0 7%,transparent 30%),linear-gradient(135deg,#17282d,#49666a 62%,#24363a)}.shrine-theme-theme_snow .ritual-stage{background:radial-gradient(circle at 50% 25%,#78908e,#1b3436 65%)}
.guild-milestones{max-width:1040px;margin:-18px auto 30px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.guild-milestone-card{display:flex;align-items:center;gap:14px;padding:17px;background:#d9ded5;border:1px solid #c1c8bd;filter:grayscale(.75);opacity:.68}.guild-milestone-card>span{flex:0 0 42px;height:42px;display:grid;place-items:center;border:1px solid #84928b;border-radius:50%;font-size:17px}.guild-milestone-card small{color:#75847e}.guild-milestone-card h3{margin:3px 0;font-size:15px}.guild-milestone-card p{margin:0;color:#6d7a75;font-size:10px}.guild-milestone-card>b{margin-left:auto;color:#84908b;font-size:9px;white-space:nowrap}.guild-milestone-card.reached{background:#fff8e5;border-color:#b69a52;filter:none;opacity:1;box-shadow:0 7px 18px #344c4220}.guild-milestone-card.reached>span{color:#a84635;border-color:#a84635;box-shadow:0 0 12px #c9a55166}.guild-milestone-card.reached>b{color:#a84635}
.guild-milestone-lantern .stone-lantern i{opacity:1;background:#ffe08a;box-shadow:0 0 38px 18px #f1b947aa;animation:lanternBlessing 1.8s ease-in-out infinite}.guild-milestone-lantern .crest{box-shadow:0 0 25px #d1b45f88}.guild-milestone-lantern .ritual-stage{box-shadow:0 30px 80px #123f3630,0 0 35px #d5ac4a33}@keyframes lanternBlessing{50%{box-shadow:0 0 55px 25px #f1b947cc;filter:brightness(1.2)}}
.guild-milestone-starlight .ritual-stage:after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 18%,#fff 0 1px,transparent 2px),radial-gradient(circle at 82% 22%,#e8cf76 0 1px,transparent 2px),radial-gradient(circle at 66% 8%,#fff 0 1px,transparent 2px),radial-gradient(circle at 28% 37%,#d9c26d 0 1px,transparent 2px),radial-gradient(circle at 91% 48%,#fff 0 1px,transparent 2px);background-size:190px 140px;animation:starDrift 9s linear infinite}.guild-milestone-starlight .altar-mark{color:#f0d67a;box-shadow:0 0 55px #dfbd5b99;text-shadow:0 0 14px #f1d476}.guild-milestone-starlight .attendance{background:radial-gradient(circle at 50% 10%,#244d4c,#061d1e 70%)}@keyframes starDrift{to{background-position:40px 25px}}
.calendar-card{position:relative}.guild-milestone-goshuin .calendar-card{box-shadow:0 0 0 4px #a98944,0 25px 60px #001819}.guild-milestone-goshuin .calendar-card:before{content:'公會共修';position:absolute;z-index:3;right:20px;top:18px;width:62px;height:62px;display:grid;place-items:center;border:3px double #a84635;border-radius:50%;color:#a84635;font-size:12px;transform:rotate(9deg);background:#f5efdfcc}.guild-milestone-goshuin .day-stamp{box-shadow:0 0 0 3px #c4a44b55;color:#9d342b;border-color:#b98f3e}.guild-milestone-goshuin .fortune-top b:after{content:'共修';display:inline-grid;margin-left:10px;padding:4px;border:1px solid #a84635;border-radius:50%;color:#a84635;font-size:9px;transform:rotate(-7deg)}
@media (max-width:760px){.rewards{padding:75px 16px}.rewards-head{align-items:flex-end}.rewards-head h2{font-size:29px}.rewards-head>div>p:last-child{display:none}.point-purse{padding:12px}.point-purse>span{font-size:24px}.point-purse b{font-size:28px}.reward-catalog,.guild-milestones{grid-template-columns:1fr}.guild-milestones{margin-top:-16px}.guild-progress{padding:20px}.ledger-row{grid-template-columns:85px 1fr 45px;padding:10px}.guild-milestone-goshuin .calendar-card:before{width:45px;height:45px;right:8px;top:10px;font-size:9px}}
.snowfall{display:none;position:fixed;z-index:40;inset:0;overflow:hidden;pointer-events:none}.shrine-theme-theme_snow .snowfall{display:block}.snowfall i{position:absolute;inset:-270px 0 0;background-repeat:repeat;will-change:transform}.snowfall i:first-child{opacity:.35;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px),radial-gradient(circle,#dcebea 0 1px,transparent 1.5px);background-size:43px 47px,67px 71px;background-position:5px 8px,22px 31px;animation:snowFar 18s linear infinite}.snowfall i:nth-child(2){opacity:.62;background-image:radial-gradient(circle,#fff 0 2px,transparent 2.5px),radial-gradient(circle,#e8f2ef 0 1.5px,transparent 2px);background-size:79px 83px,101px 107px;background-position:18px 2px,55px 47px;animation:snowMiddle 12s linear infinite}.snowfall i:nth-child(3){opacity:.82;filter:blur(.3px);background-image:radial-gradient(ellipse,#fff 0 3px,transparent 3.8px),radial-gradient(ellipse,#eaf5f2 0 2.5px,transparent 3.2px);background-size:137px 143px,173px 181px;background-position:38px 19px,91px 63px;animation:snowNear 8s linear infinite}.shrine-theme-theme_snow .hero:after{background:linear-gradient(#eef5f2,#e1ebe7);box-shadow:0 -18px 45px #e8f2ef88}.shrine-theme-theme_snow .ritual-game{background:radial-gradient(circle at 50% 20%,#54706f,#10282b 68%)}.shrine-theme-theme_snow .stone-path{filter:saturate(.4) brightness(1.35)}@keyframes snowFar{to{transform:translate(22px,120px)}}@keyframes snowMiddle{to{transform:translate(-38px,190px)}}@keyframes snowNear{to{transform:translate(55px,270px)}}
@media (prefers-reduced-motion:reduce){.snowfall i{animation:none!important}}
.guild-legacy{padding:95px max(9vw,28px);display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;align-items:center;background:#e5ebe3}.guardian-scene{height:330px;position:relative;display:grid;place-items:center}.guardian-aura{position:absolute;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,#c5a85244,transparent 68%);opacity:.2;transition:1s}.guardian-statue{position:relative;width:150px;height:195px;background:linear-gradient(90deg,#263836,#586660,#1a2b2b);clip-path:polygon(28% 8%,45% 0,64% 7%,82% 30%,88% 75%,68% 100%,25% 95%,8% 70%,13% 28%);filter:drop-shadow(0 18px 12px #172d2738);transition:1s}.guardian-statue i,.guardian-statue b{position:absolute;top:62px;width:18px;height:11px;border-radius:50%;background:#071819;box-shadow:0 0 0 transparent;transition:.8s}.guardian-statue i{left:34px;transform:rotate(12deg)}.guardian-statue b{right:34px;transform:rotate(-12deg)}.guardian-statue span{position:absolute;left:52px;bottom:35px;width:46px;height:20px;border-bottom:4px solid #1a2928;border-radius:50%}.guardian-pedestal{position:absolute;bottom:18px;width:220px;padding:10px;text-align:center;background:#354641;color:#ae9c69;border-top:4px solid #6f7e75;font-size:10px;letter-spacing:.25em}.legacy-copy h2{font-size:40px;letter-spacing:.12em;margin:8px 0}.legacy-copy>p:not(.eyebrow){color:#657771;line-height:1.9}.legacy-progress{margin-top:30px}.legacy-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:12px}.legacy-progress span,.legacy-progress small{color:#71827b;font-size:11px}.legacy-progress small{display:block;margin-top:10px}.guardian-stage-sprout .guardian-statue i,.guardian-stage-sprout .guardian-statue b{background:#b58e3e;box-shadow:0 0 12px #d9b553}.guardian-stage-sprout .guardian-aura{opacity:.45}.guardian-stage-guardian .guardian-statue{clip-path:polygon(10% 0,34% 13%,50% 3%,68% 13%,92% 0,79% 32%,91% 70%,68% 100%,30% 100%,9% 70%,21% 32%)}.guardian-stage-guardian .guardian-statue i,.guardian-stage-guardian .guardian-statue b{background:#d0a744;box-shadow:0 0 18px #e7c266}.guardian-stage-radiant .guardian-aura,.guardian-stage-ascended .guardian-aura{opacity:1;animation:breathe 2.5s infinite}.guardian-stage-radiant .guardian-statue,.guardian-stage-ascended .guardian-statue{filter:drop-shadow(0 0 18px #c9a84d)}.guardian-stage-ascended .guardian-statue{background:linear-gradient(90deg,#49371e,#d0a94c,#302817);transform:scale(1.12)}
.oracle-board{max-width:960px;margin:32px auto 0;padding:28px;background:#061b1c;border:1px solid #826f43;color:#e9e1d0}.oracle-title{display:flex;align-items:center;gap:16px}.oracle-title>span{width:50px;height:50px;display:grid;place-items:center;border:1px solid #b99d55;border-radius:50%;color:#d0b566;font-size:21px}.oracle-title h3{margin:3px 0}.oracle-title>b{margin-left:auto;color:#cdb268;font-size:13px}.oracle-ranks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 24px;margin:25px 0}.oracle-ranks>div{display:grid;grid-template-columns:42px 1fr 25px;align-items:center;gap:8px;font-size:11px}.oracle-ranks i{height:5px;background:#304442}.oracle-ranks i b{display:block;height:100%;background:#b99b4f}.oracle-ranks em{text-align:right;font-style:normal}.oracle-board>small{color:#768c84}
.seal-collection{max-width:1040px;margin:38px auto 0;padding:28px;background:#102f30;color:#e9e1d1;display:grid;grid-template-columns:280px 1fr;gap:30px}.seal-collection h3{margin:5px 0}.seal-collection>div>p:last-child{color:#8ea69e;font-size:11px;line-height:1.7}.seal-shelf{display:flex;gap:15px;overflow-x:auto;align-items:center}.seal-shelf>span{color:#718b82;font-size:12px}.seasonal-seal{flex:0 0 145px;padding:15px;text-align:center;background:#f2ead8;color:#263d39;border:3px double #b89b58}.seasonal-seal i{width:58px;height:58px;margin:auto;display:grid;place-items:center;border:2px solid #a84635;border-radius:50%;color:#a84635;font-size:22px;font-style:normal;transform:rotate(-8deg)}.seasonal-seal b,.seasonal-seal small{display:block}.seasonal-seal b{margin-top:10px;font-size:11px}.seasonal-seal small{color:#8a7c67;font-size:9px;margin-top:5px}
@media(max-width:760px){.guild-legacy{grid-template-columns:1fr;padding:65px 22px}.guardian-scene{height:280px}.legacy-copy h2{font-size:29px}.oracle-title{align-items:flex-start}.oracle-title>b{max-width:110px;text-align:right}.oracle-ranks{grid-template-columns:1fr 1fr}.seal-collection{grid-template-columns:1fr;padding:22px}.seasonal-seal{flex-basis:125px}}
.guild-grounds{padding:35px max(7vw,24px) 95px;background:#e5ebe3;display:grid;gap:28px}.grounds-building{position:relative;max-width:1120px;width:100%;margin:auto;min-height:360px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:55px;padding:42px;overflow:hidden;background:#f1eee3;border:1px solid #bac4b9;box-shadow:0 18px 45px #17342d18}.grounds-building:nth-child(even){background:#102d2e;color:#eee5d2}.building-copy h2{margin:7px 0 12px;font-size:32px;letter-spacing:.1em}.building-copy>p:not(.eyebrow){color:#6b7973;line-height:1.8}.grounds-building:nth-child(even) .building-copy>p:not(.eyebrow){color:#91a59d}.building-copy>small{display:block;min-height:18px;margin-top:15px;color:#9b7540}.building-scene{position:relative;min-height:260px}.building-lock{position:absolute;z-index:10;inset:0;display:grid;place-content:center;gap:10px;text-align:center;background:#102725e8;color:#d7c68f;backdrop-filter:blur(4px)}.building-lock b{width:55px;height:55px;margin:auto;display:grid;place-items:center;border:2px solid #b69c59;border-radius:50%;font-size:20px}.guild-building-ema #ema-lock,.guild-building-koi #koi-lock{display:none}
.ema-rack{border-bottom:12px solid #4a3021}.rack-roof{position:absolute;left:3%;right:3%;top:6px;height:34px;background:#213a36;clip-path:polygon(7% 35%,93% 35%,100% 100%,0 100%);border-bottom:6px solid #92633b}.rack-post{position:absolute;top:42px;bottom:0;width:18px;background:linear-gradient(90deg,#543421,#9a6840,#4a2e20)}.rack-post.left{left:10%}.rack-post.right{right:10%}.rack-line{position:absolute;left:12%;right:12%;top:75px;height:105px;border-top:4px solid #705034;display:flex;justify-content:center;gap:8px}.rack-line i{position:relative;width:48px;height:62px;padding-top:17px;text-align:center;background:#d6b979;color:#604526;font-style:normal;clip-path:polygon(8% 0,92% 0,100% 18%,87% 100%,13% 100%,0 18%);transform:rotate(var(--tilt,-3deg));box-shadow:inset 0 0 0 2px #9d7947}.rack-line i:nth-child(even){--tilt:4deg;transform:translateY(8px) rotate(var(--tilt))}.rack-line i:before{content:'';position:absolute;left:50%;top:-22px;width:1px;height:25px;background:#a98d5e}
.ema-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:20px}.ema-options button{padding:10px 9px;border:1px solid #b19b69;background:#faf4e6;color:#55452f;text-align:left;font-size:11px;cursor:pointer}.ema-options button:hover:not(:disabled){background:#fff;border-color:#9b3c31}.ema-options button:disabled{opacity:.52;cursor:not-allowed}.ema-options button b{float:right;color:#a04435;font-weight:500}
.rack-lines{position:absolute;left:11%;right:11%;top:78px;bottom:28px;background:repeating-linear-gradient(to bottom,#725139 0 3px,transparent 3px 104px)}.ema-board{position:absolute;z-index:2;left:12%;right:12%;top:62px;bottom:15px;display:flex;align-content:flex-start;justify-content:center;flex-wrap:wrap;gap:9px 8px;overflow:hidden;padding:22px 4px}.ema-board>span{align-self:center;color:#806d50;font-size:11px}.ema-hanger{position:relative;width:76px;height:95px;padding-top:9px}.ema-hanger:before{content:'';position:absolute;z-index:0;left:50%;top:-6px;width:2px;height:17px;background:#9b7c4e;box-shadow:1px 0 #d1b477}.ema-plaque{position:relative;z-index:1;width:76px;height:86px;padding:19px 9px 8px;background:linear-gradient(100deg,#dfc58c,#cda86b);color:#503d28;clip-path:polygon(9% 0,91% 0,100% 15%,88% 100%,12% 100%,0 15%);filter:drop-shadow(0 4px 2px #22150d55);font-size:9px;line-height:1.45;text-align:center;word-break:break-all;transform:rotate(var(--ema-tilt));animation:emaHang .65s cubic-bezier(.2,.8,.2,1) both}.ema-plaque b{display:block;margin-bottom:4px;color:#8f3d30;font-size:13px}.ema-plaque small{position:absolute;right:8px;bottom:5px;color:#7d6545;font-size:6px}.ema-custom{margin-top:14px;padding-top:13px;border-top:1px solid #c8b98f}.ema-custom label{display:flex;justify-content:space-between;margin-bottom:7px;color:#645640;font-size:10px}.ema-custom label small{color:#8c7c66}.ema-custom>div{display:flex}.ema-custom input{min-width:0;flex:1;padding:10px 11px;border:1px solid #b19b69;border-right:0;background:#fffaf0;color:#433a2d}.ema-custom button{padding:0 13px;border:1px solid #9b4337;background:#9b4337;color:#fff7e7;cursor:pointer}.ema-custom input:disabled,.ema-custom button:disabled{opacity:.48;cursor:not-allowed}@keyframes emaHang{0%{opacity:0;transform:translateY(-35px) rotate(calc(var(--ema-tilt) - 8deg))}65%{transform:translateY(3px) rotate(calc(var(--ema-tilt) + 3deg))}100%{opacity:1;transform:translateY(0) rotate(var(--ema-tilt))}}
.koi-pond{--feed-x:50%;--feed-y:50%;height:285px;min-height:0;overflow:hidden;border:8px solid #566c64;border-radius:48% 52% 45% 55%;background:radial-gradient(ellipse at 45% 42%,#649b8c,#244e4c 48%,#092d31 75%);box-shadow:inset 0 0 38px #001a22,0 14px 28px #001c1d66;cursor:crosshair;isolation:isolate}.koi-pond:focus-visible{outline:3px solid #d3b85f;outline-offset:4px}.water-shimmer{position:absolute;z-index:0;inset:-35%;background:repeating-radial-gradient(ellipse at 55% 48%,transparent 0 17px,#b8ddd21a 19px 20px,transparent 22px 35px);animation:waterDrift 9s linear infinite}.koi{position:absolute;z-index:2;width:55px;height:18px;border-radius:60% 35% 55% 35%;background:linear-gradient(90deg,#d6d0b2 0 25%,#b34e38 27% 52%,#e3d8b9 55%);box-shadow:0 4px 5px #00181966;transition:left 1.15s cubic-bezier(.18,.75,.2,1),top 1.15s cubic-bezier(.18,.75,.2,1),transform .55s ease;transform-origin:55% 50%}.koi:before{content:'';position:absolute;right:-15px;top:1px;border-left:18px solid #c58c63;border-top:8px solid transparent;border-bottom:8px solid transparent;animation:koiTail .7s ease-in-out infinite alternate;transform-origin:left}.koi:after{content:'';position:absolute;left:10px;top:5px;width:4px;height:4px;border-radius:50%;background:#182725}.koi-one{left:15%;top:25%;transform:rotate(18deg)}.koi-two{left:72%;top:55%;transform:rotate(195deg) scale(.82)}.koi-three{left:34%;top:72%;transform:rotate(-28deg) scale(.68)}.lily{position:absolute;z-index:3;width:45px;height:38px;border-radius:50%;background:#668c59;clip-path:polygon(0 0,43% 42%,100% 5%,100% 100%,0 100%)}.lily-one{right:19%;top:17%}.lily-two{left:14%;bottom:16%;transform:scale(.65)}.pond-ripple{position:absolute;z-index:4;left:var(--feed-x);top:var(--feed-y);width:12px;height:12px;border:2px solid #e8efd5;border-radius:50%;opacity:0;transform:translate(-50%,-50%)}.koi-pond.feeding .pond-ripple{animation:pondRipple 1.5s ease-out}.food-pellets{position:absolute;z-index:5;left:var(--feed-x);top:var(--feed-y);pointer-events:none}.food-pellets i{position:absolute;width:5px;height:5px;border-radius:50%;background:#d4b56d;box-shadow:0 1px 2px #142c25;animation:pelletDrop .65s ease-out both}.pond-bubbles i{position:absolute;z-index:4;width:7px;height:7px;border:1px solid #cce4dc;border-radius:50%;opacity:0}.koi-pond.feeding .pond-bubbles i{left:var(--feed-x);top:var(--feed-y);animation:bubbleRise 1s .75s ease-out}.koi-pond.feeding .pond-bubbles i:nth-child(2){animation-delay:.95s;margin-left:12px}.koi-pond.feeding .pond-bubbles i:nth-child(3){animation-delay:1.15s;margin-left:-10px}.pond-hint{position:absolute;z-index:6;left:50%;bottom:15px;transform:translateX(-50%);padding:5px 10px;border-radius:20px;background:#082627aa;color:#c5d8ce;font-size:9px;font-style:normal;letter-spacing:.12em;pointer-events:none;transition:.3s}.koi-pond:hover .pond-hint,.koi-pond.feeding .pond-hint{opacity:0}.feed-koi{margin-top:17px;padding:11px 18px;background:transparent;border:1px solid #aa955c;color:#d9c787;cursor:pointer}.feed-koi:disabled{opacity:.4;cursor:not-allowed}@keyframes pondRipple{0%{opacity:.9;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(16)}}@keyframes waterDrift{to{transform:translate(8%,5%) rotate(2deg)}}@keyframes koiTail{to{transform:rotateY(38deg) skewY(8deg)}}@keyframes pelletDrop{0%{opacity:0;transform:translate(var(--px),-35px) scale(1.4)}65%{opacity:1}100%{opacity:.75;transform:translate(var(--px),var(--py)) scale(.7)}}@keyframes bubbleRise{0%{opacity:.8;transform:translateY(5px) scale(.5)}100%{opacity:0;transform:translateY(-32px) scale(1.5)}}
@media(max-width:760px){.guild-grounds{padding:20px 14px 70px}.grounds-building{grid-template-columns:1fr;gap:20px;padding:25px 18px}.ema-building .building-scene{order:2}.building-copy h2{font-size:26px}.building-scene{min-height:220px}.koi-pond{height:230px}.ema-options{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.koi,.pond-ripple,.water-shimmer,.koi:before,.food-pellets i,.pond-bubbles i{transition:none!important;animation:none!important}}
.ema-plaque.is-custom{cursor:zoom-in;box-shadow:inset 0 0 0 1px #a54032}.ema-plaque.is-custom:hover,.ema-plaque.is-custom:focus-visible{filter:drop-shadow(0 6px 5px #22150d88) brightness(1.08);outline:none}.ema-plaque.is-custom:after{content:'＋';position:absolute;left:6px;bottom:4px;color:#9a4033;font-size:8px}.ema-lightbox[hidden]{display:none}.ema-lightbox{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:25px;background:#061717d9;backdrop-filter:blur(7px);animation:emaFade .22s ease}.ema-lightbox-close{position:absolute;right:max(24px,5vw);top:24px;width:42px;height:42px;border:1px solid #d7c28c;border-radius:50%;background:#102c2b;color:#f0dfb3;font-size:25px;cursor:pointer}.ema-large-plaque{position:relative;width:min(360px,82vw);min-height:430px;padding:92px 45px 50px;background:linear-gradient(105deg,#ead39b,#caa364);color:#4d3924;text-align:center;clip-path:polygon(10% 0,90% 0,100% 12%,88% 100%,12% 100%,0 12%);filter:drop-shadow(0 24px 28px #0009);animation:emaOpen .35s cubic-bezier(.2,.8,.2,1)}.ema-large-plaque:before{content:'';position:absolute;inset:15px;border:2px solid #9e7542;clip-path:inherit;pointer-events:none}.ema-large-plaque b{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 25px;border:2px solid #a04435;border-radius:50%;color:#a04435;font-size:26px}.ema-large-plaque h3{margin:0 0 22px;color:#76603d;font-size:12px;letter-spacing:.28em;font-weight:500}.ema-large-plaque p{margin:0;font-family:serif;font-size:24px;line-height:1.8;letter-spacing:.08em;white-space:pre-wrap;overflow-wrap:anywhere}.ema-large-plaque small{position:absolute;right:42px;bottom:35px;color:#79613e}.ema-large-cord{position:absolute;left:50%;top:0;width:3px;height:55px;background:#8b6c3f;transform:translateX(-50%)}body.ema-modal-open{overflow:hidden}@keyframes emaFade{from{opacity:0}}@keyframes emaOpen{from{opacity:0;transform:translateY(-25px) scale(.92)}}
.ema-building .ema-rack{min-height:420px}.ema-building .rack-lines{top:78px;background:repeating-linear-gradient(to bottom,#725139 0 3px,transparent 3px 69px)}.ema-building .ema-board{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:69px;align-content:start;gap:0 3px;padding-top:22px}.ema-building .ema-hanger{width:54px;height:66px;padding-top:8px;justify-self:center}.ema-building .ema-hanger:before{top:-6px;height:16px;background:#8c2e27;box-shadow:2px 0 #d5c1a0}.ema-building .ema-plaque{width:54px;height:58px;padding:14px 5px 6px;font-size:6.5px;line-height:1.3}.ema-building .ema-plaque b{margin-bottom:2px;font-size:10px}.ema-building .ema-plaque small{right:5px;bottom:3px;font-size:5px}.ema-building .ema-narrow{width:47px}.ema-building .ema-narrow .ema-plaque{width:47px}.ema-building .ema-wide{width:61px}.ema-building .ema-wide .ema-plaque{width:61px}.ema-building .ema-tall .ema-plaque{height:63px}.ema-building .ema-wood-0{background:linear-gradient(100deg,#ead6a4,#c9a268)}.ema-building .ema-wood-1{background:linear-gradient(100deg,#d6b77b,#eddaa9)}.ema-building .ema-wood-2{background:linear-gradient(100deg,#f0dfb8,#cdaa70)}.ema-building .ema-wood-3{background:linear-gradient(100deg,#c99c61,#e3c88d)}
@media(max-width:760px){.ema-building .ema-board{grid-template-columns:repeat(5,1fr)}.ema-building .ema-rack{min-height:420px}}
.ema-building .ema-rack{min-height:435px}.ema-building .rack-lines{background:repeating-linear-gradient(to bottom,#725139 0 3px,transparent 3px 69px)}.ema-building .ema-board{grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(5,69px);grid-auto-rows:0;overflow:hidden}.ema-building .ema-hanger{width:43px;transform:translate(var(--ema-x),var(--ema-y))}.ema-building .ema-hanger:before{background:var(--cord-color)}.ema-building .ema-plaque{width:43px;height:58px;padding:13px 4px 6px;font-size:6px}.ema-building .ema-narrow{width:38px}.ema-building .ema-narrow .ema-plaque{width:38px}.ema-building .ema-slim{width:40px}.ema-building .ema-slim .ema-plaque{width:40px}.ema-building .ema-standard{width:44px}.ema-building .ema-standard .ema-plaque{width:44px}
.ema-building .ema-plaque>span{display:block;line-height:1.15}.ema-building .ema-plaque b{font-size:8px;line-height:1;margin-bottom:2px}
@media(max-width:760px){.ema-building .ema-rack{min-height:565px}.ema-building .ema-board{grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(7,69px)}}
.ema-custom>input{width:100%;padding:10px 11px;border:1px solid #b19b69;background:#fffaf0;color:#433a2d}.ema-drawing-tools{display:flex!important;gap:5px;margin:8px 0}.ema-drawing-tools button{flex:1;padding:7px 4px;border:1px solid #b7a378;background:#eee4ce;color:#655138;font-size:9px;cursor:pointer}.ema-drawing-tools button.active{border-color:#9d3d31;background:#9d3d31;color:#fff}.ema-custom #ema-drawing{display:block;width:100%;height:auto;aspect-ratio:30/17;border:1px solid #a88452;background:linear-gradient(105deg,#ead39b,#caa364);cursor:crosshair;touch-action:none;box-shadow:inset 0 0 18px #8b66352b}.ema-custom #ema-drawing.disabled{opacity:.48;pointer-events:none}.ema-submit-drawing{width:100%;margin-top:8px;padding:11px;border:1px solid #9b4337;background:#9b4337;color:#fff7e7;cursor:pointer}.ema-submit-drawing:disabled{opacity:.48;cursor:not-allowed}.ema-drawing-thumbnail{position:absolute;z-index:2;left:4px;right:4px;top:12px;width:calc(100% - 8px);height:35px;pointer-events:none}.ema-plaque:has(.ema-drawing-thumbnail)>b{opacity:.25}.ema-lightbox-drawing,#ema-lightbox-drawing{display:block;width:100%;height:auto;margin:-8px auto 12px;aspect-ratio:30/17}.ema-lightbox-drawing[hidden],#ema-lightbox-drawing[hidden]{display:none}.ema-large-plaque:has(#ema-lightbox-drawing:not([hidden])){padding-top:78px}.ema-large-plaque:has(#ema-lightbox-drawing:not([hidden])) b{margin-bottom:12px}
@media(max-width:760px){.ema-drawing-tools{flex-wrap:wrap}.ema-drawing-tools button{flex:1 0 28%}}
.guardian-stage-stone .guardian-scene>.guardian-sacred-rope{opacity:0;visibility:hidden;transform:translate(-50%,-8px) rotate(-2deg)}.guardian-stage-sprout .guardian-scene>.guardian-sacred-rope,.guardian-stage-guardian .guardian-scene>.guardian-sacred-rope,.guardian-stage-radiant .guardian-scene>.guardian-sacred-rope,.guardian-stage-ascended .guardian-scene>.guardian-sacred-rope{opacity:1;visibility:visible;transition:opacity .8s ease,transform .8s ease}
.ema-drawing-tools button:disabled{opacity:.42;filter:grayscale(1);cursor:not-allowed}.ema-drawing-tools button.active:disabled{background:#a79b83;border-color:#a79b83;color:#e8e1d3}
.ema-workspace{position:relative;min-height:390px}.ema-complete-cover[hidden]{display:none}.ema-complete-cover{position:absolute;z-index:8;inset:12px 0 0;display:grid;place-content:center;text-align:center;padding:30px;background:linear-gradient(145deg,#f3edddf5,#e4d4b6f5);border:1px solid #b89b62;box-shadow:inset 0 0 0 5px #f7f0df,0 10px 25px #493a2522}.ema-complete-cover i{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border:3px double #a44638;border-radius:50%;color:#a44638;font:normal 25px serif;transform:rotate(-7deg)}.ema-complete-cover h3{margin:0 0 10px;color:#3c463e;font-size:21px;letter-spacing:.12em}.ema-complete-cover p{margin:0;color:#796b54;line-height:1.8;font-size:12px}.ema-complete-cover span{display:block;margin-top:23px;padding-top:14px;border-top:1px solid #bba77d;color:#9b814e;font-size:9px;letter-spacing:.08em}
.shrine-ema-ema_blackspirit .ema-custom #ema-drawing,.ema-plaque.ema-style-ema_blackspirit,.ema-lightbox.ema-style-ema_blackspirit .ema-large-plaque{background:linear-gradient(120deg,#29302f,#101817);color:#d8bd6b}.ema-plaque.ema-style-ema_blackspirit{box-shadow:inset 0 0 0 1px #b99443}.ema-plaque.ema-style-ema_blackspirit small{color:#bca765}.shrine-ema-ema_blackspirit .ema-custom #ema-drawing{border-color:#ad8d43}.shrine-ema-ema_snowcedar .ema-custom #ema-drawing,.ema-plaque.ema-style-ema_snowcedar,.ema-lightbox.ema-style-ema_snowcedar .ema-large-plaque{background:linear-gradient(110deg,#e9f0e9,#abc3bd);color:#355653}.ema-plaque.ema-style-ema_snowcedar+.ema-hanger:before{background:#668f99}.shrine-ema-ema_snowcedar .ema-custom #ema-drawing{border-color:#6d9999}.shrine-ema-ema_crimson .ema-custom #ema-drawing,.ema-plaque.ema-style-ema_crimson,.ema-lightbox.ema-style-ema_crimson .ema-large-plaque{background:linear-gradient(120deg,#9c372e,#541a1b);color:#f2d889}.ema-plaque.ema-style-ema_crimson{box-shadow:inset 0 0 0 1px #d9b555}.ema-plaque.ema-style-ema_crimson b,.ema-plaque.ema-style-ema_crimson small{color:#f0cd73}.shrine-ema-ema_crimson .ema-custom #ema-drawing{border-color:#d0a64c}
.ema-hanger:has(.ema-style-ema_snowcedar):before{background:#668f99}.ema-hanger:has(.ema-style-ema_blackspirit):before{background:#b99443}.ema-hanger:has(.ema-style-ema_crimson):before{background:#d7b452}
.guardian-statue .guardian-sacred-rope{position:absolute;z-index:3;left:-13px;right:-13px;top:104px;height:25px;display:flex;align-items:center;overflow:visible;transform:rotate(-2deg);filter:drop-shadow(0 3px 2px #07151388)}.guardian-statue .guardian-sacred-rope:before,.guardian-statue .guardian-sacred-rope:after{content:'';position:absolute;top:17px;width:10px;height:43px;background:repeating-linear-gradient(90deg,#d7c69b 0 2px,#806c43 2px 4px);clip-path:polygon(15% 0,85% 0,100% 88%,50% 100%,0 88%)}.guardian-statue .guardian-sacred-rope:before{left:28px;transform:rotate(5deg)}.guardian-statue .guardian-sacred-rope:after{right:29px;transform:rotate(-6deg)}.guardian-statue .guardian-sacred-rope i{position:relative!important;inset:auto!important;display:block;width:20%!important;height:15px!important;border:0!important;border-radius:45% 55% 48% 52%!important;box-shadow:inset 0 3px 3px #fff4,inset 0 -3px 3px #17231f55!important;transform:rotate(var(--twist)) skewX(-8deg)!important}.guardian-statue .guardian-sacred-rope i:first-child{--twist:4deg;background:repeating-linear-gradient(145deg,#3f7772 0 4px,#79a49b 4px 7px)!important}.guardian-statue .guardian-sacred-rope i:nth-child(2){--twist:-3deg;background:repeating-linear-gradient(145deg,#c29b3f 0 4px,#efd171 4px 7px)!important}.guardian-statue .guardian-sacred-rope i:nth-child(3){--twist:3deg;background:repeating-linear-gradient(145deg,#a23e35 0 4px,#db7767 4px 7px)!important}.guardian-statue .guardian-sacred-rope i:nth-child(4){--twist:-4deg;background:repeating-linear-gradient(145deg,#d7d5c7 0 4px,#fffceb 4px 7px)!important}.guardian-statue .guardian-sacred-rope i:nth-child(5){--twist:2deg;background:repeating-linear-gradient(145deg,#65476f 0 4px,#9c77a7 4px 7px)!important}.guardian-statue .guardian-sacred-rope i:after{content:'';position:absolute;right:-5px;top:3px;width:10px;height:9px;border-radius:50%;background:inherit}.guardian-stage-sprout .guardian-statue,.guardian-stage-guardian .guardian-statue,.guardian-stage-radiant .guardian-statue,.guardian-stage-ascended .guardian-statue{box-shadow:inset 10px 0 20px #9eaa9b18,inset -13px -8px 18px #06181755}.guardian-stage-sprout .guardian-statue:after,.guardian-stage-guardian .guardian-statue:after,.guardian-stage-radiant .guardian-statue:after,.guardian-stage-ascended .guardian-statue:after{content:'';position:absolute;inset:18px 25px 35px;background:linear-gradient(135deg,transparent 35%,#b69b4a66 36% 38%,transparent 39% 58%,#b69b4a55 59% 61%,transparent 62%);clip-path:polygon(40% 0,58% 31%,45% 53%,70% 100%,55% 100%,30% 58%,43% 33%,25% 0)}
.guardian-stage-guardian .guardian-statue,.guardian-stage-radiant .guardian-statue,.guardian-stage-ascended .guardian-statue{clip-path:polygon(27% 7%,44% 0,65% 6%,83% 28%,89% 72%,70% 100%,24% 96%,7% 69%,13% 27%)}
.guardian-scene>.guardian-statue{width:176px;height:205px;border-radius:0;background:radial-gradient(ellipse at 32% 22%,#667069 0 2%,transparent 3%),radial-gradient(ellipse at 73% 58%,#111f1e 0 3%,transparent 4%),radial-gradient(ellipse at 42% 76%,#73807722 0 5%,transparent 6%),linear-gradient(105deg,#172625 0 14%,#3d4b47 37%,#59625c 49%,#263634 70%,#111f1f 100%);clip-path:polygon(20% 11%,37% 3%,55% 0,72% 7%,85% 23%,91% 44%,87% 64%,93% 79%,75% 95%,57% 98%,39% 94%,19% 100%,9% 79%,13% 61%,6% 43%,14% 25%);filter:drop-shadow(0 19px 11px #162f2938);box-shadow:inset 13px 3px 22px #83908618,inset -18px -7px 22px #06151488}.guardian-scene>.guardian-statue:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 33%,#9bac9b25 0 1px,transparent 2px),radial-gradient(circle at 62% 18%,#0005 0 1px,transparent 2px),radial-gradient(circle at 76% 72%,#a5b1a31f 0 2px,transparent 3px),repeating-linear-gradient(118deg,transparent 0 18px,#07181718 19px 20px);background-size:31px 27px,43px 37px,57px 51px,auto;mix-blend-mode:screen}.guardian-stage-guardian .guardian-scene>.guardian-statue,.guardian-stage-radiant .guardian-scene>.guardian-statue,.guardian-stage-ascended .guardian-scene>.guardian-statue{clip-path:polygon(20% 11%,37% 3%,55% 0,72% 7%,85% 23%,91% 44%,87% 64%,93% 79%,75% 95%,57% 98%,39% 94%,19% 100%,9% 79%,13% 61%,6% 43%,14% 25%)}.guardian-stage-ascended .guardian-scene>.guardian-statue{background:radial-gradient(ellipse at 35% 20%,#8b80652b 0 3%,transparent 4%),linear-gradient(105deg,#192725,#455049 38%,#71684e 50%,#2c3935 68%,#101e1d);transform:scale(1.08);filter:drop-shadow(0 0 17px #c7aa5255) drop-shadow(0 19px 11px #162f2938)}.guardian-stage-sprout .guardian-scene>.guardian-statue:after,.guardian-stage-guardian .guardian-scene>.guardian-statue:after,.guardian-stage-radiant .guardian-scene>.guardian-statue:after,.guardian-stage-ascended .guardian-scene>.guardian-statue:after{inset:20px 28px 30px;background:linear-gradient(132deg,transparent 24%,#a98d4655 25% 26%,transparent 27% 51%,#c2a85544 52% 53%,transparent 54%);opacity:.55}.guardian-stage-ascended .guardian-scene>.guardian-statue:after{opacity:.9;filter:drop-shadow(0 0 3px #c7a84a)}
.guardian-scene>.guardian-sacred-rope{position:absolute;z-index:5;left:50%;top:50%;width:216px;height:20px;display:block;transform:translate(-50%,-2px) rotate(-2deg);border-radius:48% 52% 45% 55%;background:repeating-linear-gradient(135deg,#376f6b 0 5px,#d8b951 5px 10px,#a64237 10px 15px,#eee9da 15px 20px,#705078 20px 25px);box-shadow:inset 0 4px 3px #fff5,inset 0 -4px 3px #30271d77,0 4px 5px #07141277;filter:none}.guardian-scene>.guardian-sacred-rope i{display:none!important}.guardian-scene>.guardian-sacred-rope:before,.guardian-scene>.guardian-sacred-rope:after{content:'';position:absolute;top:13px;width:15px;height:55px;background:repeating-linear-gradient(90deg,#cfbd91 0 2px,#735f38 2px 4px);clip-path:polygon(8% 0,92% 0,82% 80%,50% 100%,18% 80%)}.guardian-scene>.guardian-sacred-rope:before{left:28px;transform:rotate(5deg)}.guardian-scene>.guardian-sacred-rope:after{right:29px;transform:rotate(-5deg)}.guardian-stage-radiant .guardian-scene>.guardian-sacred-rope,.guardian-stage-ascended .guardian-scene>.guardian-sacred-rope{filter:drop-shadow(0 0 5px #d4b75e66)}
.guardian-scene>.guardian-statue,.guardian-stage-guardian .guardian-scene>.guardian-statue,.guardian-stage-radiant .guardian-scene>.guardian-statue,.guardian-stage-ascended .guardian-scene>.guardian-statue{width:174px;height:220px;clip-path:polygon(7% 5%,27% 2%,48% 3%,68% 1%,91% 5%,96% 20%,94% 41%,97% 61%,93% 81%,96% 96%,73% 98%,52% 97%,30% 100%,5% 96%,7% 77%,3% 58%,6% 38%,3% 20%);background:radial-gradient(ellipse at 18% 32%,#313d39 0 2%,transparent 3%),radial-gradient(ellipse at 78% 72%,#89908745 0 2%,transparent 3%),radial-gradient(ellipse at 62% 17%,#1b282655 0 1%,transparent 2%),linear-gradient(96deg,#303b38 0 8%,#67706a 24%,#7d837a 48%,#555f5a 72%,#293633 94%);border-radius:0;transform:none;filter:drop-shadow(7px 17px 8px #132a253f);box-shadow:inset 9px 0 13px #d5d4bc18,inset -13px -4px 16px #0b181766}.guardian-scene>.guardian-statue:before{background:radial-gradient(circle at 20% 33%,#d1d0b733 0 1px,transparent 2px),radial-gradient(circle at 62% 18%,#0006 0 1px,transparent 2px),radial-gradient(circle at 76% 72%,#d7d3b829 0 2px,transparent 3px),repeating-linear-gradient(7deg,transparent 0 10px,#121e1c20 11px 12px),repeating-linear-gradient(97deg,transparent 0 17px,#d4d2b214 18px 19px);background-size:23px 21px,37px 33px,49px 43px,auto,auto;mix-blend-mode:overlay}.guardian-stage-stone .guardian-scene>.guardian-statue:after,.guardian-stage-sprout .guardian-scene>.guardian-statue:after,.guardian-stage-guardian .guardian-scene>.guardian-statue:after,.guardian-stage-radiant .guardian-scene>.guardian-statue:after,.guardian-stage-ascended .guardian-scene>.guardian-statue:after{content:'';position:absolute;inset:23px 24px 46px;opacity:.58;filter:none;clip-path:none;border:3px solid #26333088;border-top-width:5px;border-bottom-width:4px;background:linear-gradient(90deg,transparent 31%,#293532aa 32% 35%,transparent 36% 65%,#293532aa 66% 69%,transparent 70%),repeating-linear-gradient(4deg,transparent 0 13px,#27332f99 14px 16px,transparent 17px 23px),linear-gradient(105deg,transparent 0 43%,#252f2d88 44% 47%,transparent 48% 72%,#27312f77 73% 76%,transparent 77%);box-shadow:inset 2px 2px 2px #d2d0b427,inset -2px -2px 2px #101b1a77}.guardian-stage-sprout .guardian-scene>.guardian-statue:after{opacity:.65}.guardian-stage-guardian .guardian-scene>.guardian-statue:after{opacity:.72}.guardian-stage-radiant .guardian-scene>.guardian-statue:after{opacity:.8;box-shadow:inset 0 0 8px #b49b4b35}.guardian-stage-ascended .guardian-scene>.guardian-statue{transform:scale(1.04);background:radial-gradient(ellipse at 30% 24%,#a69a7040 0 2%,transparent 3%),linear-gradient(96deg,#2b3633,#626a62 29%,#837b62 49%,#4b5752 72%,#24312f)}.guardian-stage-ascended .guardian-scene>.guardian-statue:after{opacity:.88;filter:drop-shadow(0 0 2px #b89c4c);border-color:#665d3f99}.guardian-scene>.guardian-sacred-rope{top:58%;width:205px;height:17px}
