:root{
    --sky:linear-gradient(180deg,#9cbbbc 0%,#a9c4c4 24%,#b7cdcb 55%,#c4d5d2 91%,#c6d6d3 100%);
    --paper:#b3cac9;
    --glass:rgba(var(--tint-rgb),.46);
    --bg:#9cbbbc;
    --sky-rgb:158,188,189;
    --tint-rgb:236,243,241;
    --label-rgb:188,208,205;
    --dark-rgb:34,63,65;
    --red-rgb:194,59,44;
    --ink-deep:#1f2b2d;
    --tint-2:#d9e4e2;
    --light:#e8f0ef;
    --t0:#121212;
    --t1:#0e0e0e;
    --t2:#1a1a1a;
    --t3:#242424;
    --t4:#2b2b2b;
    --t5:#141414;
    --ink:var(--t1);
    --ink-2:#4a5254;
    --ink-3:#465759;
    --teal:#223f41;
    --red:#c23b2c;
    --red-text:#a8291b;
    --mark:#2b2b2b;
    --gold:#be8f2f;
    --line:rgba(var(--dark-rgb),.14);
    --font-title:'Noto Serif SC','Noto Serif CJK SC','Songti SC',serif;
    --font-body:'Noto Serif SC','Noto Serif CJK SC','Songti SC',serif;
    --font-sans:'Noto Sans SC','Noto Sans CJK SC','PingFang SC',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;background:var(--bg);}
body{min-height:100dvh;color:var(--t1);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:var(--bg);}
button,a{font:inherit;}
button{cursor:pointer;color:inherit;background:none;border:0;-webkit-tap-highlight-color:transparent;}
button:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
a{color:inherit;text-decoration:none;}
[hidden]{display:none!important;}
.riyun-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.riyun-paper{position:relative;z-index:1;width:min(100%,860px);min-height:100dvh;margin:0 auto;overflow-x:clip;}
.riyun-paper::before{content:'';position:fixed;inset:0;z-index:-1;background:var(--sky);pointer-events:none;}
.riyun-topbar{z-index:var(--fc-z-header,500);}
.fc-app-header.riyun-topbar{--fc-header-surface:rgba(var(--sky-rgb),0);--fc-header-line-color:transparent;--fc-header-shadow-color:transparent;color:var(--teal);}
.fc-app-header.riyun-topbar[data-fc-header-state="scrolled"]{--fc-header-surface:rgba(var(--sky-rgb),.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);}
.riyun-brand{display:block;justify-self:center;font-size:12px;font-weight:500;line-height:1;letter-spacing:.14em;text-indent:.14em;white-space:nowrap;}
.riyun-mode-bar{--fc-mode-bar-surface:transparent;--fc-mode-bar-line:transparent;}
.riyun-view-switch{--fc-mode-count:2;--fc-mode-width:162px;--fc-mode-item-color:var(--ink-2);--fc-mode-item-active-color:var(--t1);--fc-mode-item-letter-spacing:.04em;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);}
.riyun-view-switch .fc-mode-switch__indicator{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(246,248,246,.62));border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 -1px 0 rgba(28,28,28,.06);}
.riyun-view-switch .fc-mode-switch__item[aria-selected="true"]{font-weight:600;}

