/* Soft botanical controls: original implementation inspired by tactile button patterns. */
:root{--button-spring:cubic-bezier(.2,1.45,.45,1);--button-ink:#526345}
.btn{gap:13px;min-height:48px;border-radius:16px;letter-spacing:.2px;padding:10px 18px;line-height:1.45;overflow:hidden;touch-action:manipulation;transition:transform .38s var(--button-spring),box-shadow .25s ease,background .25s ease,border-color .25s ease}
.btn>.button-ink{position:relative;z-index:2;flex:1;transform:none!important;transition:none!important;display:inline-flex;align-items:center;justify-content:center;gap:8px;pointer-events:none}
.btn>.button-orbit{width:29px;height:29px;flex:0 0 29px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#FFFFFF1F;border:1px solid #FFFFFF30;box-shadow:inset 0 1px 0 #FFFFFF21;font-size:16px;line-height:1;position:relative;z-index:2;transition:transform .4s var(--button-spring),background .3s ease;transform:none;pointer-events:none}
.btn>.button-orbit svg{width:15px;height:15px;display:block;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.btn.primary{border:1px solid #536D46;background:linear-gradient(145deg,#8DA47A,#6F8A5C 60%,#668151);box-shadow:0 4px 0 #4F693F,0 8px 15px #68825524,inset 0 1px 0 #FFFFFF5E;color:#FFFFF4;text-shadow:0 1px 1px #3B54272B}
.btn.primary:hover{background:linear-gradient(145deg,#9AB387,#7E9A69 60%,#708D59);box-shadow:0 6px 0 #536D43,0 13px 23px #6882552B,inset 0 1px 0 #FFFFFF66}
.btn.primary:active{box-shadow:0 1px 0 #4F693F,inset 0 2px 5px #42583222;transform:translate3d(var(--mag-x),2px,0) scale(1.018,.965)}
.btn.ghost{color:#647252;border:1px solid #D8DCC6;background:linear-gradient(145deg,#FFFFFB,#F8F7EB);box-shadow:0 3px 0 #DCE1CC,0 6px 12px #697A4810,inset 0 1px 0 white}
.btn.ghost:hover{background:linear-gradient(145deg,#FFFFFC,#EDF1E0);border-color:#BDCAA7;box-shadow:0 4px 0 #D0D8BE,0 8px 18px #697A4814}
.btn.ghost>.button-orbit{color:#849773;background:#EEF2E2;border-color:#DBE4CB;box-shadow:inset 0 1px 0 white}
.btn.danger,.btn.danger-solid{background:linear-gradient(145deg,#FAEBE4,#EFD4CD);color:#975C53;border-color:#DBB6AC;box-shadow:0 3px 0 #D3ADA4,inset 0 1px 0 #FFF9}
.btn.danger>.button-orbit,.btn.danger-solid>.button-orbit{color:#A57468;background:#FFF6;border-color:#EACDC4}
.btn:disabled,.btn:disabled:hover{color:#8C967D;background:#E8EBDD;border-color:#DADECF;box-shadow:none;opacity:.7;transform:none}.btn:disabled>.button-orbit{background:#F1F2E9;border-color:#D9DFCD;color:#A0AA93}
.btn.soft-release{animation:soft-release .44s var(--button-spring)}
@keyframes soft-release{0%{scale:1.025 .955}55%{scale:.988 1.025}100%{scale:1 1}}
@media(hover:hover) and (pointer:fine){.btn:hover>.button-orbit{transform:rotate(-12deg) translateX(2px);background:#FFFFFF30}.btn.ghost:hover>.button-orbit{background:#DFE9CF}.btn:active>.button-orbit{transform:rotate(0) scale(.92)}}
.btn:focus-visible,.icon-btn:focus-visible{outline:3px solid #C4A27A;outline-offset:5px}
.departure{position:relative;overflow:visible;border:1px solid #DBE2C9;background:linear-gradient(115deg,#F0F2E5,#F7F7EB);box-shadow:0 5px 22px #7F90670B}
.departure:before,.departure:after{content:'';position:absolute;width:15px;height:15px;border-radius:50%;background:var(--paper);border:1px solid #DBE2C9;top:50%;margin-top:-7.5px}.departure:before{left:-8px;clip-path:inset(0 0 0 50%)}.departure:after{right:-8px;clip-path:inset(0 50% 0 0)}
.departure .actions{padding-left:26px;border-left:1px dashed #CCD6BA}.departure .btn{min-height:52px;padding:8px 12px 8px 22px;gap:20px;border-radius:15px;font-size:14px}.departure .actions>.primary{min-width:225px}.departure .btn>.button-orbit{width:33px;height:33px;flex-basis:33px}
.tray-actions .btn{padding:8px 10px;gap:7px;min-height:47px}.tray-actions .button-orbit{width:22px;height:22px;flex-basis:22px;font-size:13px}.tray-actions .button-orbit svg{width:12px;height:12px}.sheet-actions .btn{min-height:47px;padding:8px 14px}.sheet-actions .button-orbit{width:25px;height:25px;flex-basis:25px}.icon-btn{background:linear-gradient(135deg,#FFFFFA,#F1F2E3);border-color:#DBE0CD;color:#7D8E6A;border-radius:15px}.seed-card{border-radius:20px}.seed-card.on{background:linear-gradient(145deg,#F8FAEF,#EAF1DD);box-shadow:0 4px 0 #CAD8B6,0 8px 20px #829A6522,inset 0 1px 0 white}

/* 中文标题按行露出，保持字体和字形清晰。 */
.hero-line{display:block;overflow:hidden;padding-bottom:6px;margin-bottom:-6px}.hero-line>span{display:block}#view-home.is-entering .hero-line>span{animation:line-reveal .9s cubic-bezier(.22,1,.36,1) both}#view-home.is-entering .hero-line:nth-child(2)>span{animation-delay:.13s}@keyframes line-reveal{from{transform:translateY(105%) rotate(1deg)}to{transform:translateY(0) rotate(0)}}
@media(max-width:620px){.departure .actions{padding-left:0;padding-top:17px;border-left:0;border-top:1px dashed #CCD6BA}.departure .btn{min-height:52px;padding:9px 13px 9px 22px}.tray-actions .button-orbit{display:none}.sheet-actions .button-orbit{width:22px;height:22px;flex-basis:22px}.departure .btn>.button-ink{justify-content:flex-start}}
body.reduce-motion .btn{transition:none!important}body.reduce-motion .soft-release,body.reduce-motion .hero-line>span{animation:none!important}
@media(prefers-reduced-motion:reduce){.btn{transition:none!important}.soft-release,.hero-line>span{animation:none!important}}

/* Keep legacy span hover rules from changing the icon layout. */
.btn[data-soft-button]>.button-ink,.btn[data-soft-button]>.button-orbit{display:inline-flex;align-items:center;justify-content:center}
.btn[data-soft-button]>.button-orbit{transform:none}
@media(hover:hover) and (pointer:fine){.btn[data-soft-button]:hover>.button-orbit{transform:rotate(-12deg) translateX(2px)}.btn[data-soft-button]:active>.button-orbit{transform:rotate(0) scale(.92)}}
@media(max-width:620px){.tray-actions .btn[data-soft-button]>.button-orbit{display:none}}
