/* 夜の境内 — 2026-11 视觉改版（方案经 Gemini 4 Argon 审核）
   底：藍夜。朱只用于鸟居线条与主按钮；灯籠金用于强调。 */
:root{
  --paper:#151B33;--paper-2:#1A2240;--paper-3:#222B4C;
  --card:#1E2747;--ink:#ECE6D6;--ink-2:#C6C9D6;--ink-3:#A9AEC4;
  --gold:#E6B25E;--goldtx:#EBC27C;--gold-soft:rgba(230,178,94,.5);--gold-faint:rgba(230,178,94,.15);
  --line:rgba(236,230,214,.13);
  --moku:#52B788;--hi:#E86A58;--tsuchi:#E6B25E;--kin:#DCDFE8;--mizu:#5AA9E6;
  --shu:#C8432F;--shu-tx:#E86A58;--washi:#F2ECE1;--sumi:#1F2437;
  --edge:1px solid rgba(236,230,214,.09);--lift:inset 0 1px 0 rgba(255,255,255,.06);
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans SC",sans-serif;
  --serif:"Shippori Mincho B1","Hiragino Mincho ProN","Noto Serif JP","Noto Serif SC",serif;
  color-scheme:dark;
}
body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:.02em}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(1200px 700px at 78% -10%,rgba(90,110,170,.22),transparent 60%),radial-gradient(900px 600px at 10% 110%,rgba(200,67,47,.06),transparent 60%),var(--paper)}
a{color:var(--goldtx)}
::selection{background:rgba(230,178,94,.35);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* 头部 */
header.site{background:rgba(21,27,51,.86)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:var(--edge)}

/* 面板：受光边缘把层次立起来 */
.form-card,.sum-card,.month,.rep-sec,.pay-card,.diag-detail,.dd-col,.ai-panel,.src-panel,.prod,.plan-box,.fstep .card,.toast{
  background:var(--card);border:var(--edge);box-shadow:var(--lift)}
.pay-card{background:linear-gradient(180deg,#232D52,#1B2342)!important;color:var(--ink)!important}
.pay-card .kicker{display:none}
.msg.ai{background:var(--paper-2)}

/* 按钮 */
.btn{background:var(--shu);border-color:var(--shu);color:var(--ink);letter-spacing:.08em;transition:background .2s,transform .1s}
.btn:hover{background:#D9513C;border-color:#D9513C}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid rgba(236,230,214,.28)}
.btn.ghost:hover{border-color:var(--gold);color:var(--goldtx);background:rgba(230,178,94,.06)}
.pay-card .btn{background:var(--shu);color:var(--ink);border-color:var(--shu)}

/* 表单控件 */
select,input[type=text],input[type=number],input[type=date],textarea{background:rgba(12,16,34,.55);color:var(--ink);border:1px solid rgba(236,230,214,.18)}
select option{background:#1E2747;color:var(--ink)}
.seg button{background:transparent;color:var(--ink-2);border-color:rgba(236,230,214,.2)}
.seg button.on{background:rgba(230,178,94,.16);color:var(--goldtx);border-color:var(--gold)}

/* 去掉每节的眉标；标题左侧一根朱色竖线（鸟居柱） */
.sec-head .num{display:none}
.sec-head h2,.rep-sec h2,.rep-sec>h3:first-child{font-family:var(--serif);font-weight:600;letter-spacing:.06em}
.rep-sec h2{border-left:3px solid var(--shu);padding-left:12px}
.sec-head[style*="center"] h2::after{content:"";display:block;width:28px;height:2px;background:var(--shu);margin:12px auto 0}
.gold-rule{opacity:.5}

/* 命盘表：絵馬式五角顶表头 */
table.meipan thead th{background:#232C4E;color:var(--ink);clip-path:polygon(0 18%,50% 0,100% 18%,100% 100%,0 100%);padding-top:14px;border:none}
table.meipan thead th.daym{background:linear-gradient(180deg,rgba(230,178,94,.28),#2A3358)}
table.meipan td{border-color:rgba(230,178,94,.18)}
table.meipan td.daym{background:rgba(82,183,136,.10)}

/* 户型图：和纸托裱 */
.plan-box img,.plan-box canvas{background:var(--washi);padding:8px;border-radius:4px}
.plan-box svg text{fill:#E8E0CA}
.plan-box svg rect{stroke:#8F8875;fill:rgba(33,30,22,.4)}
.plan-box svg rect.fz{fill:rgba(230,178,94,.32);stroke:#E6B25E;stroke-width:1.4}
.plan-box svg rect.fz-pillow{fill:#F1EBDD;stroke:#E6B25E}

/* 卡片与杂项 */
.char-card .bottom{background:rgba(21,27,51,.92)}
.char-card .brand-sm,.char-card .elem-badge{background:rgba(21,27,51,.85);color:var(--ink)}
.char-card .frame{border-color:rgba(230,178,94,.45)}
.char-card .art{object-fit:cover;object-position:50% 22%}
.cc-face.back{background:var(--card)}
.skel{background:linear-gradient(100deg,#1E2747 40%,#2A3459 50%,#1E2747 60%);background-size:200% 100%}
.ktag.misong{background:#232C4E;border-color:#5C6386;color:var(--ink-2)}
.ktag.ika{color:#8FD0AE}.ktag.odaya{color:#E3B96E}
.hero-img,.empty-state,.hero .compass{display:none!important}
.prod-grid{display:none}
footer{border-top:var(--edge)}

/* ===== 首屏：夜の境内 ===== */
.night-hero{position:relative;display:grid;gap:0 44px;padding-top:28px;padding-bottom:40px;
  grid-template-columns:auto minmax(320px,440px) 1fr;grid-template-areas:"title sub art" "title form art";align-items:start}
.night-hero>h1{grid-area:title;margin:0}
.night-hero>.sub-wrap{grid-area:sub}
.night-hero>form{grid-area:form}
.nh-art{grid-area:art;position:sticky;top:84px;margin:0;justify-self:center;width:min(100%,460px);aspect-ratio:3/4}
.nh-art img{width:100%;height:100%;object-fit:cover;border-radius:2px;
  -webkit-mask-image:radial-gradient(120% 95% at 50% 40%,#000 62%,transparent 100%);mask-image:radial-gradient(120% 95% at 50% 40%,#000 62%,transparent 100%)}
.nh-torii{position:absolute;inset:-34px -22px -18px;pointer-events:none;overflow:visible;z-index:1}
.nh-torii path{fill:none;stroke:var(--shu);stroke-width:1.2;opacity:.85}
.nh-moon{display:none;position:absolute;right:6%;top:-8px;width:120px;height:120px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,246,220,.9) 0 30%,rgba(255,236,190,.25) 46%,transparent 70%);animation:moonbreath 9s ease-in-out infinite;z-index:-1}
@keyframes moonbreath{50%{opacity:.6;transform:scale(1.06)}}
.nh-caption{position:absolute;left:0;right:0;bottom:-30px;text-align:center;font-size:12.5px;color:var(--ink-3)}

.night-hero h1{writing-mode:vertical-rl;font-family:var(--serif);font-weight:600;font-size:clamp(30px,3.2vw,46px);line-height:1.5;letter-spacing:.14em;
  max-height:none;color:var(--ink);text-shadow:0 2px 18px rgba(8,10,24,.6)}
.night-hero h1 .t{display:block}
.night-hero h1 em{font-style:normal;text-emphasis:filled sesame var(--gold);-webkit-text-emphasis:filled sesame var(--gold);text-emphasis-position:over right}
.night-hero h1 br,.night-hero h1 wbr{display:none}
:lang(en) .night-hero h1{writing-mode:horizontal-tb;font-size:clamp(28px,3vw,40px);letter-spacing:.01em;max-width:11em;line-height:1.25}
:lang(en) .night-hero{grid-template-columns:minmax(320px,460px) 1fr;grid-template-areas:"title art" "sub art" "form art"}
.night-hero .sub{color:var(--ink-2)}
.night-hero .form-card{background:rgba(30,39,71,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(230,178,94,.28);position:relative}
.night-hero .form-card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

@media (max-width:899px){
  .night-hero,:lang(en) .night-hero{display:block;padding-top:0}
  .nh-art{position:relative;top:0;width:calc(100% + 32px);margin:0 -16px;height:56vh;aspect-ratio:auto;max-height:560px}
  .nh-art img{-webkit-mask-image:linear-gradient(to bottom,#000 45%,transparent 98%);mask-image:linear-gradient(to bottom,#000 45%,transparent 98%);object-position:50% 18%}
  .nh-torii,.nh-caption{display:none}
  .nh-moon{right:8%;top:8px;width:90px;height:90px;z-index:1}
  .night-hero h1{position:absolute;top:18px;left:4px;z-index:2;font-size:clamp(24px,7vw,32px);text-shadow:0 2px 12px rgba(10,14,26,.95)}
  :lang(en) .night-hero h1{top:auto;left:0;right:0;position:relative;margin:-18vh 0 8px;font-size:28px}
  .night-hero>.sub-wrap{position:relative;margin-top:-9vh;z-index:2}
}
@media (prefers-reduced-motion:reduce){.nh-moon{animation:none}}

/* ===== 唯一的“哇”时刻：御札 → 角色卡 ===== */
#ofuda{position:fixed;inset:0;z-index:9999;display:none;place-items:center;background:radial-gradient(ellipse at 50% 40%,rgba(30,39,71,.92),rgba(10,13,28,.97))}
#ofuda.on{display:grid}
.of-stage{perspective:1400px;display:grid;justify-items:center;gap:18px}
.of-card{width:min(64vw,300px);aspect-ratio:3/4;position:relative;transform-style:preserve-3d;transform:translateY(60vh) rotateY(0);opacity:0}
.of-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:4px;overflow:hidden}
.of-paper{background:var(--washi);color:var(--sumi);display:grid;grid-template-rows:auto 1fr auto;justify-items:center;padding:16px 0 14px;
  box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 0 0 6px var(--washi),inset 0 0 0 7px var(--shu)}
.of-paper .of-top{font-family:var(--serif);font-size:13px;letter-spacing:.5em;writing-mode:vertical-rl;color:#5C5A66}
.of-paper .of-ch{font-family:"Yuji Boku","Shippori Mincho B1",serif;font-size:min(30vw,150px);line-height:1;align-self:center;clip-path:inset(0 0 100% 0)}
.of-paper .of-seal{width:34px;height:34px;border:2px solid var(--shu);color:var(--shu);font-family:var(--serif);font-size:10px;line-height:1.05;display:grid;place-items:center;text-align:center;transform:rotate(-4deg);opacity:0}
.of-art{transform:rotateY(180deg);background:#151B33;backface-visibility:visible;-webkit-backface-visibility:visible}
.of-art img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.of-glow{position:absolute;inset:-40%;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(255,240,205,.95),rgba(230,178,94,.35) 35%,transparent 65%)}
.of-msg{font-family:var(--serif);color:var(--ink-2);letter-spacing:.12em;font-size:14px;opacity:0;margin:0}
.of-mote{position:absolute;width:5px;height:5px;border-radius:50%;opacity:0;pointer-events:none}
#ofuda.run .of-card{animation:ofRise .55s cubic-bezier(.2,.8,.2,1) forwards,ofFlip .6s .5s cubic-bezier(.6,0,.3,1) forwards;animation-delay:0s,1.25s}
#ofuda.run .of-ch{animation:ofBrush .45s .5s cubic-bezier(.4,0,.2,1) forwards}
#ofuda.run .of-seal{animation:ofFade .2s .95s forwards}
#ofuda.run .of-paper{animation:ofHide .01s 1.55s forwards}
#ofuda.run .of-art{opacity:0;animation:ofShow .01s 1.55s forwards}
#ofuda.run.noart .of-card{animation:ofRise .55s cubic-bezier(.2,.8,.2,1) forwards}
#ofuda.run.noart .of-paper{animation:none}
#ofuda.run.noart .of-art{display:none}
#ofuda.run .of-glow{animation:ofGlow .5s 1.4s ease-out}
#ofuda.run .of-msg{animation:ofFade .4s .3s forwards}
#ofuda.run .of-mote{animation:ofMote 1s .6s ease-out}
#ofuda.out{animation:ofOut .45s ease forwards}
@keyframes ofRise{to{transform:translateY(0) rotateY(0);opacity:1}}
@keyframes ofFlip{from{transform:translateY(0) rotateY(0);opacity:1}to{transform:translateY(0) rotateY(180deg);opacity:1}}
@keyframes ofBrush{to{clip-path:inset(0 0 0 0)}}
@keyframes ofFade{to{opacity:1}}
@keyframes ofGlow{0%{opacity:0;transform:scale(.3)}40%{opacity:.9}100%{opacity:0;transform:scale(1.25)}}
@keyframes ofMote{0%{opacity:0;transform:translate(0,0)}30%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
@keyframes ofOut{to{opacity:0}}
@keyframes ofHide{to{visibility:hidden}}
@keyframes ofShow{to{opacity:1}}

/* 报告阅读：白纸模式（只换报告页） */
.paper-read #page-report{--paper:#F5EFE4;--paper-2:#EFE7D8;--paper-3:#E7DECB;--card:#FBF7EE;--ink:#1F2437;--ink-2:#454A5C;--ink-3:#5E6273;
  --line:#DDD3BD;--gold:#A8842F;--goldtx:#7C5F1D;--gold-soft:rgba(168,132,47,.45);--gold-faint:rgba(168,132,47,.16);
  --moku:#3E7A5E;--hi:#BF4630;--tsuchi:#A5712C;--kin:#6E7176;--mizu:#33549C;--shu-tx:#BF4630;
  background:var(--paper);color:var(--ink);color-scheme:light}
.paper-read #page-report table.meipan thead th{background:#E7DECB;color:var(--ink)}
.read-toggle{position:fixed;right:14px;bottom:84px;z-index:60;font-size:12.5px;padding:8px 12px;border-radius:999px;background:rgba(21,27,51,.9);color:var(--ink);border:1px solid rgba(236,230,214,.25);display:none}
body.on-report .read-toggle{display:block}
.paper-read .read-toggle{background:#FBF7EE;color:#1F2437;border-color:#DDD3BD}