.riyun-main{width:min(100%,468px);margin:0 auto;padding:22px 24px 72px;}
.riyun-top{position:relative;min-height:74px;}
.riyun-sky{position:absolute;left:-24px;right:28px;top:0;height:180px;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 70%,transparent 100%);animation:riyunFade 1.2s ease-out .2s both;}
.riyun-sky canvas{display:block;width:100%;height:180px;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 90%,transparent 100%);}
.riyun-hou{position:absolute;right:-4px;top:4px;z-index:1;height:112px;writing-mode:vertical-rl;font-family:var(--font-sans);animation:riyunFade 1.2s ease-out .2s both;}
.riyun-hou-name{display:block;margin-left:6px;font-size:12px;line-height:1.5;letter-spacing:2px;color:var(--t0);white-space:nowrap;}
.riyun-hou-note{display:block;font-size:11px;line-height:1.5;letter-spacing:2px;color:var(--t3);}
.riyun-hou-note span{display:block;}
.riyun-hou-note span+span{margin-left:2px;}
.riyun-date-meta{position:relative;z-index:1;}
.riyun-date-line{display:flex;align-items:center;}
.riyun-date-picker{position:relative;min-height:var(--fc-touch-target,44px);width:max-content;margin:-6px 0 0;padding:0 12px 0 0;display:inline-flex;align-items:center;gap:6px;border-radius:10px;color:var(--t0);font-family:var(--font-sans);font-size:12px;line-height:1.8;letter-spacing:1.3px;font-variant-numeric:tabular-nums;transition:color var(--fc-motion-fast,150ms) var(--fc-state-ease,ease),transform var(--fc-motion-fast,150ms) var(--fc-state-ease,ease);}
.riyun-date-picker:active{transform:scale(var(--fc-motion-press-scale,.96));}
.riyun-date-picker svg{width:14px;height:14px;}
.riyun-ganzhi{color:var(--t5);font-family:var(--font-sans);font-size:12px;line-height:1.6;letter-spacing:1.3px;white-space:nowrap;}
.riyun-ganzhi b{font-weight:500;color:var(--teal);}
.riyun-hero{position:relative;z-index:1;padding:0;}
.riyun-title{margin:0 0 14px;color:var(--t0);font:500 clamp(2rem,6vw,3.4rem)/1.32 var(--font-title);letter-spacing:.025em;}
.riyun-reminder{display:grid;row-gap:8px;color:var(--t0);}
.riyun-reminder-text{display:block;font-size:1rem;line-height:1.9;font-weight:500;letter-spacing:.04em;}
.riyun-reminder-source{display:block;text-align:right;color:var(--t3);font-size:1rem;line-height:1.9;letter-spacing:.02em;}

.riyun-loading,.riyun-error{padding:80px 0;text-align:center;color:var(--t3);font-size:.86rem;line-height:2;}
.riyun-error button{--fc-button-padding:0 22px;--fc-button-radius:22px;--fc-button-secondary-border:var(--line);--fc-button-secondary-color:var(--t1);--fc-button-secondary-hover-surface:rgba(255,255,255,.2);--fc-button-focus:rgba(var(--dark-rgb),.32);--fc-button-focus-surface:var(--paper);margin-top:18px;}

.riyun-view{padding-top:0;}
.riyun-overall{padding:7px 0 3px;}
.riyun-overall p{color:var(--overall-ink,#363636);font-size:.9rem;font-weight:400;line-height:1.95;text-align:justify;text-align-last:left;text-wrap:wrap;animation:riyunFadeUp .7s ease-out .5s both;}
.riyun-quick-slot{--riyun-quick-gap:10px;position:sticky;top:var(--fc-header-height,64px);z-index:16;margin:0 -4px;padding:var(--riyun-quick-gap) 0;}
.riyun-quick-slot::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:rgba(var(--sky-rgb),.94);opacity:0;pointer-events:none;transition:opacity var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-quick-slot.is-stuck::before{opacity:1;}
.riyun-quick-nav{--quick-slider-x:4px;--quick-slider-width:64px;position:relative;padding:4px;display:flex;align-items:center;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;border:1px solid rgba(var(--dark-rgb),.12);border-radius:999px;background:rgba(var(--tint-rgb),.55);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);}
.riyun-quick-nav::-webkit-scrollbar{display:none;}
.riyun-quick-slider{position:absolute;z-index:0;inset-block:4px;left:0;width:var(--quick-slider-width);pointer-events:none;border-radius:999px;border:1px solid rgba(var(--dark-rgb),.14);background:rgba(var(--sky-rgb),.45);transform:translateX(var(--quick-slider-x));transition:width var(--fc-motion-fast,150ms) var(--fc-state-ease,ease),transform var(--fc-motion-fast,150ms) var(--fc-state-ease,ease);will-change:transform;}
.riyun-quick-nav:not(.is-ready) .riyun-quick-slider{transition:none;}
.riyun-quick-nav a{position:relative;z-index:1;min-width:58px;min-height:var(--fc-touch-target,44px);padding:0 10px;display:flex;flex:1 0 58px;align-items:center;justify-content:center;border-radius:999px;color:var(--ink-2);font-size:13px;letter-spacing:.1em;text-align:center;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color var(--fc-motion-state,180ms) var(--fc-state-ease,ease),transform var(--fc-motion-fast,150ms) var(--fc-state-ease,ease);}
.riyun-quick-nav a[aria-current="location"]{color:var(--teal);font-weight:600;}
.riyun-quick-nav a:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(var(--dark-rgb),.4);}
.riyun-quick-nav a:active{transform:scale(var(--fc-motion-press-scale,.96));}

