@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@400;500;600;700;900&display=swap');
:root{--red:#922f27;--ink:#382d27;--muted:#887969;--paper:#faf5e9;--line:#ded1b9}*{box-sizing:border-box}body{margin:0;background:#f1ebdf;color:var(--ink);font-family:"Noto Serif TC","Songti TC",serif;background-image:radial-gradient(#b7a98c22 .65px,transparent .65px);background-size:5px 5px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b58646;outline-offset:5px}header{max-width:1280px;margin:auto;padding:30px 52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--red);font-weight:700;font-size:22px;letter-spacing:3px;display:flex;align-items:center;gap:12px}.seal{border:1px solid var(--red);outline:1px solid var(--red);outline-offset:3px;font-size:23px;padding:0 5px}.header-note{font-size:12px;color:var(--muted);letter-spacing:3px}main{max-width:1160px;margin:64px auto 76px;display:grid;grid-template-columns:1fr 1.05fr;gap:75px;align-items:center;padding:0 28px}aside{padding:20px 0}.eyebrow,.small-title{font-size:12px;letter-spacing:4px;color:var(--red);font-weight:600}h1{font-size:clamp(30px,3.25vw,46px);line-height:1.65;font-weight:600;letter-spacing:2px;margin:22px 0}.intro{color:#796c5e;font-size:14px;line-height:2.2;letter-spacing:1px}.ornament{display:flex;gap:15px;align-items:center;width:160px;color:#b59867;margin:34px 0}.ornament span{height:1px;flex:1;background:#cbb795}.steps{padding:0;list-style:none;display:flex;flex-direction:column;gap:19px;color:#9a8c79;font-size:14px;letter-spacing:2px}.steps li{display:flex;align-items:center;gap:15px}.steps b{border:1px solid #cfc1aa;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font-size:12px;font-weight:400}.steps .active{color:var(--red)}.steps .active b{background:var(--red);border-color:var(--red);color:#fff6e7}.side-note{font-size:11px;letter-spacing:2px;color:#9a8c79;margin-top:38px}.stage{background:var(--paper);position:relative;padding:40px 42px 28px;text-align:center;box-shadow:0 14px 45px #51402a0b;min-height:574px;border:1px solid #e1d5bd}.stage:before{content:"";position:absolute;inset:9px;border:1px solid #e7dcc7;pointer-events:none}.corner{position:absolute;width:17px;height:17px;border-color:#ac7446;border-style:solid;z-index:1}.tl{top:8px;left:8px;border-width:2px 0 0 2px}.tr{top:8px;right:8px;border-width:2px 2px 0 0}.bl{bottom:8px;left:8px;border-width:0 0 2px 2px}.br{bottom:8px;right:8px;border-width:0 2px 2px 0}h2{font-size:26px;font-weight:600;letter-spacing:2px;margin:15px 0 12px}.description{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.mini-art{height:145px;width:260px;margin:15px auto 22px;position:relative;overflow:hidden;border-bottom:1px solid #d6c7a9}.sun{position:absolute;top:22px;right:55px;border-radius:50%;background:#b04b32;width:39px;height:39px}.hill{position:absolute;width:180px;height:90px;border-radius:100% 100% 0 0;bottom:0;background:#d9d8c1;transform:rotate(-12deg)}.h1{left:-36px;bottom:-40px;background:#b6bda6}.h2{right:-30px;bottom:-27px;background:#d1c8a9;transform:rotate(24deg)}.h3{left:50px;bottom:-67px;background:#f2ebdc;transform:rotate(-14deg)}.boat{position:absolute;bottom:8px;left:130px;font-size:32px;color:#a27d4c}.fields{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;text-align:left}label{display:block;font-size:12px;letter-spacing:1px}label>span{font-size:10px;color:var(--muted);margin-left:5px}.input-wrap{display:flex;align-items:center;border:1px solid #d6c7b0;background:#fffaf0;margin-top:10px;height:49px;padding:0 12px}.input-wrap>span{font-size:13px;color:var(--muted)}input,select{background:transparent;border:0;color:var(--ink);width:100%;min-width:0;font-size:14px;height:100%;outline-offset:0}input::placeholder{color:#a99b86}select{cursor:pointer}.error{min-height:19px;color:var(--red);font-size:11px;text-align:left;margin:6px 0}.primary{width:100%;border:1px solid var(--red);background:var(--red);color:#fff5e0;padding:15px 20px;font-size:14px;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:28px;transition:background .2s,transform .2s}.primary:hover{background:#76241f;transform:translateY(-2px)}.primary:disabled{cursor:wait;opacity:.75;transform:none}.privacy{font-size:10px;color:#9b8e7c;margin:17px 0 0}.text-button{border:0;background:none;color:#8c7c66;font-size:11px;letter-spacing:1px;padding:16px 8px 0;text-decoration:underline;text-underline-offset:4px}.ritual-art{height:285px;position:relative;margin:8px auto 0;width:270px}.halo{position:absolute;border:1px solid #d7c6a2;border-radius:50%;width:220px;height:220px;top:28px;left:25px;background:radial-gradient(circle,#e7d6b350,transparent 70%)}.halo:after{content:"";position:absolute;inset:9px;border:1px solid #e4d7bf;border-radius:50%}#vessel{position:absolute;width:140px;height:195px;left:65px;bottom:15px;transform-origin:50% 95%}.sticks{position:absolute;top:0;left:15px;width:110px;height:95px}.sticks i{position:absolute;left:calc(var(--i)*10px);top:calc(mod(var(--i),3)*5px);width:9px;height:125px;border:1px solid #ac7840;border-radius:3px 3px 0 0;background:linear-gradient(90deg,#d5b173,#f0d49b,#c29555);transform:rotate(calc((var(--i) - 4)*4deg));transform-origin:50% 100%}.cup{position:absolute;bottom:0;width:140px;height:135px;background:linear-gradient(90deg,#73251e,#ae4734 40%,#8d3025 80%,#66221c);border-radius:6px 6px 33px 33px;box-shadow:inset 0 -9px 0 #60251b,inset 4px 0 0 #b26a43;display:flex;align-items:center;flex-direction:column;justify-content:center;color:#e7c48a}.cup-edge{position:absolute;top:0;height:12px;background:#53271d;border:4px solid #ba7651;border-radius:50%;width:100%;transform:translateY(-5px)}.cup>span{font-size:46px;line-height:1.4;border:1px solid #cca06388;border-radius:50%;width:70px;height:70px}.cup small{font-size:9px;letter-spacing:4px;margin-top:8px}.ground{position:absolute;width:180px;height:15px;border-radius:50%;background:#58341c15;bottom:7px;left:45px;filter:blur(4px)}#fortune-stick{position:absolute;left:123px;top:107px;width:23px;height:150px;border:1px solid #b58b4a;border-radius:6px 6px 2px 2px;background:linear-gradient(90deg,#d1aa69,#f2dba5,#dabb7c);z-index:2;opacity:0;display:flex;justify-content:center;padding-top:20px;color:var(--red);writing-mode:vertical-rl;letter-spacing:5px}.shaking #vessel{animation:shake .32s ease-in-out infinite}.revealing #fortune-stick{animation:rise 1.05s ease-out forwards}.ritual-status{font-size:12px;color:#8b7559;min-height:23px;margin:8px 0 16px}@keyframes shake{0%,100%{transform:rotate(-9deg) translateX(-3px)}50%{transform:rotate(9deg) translateX(3px)}}@keyframes rise{0%{opacity:0;transform:translateY(0) rotate(0)}25%{opacity:1}100%{opacity:1;transform:translateY(-94px) rotate(13deg)}}.fortune-paper{position:relative;margin:22px auto 14px;max-width:290px;border:2px solid #a44834;padding:8px;background:#efe0b9;color:#963c2d;box-shadow:3px 6px 0 #d7c6a55c;animation:unfold .65s ease-out}.paper-heading{border:1px solid #a44834;padding:9px 7px;display:flex;align-items:center;justify-content:space-around;font-size:13px;letter-spacing:2px}.paper-heading strong{border:1px solid #a44834;border-radius:50%;padding:3px 6px;font-weight:500}.poem{display:flex;flex-direction:row-reverse;justify-content:center;padding:22px 8px 28px;border:1px solid #a44834;border-top:0;gap:14px}.poem p{writing-mode:vertical-rl;font-size:22px;letter-spacing:7px;line-height:1.3;margin:0}.paper-foot{font-size:9px;letter-spacing:1px;border:1px solid #a44834;border-top:0;padding:8px 0}.paper-seal{position:absolute;bottom:47px;left:18px;border:2px solid #a44834;font-size:11px;padding:3px;transform:rotate(-9deg);opacity:.7}.sample{font-size:10px;color:#9c8a71;margin:10px 0}.sample+.description{margin-bottom:20px}footer{max-width:1176px;margin:auto;border-top:1px solid var(--line);padding:22px 20px 28px;display:flex;align-items:center;justify-content:space-between;color:#978976;font-size:10px;letter-spacing:1px}footer>span:first-child{color:var(--red);font-size:13px}footer p{margin:0}[hidden]{display:none!important}@keyframes unfold{from{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:none}}@media(max-width:760px){header{padding:24px}.header-note{font-size:10px;letter-spacing:1px}.brand{font-size:18px}main{grid-template-columns:1fr;gap:28px;margin:26px auto 40px;padding:0 20px;max-width:530px}aside{text-align:center;padding:0}h1{font-size:30px;line-height:1.5;margin:15px 0}.intro{font-size:12px}.ornament,.side-note{display:none}.steps{flex-direction:row;justify-content:center;gap:16px;margin:22px 0 0;font-size:10px;letter-spacing:0}.steps li{gap:5px}.steps b{width:23px;height:23px;font-size:10px}.stage{padding:32px 25px 26px;min-height:550px}h2{font-size:23px}.mini-art{height:135px}.fields{gap:12px}footer{margin:0 20px;flex-wrap:wrap;gap:14px;justify-content:center}footer p{display:none}.poem{gap:12px}.poem p{font-size:21px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}

/* 解籤：同頁展開，靜態部署即可使用 */
#fortune-card{cursor:zoom-in}#interpret{margin-bottom:12px}#again{background:transparent;color:var(--red)}#again:hover{background:#f0e4d1}.interpretation{max-width:1104px;margin:0 auto 70px;padding:0 28px;animation:unfold .6s ease-out}.interpret-heading{text-align:center;margin:0 0 30px}.interpret-heading h2{line-height:1.7}.conclusion{padding:35px 40px;background:#e4e9dd;border:1px solid #c5d0b8;position:relative}.conclusion-label{font-size:13px;color:#45634e;letter-spacing:2px}.conclusion h3{font-size:30px;color:#355541;line-height:1.65;margin:16px 0;font-weight:600;letter-spacing:1px}.conclusion p{max-width:760px;font-size:14px;line-height:2;color:#576451;margin:0}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.decision-card{background:var(--paper);padding:30px;border:1px solid var(--line);border-top:4px solid #637f60}.keep{border-top-color:#9f9481}.option-tag{font-size:11px;letter-spacing:2px;color:#52704f}.keep .option-tag{color:#817361}.decision-card h3{font-size:25px;letter-spacing:2px;margin:12px 0}.card-intro{color:#887963;font-size:12px;line-height:1.9;margin:0 0 23px}.decision-card ul{padding:0;list-style:none;margin:0}.decision-card li{border-top:1px solid #e1d6c2;padding:20px 0}.decision-card h4{font-size:15px;line-height:1.8;margin:0 0 8px;font-weight:600}.decision-card li p{font-size:13px;line-height:2;margin:0;color:#796e60}.decision-card .attention{background:#efe3cd;padding:15px;margin:0 -12px;border:0}.attention strong{color:#8b382a;font-weight:600}.consultation{text-align:center;margin-top:36px;padding:38px 25px;border:1px solid var(--line);background:#faf5e9}.consultation h3{font-size:25px;font-weight:600;margin:16px 0}.consultation>p{font-size:13px;color:#887963;line-height:1.8}.action-link,.download-link{max-width:520px;margin:20px auto 0;display:block;text-decoration:none;padding:17px 20px;font-size:14px;line-height:1.8}.action-link{background:#42634f;color:#fff9e9;border:1px solid #42634f}.action-link span{display:block;font-size:11px;opacity:.8;letter-spacing:1px}.action-link:hover{background:#304f3c}.download-link{border:1px solid #bfb29a;color:#60533f;margin-top:12px;background:#fffaf1}.download-link:hover{background:#f0e6d3}.action-status{min-height:24px}dialog{max-width:calc(100vw - 28px);width:460px;border:1px solid #c2a375;background:var(--paper);padding:22px;color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#2c201ccd;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-top h2{font-size:17px;margin:0}.dialog-top button{background:transparent;border:1px solid var(--line);width:40px;height:40px;color:var(--red);cursor:pointer}#enlarged-fortune .fortune-paper{max-width:355px;cursor:default;animation:none}#enlarged-fortune .poem{gap:16px;padding:32px 8px 45px}#enlarged-fortune .poem p{font-size:28px;letter-spacing:9px}@media(max-width:760px){.interpretation{padding:0 20px;margin-bottom:40px}.interpret-heading h2{font-size:21px}.conclusion{padding:25px}.conclusion h3{font-size:24px}.decision-grid{grid-template-columns:1fr;gap:20px}.decision-card{padding:25px}.consultation{padding:30px 18px}.action-link,.download-link{font-size:13px}#enlarged-fortune .poem{gap:12px}#enlarged-fortune .poem p{font-size:23px}}

/* 純文字介面 */
.dialog-top button{width:auto;min-width:60px;padding:0 12px;font:inherit;font-size:13px}

.interpret-retry{max-width:360px;margin:32px auto 0}

.detail-part{margin-top:18px}.detail-part h5{font-size:13px;line-height:1.9;margin:0 0 6px;font-weight:700;color:#45634e}.decision-card .detail-part p+p{margin-top:12px}.detail-part strong{font-weight:700;color:#4c4938}

/* 傳統籤解紙：朱印、雙框與逐段批解 */
.interpretation{max-width:900px;padding:40px 44px 36px;background:#f4e6c6;color:#593b2e;border:5px double #a04b39;box-shadow:0 10px 30px #51351f12;position:relative;scroll-margin-top:24px}
.interpret-heading{margin:0 0 28px;padding:0 0 24px;border-bottom:3px double #ac604a}
.interpret-heading .small-title{font-size:12px;letter-spacing:5px}.interpret-heading h2{color:#922f27;font-size:36px;letter-spacing:12px;margin:14px 0}.interpret-heading .description{color:#876048}.reading-motto{font-size:12px;letter-spacing:4px;margin:15px 0 0;color:#9b5140}
.conclusion{border:0;border-bottom:1px solid #ba8365;background:transparent;padding:8px 0 26px;text-align:center}.conclusion-label{display:inline-block;border:1px solid #a04b39;outline:1px solid #a04b39;outline-offset:3px;padding:5px 18px;color:#922f27;font-size:15px;letter-spacing:4px}.conclusion h3{font-size:27px;color:#922f27;line-height:1.9;margin:22px 0 14px}.conclusion p{font-size:14px;line-height:2.2;color:#674f3b;text-align:left;margin:auto}

.decision-grid{display:block}.decision-card{background:transparent;border:0;border-top:3px double #a96148;padding:26px 0 12px}.decision-card+.decision-card{margin-top:20px}.option-tag,.keep .option-tag{font-size:12px;color:#9b5140;letter-spacing:3px}.decision-card h3{color:#922f27;font-size:26px;letter-spacing:4px;margin:12px 0 8px}.card-intro{color:#88634b;margin-bottom:20px}.decision-card li{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px 26px;padding:22px 0;border-top:1px solid #c9a080}.decision-card h4{font-size:15px;line-height:2;color:#8e3f2f;margin:0}.decision-card li p{font-size:14px;color:#634b37;line-height:2.2}.decision-card .calculation-detail{display:block}.calculation-detail>h4{font-size:17px;margin-bottom:20px}.detail-part{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px 26px;margin:20px 0 0}.detail-part h5{color:#8e3f2f;font-size:14px;line-height:2;margin:0}.detail-part strong{color:#813e2d}.detail-part p+p{grid-column:2}.decision-card .attention{margin:0;padding:20px 14px;background:#e8d0a34d;border-top:1px solid #c9a080}.interpret-retry{margin-top:32px}.interpret-retry .primary{background:transparent;color:#922f27;border:3px double #a04b39}.interpret-retry .primary:hover{background:#ead5b0}
@media(max-width:760px){.interpretation{margin:0 20px 40px;padding:28px 20px;max-width:none}.interpret-heading h2{font-size:30px;letter-spacing:8px}.conclusion{padding:8px 0 22px}.conclusion h3{font-size:22px}.decision-card{padding:24px 0 10px}.decision-card li,.detail-part{display:block}.decision-card h4{margin-bottom:10px}.detail-part h5{margin-bottom:7px}.decision-card li p{font-size:13px}.decision-card .detail-part p+p{margin-top:12px}.interpret-heading .small-title{letter-spacing:2px}}

.explanation-subtitle{color:#8e3f2f;font-size:14px;line-height:2;margin:0 0 7px;font-weight:700}

/* 籤解段落以共同左緣排列，長標題不擠壓內文。 */
.decision-card li{display:block;padding:24px 0;text-align:left}
.decision-card h4{margin:0 0 14px;line-height:1.9}
.decision-card .calculation-detail>h4{margin-bottom:18px}
.detail-part{display:block;margin:20px 0 0}
.detail-part h5,.explanation-subtitle{margin:0 0 8px;line-height:1.9}
.decision-card li p{margin:0;line-height:2.2;text-align:left}
.decision-card .detail-part p+p{margin-top:14px}
.decision-card .attention{padding:20px 16px}
.decision-card .attention h4{margin-bottom:10px}
#interpret-content>.decision-grid{margin-top:28px}

/* Remove redundant separators between the summary and first reading. */
.conclusion{border-bottom:0;padding-bottom:12px}
#interpret-content>.decision-grid{margin-top:12px}
.decision-grid>.decision-card:first-child{border-top:0;padding-top:12px}

/* Keep retry action outside the reading paper. */
.interpretation{margin-bottom:24px}
.interpret-retry{width:calc(100% - 40px);max-width:360px;margin:0 auto 60px}

/* 完整靈籤：廟名、典故、直排詩文、聖意與解曰。 */
.fortune-paper{max-width:390px;padding:10px;background:#f3e4be;border:3px double #a44834}
.paper-heading{display:block;border:0;padding:14px 4px 12px;letter-spacing:0}
.paper-temple{font-size:20px;font-weight:700;letter-spacing:5px;line-height:1.8;margin-bottom:14px}
.paper-identity{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px;font-size:15px;line-height:1.9;letter-spacing:1px}
.paper-heading strong{border:0;border-radius:0;padding:0;font-size:15px;font-weight:600}.paper-heading strong:before{content:'【'}.paper-heading strong:after{content:'】'}
.paper-story{font-size:12px;line-height:1.9;margin:8px 0 0}
.poem{border:0;border-top:1px solid #a44834;border-bottom:1px solid #a44834;padding:26px 8px 22px;gap:22px}
.poem p{font-size:24px;letter-spacing:7px;line-height:1.5}
.paper-meaning,.paper-explanation{text-align:left;padding:14px 6px 0}
.paper-meaning h3,.paper-explanation h3{font-size:14px;line-height:1.9;margin:0 0 6px;font-weight:700}
.paper-meaning dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0;padding:0 4px;font-size:12px;line-height:1.8}
.paper-meaning dl>div{display:flex;gap:10px;align-items:baseline}.paper-meaning dt{flex-shrink:0;letter-spacing:2px}.paper-meaning dd{margin:0}
.paper-explanation{padding-bottom:14px}.paper-explanation p{font-size:12px;line-height:2;margin:0;padding:0 4px}
dialog{width:540px}#enlarged-fortune .fortune-paper{max-width:440px}#enlarged-fortune .poem{gap:28px;padding:30px 8px 26px}#enlarged-fortune .poem p{font-size:29px;letter-spacing:9px}#enlarged-fortune .paper-meaning dl,#enlarged-fortune .paper-explanation p{font-size:14px}
@media(max-width:480px){.fortune-paper{padding:8px}.paper-temple{font-size:17px;letter-spacing:3px}.paper-identity,.paper-heading strong{font-size:13px}.paper-story{font-size:11px}.poem{gap:15px;padding:22px 4px 18px}.poem p{font-size:22px;letter-spacing:6px}.paper-meaning,.paper-explanation{padding-left:0;padding-right:0}.paper-meaning dl{font-size:11px;gap:6px 8px;padding:0}.paper-meaning dl>div{gap:5px}.paper-explanation p{font-size:11px;padding:0}#enlarged-fortune .poem{gap:18px}#enlarged-fortune .poem p{font-size:24px;letter-spacing:7px}#enlarged-fortune .paper-meaning dl,#enlarged-fortune .paper-explanation p{font-size:12px}}
