:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft JhengHei","PingFang TC",sans-serif;color:#302b39;background:#fffafb;font-size:15px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.43}a{color:inherit}img{max-width:100%}p{line-height:1.7}h1,h2,h3{letter-spacing:-.5px}h1{font-size:2.3rem;line-height:1.24;margin:14px 0}h2{font-size:1.5rem;margin:0 0 10px}h3{font-size:1.04rem;margin:0 0 10px}small,.muted{color:#80788c}.muted{line-height:1.6}.sm{font-size:.86rem}.xs{font-size:.76rem}.bold{font-weight:750}.mono{font-family:Consolas,monospace}main{min-height:75vh}.wide{max-width:1280px;margin:auto;padding:0 26px}.layout{max-width:1280px;margin:0 auto;padding:34px 26px 65px}.top-strip{text-align:center;font-size:.74rem;padding:7px 16px;background:#312e42;color:#f6effc;letter-spacing:.08em}.header{background:#fffdfd;border-bottom:1px solid #efe7ed;position:sticky;top:0;z-index:40;box-shadow:0 6px 24px #54475c0a}.header-inner{height:77px;display:flex;align-items:center;gap:24px}.brand{background:none;border:0;display:flex;align-items:center;gap:11px;padding:0;text-align:left}.brand-mark{height:44px;width:44px;border-radius:15px;background:#efe4fc;color:#784aa8;display:grid;place-items:center;font-size:1.6rem;transform:rotate(-7deg)}.brand-name{font-size:1.12rem;letter-spacing:.075em;font-weight:900;line-height:1.15}.brand-sub{font-size:.66rem;letter-spacing:.15em;color:#a58dac;margin-top:3px}.head-nav{display:flex;gap:7px;margin-left:auto;align-items:center}.head-nav button{border:0;background:none;padding:11px 13px;border-radius:14px;color:#64596d;font-weight:650}.head-nav button:hover,.head-nav button.active{background:#f5ebfb;color:#653593}.cart-bubble{display:inline-grid;place-items:center;margin-left:3px;font-size:.72rem;background:#8e5bbb;border-radius:99px;color:white;width:21px;height:21px}.pill{border-radius:999px;padding:8px 14px;font-weight:650;font-size:.8rem}.tag{display:inline-flex;align-items:center;background:#f8eefc;color:#765198;border-radius:99px;padding:5px 12px;font-size:.74rem;font-weight:750}.tag.pink{background:#fff0f5;color:#be5983}.tag.green{background:#e9f9ef;color:#317652}.tag.gray{background:#f0eef2;color:#80788c}.hero{position:relative;overflow:hidden;border-radius:27px;min-height:340px;background:linear-gradient(108deg,#fce5ee,#f1e8fc 58%,#dfe9ff);display:flex;align-items:center;padding:48px 7%;isolation:isolate}.hero::before{content:"";position:absolute;right:-12%;top:-90%;width:620px;height:620px;border:2px solid #ffffff9b;border-radius:50%;z-index:-1}.hero::after{content:"";position:absolute;right:1%;bottom:-90%;width:560px;height:560px;border:2px solid #ffffffaa;border-radius:50%;z-index:-1}.hero-copy{max-width:560px}.hero-copy p{color:#75657e;max-width:490px}.hero-figure{position:absolute;right:11%;font-size:9rem;transform:rotate(-12deg);filter:drop-shadow(16px 18px 15px #9d6b9b33)}.eyebrow{font-size:.72rem;font-weight:850;letter-spacing:.2em;color:#8757a7}.btn{border:0;border-radius:14px;background:#8255a5;color:white;font-weight:730;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;box-shadow:0 5px 12px #8255a51a;transition:transform .12s,background .12s}.btn:hover:not(:disabled){background:#674087;transform:translateY(-1px)}.btn.secondary{background:#f3eafb;color:#6d498b;box-shadow:none}.btn.secondary:hover:not(:disabled){background:#eadaf4}.btn.ghost{background:white;border:1px solid #e9dde9;color:#675673;box-shadow:none}.btn.ghost:hover:not(:disabled){background:#faf4fb}.btn.dark{background:#343146}.btn.danger{background:#fff0f1;color:#b34759;box-shadow:none}.btn.sm{padding:8px 12px;font-size:.78rem;border-radius:10px}.btn.full{width:100%}.btn-icon{background:white;border:1px solid #eee5ef;border-radius:12px;height:39px;width:39px;display:inline-grid;place-items:center;color:#695973}.btn-icon:hover{background:#f7eefb}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:38px 0 19px}.section-head h2{margin:0}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:23px 0}.benefit{display:flex;align-items:center;gap:11px;border:1px solid #f0e5ee;background:#fff;border-radius:16px;padding:15px 17px;font-size:.84rem;color:#786a7c}.benefit b{color:#493a54}.benefit-icon{font-size:1.45rem}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.search-field{display:flex;align-items:center;gap:9px;border:1px solid #eadfe8;background:white;border-radius:14px;padding:0 13px;flex:1;min-width:230px;height:47px}.search-field input{border:0;outline:none;flex:1;min-width:0;background:transparent}.field,textarea,select{display:block;border:1px solid #e6dce8;border-radius:12px;background:white;padding:11px 12px;min-height:45px;width:100%;outline:none;color:#362f3d}.field:focus,textarea:focus,select:focus,.search-field:focus-within{border-color:#9972c2;box-shadow:0 0 0 3px #9972c21a}textarea{min-height:90px;resize:vertical}.form-label{display:block;font-size:.82rem;font-weight:720;margin:0 0 7px;color:#63546c}.field-block{margin-bottom:17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:15px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid #eee2ed;background:#fff;border-radius:99px;color:#81708b;padding:9px 17px;font-weight:700;font-size:.84rem}.tab.active{background:#8057a1;color:white;border-color:#8057a1}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product-card{overflow:hidden;background:#fff;border:1px solid #eee4ed;border-radius:19px;box-shadow:0 7px 20px #55405c08;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.product-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #55405c12}.product-art{aspect-ratio:1/1.06;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(137deg,#f5e9fb,#fff3f5)}.product-art.album{background:linear-gradient(132deg,#e1e9fe,#f3eaff)}.product-art.benefit{background:linear-gradient(132deg,#ffecdb,#fae7f7)}.product-art.merch{background:linear-gradient(132deg,#e2f5ee,#f5ebff)}.product-art img{width:100%;height:100%;object-fit:cover;display:block}.art-symbol{font-size:5rem;opacity:.56;filter:drop-shadow(0 9px 6px #bba4ce33)}.art-sticker{position:absolute;top:12px;left:12px;background:#ffffffed;border-radius:99px;padding:6px 11px;color:#6d557b;font-size:.73rem;font-weight:760;z-index:1}.art-sold{position:absolute;inset:0;display:grid;place-items:center;background:#2c263f77;color:#fff;font-weight:850;letter-spacing:.13em;font-size:1.3rem}.product-info{padding:16px;display:flex;flex-direction:column;flex:1;gap:8px}.product-name{font-size:.94rem;font-weight:760;line-height:1.46;min-height:2.8em}.product-meta{font-size:.76rem;color:#897c90}.product-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.price{font-size:1.12rem;font-weight:870;color:#ae5685}.stock{font-size:.72rem;color:#938598}.stock.low{color:#ba617a}.card-actions{display:flex;gap:7px;margin-top:5px}.card-actions>*{flex:1}.card-actions .btn{font-size:.8rem;padding:9px 8px}.empty{padding:80px 22px;text-align:center;background:#fff;border:1px dashed #e7d5e8;border-radius:22px;color:#8c7d94}.empty-emoji{font-size:3.5rem;margin-bottom:12px}.page-title{margin:12px 0 23px}.bread{color:#9a8ba0;font-size:.81rem;margin-bottom:16px}.bread button{border:0;background:none;padding:0;color:#8c6ca6}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:40px}.detail-img{aspect-ratio:1/1;background:linear-gradient(135deg,#f6e7f1,#e9e4fb);border-radius:25px;overflow:hidden;display:grid;place-items:center}.detail-img img{width:100%;height:100%;object-fit:contain}.thumbs{display:flex;gap:10px;margin-top:12px}.thumbs button{width:71px;height:71px;border:2px solid transparent;border-radius:12px;overflow:hidden;padding:0;background:#eee4f2}.thumbs button.active{border-color:#8e58ad}.thumbs img{width:100%;height:100%;object-fit:cover}.info-table{border-top:1px solid #eee6ec;margin:24px 0}.info-line{padding:12px 0;border-bottom:1px solid #eee6ec;display:flex;align-items:start;gap:12px;font-size:.9rem}.info-line span:first-child{width:105px;flex:none;color:#877d8b}.info-line span:last-child{flex:1}.detail-price{font-size:2rem;font-weight:850;color:#ae5685;margin:16px 0}.qty-control{display:inline-flex;align-items:center;border:1px solid #eadfe9;border-radius:12px;overflow:hidden}.qty-control button{width:39px;height:41px;border:0;background:#fff;font-size:1.3rem}.qty-control span{min-width:35px;text-align:center;font-weight:700}.buy-row{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.card{border:1px solid #eee4ed;background:white;border-radius:20px;padding:23px}.cart-layout{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:22px}.cart-item{display:flex;gap:18px;border-bottom:1px solid #f0e8f0;padding:19px 0;align-items:center}.cart-item:first-child{padding-top:0}.mini-photo{height:90px;width:90px;flex:none;background:#f4eafb;border-radius:14px;overflow:hidden;display:grid;place-items:center;color:#b084ca;font-size:2rem}.mini-photo img{width:100%;height:100%;object-fit:cover}.cart-item-main{flex:1;min-width:0}.cart-item-main h3{margin:0 0 5px}.summary-line{display:flex;justify-content:space-between;gap:14px;margin:13px 0;font-size:.92rem}.summary-line.total{font-size:1.17rem;font-weight:800;padding-top:14px;border-top:1px solid #eee1ec}.columns-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.radio-group{display:grid;gap:9px}.radio-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #e8dfe9;border-radius:13px;padding:12px;cursor:pointer;font-size:.86rem}.radio-card:has(input:checked){border-color:#9165b6;background:#fcf8ff}.radio-card input{accent-color:#895bb0;margin-top:3px}.form-note{font-size:.77rem;color:#938897;line-height:1.6}.info-box{padding:15px 17px;border-radius:14px;background:#f7f0fb;color:#665473;font-size:.87rem;line-height:1.7}.success-icon{font-size:3rem;text-align:center}.receipt{max-width:620px;margin:0 auto}.code-area{background:#f8f1fc;border:1px dashed #bfa9d4;border-radius:12px;padding:14px;overflow-wrap:anywhere}.footer{border-top:1px solid #f0e6ed;background:#fff;padding:27px 0;color:#8d8091;font-size:.8rem}.footer-inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.splash{display:grid;place-content:center;min-height:65vh;text-align:center;color:#8b779c}.spinner{height:32px;width:32px;border:4px solid #eedcf5;border-top-color:#9461b8;border-radius:50%;animation:spin .85s linear infinite;margin:0 auto 15px}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#302b40;color:#fff;padding:13px 18px;border-radius:12px;box-shadow:0 12px 35px #0002;z-index:99;opacity:0;pointer-events:none;transition:.22s;max-width:min(490px,90vw);font-size:.9rem}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#ae495e}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:26px;align-items:start}.admin-side{background:white;border:1px solid #ede2eb;border-radius:20px;padding:13px;position:sticky;top:116px}.admin-side-label{font-size:.71rem;color:#aa9bad;font-weight:850;letter-spacing:.1em;margin:13px 10px}.admin-side button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:transparent;color:#675d6e;border-radius:11px;padding:12px;font-size:.87rem;font-weight:670}.admin-side button.active{color:#7648a1;background:#f3eafb}.admin-side button:hover{background:#faf4fc}.admin-main{min-width:0}.admin-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:24px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.stat{background:white;border:1px solid #eee5eb;border-radius:18px;padding:20px}.stat .number{font-size:2rem;font-weight:850;margin-top:12px}.stat .muted{font-size:.81rem}.table-wrap{overflow-x:auto;border:1px solid #eee6eb;border-radius:17px;background:white}.admin-table{border-collapse:collapse;width:100%;min-width:660px;font-size:.83rem}.admin-table th{text-align:left;background:#fbf8fb;color:#85768d;font-weight:720;padding:13px 15px;white-space:nowrap}.admin-table td{padding:13px 15px;border-top:1px solid #f1e9f1;vertical-align:middle}.admin-table tr:hover td{background:#fefafd}.small-cover{height:52px;width:52px;object-fit:cover;border-radius:9px;display:inline-grid;place-items:center;background:#f3e6f6;color:#a38bb1}.table-tools{display:flex;justify-content:space-between;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:17px}.badge{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;background:#f0e6f6;color:#8754a7;padding:6px 11px;white-space:nowrap}.badge.gray{background:#f3f1f3;color:#8d8590}.badge.green{background:#ecf7ef;color:#44855b}.badge.orange{background:#fff2df;color:#9f6d32}.admin-form{max-width:800px}.form-section{padding:24px;background:#fff;border:1px solid #eee4ec;border-radius:17px;margin-bottom:18px}.form-section h3{margin-bottom:17px}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:13px}.photo-edit{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:#f5effa}.photo-edit img{height:100%;width:100%;object-fit:cover}.photo-edit button{position:absolute;right:6px;top:6px;background:#fff;border:0;border-radius:8px;padding:5px;color:#b34c65}.file-pad{display:block;padding:22px 15px;border:2px dashed #ddc6e8;background:#fcf8fe;border-radius:15px;text-align:center;cursor:pointer}.file-pad input{display:block;margin:14px auto 0;max-width:100%;font-size:.78rem}.help-text{color:#9a8ba2;font-size:.79rem;line-height:1.6}.login-card{max-width:430px;margin:60px auto;background:white;border:1px solid #efe2ee;border-radius:24px;padding:32px;box-shadow:0 15px 38px #74587c0e}.login-emoji{text-align:center;font-size:3rem}.order-box{border:1px solid #eee2ed;border-radius:16px;padding:18px;background:white;margin-bottom:14px}.order-box-header{display:flex;align-items:start;justify-content:space-between;gap:14px}.order-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:13px 0}.order-meta>div{font-size:.81rem;overflow-wrap:anywhere}.order-meta small{display:block;margin-bottom:4px}.steps{display:flex;gap:5px;flex-wrap:wrap;margin:22px 0}.step{flex:1;min-width:75px;border-radius:9px;padding:9px;text-align:center;font-size:.71rem;background:#f1eef2;color:#9a909f}.step.on{background:#e8daf5;color:#79539c;font-weight:750}.alert{padding:15px;border:1px solid #f1d5da;border-radius:11px;color:#ae4e66;background:#fff4f6;font-size:.85rem}.inline-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.inline-actions.end{justify-content:flex-end}.mobile-menu{display:none}.split-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.kicker{color:#b65c8a;font-weight:850;font-size:.74rem;letter-spacing:.13em}.separator{height:1px;background:#f1e7ef;margin:20px 0}.hint-list{line-height:2;color:#786c80;font-size:.86rem}.hidden{display:none!important}.checkbox{display:flex;align-items:flex-start;gap:9px;line-height:1.6;font-size:.84rem;color:#6c6073}.checkbox input{accent-color:#8459a5;margin-top:4px}.notice{white-space:pre-wrap;overflow-wrap:anywhere}.nowrap{white-space:nowrap}.order-code{font-family:Consolas,monospace;letter-spacing:.03em}.muted-link{color:#8654ad;text-decoration:underline;text-underline-offset:3px}.shop-search{max-width:360px}.footer-note{max-width:660px}.mini-actions{display:flex;gap:7px}.mini-actions .btn{min-width:64px}.select-small{min-height:38px;padding:7px 9px;font-size:.83rem}@media(max-width:1100px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-figure{right:4%}.admin-layout{grid-template-columns:190px 1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.wide,.layout{padding-left:16px;padding-right:16px}.layout{padding-top:24px}.hero{padding:34px 26px;min-height:300px}.hero-figure{right:1%;font-size:6rem;opacity:.37}.hero-copy{position:relative;z-index:1}.benefits{grid-template-columns:1fr;gap:8px}.benefit{padding:11px 14px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.detail-layout,.cart-layout{grid-template-columns:1fr;gap:22px}.detail-img{max-height:480px}.admin-layout{grid-template-columns:1fr}.admin-side{position:static;display:flex;gap:5px;overflow-x:auto}.admin-side-label{display:none}.admin-side button{width:auto;white-space:nowrap;padding:10px 13px}.stat-grid{grid-template-columns:repeat(2,1fr)}.order-meta{grid-template-columns:repeat(2,1fr)}.head-nav{gap:0}.head-nav button{padding:10px}.head-nav .hide-mobile{display:none}.mobile-menu{display:inline-flex}}@media(max-width:510px){.header-inner{height:64px;gap:7px}.brand-mark{height:35px;width:35px;font-size:1.25rem}.brand-name{font-size:.86rem;letter-spacing:.04em}.brand-sub{font-size:.52rem}.head-nav button{font-size:.81rem;padding:7px}.cart-bubble{width:17px;height:17px;font-size:.6rem}.hero{min-height:300px;padding:28px 23px}.hero h1{font-size:1.85rem}.hero p{font-size:.87rem}.hero-figure{font-size:4.5rem;right:4%;top:12%}.product-grid{gap:9px}.product-info{padding:11px;gap:6px}.product-name{font-size:.84rem}.product-meta{font-size:.67rem}.price{font-size:1rem}.stock{font-size:.66rem}.card-actions .btn{font-size:.73rem;padding:9px 4px}.art-symbol{font-size:3.4rem}.art-sticker{font-size:.62rem;padding:4px 8px}.section-head{margin:25px 0 14px}.section-head h2{font-size:1.22rem}.search-field{min-width:100%;flex-basis:100%}.form-grid,.columns-2{grid-template-columns:1fr}.card{padding:17px}.cart-item{gap:10px}.mini-photo{width:70px;height:70px}.admin-title h2{font-size:1.27rem}.stat{padding:14px}.stat .number{font-size:1.5rem}.form-section{padding:17px}.order-meta{grid-template-columns:1fr 1fr}.login-card{margin:33px 0;padding:23px}.photo-grid{grid-template-columns:repeat(3,1fr)}.footer-inner{justify-content:center;text-align:center}}