.riyun-section{padding:22px 0 0;}
.riyun-section[id]{scroll-margin-top:128px;}
.riyun-section>h2{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;color:var(--t1);font-size:18px;font-weight:600;letter-spacing:.06em;}
.riyun-section>h2 small{font-family:var(--font-sans);font-size:11px;font-weight:400;color:var(--t3);letter-spacing:.1em;}
.riyun-hint{margin-top:14px;font-family:var(--font-sans);font-size:11px;line-height:1.8;color:var(--ink-3);}
.riyun-subhead{margin:18px 0 10px;font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--t1);}
.riyun-list{list-style:none;display:grid;gap:12px;}
.riyun-list li{display:grid;grid-template-columns:minmax(64px,88px) minmax(0,1fr);gap:12px;align-items:start;}
.riyun-list strong{color:var(--t1);font-size:13px;font-weight:600;line-height:1.8;}
.riyun-list span{min-width:0;color:var(--t2);font-size:13px;line-height:1.8;overflow-wrap:anywhere;}

.riyun-five-row{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:12px;padding:11px 0;}
.riyun-five-label{font-size:16px;line-height:27.75px;font-weight:600;color:var(--teal);}
.riyun-five-body>p{color:var(--t1);font-size:15px;line-height:1.85;text-align:justify;}
.riyun-five-body>p+p{margin-top:4px;color:var(--t2);font-size:14px;}
.riyun-tags{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--font-sans);font-size:11px;}
.riyun-tags-k{margin-right:4px;font-family:var(--font-body);font-size:13px;line-height:22px;font-weight:600;}
.riyun-tags-k.is-yi{color:var(--red-text);}
.riyun-tags-k.is-ji{color:var(--mark);}
.riyun-tag{padding:0 9px;line-height:22px;border-radius:11px;color:#f3f1ec;letter-spacing:.04em;}
.riyun-tag.is-yi{background:rgba(var(--red-rgb),.86);}
.riyun-tag.is-ji{background:rgba(43,43,43,.8);}
.riyun-study-heading{font-size:16px;line-height:27.75px;font-weight:600;color:var(--t0);}
.riyun-study-list{border-top:1px solid var(--line);}
.riyun-study-item{border-bottom:1px solid var(--line);}
.riyun-study-row{display:flex;align-items:baseline;gap:8px;padding:11px 0 12px;color:var(--t1);}
.riyun-study-name{font-size:15px;line-height:1.6;font-weight:600;color:var(--t0);}
.riyun-study-grade{font-size:14px;line-height:1.6;font-weight:600;}
.riyun-study-grade.is-good{color:var(--red-text);}
.riyun-study-grade.is-plain{color:var(--ink-2);}
.riyun-study-grade.is-bad{color:var(--mark);}

.riyun-hours-summary{color:var(--t2);font-size:14px;line-height:1.8;}
.riyun-ruler{position:relative;height:112px;margin-top:16px;}
.riyun-ruler svg{position:absolute;left:0;top:0;width:100%;height:60px;overflow:visible;pointer-events:none;}
.riyun-ruler-sun{position:absolute;left:50%;top:25.5px;width:6px;height:7px;margin-left:-3px;background:var(--gold);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);pointer-events:none;}
.riyun-ruler-hours{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));}
.riyun-ruler-hour{position:relative;height:112px;padding:0;}
.riyun-ruler-zhi{position:absolute;left:0;right:0;top:4px;text-align:center;font-size:14px;line-height:18px;font-weight:500;color:var(--t2);}
.riyun-ruler-mark{position:absolute;left:50%;top:46.5px;width:7px;height:7px;margin-left:-3.5px;transform:rotate(45deg);border:1px solid rgba(43,43,43,.6);background:var(--tint-2);transition:box-shadow var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-ruler-luck{position:absolute;left:-6px;right:-6px;top:62px;text-align:center;font-family:var(--font-sans);font-size:11px;line-height:12px;letter-spacing:.1em;padding-left:.1em;color:var(--t2);}
.riyun-ruler-hour.is-good .riyun-ruler-zhi,.riyun-ruler-hour.is-good .riyun-ruler-luck{color:var(--red-text);}
.riyun-ruler-hour.is-good .riyun-ruler-mark{top:45.5px;width:9px;height:9px;margin-left:-4.5px;border:0;background:var(--red);}
.riyun-ruler-hour.is-selected .riyun-ruler-mark{box-shadow:0 0 0 2.5px rgba(var(--tint-rgb),.95),0 0 0 3.5px var(--teal);}
.riyun-ruler-hour:is(.is-selected,.is-now) :is(.riyun-ruler-zhi,.riyun-ruler-luck){font-weight:700;}
.riyun-ruler-now{position:absolute;top:23px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;}
.riyun-ruler-now i{width:5px;height:5px;transform:rotate(45deg);background:var(--teal);}
.riyun-ruler-now b{width:1px;height:32px;margin-top:1px;background:var(--teal);}
.riyun-ruler-now span{margin-top:21px;font-family:var(--font-sans);font-size:11px;line-height:1;letter-spacing:.1em;color:var(--teal);}
.riyun-ruler-axis{position:absolute;left:0;right:0;top:98px;display:flex;justify-content:space-between;font-family:var(--font-sans);font-size:11px;line-height:12px;letter-spacing:.08em;color:var(--t3);pointer-events:none;}
.riyun-hour-card{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--glass);}
.riyun-hour-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--t1);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;}
.riyun-hours-range{font-family:var(--font-sans);font-size:12px;font-weight:400;color:var(--t2);}
.riyun-pill{font-family:var(--font-sans);font-size:11px;font-weight:400;padding:0 7px;line-height:18px;border-radius:9px;border:1px solid var(--t4);color:var(--t4);}
.riyun-pill.is-good{border-color:var(--red-text);color:var(--red-text);}
.riyun-now-tag{font-family:var(--font-sans);font-size:11px;font-weight:400;color:var(--teal);}
.riyun-hour-row{margin-top:10px;display:grid;grid-template-columns:20px 1fr;column-gap:8px;font-size:13px;line-height:1.8;}
.riyun-hour-row+.riyun-hour-row{margin-top:14px;}
.riyun-hour-row b{font-weight:600;}
.riyun-hour-row b.is-yi{color:var(--red-text);}
.riyun-hour-row b.is-ji{color:var(--mark);}
.riyun-hour-row span{color:var(--t2);}

