:root{--ink:#392516;--muted:#796044;--paper:#f5e7c9;--gold:#b58a43;--navy:#123552;--teal:#123f48;--frame:url('./img/panel-parchment-frame.webp');font-family:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;color:var(--ink);font-size:17px;line-height:1.8;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-width:0}body{background:#172b2d url('./img/bg-home-portrait.webp') center/cover fixed}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button{color:inherit}img,canvas{max-width:100%}img{object-fit:contain}h1,h2,h3,h4,p{margin:0 0 1rem}h1{line-height:1.35}h3{font-size:1.2rem}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #37c9ea;outline-offset:4px}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.screen,.tab-content{display:none}.screen.active,.tab-content.active{display:block}.screen{max-width:1160px;margin:auto;min-height:100svh;padding-bottom:calc(44px + env(safe-area-inset-bottom));background-position:center top;background-size:100% auto;background-repeat:no-repeat;background-color:#263f3d}.page-shell,.menu-shell{padding:16px clamp(12px,3vw,36px) 30px}.screen:not(#screen-home){background-image:linear-gradient(transparent 700px,#182e29ee 1450px),url('./img/ref-bg-light.webp')}.screen .screen-heading{margin:0}
.paper,.parchment,.advice,.source-box,.seal-card,.pillar,.stat,.menu-card,.personality-item,.help-steps li,.privacy-list li,.daily-reading-grid section,.compatibility-result,.compat-self-note{border:24px solid transparent;border-image:var(--frame) 110 fill /24px /0 stretch;color:var(--ink);background:none;padding:12px;min-width:0}
.fantasy-btn,.start-button,.menu-footer button{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;border:0;background:transparent url('./img/button-blue-empty.webp') center/100% 100% no-repeat;color:#fff0c5;font-weight:600;text-shadow:0 2px 3px #071c29;min-height:74px;max-width:100%;padding:20px 40px;line-height:1.4;margin:16px auto;font-size:clamp(20px,3vw,32px);width:min(100%,480px)}
.fantasy-btn:hover,.start-button:hover{filter:brightness(1.14)}.fantasy-btn:active,.start-button:active{filter:brightness(.92)}.back-link,.input-back{border:1px solid var(--gold);border-radius:24px;background:#153e42ed;color:#fff0cc;padding:9px 17px;min-height:44px;font-size:15px}.top-mini,.result-topbar,.menu-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:24px}.status-seal{color:#fff2c7;text-shadow:1px 1px 4px #000;font-size:14px}.result-brand,.result-header .small,.ornament-bar,.input-decor,.start-note,.ribbon-title,.sigil{display:none}
.title-plaque,.result-header,.input-heading{background:url('./img/plaque-teal-empty.webp') center/100% 100% no-repeat;color:#fff0c5;text-align:center;text-shadow:0 2px 3px #241a0c;padding:14% 14%;margin:0 auto 20px;line-height:1.3}.result-header,.input-heading{padding:10% 13%;min-height:140px;display:flex;align-items:center;justify-content:center}.result-header h1,.input-heading h1{font-size:clamp(26px,4.4vw,49px);margin:0}.result-header{max-width:760px}.input-heading{max-width:700px;position:relative;z-index:1;margin-bottom:-35px}.title-kicker{font-size:clamp(22px,5vw,42px);letter-spacing:.12em}.title-main{font-size:clamp(46px,9vw,91px);white-space:nowrap;letter-spacing:.04em;font-weight:700}
#screen-home{background-image:url('./img/bg-home-portrait.webp');background-size:100% 100%;padding:clamp(145px,28vw,325px) 4% clamp(48px,10vw,100px);min-height:0;max-width:920px}.hero-scene,.home-vines{display:none}#screen-home .title-plaque{width:100%;padding:14% 12%;margin-bottom:0}.title-sub{background:linear-gradient(90deg,transparent,#fff2d7ee 18%,#fff2d7ee 82%,transparent);text-align:center;font-size:clamp(16px,2.5vw,28px);margin:-7px 8% 0;padding:12px 0;color:#493018;font-weight:600}.start-wrap{margin-top:clamp(180px,48vw,490px)}.start-button{font-size:clamp(25px,5vw,52px);width:92%;min-height:clamp(90px,17vw,175px);padding:24px 12%}.home-quick-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:24px}.home-quick-nav .fantasy-btn{border:16px solid transparent;border-image:var(--frame) 110 fill /16px;min-height:95px;padding:3px;font-size:clamp(14px,2.3vw,23px);background:none;color:var(--ink);text-shadow:none;flex-direction:column;margin:0}.home-quick-nav .nav-icon{font-size:29px;line-height:1.3}
.menu-heading{padding-top:clamp(110px,22vw,240px);margin-bottom:20px}.menu-heading>img,.menu-heading span,.menu-heading p{display:none}.menu-heading h1{text-align:center;font-size:clamp(30px,5vw,52px);margin:0;padding:24px 8px}.menu-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-card{display:flex;flex-direction:column;align-items:center;justify-content:end;position:relative;border-width:18px;border-image-width:18px;padding:2px;transition:filter .2s}.menu-card:hover{filter:brightness(1.08)}.menu-art{display:flex;width:100%;height:clamp(100px,22vw,190px);justify-content:center;align-items:center}.menu-art img{width:100%;height:100%;object-fit:contain}.menu-label{font-size:clamp(17px,2.6vw,27px);font-weight:700;white-space:normal;line-height:1.45;margin-top:8px}.menu-arrow{position:absolute;right:-3px;bottom:0;font-size:25px}.menu-footer{display:flex;gap:6px;margin-top:24px}.menu-footer button{font-size:15px;padding:16px 9px;min-height:60px;margin:0;flex:1}
#screen-input .page-shell{max-width:800px;margin:auto}#screen-input .input-heading{margin-top:clamp(100px,18vw,240px)}.parchment{padding:30px clamp(0px,2vw,25px) 12px}.input-hero p{margin:0 0 20px;text-align:center;font-size:16px}.field{margin:24px 0}.field label{font-weight:600;display:block;font-size:20px;margin-bottom:9px}.input-frame input,.input-frame select{width:100%;min-width:0;min-height:54px;border:1px solid #af8a54;border-radius:7px;background:#fffdf4;color:#392516;padding:12px;font-size:18px;box-shadow:inset 0 2px 7px #846a4420}.input-frame input:disabled{background:#e7ddc6}.field .unknown-time{display:flex;gap:10px;align-items:flex-start;font-size:16px;font-weight:400;margin-top:12px}.unknown-time input{width:22px;height:22px;flex:none}.input-back{display:block;margin:0 auto}.source-box{font-size:15px;line-height:1.85;margin:20px 0;padding:8px}.parchment>.fantasy-btn{font-size:28px}.input-error{color:#8b2420;background:#fff0dc;padding:14px;border:1px solid #9e382a}.source-box strong{font-size:17px}
.result-topbar{position:relative;z-index:2}.result-header{margin-top:clamp(70px,14vw,160px)}.result-card{padding:0;border:0;background:none;margin:0 0 24px}.tab-content{margin:0 auto;max-width:960px}.feature-lead{background:#fff4dded;padding:16px 20px;font-size:17px;text-align:center;border-radius:4px}.advice{line-height:1.85;margin:20px 0;padding:14px}.summary-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.seal-card{text-align:center;padding:0;border-width:16px;border-image-width:16px}.seal-card .label{font-size:15px}.seal-card .value{font-size:clamp(19px,3.4vw,29px);font-weight:600}.seal-card img{display:block;width:85%;height:auto;aspect-ratio:1;margin:4px auto}.fortune-rating{text-align:center;background:#fff0d6eb;font-size:18px;padding:8px;margin:0 auto 16px;border-radius:4px}#overall-stars{font-size:30px;color:#c58b1e}.summary-date{text-align:center;background:#fff0d6ed;padding:5px}.canvas-wrap{min-width:0;margin:24px auto;text-align:center}.canvas-wrap canvas{display:block;max-width:100%;height:auto!important;margin:auto}.summary-chart{margin:20px auto;max-width:660px}.summary-chart canvas{width:100%!important;border:9px double #c69b57;border-radius:50%;box-shadow:0 0 0 3px #553a20,0 10px 25px #0007}.chart-caption{font-size:14px;text-align:center;background:#fff1d9ed;padding:8px;margin-top:20px}.reading-details summary{cursor:pointer;padding:15px;font-weight:600}.micro{font-size:14px;background:#fff4e0e8;padding:12px;color:var(--muted)}
#screen-result[data-active-tab='tab-tarot'],#screen-result[data-active-tab='tab-fourpillars'],#screen-result[data-active-tab='tab-compatibility']{background-image:linear-gradient(transparent 750px,#102d3bef 1600px),url('./img/ref-bg-night.webp')}
#screen-result[data-active-tab='tab-omikuji']{background-image:linear-gradient(transparent 750px,#382516ed 1600px),url('./img/ref-bg-shrine.webp')}.cylinder{background:url('./img/omikuji-ivory.png') center/contain no-repeat;width:65%;height:clamp(280px,60vw,470px);margin:20px auto}.stick{width:24px;height:100px;margin:0 auto 16px;display:none;font-size:12px;justify-content:center;background-size:100% 100%;color:#5b3212}.shaking{animation:shake .2s alternate infinite}@keyframes shake{to{transform:rotate(8deg)}}#omikuji-draw-button{background-image:url('./img/btn_open.png');font-size:clamp(24px,4vw,34px);width:min(100%,440px);min-height:88px;padding:20px 44px}.door,.omikuji-slip{display:none}.cabinet{border:26px solid transparent;border-image:var(--frame) 110 fill /26px;max-width:590px;margin:30px auto;padding:20px 10px;text-align:center}.cabinet-rank{font-size:clamp(60px,13vw,105px);color:#a53123;line-height:1.6}.cabinet-content{opacity:.5}.cabinet.open .cabinet-content{opacity:1}#cabinet-shelf-num{display:block;font-size:24px}#omikuji-text{font-size:18px!important;line-height:1.9!important}.cabinet:not(.open) .cabinet-rank{font-size:28px}.cabinet:not(.open) .cabinet-rank::after{content:'筒を振って、今日の言葉を受け取る'}
.tree{position:relative;max-width:480px;aspect-ratio:4/5;margin:0 auto 20px;background:radial-gradient(ellipse,#143c59aa,transparent 65%)}.tree svg{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.node{position:absolute;width:20%;aspect-ratio:1;border:4px double #f0d493;border-radius:50%;background:radial-gradient(circle at 30% 20%,#d4edf9,#17486c 45%,#071936 75%);box-shadow:0 0 0 2px #89612e,0 3px 15px #0008;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff4cf;font-size:clamp(12px,2vw,17px);line-height:1.4;text-shadow:0 1px 3px #000;transform:translate(-50%,-50%)}.node:nth-of-type(3n){background:radial-gradient(circle at 30% 20%,#fdf0b1,#8d5637 65%,#281521)}.node.active{box-shadow:0 0 0 4px #ffe3a4,0 0 32px #ffe292;filter:brightness(1.4)}.tarot-layout{margin:30px auto;max-width:800px}.tarot-card{max-width:250px;margin:0 auto 20px;text-align:center;color:#fff3d1}.tarot-face{width:100%;height:auto;max-height:470px;object-fit:contain;display:block}.tarot-card.reversed .tarot-face{transform:rotate(180deg)}.tarot-back{aspect-ratio:2/3;background:url('./img/card-back.png') center/contain no-repeat}.tarot-card .symbol{font-size:68px}.tarot-card.drawing{animation:pulse .6s infinite alternate}@keyframes pulse{to{opacity:.4}}#tarotBadge{background:#fff2d8;padding:12px;text-align:center}.badge{color:#154354;font-weight:bold}.tarot-reading .advice{margin-top:0}
.four-grid,.stat-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pillar{text-align:center;padding:10px 2px}.pillar .k{background:#143e41;color:#fff0c5;border:1px solid #bda36a;margin-bottom:12px}.pillar .v{font-size:29px}.four-pillars-heading{display:none}.section-label{color:#ffedc0;text-align:center;margin:20px 0 8px}.four-symbols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:center;color:#fff0c5;align-items:start}.four-symbols h3{font-size:18px}.direction-art{width:min(100%,190px);display:block;margin:auto}.direction-compass{display:flex;gap:3px;justify-content:center}.direction-compass img{width:21%;max-width:60px}.four-symbols canvas{width:100%;height:auto}.kyusei-panel{display:flex;align-items:center;gap:10px;justify-content:center;margin:20px 0}.kyusei-art{width:100px;height:100px}.kyusei-name{font-size:25px}.daily-reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.daily-reading-grid section{padding:6px;font-size:16px}.daily-reading-grid h4{font-size:18px;margin:0 0 10px}.stat{text-align:center;padding:8px 2px}.stat b{display:block;font-size:clamp(32px,6vw,54px);color:#7c2f22}.stat:nth-child(2) b{color:#496637}.stat:nth-child(3) b{color:#243e75}.stat:nth-child(4) b{color:#8b632c}.stat small{font-size:17px}.stat meter{display:block;width:100%;height:14px}.bio-chart{border:20px solid transparent;border-image:var(--frame) 110 fill /20px;padding:4px}.bio-chart h3{text-align:center;font-size:20px}.bio-chart .canvas-wrap{margin:0}
.animal-profile{text-align:center}.animal-profile>img{width:min(100%,510px);height:auto;display:block;margin:auto}.animal-profile>div{border:24px solid transparent;border-image:var(--frame) 110 fill /24px;padding:10px}.animal-profile strong{display:block;font-size:58px;color:#123f48}.animal-profile small{font-size:15px}.animal-matches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.animal-match{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;background:#fff1d6e8;border-radius:8px;padding:5px}.animal-match img{width:100%;aspect-ratio:1}.animal-match b{font-size:16px}.feature-subheading{color:#fff0c5;background:#123f48ed;text-align:center;padding:12px;margin:24px 0 12px}.personality-hero{display:block;width:min(100%,650px);margin:auto}.personality-section{margin:12px 0}.personality-item{padding:2px 8px}.personality-item summary{font-size:clamp(19px,3vw,28px);font-weight:600;cursor:pointer;padding:12px 0;min-height:52px}.personality-item summary::marker{color:#1c525a}.feature-copy{font-size:17px;line-height:1.9;padding:14px 0}.feature-copy p{margin-bottom:10px}
.compat-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.compat-inputs .field{margin:0}.compat-inputs label{font-size:17px}.compat-inputs .compat-self-note{font-size:16px;padding:8px;line-height:1.7}.compat-self-note strong{display:block;overflow-wrap:anywhere}.compat-inputs .field{border:20px solid transparent;border-image:var(--frame) 110 fill /20px;padding:4px}.compat-inputs input{padding:8px;font-size:16px}.compatibility-result{text-align:center;margin-top:28px}.compatibility-result>strong{display:flex;background:url('./img/compatibility-heart.png') center/contain no-repeat;align-items:center;justify-content:center;min-height:250px;font-size:60px;color:#fff9e8;text-shadow:0 2px 4px #802331;margin:-15px auto 4px;max-width:370px}.compatibility-result>b{display:block;font-size:27px;color:#8a3028}.compatibility-result p{text-align:left;margin:24px 0 0;font-size:18px}.compatibility-result p strong{font-size:inherit!important}.compat-portraits{display:flex;justify-content:space-around;gap:20px;margin:20px auto}.compat-portraits img{width:38%;height:190px;object-fit:contain}.help-steps,.privacy-list{padding:0;list-style:none;display:grid;gap:15px}.help-steps li{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:10px 2px}.help-steps li>b{border-radius:50%;background:#164752;color:#ffedbc;display:flex;justify-content:center;align-items:center;width:40px;height:40px;border:2px solid #b28b49;font-size:24px}.help-steps strong,.privacy-list strong{font-size:21px}.help-steps img{grid-column:2;width:140px;height:110px;justify-self:end}.privacy-list li{padding:12px 8px}.privacy-list li::before{content:'✦';color:#ad8142;margin-right:10px}.privacy-list p{margin:10px 0 0}.footer-cta{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:32px}.footer-cta .fantasy-btn{width:260px;font-size:18px;padding:18px 35px;margin:0;min-height:64px}
@media(min-width:700px){.menu-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.menu-art{height:160px}.menu-label{font-size:21px}.menu-heading{padding-top:230px}.four-grid,.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-reading-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tarot-layout{display:grid;grid-template-columns:minmax(220px,1fr) 1.3fr;gap:24px;align-items:start}.help-steps li{grid-template-columns:52px 1fr 170px;align-items:center}.help-steps img{grid-column:3;width:170px;height:135px}.compat-portraits img{height:270px}.screen:not(#screen-home){background-size:100% auto}.result-header{margin-top:150px}.summary-top{gap:20px}.seal-card img{width:130px}.daily-reading-grid p{font-size:16px}}
@media(max-width:380px){.page-shell,.menu-shell{padding-left:12px;padding-right:12px}.parchment{border-width:18px;border-image-width:18px;padding:25px 0 8px}.menu-card{border-width:13px;border-image-width:13px}.menu-label{font-size:16px}.home-quick-nav .fantasy-btn{border-width:11px;border-image-width:11px;font-size:14px}.summary-top{gap:4px}.seal-card{border-width:11px;border-image-width:11px}.seal-card .value{font-size:18px}.compat-inputs{grid-template-columns:1fr}.daily-reading-grid{grid-template-columns:1fr}.title-main{font-size:43px}.back-link{font-size:14px;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Fixed ornament proportions; scenery continues behind the growing paper. */
[tabindex='-1']:focus{outline:none}.screen:not(#screen-home){background-image:url('./img/ref-bg-light.webp');background-repeat:repeat-y;background-size:100% auto}
#screen-result[data-active-tab='tab-tarot'],#screen-result[data-active-tab='tab-fourpillars'],#screen-result[data-active-tab='tab-compatibility']{background-image:url('./img/ref-bg-night.webp')}
#screen-result[data-active-tab='tab-omikuji']{background-image:url('./img/ref-bg-shrine.webp')}
#screen-home .title-plaque{background-image:url('./img/home-title-empty.webp');aspect-ratio:1.65;padding:15% 10% 12%;display:flex;flex-direction:column;justify-content:center}.title-kicker{font-size:clamp(22px,4.6vw,43px)}.title-main{font-size:clamp(42px,9vw,83px)}
.menu-heading>div{border:0;background:url('./img/plaque-paper-empty.png') center/100% 100% no-repeat;padding:12% 12%}.menu-heading h1{font-size:clamp(27px,4vw,44px);padding:0}
#screen-result[data-active-tab='tab-summary'] .result-header,#screen-result[data-active-tab='tab-biorhythm'] .result-header,#screen-result[data-active-tab='tab-tarot'] .result-header{background-image:url('./img/plaque-paper-empty.png');color:var(--ink);text-shadow:none}
#tab-summary .paper h3{text-align:center;border-bottom:1px solid #bfa16c;padding-bottom:12px}#tab-summary .paper p{margin:0;text-align:left}.summary-date,.fortune-rating{background:#fff0d6f7}.menu-footer button{font-size:14px}.menu-heading{padding-top:150px}.summary-chart canvas{image-rendering:auto}
/* Keep the illustration's aspect ratio at every viewport, without vertical tiling. */
.screen:not(#screen-home){--scene:url('./img/ref-bg-light.webp');position:relative;isolation:isolate;background-image:none!important;background-color:transparent}
.screen:not(#screen-home)::before{content:'';position:fixed;inset:0;width:min(100%,1160px);margin-inline:auto;z-index:-1;pointer-events:none;background:var(--scene) center top/cover no-repeat}
#screen-result[data-active-tab='tab-tarot'],#screen-result[data-active-tab='tab-fourpillars'],#screen-result[data-active-tab='tab-compatibility']{--scene:url('./img/ref-bg-night.webp')}
#screen-result[data-active-tab='tab-omikuji']{--scene:url('./img/ref-bg-shrine.webp')}
#screen-home{background-size:cover;background-position:center top}
@media(min-width:1024px){.screen:not(#screen-home)::before{background-position:center 45%}}
@media(orientation:landscape) and (max-height:600px){.screen:not(#screen-home)::before{background-position:center 48%}.result-header{margin-top:40px}#screen-input .input-heading{margin-top:60px}.menu-heading{padding-top:60px}}
/* One viewport-wide scene, shared by desktop browser and standalone PWA. */
body{background:#172b2d;isolation:isolate;overflow-x:clip}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--app-scene,url('./img/bg-home-portrait.webp')) center/cover no-repeat}
body[data-scene='home']{--app-scene:url('./img/bg-home-portrait.webp')}
body[data-scene='day']{--app-scene:url('./img/ref-bg-light.webp')}
body[data-scene='night']{--app-scene:url('./img/ref-bg-night.webp')}
body[data-scene='shrine']{--app-scene:url('./img/ref-bg-shrine.webp')}
.screen,#screen-home,.screen:not(#screen-home){background:none!important;isolation:auto}
.screen:not(#screen-home)::before{content:none}
.footer-cta{padding-bottom:env(safe-area-inset-bottom)}
.cylinder,.cabinet,.tarot-card{position:relative}
.summon-fx{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:clip}
.summon-fx::before,.summon-fx::after{content:'';position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;border-radius:50%;border:2px solid #f6d28b;box-shadow:0 0 30px #ffd583aa,inset 0 0 30px #65cde380;transform:translate(-50%,-50%);animation:summon-ring 1.6s ease-out both}
.summon-fx::after{animation-delay:.2s;width:45%;border-style:dashed}
.summon-fx i{position:absolute;left:50%;top:50%;width:7px;height:7px;background:#fff0b7;box-shadow:0 0 12px #ffe0a3;border-radius:1px;animation:summon-spark 1.8s var(--delay) ease-out both}
@keyframes summon-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.25) rotate(100deg)}}
@keyframes summon-spark{0%{opacity:0;transform:translate(0,0) scale(0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(160deg) scale(.3)}}
.tarot-card.drawing{animation:card-summon 1.15s ease-in-out both}
@keyframes card-summon{0%{transform:scale(.8);filter:brightness(1)}60%{transform:scale(1.07) rotateY(80deg);filter:brightness(1.8) drop-shadow(0 0 20px #e9ca79)}100%{transform:scale(1);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.summon-fx{display:none}.tarot-card.drawing{animation:none}}
/* Readable copy, independent of the scenic background. */
.reading-details,.reading-expansion{border:24px solid transparent;border-image:var(--frame) 110 fill /24px;padding:16px;color:var(--ink);margin:24px 0;line-height:1.9}
.reading-expansion h3{border-bottom:1px solid #b58a43;padding-bottom:12px}
.reading-expansion p:last-child,.reading-details p:last-child{margin-bottom:0}
.four-symbols>section{background:#10303bed;border:1px solid #c29b56;border-radius:12px;padding:16px 8px}
.section-label{background:#10303bed;border:1px solid #b58a43;border-radius:6px;padding:8px}
.tarot-card>div{background:#123552ed;padding:5px;border-radius:4px}
#omikujiStick{display:none!important}
.summon-fx{overflow:visible;filter:drop-shadow(0 0 12px #ffd274);border-radius:50%;background:radial-gradient(ellipse,#ffe0a355,transparent 65%);animation:ritual-glow 2s ease-out both}
.summon-fx::before{border-width:5px;box-shadow:0 0 50px #ffd583cc,inset 0 0 50px #65cde3aa}
.summon-fx::after{border-width:3px;box-shadow:0 0 65px #96eaffaa}
.summon-fx i{width:10px;height:10px;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);box-shadow:0 0 22px #fff5c3}
@keyframes ritual-glow{0%{opacity:0;transform:scale(.6)}25%{opacity:1}65%{opacity:.85}100%{opacity:0;transform:scale(1.15)}}
.cabinet.open{animation:scroll-reveal .75s ease-out both}
@keyframes scroll-reveal{from{opacity:0;transform:translateY(30px) scale(.92);filter:brightness(1.6)}to{opacity:1;transform:none;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.cabinet.open,.summon-fx{animation:none}}
.journal-link{font-size:20px;margin:20px auto;min-height:74px}.mission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.journal-calendar,.journal-entry{margin:24px auto;max-width:800px}.journal-monthbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.journal-monthbar h2{font-size:21px;margin:0}.journal-monthbar button{font-size:14px;padding:6px 9px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:16px;text-align:center}.calendar-day{border:1px solid #b99555;background:#fff7e6;color:#392516;border-radius:5px;min-width:0;min-height:52px;padding:2px;font-size:17px}.calendar-day small{display:block;font-size:10px}.calendar-day[aria-pressed='true']{background:#123f48;color:#fff3d2}.calendar-day[aria-current='date']{outline:2px solid #b58a43;outline-offset:-3px}.journal-entry details{border-top:1px solid #ba975c;padding:12px 0}.journal-entry summary{font-size:20px;font-weight:bold;cursor:pointer}.journal-entry details p{white-space:pre-wrap;overflow-wrap:anywhere}.journal-entry textarea{display:block;width:100%;font:inherit;min-height:150px;padding:12px;border:1px solid #9d783a;background:#fffaf0;resize:vertical;margin:10px 0}.journal-entry .back-link{margin:8px 8px 8px 0}.reading-details h4,.feature-copy h4{font-size:20px;margin:22px 0 8px;color:#123f48}.seo-intro{margin:30px auto 0;font-size:16px}.seo-intro summary{cursor:pointer;font-size:20px;font-weight:bold}.analytics-settings .back-link{margin:8px}.analytics-choice{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 24px));padding:18px;background:#fff4da;color:#392516;border:2px solid #b58a43;border-radius:12px;z-index:50;box-shadow:0 5px 30px #0008}.analytics-choice p{margin-bottom:10px}.analytics-choice button{margin:4px;font-size:16px}
/* Quiet living illustrations and a consistent journal column. */
#screen-journal .page-shell{width:100%;max-width:880px;margin:auto}
#screen-journal .page-shell>.paper{width:100%;max-width:none;margin:24px 0}
#screen-journal .result-header{width:100%;max-width:none;margin:28px 0}
.journal-footer{width:100%;margin:24px 0}
.home-quick-nav .fantasy-btn{border:0;border-image:none;background:transparent url('./img/button-blue-empty.webp') center/100% 100% no-repeat;color:#fff2ce;text-shadow:0 2px 3px #071c29;min-height:78px;padding:18px 24px;font-size:clamp(15px,2vw,22px);flex-direction:row;gap:6px;width:100%}
.home-quick-nav .nav-icon{font-size:21px}
@media(max-width:599px){.home-quick-nav{grid-template-columns:1fr;gap:8px;width:min(100%,340px);margin:24px auto}.home-quick-nav .fantasy-btn{min-height:72px;padding:18px 32px;font-size:20px}}
body[data-scene='home']::before{animation:landscape-breathe 24s ease-in-out infinite alternate;transform-origin:50% 45%}
@keyframes landscape-breathe{from{transform:scale(1.025)}to{transform:scale(1.075) translateY(-.5%)}}
.ambient-motes{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.ambient-motes i{position:absolute;left:var(--x);top:105%;width:4px;height:4px;border-radius:50%;background:#ffecc0;box-shadow:0 0 12px 3px #ffe6a770;animation:mote-rise var(--duration) var(--delay) linear infinite;opacity:0}
@keyframes mote-rise{0%{opacity:0;transform:translate(0,0)}15%,75%{opacity:.7}100%{opacity:0;transform:translate(30px,-110vh)}}
.screen{position:relative;z-index:1}
.menu-art img,.home-quick-nav .nav-icon{animation:icon-float 5s ease-in-out infinite alternate}
.menu-card:nth-child(even) .menu-art img{animation-delay:-2.5s}
@keyframes icon-float{from{transform:translateY(1px) rotate(-.6deg)}to{transform:translateY(-4px) rotate(.6deg)}}
.personality-hero{transform-origin:50% 90%;animation:scholar-breathe 6s ease-in-out infinite;will-change:transform}
@keyframes scholar-breathe{0%,100%{transform:translateY(0) rotate(-.25deg) scale(1)}50%{transform:translateY(-4px) rotate(.25deg) scale(1.008,1.012)}}
#omikujiCylinder:not(.shaking){transform-origin:50% 85%;animation:cylinder-idle 3.4s ease-in-out infinite}
@keyframes cylinder-idle{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-6px)}}
.tree{background:url('./img/tree-of-life-night.png') center/cover no-repeat;border-radius:22px;border:1px solid #b59857;box-shadow:0 0 24px #0b233c88;margin-top:18px}
.tree>svg{filter:drop-shadow(0 0 3px #fbd490)}
.tree .node{z-index:1}
.culture-reading{margin-top:26px;overflow-wrap:anywhere}
.culture-reading h4{font-size:24px;color:#123f48}.culture-reading a{display:inline-block;color:#17556b;text-decoration:underline;min-height:44px;padding:8px 0}.culture-reading small{display:block;font-size:13px;margin-top:14px;color:#705d48}
.share-dialog{max-width:min(94vw,620px);max-height:90svh;overflow:auto;background:#fff2d9;color:#392516;border:3px solid #b58a43;border-radius:14px;padding:24px}.share-dialog::backdrop{background:#071d37bb}.share-dialog textarea{width:100%;font:inherit;padding:12px;background:#fffaf0;border:1px solid #9d783a}.share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.share-dialog .fantasy-btn{font-size:16px;min-height:66px;padding:15px 23px;margin:6px auto}
body.page-hidden *,body.page-hidden::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body::before,.ambient-motes i,.menu-art img,.home-quick-nav .nav-icon,.personality-hero,#omikujiCylinder{animation:none!important}.ambient-motes{display:none}}
@media(max-width:380px){#screen-journal .paper{border-width:16px;border-image-width:16px;padding:10px 3px}.journal-monthbar{gap:3px}.journal-monthbar h2{font-size:18px}.journal-monthbar button{font-size:12px;padding:6px}.share-actions{grid-template-columns:1fr}}
.tree .node{font-size:clamp(10px,1.7vw,14px)}
.mission-grid{gap:8px}.mission-grid .back-link{padding:10px 4px;font-size:14px;line-height:1.5;min-height:52px;letter-spacing:-.03em}
/* Consistent image navigation and centered standalone actions. */
.result-topbar>.back-link,.top-mini>.back-link,.menu-topbar>.back-link,#screen-journal .page-shell>.back-link{display:inline-flex;align-items:center;justify-content:center;text-align:center;background:transparent url('./img/button-blue-empty.webp') center/100% 100% no-repeat;border:0;border-radius:0;color:#fff2ce;text-shadow:0 2px 3px #071c29;width:260px;max-width:100%;min-width:0;min-height:58px;padding:16px 22px;font-size:clamp(12px,2vw,17px);line-height:1.4}
.result-topbar>.back-link{flex:1;max-width:260px}
.top-mini>.status-seal,.menu-topbar>.status-seal{flex-shrink:0}
.paper>.back-link,.parchment>.back-link,.tab-content>.back-link,.journal-entry>.back-link{display:flex;align-items:center;justify-content:center;text-align:center;width:fit-content;max-width:100%;margin:12px auto}
@media(max-width:599px){.top-mini,.menu-topbar{flex-wrap:wrap}.top-mini>.status-seal,.menu-topbar>.status-seal{margin-left:auto}.result-topbar>.back-link{padding:16px 17px}}

/* Ad slot is separated from reading text and navigation controls. */
.result-ad { width:100%; max-width:970px; min-width:0; min-height:300px; margin:48px auto; padding:12px 0 20px; background:#fff8e9; color:#59442c; clear:both; }
.result-ad[hidden] { display:none !important; }
.result-ad-label { margin:0 0 12px; text-align:center; font:12px/1.5 sans-serif; }
.result-ad .adsbygoogle { width:100%; }