/* V1.0.1: photo selection, per-file upload progress and persistent error feedback */
.selection-preview{margin:12px 0 8px}.preview-count{margin:0 0 9px;font-size:.85rem;color:#64446e;font-weight:700}.error-text{color:#b44558!important}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:10px}.selection-item{min-width:0;border:1px solid #eadfea;border-radius:12px;background:#fff;padding:6px;overflow:hidden}.selection-item img,.selection-unavailable{display:grid;place-items:center;width:100%;height:92px;object-fit:cover;border-radius:8px;background:#f5eaf6;color:#9b729c;font-weight:750}.selection-item span{display:block;font-size:.7rem;color:#695d6d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 2px 2px}.upload-progress{font-size:.82rem;min-height:1.2em;color:#6b4e80;font-weight:680;margin:7px 0}.upload-feedback{border-radius:14px;padding:15px 17px;margin-bottom:15px;border:1px solid #e4cee9;background:#fbf2fd;color:#62446b;line-height:1.65}.upload-feedback.error{border-color:#edcbd2;background:#fff4f6;color:#a2384e}

/* V1.0.2: price offer & select-first seller experience */
.offer-panel{margin-top:28px;padding:23px;border:1px solid #e1c8e8;background:linear-gradient(135deg,#fffaff,#f8effc);border-radius:20px}
.offer-panel h3{font-size:1.15rem;margin-bottom:8px;color:#684179}
.offer-form{margin-top:17px;display:grid;gap:10px}
.offer-panel .form-note{margin-bottom:0}
.offer-filter{max-width:240px;margin:0 0 15px}
.offer-price-pair{display:flex;align-items:center;gap:10px 28px;flex-wrap:wrap;margin:18px 0;font-size:.9rem}
.offer-price-pair strong{font-size:1.17rem;color:#8952a4}
.admin-jump{max-width:330px;margin-bottom:18px}
.category-filter{max-width:250px;margin-bottom:20px}
.preset-choice{margin-bottom:8px}
.custom-choice{margin-top:6px}
@media(max-width:600px){.offer-panel{padding:17px}.offer-price-pair{display:grid;gap:7px}.admin-side{display:none}.admin-jump{max-width:100%}}

/* V1.0.4 price insight and seller quick edit */
.price-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.price-insight-grid>div{background:#faf6fb;border:1px solid #eee4f2;border-radius:14px;padding:12px}.price-insight-grid small{display:block;color:#8a758b;margin-bottom:5px}.price-insight-grid strong{font-size:1.03rem}.quick-number{min-width:78px;width:108px;padding:9px 8px;text-align:right}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:680px){.price-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-number{width:88px}}

/* Server control: desktop and mobile */
.server-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.server-detail>div{padding:13px 0;border-bottom:1px solid #ede6ee;display:flex;align-items:center;justify-content:space-between;gap:12px}.server-detail>div span{font-size:.82rem;color:#746879}.server-detail>div strong{font-size:.84rem;text-align:right;overflow-wrap:anywhere}.server-stats .number{font-size:1.35rem}@media(max-width:680px){.server-detail{grid-template-columns:1fr}}

/* V1.3.0 — mobile-first storefront and buyer account UX */
:root{--idol-accent:#8c5aa8;--idol-soft:#f7edf9;--idol-ink:#322b3b}
:focus-visible{outline:3px solid #9864be;outline-offset:3px}
button,input,select,textarea{touch-action:manipulation}
.mobile-tabs{display:none}
.account-layout{max-width:900px}
.member-hero{background:linear-gradient(135deg,#f9ebf5 0%,#f1ebfc 70%,#f5f5ff);border:1px solid #ead8f2;border-radius:26px;padding:36px;box-shadow:0 10px 34px #614c8310}
.member-hero h1{font-size:clamp(1.75rem,4vw,2.6rem);margin:10px 0 12px}
.member-hero p{color:#73657f;max-width:560px;margin:0 0 14px}
.account-buttons{display:flex;flex-wrap:wrap;gap:11px;margin:25px 0 10px}
.account-buttons .btn{min-height:46px;padding:12px 24px}
.account-email{font-size:.9rem;color:#765b85;overflow-wrap:anywhere}
.member-unverified{margin-top:18px!important;background:#fff8ea;color:#87672b!important;border:1px solid #edddbc;border-radius:13px;padding:11px 14px;font-size:.83rem}
.account-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.account-shortcuts button{background:#fff;border:1px solid #eadfed;border-radius:15px;padding:15px;font-weight:650;text-align:left;min-height:54px;color:#69516e}
.account-orders{margin-top:30px}
.member-order{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #eee2ee;background:#fff;border-radius:16px;padding:17px 20px;margin:12px 0}
.member-order b{overflow-wrap:anywhere}.member-order-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.auth-shell{max-width:470px;margin:20px auto 45px;border:1px solid #ebdced;border-radius:25px;background:white;box-shadow:0 17px 48px #86649716;padding:35px}
.auth-head{text-align:center;margin-bottom:25px}.auth-head h1{font-size:2rem;margin:10px 0}
.auth-head p{color:#86768d;margin:0;font-size:.9rem}
.auth-mark{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 18px;border-radius:17px;background:#efddf6;color:#8b55a7;font-size:2rem}
.auth-shell .field-block{margin-bottom:18px}.auth-shell .field{min-height:48px;font-size:16px;width:100%}
.auth-submit{min-height:52px;font-weight:750;border-radius:14px;margin-top:10px}
.auth-bottom{text-align:center;margin:19px 0;font-size:.9rem}
.auth-bottom button,.text-back{background:none;border:0;color:#8050a5;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.auth-warning{font-size:.75rem;color:#85708d;background:#fbf5fc;border-radius:12px;padding:12px 14px;line-height:1.7}
@media(max-width:760px){
  html{scroll-padding-top:85px}body{padding-bottom:calc(77px + env(safe-area-inset-bottom,0px))}
  .top-strip{display:none}
  .header{top:0;backdrop-filter:blur(13px);background:#fffdfde8}
  .header-inner{height:63px;gap:8px;padding-left:16px;padding-right:16px}
  .brand{min-width:0;gap:9px}.brand-mark{flex:none;width:38px;height:38px;border-radius:13px;font-size:1.25rem}
  .brand-name{font-size:.92rem;white-space:nowrap}.brand-sub{font-size:.53rem;letter-spacing:.035em}
  .head-nav{gap:4px}.head-nav button{min-width:44px;min-height:44px;padding:6px 8px;font-size:.8rem}
  .desktop-member,.desktop-admin{display:none}
  .layout{padding:17px 15px 35px}.hero{padding:29px 22px;min-height:230px;border-radius:22px}
  .hero h1{font-size:clamp(1.75rem,6vw,2.2rem);max-width:300px;line-height:1.3}
  .hero p{font-size:.87rem;line-height:1.8;max-width:310px}.hero-figure{opacity:.18!important;right:-8%!important;font-size:5.5rem}
  .hero .inline-actions{gap:8px}.hero .btn{min-height:45px;font-size:.86rem;padding:10px 13px}
  .benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:17px}
  .benefit{display:flex;flex-direction:column;gap:3px;text-align:center;justify-content:center;padding:10px 7px;font-size:.69rem;line-height:1.4;border-radius:14px}
  .benefit-icon{font-size:1.35rem}.benefit b{display:block}
  .section-head{align-items:flex-start;gap:12px}.section-head h2{font-size:1.4rem}
  .section-head .tag{display:none}
  .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:13px}
  .filters .search-field{grid-column:1/-1;width:100%;min-width:0;min-height:52px;border-radius:16px}
  #shop-group,#shop-sort{width:100%!important;min-width:0!important;max-width:100%!important;min-height:48px;font-size:.87rem}
  .category-filter{max-width:none;margin:0 0 17px}.category-filter .form-label{font-size:.78rem;margin-bottom:6px}
  .category-filter select{min-height:47px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .product-card{border-radius:17px;box-shadow:0 5px 17px #6c4b8010}
  .product-card:hover{transform:none}.product-art{aspect-ratio:1/1.1}
  .product-info{padding:12px 10px 13px;gap:7px}
  .product-name{font-size:.91rem;font-weight:800;line-height:1.4;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .product-meta{font-size:.72rem;line-height:1.4;overflow-wrap:anywhere}
  .product-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
  .product-bottom .price{font-size:1.12rem}.stock{font-size:.72rem}
  .card-actions{display:grid;gap:7px;margin-top:auto}.card-actions .btn{min-height:42px;padding:9px 6px;font-size:.79rem;border-radius:11px}
  .detail-layout,.cart-layout{gap:17px}.detail-img{border-radius:16px}
  .detail-price{font-size:1.65rem}.buy-row{display:grid;grid-template-columns:auto 1fr;gap:10px}
  .buy-row .btn{min-height:47px}.buy-row .btn:last-child{grid-column:1/-1}
  .form-grid,.columns-2{grid-template-columns:1fr}
  input.field,textarea,select.field{font-size:16px;min-height:46px}
  .qty-control button{min-height:45px;min-width:45px}
  .order-meta{grid-template-columns:1fr 1fr}
  .mobile-tabs{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;z-index:90;background:#fffefdf5;backdrop-filter:blur(14px);padding:6px max(10px,env(safe-area-inset-left,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-right,0px));border-top:1px solid #ecdeed;box-shadow:0 -8px 27px #5b3b6714}
  .mobile-tabs button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.71rem;font-weight:690;min-height:55px;color:#817188;border-radius:13px;padding:5px 0}
  .mobile-tabs .tab-ico{font-size:1.55rem;line-height:1.1;font-weight:500}
  .mobile-tabs button.on{background:#f2e6f7;color:#7c4ba2}
  .footer{margin-top:6px}.toast{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .member-hero{padding:24px 20px;border-radius:21px}.account-shortcuts{grid-template-columns:1fr;gap:9px}.account-shortcuts button{min-height:50px}
  .auth-shell{margin:3px auto 15px;padding:24px 20px;border-radius:21px;box-shadow:none}
  .account-buttons{gap:9px}.account-buttons .btn{flex:1;white-space:nowrap}
}
@media(max-width:370px){.brand-sub{display:none}.hero .inline-actions .btn{font-size:.76rem}.product-grid{gap:8px}.product-info{padding:10px 8px}.card-actions .btn{font-size:.72rem}}
/* motion enabled for anime storefront */

/* V1.3.1 safety notice: clear on narrow screens and does not obstruct controls. */
.external-test-banner{background:#fff3db;color:#704719;padding:11px 16px;text-align:center;font-size:.88rem;font-weight:700;line-height:1.7;border-bottom:1px solid #edd19a}
@media(max-width:480px){.external-test-banner{font-size:.78rem;padding:9px 12px}}

/* V1.4.0 — dual-role member marketplace; mobile-first seller workspace. */
.seller-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:28px 32px;border-radius:22px;background:linear-gradient(135deg,#f0e5f7,#fff7f9);border:1px solid #e8d9ed;margin-bottom:20px}
.seller-hero h1{font-size:clamp(1.55rem,4vw,2rem);margin:8px 0 9px}.seller-hero p{font-size:.85rem;color:#796684;max-width:550px;line-height:1.65}
.seller-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}
.seller-summary>div{background:white;border:1px solid #eee4f0;border-radius:17px;padding:19px;display:flex;flex-direction:column;gap:6px}
.seller-summary span{font-size:.76rem;color:#8b7b91}.seller-summary strong{font-size:1.55rem;color:#654572}
.seller-panel{background:white;border:1px solid #eee4f0;border-radius:19px;padding:25px;margin:21px 0}
.seller-panel h2{margin:0 0 16px;font-size:1.25rem}.seller-panel form{display:flex;flex-direction:column;gap:12px}
.seller-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #eee9f0;min-width:0}
.seller-row:last-child{border-bottom:0}.seller-item-main{min-width:0;flex:1}.seller-item-main b{display:block;white-space:normal;overflow-wrap:anywhere}.seller-item-main small{display:block;font-size:.75rem;color:#817387;margin-top:5px;line-height:1.6}
.seller-toggle{display:flex;gap:11px;align-items:center;padding:10px 2px;font-weight:700;font-size:.9rem}.seller-toggle input{width:22px;height:22px;accent-color:#82569f}
.seller-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:12px}.seller-images>div{display:grid;gap:8px;align-content:start}.seller-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:11px}
.seller-panel .field{max-width:100%}.seller-panel textarea{max-width:100%}.member-order .member-order-right small{font-size:.73rem;text-align:right}
@media(max-width:760px){.seller-hero{padding:22px 18px;align-items:stretch;flex-direction:column}.seller-hero>.btn{align-self:stretch;min-height:50px}.seller-summary{gap:8px}.seller-summary>div{padding:13px 11px}.seller-summary strong{font-size:1.27rem}.seller-panel{padding:18px 15px;margin:14px 0}.seller-row{gap:9px}.seller-row .small-cover{flex:none;width:53px;height:53px}.seller-row .btn{flex:none;min-height:44px;padding:8px 11px}.member-order{align-items:flex-start;flex-direction:column;gap:9px}.member-order-right{align-self:stretch;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.mobile-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-tabs button{min-width:0}.mobile-tabs .tab-ico{font-size:1.35rem}.mobile-tabs button{font-size:.67rem}}

/* Responsive, distinct local-test seller order processing controls. */
.seller-order-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px;padding-top:12px;border-top:1px solid #eee6f0}
.seller-order-actions .btn{min-height:44px;white-space:normal}
.seller-payment-label{display:flex;flex:1 1 230px;flex-direction:column;gap:6px;min-width:0;font-size:12px;color:#675772}
.seller-payment-label .field{width:100%;min-height:44px}
@media(max-width:450px){.seller-order-actions{flex-direction:column;align-items:stretch}.seller-order-actions .btn,.seller-payment-label{width:100%;flex-basis:auto}}

/* Seller order cards use grid so action controls never squeeze the summary. */
.member-order.seller-order{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.seller-order>.seller-order-actions{grid-column:1 / -1;width:100%}
@media(max-width:450px){.member-order.seller-order{grid-template-columns:minmax(0,1fr)}.seller-order>.member-order-right{width:100%;align-self:stretch}}

/* Local-test account recovery and verification: mobile-first, readable forms. */
.auth-extra-form{display:grid;gap:13px;margin:20px 0 22px;padding:20px;border:1px solid #ede2ef;border-radius:17px;background:#fffdfd}
.auth-extra-form h2{font-size:1.07rem;margin:0 0 3px;color:#55445e}
.auth-extra-form .form-label{display:block;margin:0;font-size:.85rem;font-weight:730;line-height:1.5}
.auth-extra-form .field{min-height:48px;font-size:16px;width:100%;min-width:0}
.auth-extra-form .btn{min-height:48px;white-space:normal;line-height:1.45}
.auth-extra-form .btn:disabled{opacity:.6;cursor:not-allowed}
.member-success{border-radius:13px;background:#e9f8ef;padding:15px;color:#256649;font-weight:750}
@media(max-width:480px){.auth-extra-form{padding:15px;margin:15px 0 18px;gap:11px}.auth-extra-form .btn{width:100%}}

/* R3: narrow-screen friendly refund/dispute request and reply cards. */
.refund-row{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:17px 0;border-top:1px solid #eee4ef;min-width:0;overflow-wrap:anywhere}
.refund-row .field{width:100%;min-width:0;min-height:90px;resize:vertical}
.refund-row .form-label{display:block;font-weight:600;font-size:14px}
.refund-row .btn{min-height:44px;max-width:100%;white-space:normal}
@media(max-width:520px){.refund-row{padding:18px 0}.refund-row .btn{width:100%;min-height:48px}}


/* R23: Smooth page transitions, lively micro-animations & workspace sub-tabs */
@keyframes pageEnter {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes heroFloat {
  0%, 100% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-9deg) translateY(-8px); }
}
@keyframes cartBounce {
  0% { transform: scale(1); }
  40% { transform: scale(1.35); }
  100% { transform: scale(1); }
}
main.layout { animation: pageEnter .26s cubic-bezier(.22,.61,.36,1) both; }
.hero-figure { animation: heroFloat 4.8s ease-in-out infinite; }
.btn { transition: transform .14s ease, background .16s ease, box-shadow .16s ease; }
.btn:active:not(:disabled) { transform: scale(.97); }
.product-card { transition: transform .22s cubic-bezier(.22,.61,.36,1), box-shadow .22s ease; }
.product-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px #55405c18; }
.product-art img { transition: transform .35s cubic-bezier(.22,.61,.36,1); }
.product-card:hover .product-art img { transform: scale(1.05); }
.cart-bubble.pop { animation: cartBounce .36s cubic-bezier(.22,.61,.36,1); }
.subtabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 20px; padding: 6px; background: #f6eff9; border-radius: 16px; border: 1px solid #eadcf0; }
.subtab { border: 0; background: transparent; color: #6a5a75; font-weight: 700; font-size: .86rem; padding: 10px 16px; border-radius: 12px; display: inline-flex; align-items: center; gap: 7px; transition: background .16s ease, color .16s ease, transform .12s ease; }
.subtab:hover { background: #efe3f6; color: #533172; }
.subtab.active { background: #fff; color: #6b3d96; box-shadow: 0 4px 14px #5b3c7718; }
.subtab-badge { background: #b34c65; color: #fff; border-radius: 99px; font-size: .7rem; padding: 2px 7px; font-weight: 800; }
@media (prefers-reduced-motion: reduce) {
  main.layout, .hero-figure, .cart-bubble.pop { animation: none !important; }
  .product-card, .product-art img, .btn { transition: none !important; }
}


/* R24: Rich full-site page, card, step, and interactive transitions */
@keyframes cardReveal {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes panelSlide {
  from { opacity: 0; transform: translateX(8px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes heroGlow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes stepPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(137, 91, 176, .25); }
  50% { box-shadow: 0 0 0 6px rgba(137, 91, 176, 0); }
}
.hero { background-size: 160% 160%; animation: heroGlow 10s ease infinite; }
.product-grid .product-card { animation: cardReveal .38s cubic-bezier(.22,.61,.36,1) both; }
.product-grid .product-card:nth-child(2) { animation-delay: .04s; }
.product-grid .product-card:nth-child(3) { animation-delay: .08s; }
.product-grid .product-card:nth-child(4) { animation-delay: .12s; }
.product-grid .product-card:nth-child(n+5) { animation-delay: .16s; }
.member-order, .order-box, .cart-item, .refund-row, .auth-shell, .receipt .card, .detail-layout {
  animation: cardReveal .32s cubic-bezier(.22,.61,.36,1) both;
}
.seller-panel, .account-orders { animation: panelSlide .26s cubic-bezier(.22,.61,.36,1) both; }
.head-nav button, .tab { transition: background .18s ease, color .18s ease, transform .14s ease, border-color .18s ease; }
.head-nav button:hover, .tab:hover { transform: translateY(-1px); }
.steps .step.on { animation: stepPulse 2.4s ease-in-out infinite; }
.toast { transition: opacity .26s ease, transform .28s cubic-bezier(.22,.61,.36,1); }
.toast.show { transform: translate(-50%, 0) scale(1); }
@media (prefers-reduced-motion: reduce) {
  .hero, .product-grid .product-card, .member-order, .order-box, .cart-item, .refund-row, .auth-shell, .receipt .card, .detail-layout, .seller-panel, .account-orders, .steps .step.on {
    animation: none !important;
  }
}


.order-card-clean { border: 1px solid #ece0ee; background: #fff; border-radius: 18px; padding: 18px 20px; margin: 14px 0; box-shadow: 0 6px 20px #55405c08; animation: cardReveal .32s cubic-bezier(.22,.61,.36,1) both; }
.mini-steps { display: flex; gap: 4px; margin: 12px 0 4px; }
.mini-steps span { flex: 1; text-align: center; font-size: .7rem; padding: 5px 4px; border-radius: 8px; background: #f3eff5; color: #9a8fa2; font-weight: 600; transition: background .25s ease, color .25s ease; }
.mini-steps span.on { background: #eadbf6; color: #6a3e96; font-weight: 800; }
.action-strip { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.order-card-foot { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding-top: 10px; border-top: 1px solid #f2eaf4; }
.order-chat summary { cursor: pointer; font-size: .82rem; font-weight: 700; color: #714c94; user-select: none; list-style: none; }
.order-chat .chat-body { margin-top: 8px; padding: 10px 12px; background: #fbf8fd; border-radius: 12px; border: 1px solid #efe4f3; min-width: 260px; }

/* ==========================================================================
   V3.0.0 — JAPANESE ANIME SPECIALTY STORE (和紙白底 × 鳥居朱紅 × 紺青)
   Clean single-theme architecture (replaces stacked V2 overrides)
   ========================================================================== */
:root {
  --jp-paper: #fff8fa;
  --jp-card: rgba(255, 255, 255, 0.88);
  --jp-ink: #22283a;
  --jp-muted: #5e677d;
  --jp-vermilion: #e84a72;
  --jp-vermilion-dark: #d0355d;
  --jp-indigo: #2b4c7e;
  --jp-gold: #d9822b;
  --jp-line: #f2dce4;
  --idol-accent: #e84a72;
  --idol-soft: #fff0f4;
  --idol-ink: #22283a;
  color: var(--jp-ink);
  background: var(--jp-paper);
}

body {
  background-color: #f4f8ff;
  background-image:
    linear-gradient(180deg, rgba(255, 246, 250, 0.52) 0%, rgba(244, 249, 255, 0.68) 50%, rgba(255, 248, 251, 0.76) 100%),
    url('/assets/img/jp_street_bg.webp');
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
  color: var(--jp-ink);
}

/* Top Japanese Ticker & Header */
.acg-ticker {
  overflow: hidden;
  background: var(--jp-indigo);
  border-bottom: 2px solid var(--jp-vermilion);
  color: #f8f1e5;
  font-size: .74rem;
  font-weight: 750;
  letter-spacing: .08em;
  padding: 6px 0;
  white-space: nowrap;
}
.acg-ticker-track {
  display: inline-flex;
  gap: 48px;
  animation: acgMarquee 28s linear infinite;
}
@keyframes acgMarquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.header.acg-glass-header {
  background: rgba(255, 252, 247, 0.94);
  backdrop-filter: blur(12px);
  border-bottom: 2px solid var(--jp-line);
  box-shadow: 0 6px 24px rgba(30, 36, 51, 0.06);
}
.brand-mark {
  background: var(--jp-vermilion);
  color: #ffffff;
  border-radius: 10px;
  border: 1.5px solid #991b1b;
  box-shadow: 0 3px 10px rgba(217, 56, 41, 0.25);
  font-weight: 900;
  transform: rotate(-3deg);
}
.brand-name { color: var(--jp-ink); font-weight: 900; letter-spacing: .06em; }
.brand-sub { color: var(--jp-vermilion); font-weight: 800; letter-spacing: .12em; }

.header-search {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  max-width: 400px;
  background: #ffffff;
  border: 1.5px solid #d5cbbd;
  border-radius: 999px;
  padding: 3px 5px 3px 14px;
}
.header-search:focus-within {
  border-color: var(--jp-vermilion);
  box-shadow: 0 0 0 3px rgba(217, 56, 41, 0.12);
}
.header-search input {
  border: 0;
  outline: none;
  background: transparent;
  flex: 1;
  min-width: 0;
  font-size: .84rem;
  color: var(--jp-ink);
}

.head-nav button {
  color: var(--jp-ink);
  font-weight: 720;
  border-radius: 10px;
}
.head-nav button:hover, .head-nav button.active {
  background: #fdf2f0;
  color: var(--jp-vermilion);
}
.cart-bubble {
  background: var(--jp-vermilion);
  color: #ffffff;
  font-weight: 800;
}

/* Subnav Japanese Specialty Ribbon */
.subnav-ribbon {
  background: rgba(255, 242, 246, 0.92);
  border-top: 1px solid var(--jp-line);
  padding: 6px 0;
}
.subnav-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}
.subnav-inner button {
  flex: none;
  background: transparent;
  border: 1px solid transparent;
  color: #4a5264;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: .78rem;
  font-weight: 740;
  transition: all .15s ease;
}
.subnav-inner button:hover {
  background: #ffffff;
  color: var(--jp-vermilion);
  border-color: var(--jp-line);
}
.subnav-inner button.on {
  background: var(--jp-vermilion);
  color: #ffffff;
  border-color: var(--jp-vermilion);
}
.subnav-sep { color: #cbbfae; margin: 0 4px; user-select: none; }

/* Compact Japanese Storefront Hero (Mascot + Editorial Copy + Category Tiles) */
.jp-hero-banner {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) 210px;
  gap: 24px;
  align-items: center;
  background:
    linear-gradient(125deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 242, 247, 0.90) 58%, rgba(238, 246, 255, 0.90) 100%);
  border: 1.5px solid #f3d4df;
  border-left: 6px solid var(--jp-vermilion);
  border-radius: 20px;
  padding: 26px 30px;
  margin-bottom: 22px;
  box-shadow: 0 12px 32px rgba(30, 36, 51, 0.07);
  position: relative;
  overflow: hidden;
}
.jp-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fdf2f0;
  color: var(--jp-vermilion);
  border: 1px solid #f5c6c0;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .1em;
}
.jp-hero-copy h1 {
  font-size: clamp(1.55rem, 2.6vw, 2.15rem);
  color: var(--jp-ink);
  margin: 10px 0 8px;
  letter-spacing: -.01em;
}
.jp-hero-copy .notice {
  color: var(--jp-muted);
  font-size: .88rem;
  margin: 0 0 16px;
}

.jp-cat-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.jp-cat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  background: #ffffff;
  border: 1.5px solid #e5dccf;
  border-radius: 12px;
  padding: 10px 12px;
  text-align: left;
  color: var(--jp-ink);
  transition: all .15s ease;
}
.jp-cat-card:hover, .jp-cat-card.on {
  border-color: var(--jp-vermilion);
  background: #fdf2f0;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(217, 56, 41, 0.1);
}
.jp-cat-card .jp-sub {
  font-size: .66rem;
  color: var(--jp-vermilion);
  font-weight: 800;
  letter-spacing: .06em;
}
.jp-cat-card b { font-size: .84rem; }
.jp-cat-card small { font-size: .68rem; color: var(--jp-muted); }

.jp-mascot-frame {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  border: 2px solid #e2d5c4;
  box-shadow: 0 10px 24px rgba(30, 36, 51, 0.12);
  aspect-ratio: 3 / 4;
  background: #fff9f2;
}
.jp-mascot-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.jp-mascot-frame:hover img { transform: scale(1.04); }
.jp-mascot-tag {
  position: absolute;
  bottom: 8px;
  left: 8px;
  right: 8px;
  background: rgba(30, 36, 51, 0.88);
  color: #fff8f0;
  font-size: .7rem;
  font-weight: 780;
  padding: 5px 8px;
  border-radius: 8px;
  text-align: center;
}

/* Filter Bar + Japanese Series Pills */
.jp-filter-box {
  background: var(--jp-card);
  backdrop-filter: blur(10px);
  border: 1.5px solid var(--jp-line);
  border-radius: 16px;
  padding: 14px 18px;
  margin-bottom: 20px;
  box-shadow: 0 6px 20px rgba(30, 36, 51, 0.04);
}
.jp-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
}
.jp-filter-row .search-field {
  flex: 1;
  min-width: 210px;
  height: 42px;
  border-color: #d8cebe;
}
.jp-sel {
  width: auto !important;
  min-height: 42px !important;
  padding: 6px 11px !important;
  border-color: #d8cebe !important;
  font-size: .82rem;
}
.jp-series-row {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding-top: 11px;
  margin-top: 11px;
  border-top: 1px dashed var(--jp-line);
  scrollbar-width: none;
}
.jp-series-pill {
  flex: none;
  background: #ffffff;
  color: #4a5264;
  border: 1px solid #dcd2c2;
  border-radius: 999px;
  padding: 5px 13px;
  font-size: .78rem;
  font-weight: 740;
  transition: all .14s ease;
}
.jp-series-pill:hover { border-color: var(--jp-vermilion); color: var(--jp-vermilion); }
.jp-series-pill.on {
  background: var(--jp-indigo);
  color: #ffffff;
  border-color: var(--jp-indigo);
}

/* Japanese Hanko Stamp Product Cards + Wishlist Heart */
.product-card {
  background: #ffffff;
  border: 1.5px solid #e6ddd0;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(30, 36, 51, 0.05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.product-card:hover {
  transform: translateY(-3px);
  border-color: #d9382966;
  box-shadow: 0 14px 28px rgba(30, 36, 51, 0.1);
}
.product-art {
  background: linear-gradient(135deg, #f9f4ec, #f3eae0);
  border-bottom: 1px solid #ede5d8;
}
.art-sticker {
  background: rgba(30, 36, 51, 0.86);
  color: #ffffff;
  border-radius: 6px;
  padding: 4px 9px;
  font-size: .7rem;
  font-weight: 800;
}
.wish-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(30, 36, 51, 0.12);
  background: rgba(255, 255, 255, 0.92);
  color: #94a3b8;
  display: grid;
  place-items: center;
  font-size: 1.05rem;
  z-index: 2;
  transition: transform .15s ease, color .15s ease, background .15s ease;
}
.wish-btn:hover { transform: scale(1.1); }
.wish-btn.on {
  color: var(--jp-vermilion);
  background: #fff5f5;
  border-color: #f5c6c0;
}

/* Hanko Seal Badges for Edition & Release Status */
.art-edition {
  position: absolute;
  bottom: 10px;
  right: 10px;
  border-radius: 4px;
  padding: 2px 7px;
  font-size: .68rem;
  font-weight: 850;
  z-index: 1;
  border: 1.5px solid currentColor;
  background: rgba(255, 255, 255, 0.94);
}
.art-edition.ed-jp { color: #b91c1c; border-color: #b91c1c; }
.art-edition.ed-tw { color: #1e3a5f; border-color: #1e3a5f; }
.art-edition.ed-ichiban { color: #b45309; border-color: #b45309; }
.art-edition.ed-doujin { color: #7e22ce; border-color: #7e22ce; }
.art-edition.ed-other { color: #475569; border-color: #64748b; }

.art-release {
  position: absolute;
  bottom: 10px;
  left: 10px;
  border-radius: 4px;
  padding: 2px 7px;
  font-size: .68rem;
  font-weight: 800;
  z-index: 1;
}
.rs-rare, .art-release.rs-rare { background: #fef3c7; color: #92400e; border: 1px solid #f59e0b; }
.rs-pre, .art-release.rs-pre { background: #e0f2fe; color: #075985; border: 1px solid #38bdf8; }
.rs-dmg, .art-release.rs-dmg { background: #ffe4e6; color: #9f1239; border: 1px solid #fb7185; }
.rs-stock { background: #dcfce7; color: #166534; border: 1px solid #4ade80; }

.release-pill {
  display: inline-block;
  font-size: .68rem;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
}
.series-line { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.series-tag {
  background: #f3ede2;
  color: var(--jp-indigo);
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: .72rem;
}
.char-tag { color: var(--jp-vermilion); font-weight: 750; font-size: .72rem; }
.price, .detail-price { color: var(--jp-vermilion); font-weight: 900; }

/* Buttons & Badges */
.btn {
  background: var(--jp-vermilion);
  color: #ffffff;
  border-radius: 11px;
  box-shadow: 0 4px 12px rgba(217, 56, 41, 0.2);
}
.btn:hover:not(:disabled) { background: var(--jp-vermilion-dark); }
.btn.secondary { background: #f3ede2; color: var(--jp-indigo); }
.btn.secondary:hover:not(:disabled) { background: #e8dfd0; }
.btn.ghost { background: #ffffff; border: 1px solid #dcd2c2; color: var(--jp-ink); }
.btn.ghost:hover:not(:disabled) { background: #faf6f0; border-color: var(--jp-indigo); }

.kicker { color: var(--jp-vermilion); font-weight: 850; letter-spacing: .14em; }
.tag { background: #eef2f6; color: var(--jp-indigo); }
.tag.pink { background: #fdf2f0; color: var(--jp-vermilion); }

/* Secondary Containers & Member/Seller Pages */
.account-layout, .detail-layout, .cart-layout, .receipt, .admin-layout {
  background: rgba(255, 253, 249, 0.95);
  backdrop-filter: blur(10px);
  border: 1.5px solid var(--jp-line);
  border-radius: 20px;
  padding: 26px;
  box-shadow: 0 10px 30px rgba(30, 36, 51, 0.05);
}
.member-hero, .seller-hero {
  background: linear-gradient(135deg, #fffdf9 0%, #fdf2f0 100%);
  border: 1.5px solid #edd6d2;
  border-left: 6px solid var(--jp-vermilion);
  border-radius: 18px;
}
.subtab.active {
  background: var(--jp-indigo);
  color: #ffffff;
  border-color: var(--jp-indigo);
}
.subtab-badge { background: var(--jp-vermilion); color: #fff; }
.mini-steps span.on { background: #fdf2f0; color: var(--jp-vermilion); border: 1px solid #f5c6c0; }
.footer {
  background: var(--jp-indigo);
  color: #e2e8f0;
  border-top: 3px solid var(--jp-vermilion);
}

@media (max-width: 960px) {
  .jp-hero-banner { grid-template-columns: 1fr; padding: 20px; }
  .jp-mascot-frame { max-width: 180px; margin: 0 auto; }
  .jp-cat-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   V3.1.0 — COZY HOME LOUNGE, INTERACTIVE MASCOT COMPANION & EMA WALL
   ========================================================================== */
.cozy-lounge {
  margin-top: 34px;
}
.lounge-grid {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.omikuji-card, .ema-board-card {
  background: rgba(255, 253, 249, 0.95);
  backdrop-filter: blur(10px);
  border: 1.5px solid var(--jp-line);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 8px 26px rgba(30, 36, 51, 0.05);
}
.omikuji-card {
  border-top: 5px solid var(--jp-vermilion);
}
.omikuji-result {
  margin-top: 14px;
  background: #fff9f5;
  border: 1.5px dashed #e6a299;
  border-radius: 14px;
  padding: 15px;
}
.omikuji-rank {
  display: inline-block;
  background: var(--jp-vermilion);
  color: #ffffff;
  font-weight: 900;
  font-size: .92rem;
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.omikuji-body b { display: block; color: var(--jp-indigo); font-size: .88rem; margin-bottom: 4px; }
.omikuji-body p { margin: 0; font-size: .82rem; color: var(--jp-muted); line-height: 1.55; }
.omikuji-empty {
  margin-top: 14px;
  padding: 22px 14px;
  text-align: center;
  background: #faf6f0;
  border: 1.5px dashed #d8cebe;
  border-radius: 14px;
  font-size: .83rem;
  color: var(--jp-muted);
}

/* Ema Wishing Wall */
.ema-form {
  display: grid;
  grid-template-columns: 1fr 1fr 140px;
  gap: 9px;
  margin: 14px 0 18px;
}
.ema-form .ema-msg-input {
  grid-column: 1 / 3;
}
.ema-wall {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.ema-note {
  position: relative;
  padding: 14px 15px 12px;
  border-radius: 14px;
  border: 1.5px solid #f3d4df;
  background: #fffdf9;
  box-shadow: 0 4px 12px rgba(30, 36, 51, 0.04);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ema-note.mood-sakura { background: #fff7f8; border-color: #f3cdd3; }
.ema-note.mood-sky { background: #f4f9fd; border-color: #c8dff0; }
.ema-note.mood-gold { background: #fffbf0; border-color: #edd8a1; }
.ema-note.mood-mint { background: #f4fbf7; border-color: #c3e6d1; }

.ema-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.ema-top b { font-size: .82rem; color: var(--jp-ink); }
.ema-series {
  font-size: .68rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.85);
  color: var(--jp-vermilion);
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid rgba(217, 56, 41, 0.25);
}
.ema-note p {
  margin: 2px 0;
  font-size: .82rem;
  color: #333b4d;
  line-height: 1.55;
  flex: 1;
}
.ema-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px dashed rgba(30, 36, 51, 0.1);
}
.ema-like-btn {
  background: #ffffff;
  border: 1px solid #dcd2c2;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: .72rem;
  font-weight: 750;
  color: var(--jp-indigo);
  transition: all .14s ease;
}
.ema-like-btn:hover {
  border-color: var(--jp-vermilion);
  color: var(--jp-vermilion);
  transform: scale(1.04);
}

/* Interactive Mascot Dock (Bottom-Right Companion) */
.mascot-dock {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 65;
  max-width: 310px;
}
.mascot-card {
  position: relative;
  background: rgba(255, 252, 247, 0.97);
  backdrop-filter: blur(14px);
  border: 2px solid #e2cfc4;
  border-top: 4px solid var(--jp-vermilion);
  border-radius: 20px;
  padding: 14px 15px;
  box-shadow: 0 16px 38px rgba(30, 36, 51, 0.18);
  animation: cardReveal .28s ease both;
}
.mascot-min-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid #e2d5c4;
  background: #ffffff;
  color: var(--jp-muted);
  font-weight: 900;
  line-height: 1;
}
.mascot-header {
  display: flex;
  align-items: center;
  gap: 11px;
}
.mascot-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--jp-vermilion);
  cursor: pointer;
  transition: transform .2s ease;
}
.mascot-avatar:hover { transform: scale(1.08) rotate(-4deg); }
.mascot-meta { flex: 1; min-width: 0; padding-right: 18px; }
.mascot-name-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mascot-name-row b { font-size: .84rem; color: var(--jp-ink); }
.aff-badge {
  background: #fdf2f0;
  color: var(--jp-vermilion);
  border: 1px solid #f5c6c0;
  border-radius: 999px;
  padding: 1px 7px;
  font-size: .68rem;
  font-weight: 850;
}
.aff-bar {
  height: 6px;
  background: #efe7dc;
  border-radius: 999px;
  overflow: hidden;
  margin: 5px 0 3px;
}
.aff-bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #f43f5e, #d93829);
  border-radius: 999px;
  transition: width .3s ease;
}
.mascot-speech {
  margin: 10px 0;
  padding: 9px 11px;
  background: #fff8f3;
  border: 1px solid #edd6c8;
  border-radius: 12px;
  font-size: .79rem;
  color: var(--jp-ink);
  line-height: 1.55;
}
.mascot-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}
.mascot-btn {
  background: #ffffff;
  border: 1px solid #dcd2c2;
  border-radius: 9px;
  padding: 6px 8px;
  font-size: .74rem;
  font-weight: 760;
  color: var(--jp-ink);
  transition: all .14s ease;
}
.mascot-btn:hover {
  background: #fdf2f0;
  border-color: var(--jp-vermilion);
  color: var(--jp-vermilion);
}
.mascot-toggles {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #e5dccf;
}
.Plugin-chip {
  flex: 1;
  background: #f5efe6;
  border: 1px solid #dcd2c2;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .7rem;
  font-weight: 740;
  color: var(--jp-muted);
}
.Plugin-chip.on {
  background: var(--jp-indigo);
  color: #ffffff;
  border-color: var(--jp-indigo);
}

.mascot-fab {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fffdf9;
  border: 2px solid var(--jp-vermilion);
  border-radius: 999px;
  padding: 6px 14px 6px 6px;
  box-shadow: 0 10px 25px rgba(30, 36, 51, 0.18);
  font-weight: 800;
  font-size: .82rem;
  color: var(--jp-ink);
}
.mascot-fab img {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  object-fit: cover;
}

/* Floating Sakura Petals Overlay */
.sakura-stage {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 30;
  overflow: hidden;
}
.petal {
  position: absolute;
  top: -30px;
  font-size: .95rem;
  opacity: .55;
  animation: petalFall 14s linear infinite;
}
.petal.p1 { left: 10%; animation-duration: 13s; animation-delay: 0s; }
.petal.p2 { left: 28%; animation-duration: 16s; animation-delay: 2s; font-size: .75rem; }
.petal.p3 { left: 48%; animation-duration: 12s; animation-delay: 4s; }
.petal.p4 { left: 66%; animation-duration: 15s; animation-delay: 1s; font-size: .8rem; }
.petal.p5 { left: 82%; animation-duration: 14s; animation-delay: 3s; }
.petal.p6 { left: 93%; animation-duration: 17s; animation-delay: 5s; font-size: .7rem; }

@keyframes petalFall {
  0% { transform: translateY(-20px) translateX(0) rotate(0deg); opacity: 0; }
  15% { opacity: .55; }
  85% { opacity: .55; }
  100% { transform: translateY(102vh) translateX(45px) rotate(320deg); opacity: 0; }
}

@media (max-width: 980px) {
  .lounge-grid { grid-template-columns: 1fr; }
  .ema-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .ema-form { grid-template-columns: 1fr; }
  .ema-form .ema-msg-input { grid-column: auto; }
  .ema-wall { grid-template-columns: 1fr; }
  .mascot-dock { right: 12px; bottom: 82px; max-width: 280px; }
}

/* ==========================================================================
   V3.5.0 — LIVELY ANIME MICRO-INTERACTIONS, 3D HOLO TILT & MASCOT MOTION
   ========================================================================== */
.mascot-breathe {
  animation: mascotBreathe 3.6s ease-in-out infinite;
  transform-origin: center bottom;
}
@keyframes mascotBreathe {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.018); }
}

.mascot-jump {
  animation: mascotBounce .52s cubic-bezier(.34,1.56,.64,1) !important;
}
@keyframes mascotBounce {
  0% { transform: scale(1) translateY(0); }
  35% { transform: scale(1.12, 0.92) translateY(-10px) rotate(-3deg); }
  70% { transform: scale(0.97, 1.04) translateY(2px) rotate(2deg); }
  100% { transform: scale(1) translateY(0) rotate(0); }
}

/* Floating Heart & Sparkle Burst Particles */
.acg-burst-particle {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  font-size: 1.25rem;
  user-select: none;
  animation: acgBurstFly .85s cubic-bezier(.16, 1, .3, 1) forwards;
}
@keyframes acgBurstFly {
  0% { transform: translate(-50%, -50%) scale(0.4); opacity: 1; }
  60% { opacity: 1; }
  100% { transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, -60px))) scale(1.35) rotate(18deg); opacity: 0; }
}

/* 3D Holographic Foil Tilt on Product Cards */
.product-card {
  position: relative;
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform .14s ease-out, box-shadow .2s ease, border-color .2s ease;
  will-change: transform;
}
.product-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(
    circle at var(--gx, 50%) var(--gy, 50%),
    rgba(255, 255, 255, 0.55) 0%,
    rgba(255, 192, 203, 0.18) 28%,
    transparent 65%
  );
  opacity: 0;
  transition: opacity .22s ease;
}
.product-card:hover::after {
  opacity: 1;
}

/* Swinging Wooden Ema Plaque Animation */
.ema-note {
  transform-origin: top center;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ema-note:hover {
  animation: emaSwing 1.4s ease-in-out infinite alternate;
  box-shadow: 0 10px 22px rgba(30, 36, 51, 0.1);
}
@keyframes emaSwing {
  0% { transform: rotate(-1.4deg) translateY(-2px); }
  100% { transform: rotate(1.4deg) translateY(-2px); }
}

/* Omikuji Shaking Effect on Result Card */
.omikuji-result {
  animation: omikujiPop .45s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes omikujiPop {
  0% { transform: scale(0.88) rotate(-2deg); opacity: 0; }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* ==========================================================================
   V3.6.0 — SPARSE, SLOW-DRIFTING SVG SAKURA PETALS (PERSISTENT LAYER)
   ========================================================================== */
.sakura-stage .petal {
  position: absolute;
  top: -40px;
  width: 15px;
  height: 15px;
  opacity: 0;
  animation: sakuraFallSlow 24s linear infinite;
}
.sakura-stage .petal i {
  display: block;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 2px 4px rgba(244, 114, 182, 0.2));
  animation: sakuraSwaySlow 6.5s ease-in-out infinite alternate;
}
.sakura-stage .petal.p1 { left: 12%; width: 14px; height: 14px; animation-duration: 25s; animation-delay: 0s; }
.sakura-stage .petal.p1 i { animation-duration: 5.8s; }

.sakura-stage .petal.p2 { left: 31%; width: 11px; height: 11px; animation-duration: 29s; animation-delay: 6s; }
.sakura-stage .petal.p2 i { animation-duration: 7.2s; animation-delay: 1.2s; }

.sakura-stage .petal.p3 { left: 54%; width: 16px; height: 16px; animation-duration: 23s; animation-delay: 12s; }
.sakura-stage .petal.p3 i { animation-duration: 6.1s; animation-delay: 0.5s; }

.sakura-stage .petal.p4 { left: 74%; width: 12px; height: 12px; animation-duration: 27s; animation-delay: 4s; }
.sakura-stage .petal.p4 i { animation-duration: 6.9s; animation-delay: 2.1s; }

.sakura-stage .petal.p5 { left: 89%; width: 14px; height: 14px; animation-duration: 31s; animation-delay: 15s; }
.sakura-stage .petal.p5 i { animation-duration: 7.5s; animation-delay: 1.5s; }

@keyframes sakuraFallSlow {
  0% { transform: translateY(-30px) translateX(0); opacity: 0; }
  10% { opacity: 0.62; }
  85% { opacity: 0.55; }
  100% { transform: translateY(104vh) translateX(-35px); opacity: 0; }
}
@keyframes sakuraSwaySlow {
  0% { transform: translateX(-18px) rotate(-22deg) rotateX(15deg); }
  100% { transform: translateX(22px) rotate(32deg) rotateY(35deg); }
}