.riyun-compass-wrap{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;}
.riyun-compass{position:relative;flex:0 0 auto;width:168px;height:168px;}
.riyun-compass svg{position:absolute;inset:0;display:block;}
.riyun-compass path.riyun-wedge{transition:fill-opacity var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-compass-mark{position:absolute;width:12px;text-align:center;font-family:var(--font-sans);font-size:11px;line-height:16px;color:var(--t3);}
.riyun-compass-key{position:absolute;width:16px;height:18px;padding:0;font-size:14px;line-height:18px;font-weight:600;color:rgb(var(--tint-rgb));}
.riyun-dir-list{flex:1 1 150px;min-width:0;display:flex;flex-direction:column;gap:14px;}
.riyun-dir{display:block;text-align:left;transition:opacity var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-dir-name{display:flex;align-items:center;gap:10px;}
.riyun-dir-icon{flex:0 0 auto;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:#f6f3ef;font-size:13px;line-height:1;font-weight:600;}
.riyun-dir-name b{font-size:18px;font-weight:500;letter-spacing:.04em;}
.riyun-dir p{margin-top:2px;font-size:12px;line-height:1.7;color:var(--t2);}
.riyun-compass-wrap[data-selected] .riyun-dir:not(.is-selected),.riyun-compass-wrap[data-selected] .riyun-compass-key:not(.is-selected){opacity:.4;}

.riyun-zintro{margin-top:6px;font-size:14px;line-height:1.8;color:var(--ink-deep);}
.riyun-zintro b{font-weight:600;color:var(--teal);}
.riyun-zgraph{position:relative;width:100%;max-width:342px;aspect-ratio:342/300;margin:6px auto 0;}
.riyun-zgraph svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;}
.riyun-zline{fill:none;stroke-linecap:round;transition:stroke-opacity var(--fc-motion-state,180ms) var(--fc-state-ease,ease),stroke-width var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-zlab{position:absolute;width:32px;margin:-8px 0 0 -16px;text-align:center;font-family:var(--font-sans);font-size:10px;line-height:16px;background:rgba(var(--label-rgb),.92);border-radius:8px;}
.riyun-zbr{position:absolute;width:16px;margin:-7px 0 0 -8px;text-align:center;font-family:var(--font-sans);font-size:10px;line-height:14px;color:rgba(var(--dark-rgb),.42);}
.riyun-znode{position:absolute;padding:0;border-radius:50%;display:grid;place-items:center;transition:background-color var(--fc-motion-state,180ms) var(--fc-state-ease,ease),color var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.riyun-zring{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:20px;border:1.5px solid var(--teal);opacity:0;pointer-events:none;}
.riyun-zdetail{margin-top:8px;}
.riyun-zdetail-head{font-family:var(--font-sans);font-size:12px;letter-spacing:.12em;}
.riyun-zdetail-head.is-good{color:var(--red-text);}
.riyun-zdetail-head.is-bad{color:var(--mark);}
.riyun-zdetail-head span{margin-left:10px;letter-spacing:.06em;color:var(--ink-3);}
.riyun-zdetail p{margin-top:6px;font-size:15px;line-height:1.9;color:var(--t0);text-align:justify;}
.riyun-notice{padding-top:48px;color:var(--t3);font-size:12px;line-height:1.8;text-align:center;overflow-wrap:anywhere;}

.riyun-anim [data-obs]:not(.is-seen) .riyun-reveal,.riyun-anim [data-obs]:not(.is-seen) .riyun-zline,.riyun-anim [data-obs]:not(.is-seen) .riyun-znode,.riyun-anim [data-obs]:not(.is-seen) .riyun-zlab{opacity:0;}
.is-seen .riyun-reveal{animation:riyunFadeUp .7s ease-out var(--d,0s) both;}
.is-seen .riyun-zline.is-solid{stroke-dasharray:1 1;animation:riyunDraw .9s cubic-bezier(.3,.7,.2,1) var(--d,0s) both;}
.is-seen .riyun-zline:not(.is-solid){animation:riyunFade .8s ease-out var(--d,0s) both;}
.is-seen .riyun-zlab{animation:riyunFadeUp .4s ease-out var(--d,0s) both;}
.is-seen .riyun-znode{animation:riyunNode .5s cubic-bezier(.3,.7,.2,1.3) var(--d,0s) both;}
.is-seen .riyun-zring{animation:riyunRing 2.4s ease-out 1.2s infinite;}

.riyun-paper.is-traditional-view .riyun-hero,.riyun-paper.is-traditional-view .riyun-sky,.riyun-paper.is-traditional-view .riyun-hou{display:none;}
.traditional-intro{margin-top:18px;color:var(--t2);font-size:13px;line-height:1.9;}
.traditional-cells{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:14px;background:var(--glass);border:1px solid rgba(var(--dark-rgb),.12);}
.traditional-cells>div{padding:14px 8px;text-align:center;}
.traditional-cells>div+div{border-left:1px solid rgba(var(--dark-rgb),.12);}
.traditional-cells span{display:block;font-family:var(--font-sans);font-size:11px;letter-spacing:.16em;color:var(--t3);}
.traditional-cells strong{display:block;margin-top:6px;font-size:22px;font-weight:600;color:var(--t1);}
.traditional-cells strong.is-good{color:var(--red-text);}
.traditional-cells small{display:block;margin-top:2px;font-family:var(--font-sans);font-size:11px;color:var(--t2);}
.traditional-group{padding:30px 0 0;}
.traditional-group>h2{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;font-size:18px;font-weight:600;letter-spacing:.06em;}
.traditional-group>h2 small{font-family:var(--font-sans);font-size:11px;font-weight:400;color:var(--t3);letter-spacing:.1em;}
.traditional-group>h3{margin:16px 0 8px;font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.16em;color:var(--t3);}
.traditional-advice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;}
.traditional-card{position:relative;min-width:0;padding:36px 16px 34px;text-align:center;}
.traditional-card svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;}
.traditional-card .riyun-frame-bg{animation:riyunFade 1s ease-out var(--d,0s) both;}
.traditional-card .riyun-frame-line{stroke-dasharray:1 1;stroke-dashoffset:1;animation:riyunDraw 1.6s cubic-bezier(.5,.05,.25,1) var(--d,0s) both;}
.traditional-card .riyun-frame-line.is-inner{animation-duration:1.9s;animation-delay:calc(var(--d,0s) + .35s);}
.traditional-card>div{position:relative;}
.traditional-card-key{font-size:30px;line-height:1;font-weight:500;animation:riyunFadeUp .8s cubic-bezier(.2,.7,.2,1) calc(var(--d,0s) + .6s) both;}
.traditional-card-sub{margin-top:9px;font-family:var(--font-sans);font-size:10px;line-height:15px;letter-spacing:.4em;padding-left:.4em;animation:riyunFadeUp .8s cubic-bezier(.2,.7,.2,1) calc(var(--d,0s) + .7s) both;}
.traditional-card-items{margin-top:18px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:15px;line-height:22px;color:var(--t0);animation:riyunFadeUp .8s cubic-bezier(.2,.7,.2,1) calc(var(--d,0s) + .85s) both;}
.traditional-card.is-yi .traditional-card-key{color:var(--red-text);}
.traditional-card.is-yi .traditional-card-sub{color:var(--red-text);}
.traditional-card.is-ji .traditional-card-key{color:var(--mark);}
.traditional-card.is-ji .traditional-card-sub{color:var(--ink-2);}
.traditional-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;}
.traditional-grid>div{min-width:0;padding:12px 0;border-top:1px solid rgba(var(--dark-rgb),.12);}
.traditional-grid>div.is-wide{grid-column:1 / -1;}
.traditional-grid dt{font-family:var(--font-sans);font-size:11px;letter-spacing:.14em;color:var(--t3);}
.traditional-grid dd{margin-top:4px;font-size:14px;line-height:1.8;color:var(--t1);overflow-wrap:anywhere;}
.traditional-chips{display:flex;flex-wrap:wrap;gap:8px;}
.traditional-chips span{height:30px;padding:0 12px;border-radius:15px;display:inline-flex;align-items:center;font-size:14px;}
.traditional-chips.is-good span{color:var(--red-text);border:1px solid rgba(var(--red-rgb),.35);}
.traditional-chips.is-bad span{color:var(--mark);border:1px solid rgba(43,43,43,.4);}
.traditional-positions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.traditional-plate{position:relative;flex:0 0 auto;width:168px;height:168px;}
.traditional-plate svg{display:block;}
.traditional-plate span{position:absolute;transform:translate(-50%,-50%);font-family:var(--font-sans);font-size:10px;line-height:1;color:var(--t3);}
.traditional-plate span.is-mark{width:22px;height:22px;border-radius:11px;display:grid;place-items:center;border:1px solid;}
.traditional-pos-list{list-style:none;flex:1 1 120px;font-size:14px;line-height:2.1;color:var(--t1);}
.traditional-pos-list li{display:flex;justify-content:space-between;}
.traditional-pos-list li span{font-family:var(--font-sans);font-size:12px;color:var(--t3);letter-spacing:.1em;}
.traditional-slips{display:flex;gap:3px;align-items:flex-end;height:130px;}
.traditional-slip{position:relative;flex:1 1 0px;min-width:0;height:108px;padding:7px 0 6px;border-radius:6px;background:rgba(var(--tint-rgb),.34);display:flex;flex-direction:column;align-items:center;justify-content:space-between;transition:height var(--fc-motion-state,180ms) var(--fc-state-ease,ease),background-color var(--fc-motion-state,180ms) var(--fc-state-ease,ease);}
.traditional-slip.is-good{border-top:3px solid var(--red);background:rgba(248,236,232,.62);}
.traditional-slip.is-selected{height:122px;border-top:0;background:rgba(var(--dark-rgb),.88);}
.traditional-slip b{font-size:14px;line-height:1;font-weight:600;color:var(--t1);}
.traditional-slip i{writing-mode:vertical-rl;font-style:normal;font-family:var(--font-sans);font-size:9px;letter-spacing:1px;color:var(--t3);}
.traditional-slip em{font-style:normal;font-family:var(--font-sans);font-size:10px;line-height:1;color:var(--mark);}
.traditional-slip.is-good em{color:var(--red-text);}
.traditional-slip.is-selected :is(b,i,em){color:rgb(var(--tint-rgb));}
.traditional-slip.is-now::before{content:'';position:absolute;top:-9px;left:50%;margin-left:-2.5px;width:5px;height:5px;border-radius:3px;background:var(--teal);}
.traditional-hour-card{margin-top:10px;padding:12px 14px;border-radius:12px;background:var(--glass);}
.traditional-hour-rows{margin-top:8px;display:grid;grid-template-columns:34px 1fr;column-gap:6px;row-gap:4px;font-size:13px;line-height:1.75;color:var(--t2);}
.traditional-hour-rows b{font-weight:600;color:var(--t1);}
.traditional-hour-rows b.is-yi{color:var(--red-text);}
.traditional-hour-rows b.is-ji{color:var(--mark);}
.traditional-text{color:var(--t2);font-size:13px;line-height:1.9;}
.traditional-text+.traditional-text{margin-top:8px;}
.traditional-text a{color:var(--teal);text-decoration:underline;text-underline-offset:3px;}

.riyun-sheet{position:fixed;inset:0;z-index:calc(var(--fc-z-header,500) + 10);}
.riyun-sheet-scrim{position:absolute;inset:0;width:100%;background:rgba(var(--dark-rgb),.14);animation:riyunFade .25s ease-out both;}
.riyun-sheet-panel{position:absolute;left:50%;bottom:0;width:min(100%,468px);transform:translateX(-50%);padding:18px 20px 34px;border-radius:22px 22px 0 0;background:linear-gradient(180deg,rgba(var(--tint-rgb),.56) 0%,rgba(var(--tint-rgb),.4) 55%,rgba(var(--tint-rgb),.34) 100%);-webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);border:1px solid rgba(255,255,255,.62);border-bottom:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(255,255,255,.2);animation:riyunSheet .34s cubic-bezier(.2,.8,.2,1) both;}
.riyun-sheet-grip{width:36px;height:4px;border-radius:2px;background:rgba(var(--dark-rgb),.3);margin:0 auto 14px;}
.riyun-sheet-head{display:flex;justify-content:space-between;align-items:center;}
.riyun-sheet-head h2{font-size:17px;font-weight:600;color:var(--t1);}
.riyun-sheet-today{min-height:var(--fc-touch-target,44px);padding:0 0 0 14px;display:inline-flex;align-items:center;}
.riyun-sheet-today span{height:34px;padding:0 14px;display:inline-flex;align-items:center;border-radius:17px;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.6);font-size:12px;letter-spacing:.08em;color:var(--teal);}
.riyun-sheet-week,.riyun-sheet-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.riyun-sheet-week{margin-top:10px;font-family:var(--font-sans);font-size:11px;color:var(--t3);text-align:center;}
.riyun-sheet-grid{gap:4px;margin-top:8px;}
.riyun-sheet-day{height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.2);color:var(--t1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.riyun-sheet-day b{font-size:15px;line-height:1.1;font-weight:400;font-variant-numeric:tabular-nums;}
.riyun-sheet-day small{font-family:var(--font-sans);font-size:9px;line-height:1.1;opacity:.8;}
.riyun-sheet-day.is-today{border-color:rgba(var(--dark-rgb),.45);}
.riyun-sheet-day[aria-pressed="true"]{border-color:rgba(255,255,255,.35);background:rgba(var(--dark-rgb),.84);color:var(--light);}
.riyun-sheet-day:disabled{opacity:.32;cursor:default;}
.riyun-sheet-note{margin-top:12px;font-family:var(--font-sans);font-size:11px;color:var(--t3);text-align:center;}

@keyframes riyunFade{0%{opacity:0}100%{opacity:1}}
@keyframes riyunFadeUp{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}}
@keyframes riyunDraw{0%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
@keyframes riyunNode{0%{opacity:0;transform:scale(.55)}100%{opacity:1;transform:scale(1)}}
@keyframes riyunRing{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
@keyframes riyunSheet{0%{transform:translate(-50%,100%)}100%{transform:translate(-50%,0)}}

@media(max-width:620px){
    .riyun-brand{font-size:12px;letter-spacing:.14em;}
    .riyun-main{padding:18px 24px 64px;}
    .riyun-quick-slot{top:var(--fc-header-height,58px);}
    .riyun-quick-nav{overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;scroll-padding-inline:4px;}
    .riyun-quick-slider{transition:none;will-change:auto;}
    .riyun-quick-nav a{min-width:58px;min-height:var(--fc-touch-target,44px);padding-inline:8px;flex:1 0 auto;font-size:11px;letter-spacing:.1em;scroll-snap-align:center;}
    .riyun-overall p{text-align:justify;text-align-last:left;text-wrap:wrap;}
    .riyun-title{font-size:2rem;}
}
@media(max-width:370px){
    .riyun-main{padding-inline:18px;}
    .riyun-title{font-size:2rem;}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .riyun-paper *,.riyun-sheet *{animation-duration:var(--fc-motion-instant,.001ms)!important;animation-delay:0s!important;animation-iteration-count:1!important;}
    .riyun-date-picker,.riyun-quick-nav a,.riyun-quick-slider{transition-duration:var(--fc-motion-instant,.001ms)!important;}
}


/* Larger, separate time targets preserve the ruler/slip layout by scrolling. */
.riyun-ruler{height:112px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;}
.riyun-ruler::-webkit-scrollbar{display:none;}
.riyun-ruler-track{position:relative;min-width:528px;height:112px;}
.riyun-ruler-hour{min-width:44px;}
.riyun-ruler-hour:focus-visible{outline-offset:-2px;}
.riyun-hours-scroll-note{margin-top:4px;color:var(--ink-3);font-family:var(--font-sans);font-size:11px;line-height:1.6;}
.traditional-slips{overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;padding:6px 2px;gap:4px;height:144px;}
.traditional-slip{flex:0 0 44px;min-width:44px;scroll-snap-align:start;}
.traditional-slip:focus-visible{outline-offset:-2px;}
:root[data-riyun-mode="dark"] .riyun-view-switch{background:var(--glass);border-color:var(--line);box-shadow:inset 0 1px 0 rgba(var(--dark-rgb),.08);}
:root[data-riyun-mode="dark"] .riyun-view-switch .fc-mode-switch__indicator{background:var(--paper);border-color:rgba(var(--dark-rgb),.22);box-shadow:none;}
:root[data-riyun-mode="dark"] .riyun-sheet-panel{background:rgba(var(--tint-rgb),.96);border-color:rgba(var(--dark-rgb),.22);box-shadow:inset 0 1px 0 rgba(var(--dark-rgb),.08);}
:root[data-riyun-mode="dark"] .riyun-sheet-scrim{background:rgba(0,0,0,.52);}
:root[data-riyun-mode="dark"] .riyun-sheet-day,:root[data-riyun-mode="dark"] .riyun-sheet-today span{border-color:rgba(var(--dark-rgb),.2);background:var(--glass);box-shadow:none;}
:root[data-riyun-mode="dark"] .riyun-sheet-day[aria-pressed="true"]{background:var(--teal);color:var(--light);}
:root[data-riyun-mode="dark"] .traditional-slip.is-good{background:rgba(var(--red-rgb),.12);}
:root[data-riyun-mode="dark"] .traditional-slip.is-selected{background:rgba(var(--dark-rgb),.88);}
:root[data-riyun-mode="dark"] .riyun-dir-icon{color:var(--light);}
:root[data-riyun-mode="dark"] .riyun-compass-key{color:var(--light);}
:root[data-riyun-mode="dark"] .traditional-chips.is-bad span{border-color:rgba(var(--dark-rgb),.4);}
:root[data-riyun-mode="dark"] .riyun-zbr{color:var(--ink-3);}
