:root{--color-bg:#FCFDFF;--color-surface:#FFFFFF;--color-point-light:#B0A8F4;--color-point-dark:#6C62E7;--color-point-deepest:#704CC9;--color-text:#101010;--color-text-secondary:#333333;--color-text-muted:#505050;--color-border:#E7E4FB;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--header-height:64px;--side-padding:clamp(16px, 4.2vw, 100px);--aside-width:280px;--mobile-bp:1079px}*{box-sizing:border-box}.flex_nml{display:flex}.flex_col{flex-direction:column}.items_cnt{align-items:center}.is-reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.is-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.is-reveal{opacity:1;transform:none;transition:none}}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:ui-sans-serif,system-ui,sans-serif;line-height:1.5}ul{list-style:none;margin:0;padding:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.section{padding-top:64px}#latest{padding-bottom:20px}#login{padding-top:20px}.section__head{text-align:center;margin-bottom:36px}.section__eyebrow{display:block;color:var(--color-point-dark);font-weight:700;letter-spacing:.1em;font-size:13px;margin-bottom:6px}.section__title{margin:0;font-size:26px;font-weight:700}.header{position:sticky;top:0;z-index:40;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.header__inner{height:100%;padding:0 var(--side-padding);display:flex;align-items:center;gap:16px}.header__menu-btn{width:36px;height:36px;border:0;background:0 0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}.header__menu-btn span{width:20px;height:2px;background:var(--color-text);border-radius:2px}.header__logo{display:flex;align-items:center;font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--color-text);white-space:nowrap}.header__logo img{height:28px;width:auto}.header__nav{margin-left:auto}.header__nav-list{display:flex;gap:8px}.header__nav-list a{font-size:14px;font-weight:600;color:var(--color-text-muted)}.header__nav-list a:hover{color:var(--color-point-dark)}.header__nav-list a.header__login-btn{padding:9px 18px;border-radius:8px;background:var(--color-point-light);color:#fff;transition:background .15s ease,transform .15s ease}.header__nav-list a.header__login-btn:hover{background:var(--color-point-dark);color:#fff}.header__nav-list a.header__login-btn:active{transform:scale(.97)}.header__nav-list a.header__join-btn{padding:9px 18px;border-radius:8px;background:var(--color-text);color:#fff;transition:opacity .15s ease,transform .15s ease}.header__nav-list a.header__join-btn:hover{opacity:.85;color:#fff}.header__nav-list a.header__join-btn:active{transform:scale(.97)}.layout{display:flex;align-items:flex-start;padding:0 var(--side-padding);gap:var(--side-padding)}.layout__main{flex:1;min-width:0}.aside-overlay{position:fixed;inset:0;background:rgba(43,42,56,.4);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:49}.aside-overlay.is-open{opacity:1;pointer-events:auto}.aside{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:82vw;display:flex;flex-direction:column;background:var(--color-surface);z-index:50;transform:translateX(-100%);transition:transform .25s ease;overflow:hidden;box-shadow:2px 0 16px rgba(43,42,56,.12)}.aside.is-open{transform:translateX(0)}.aside__head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--color-border)}.aside__title{font-weight:700;font-size:16px}.aside__close-btn{border:0;background:0 0;font-size:24px;line-height:1;cursor:pointer;color:var(--color-text-muted)}.aside__scroll-area{position:relative;flex:1;min-height:0;display:flex}.aside__products{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px 14px 10px 10px;overflow-y:auto;scrollbar-width:none}.aside__products::-webkit-scrollbar{display:none}.aside__scrollbar-track{position:absolute;top:12px;bottom:12px;right:4px;width:4px;border-radius:50em}.aside__scrollbar-thumb{position:absolute;left:0;width:100%;border-radius:50em;background:var(--color-point-light)}.aside__products a{padding:10px;gap:14px;border-radius:var(--radius-sm);color:var(--color-text);transition:background .25s ease,color .25s ease}.aside__products a:hover{color:var(--color-point-dark);background:rgba(176,168,244,.14)}.aside__products a:hover .products__thumb{transform:scale(1.06);box-shadow:0 0 14px rgba(112,76,201,.25)}.products__thumb{width:54px;height:54px;border-radius:50%;background:#fff;color:var(--color-point-dark);font-weight:700;font-size:14px;flex:none;display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease}.products__thumb img{width:100%;height:100%;border-radius:50%;object-fit:cover}.products__name{flex:1;min-width:0;font-size:16px;font-weight:400;line-height:1.3;white-space:normal;word-break:keep-all}.banner{position:relative;overflow:hidden;margin-top:20px;border-radius:var(--radius-lg);background:var(--color-point-light)}.banner__img{display:block;width:100%}.banner__img--mobile{display:none}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:20px;row-gap:65px;margin-top:45px}.product-card{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);padding:20px;text-align:center;box-shadow:0 0 15px rgba(43,42,56,.08);transition:box-shadow .3s ease,opacity .6s ease,transform .6s ease}.product-card:hover{box-shadow:0 0 30px rgba(112,76,201,.25)}.product-card__thumb{width:87px;height:87px;margin:-45px auto 0;border-radius:50%;background:#fff;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:700}.product-card__thumb img{width:100%;height:100%;border-radius:50%;object-fit:cover}.product-card__name{display:flex;align-items:center;justify-content:center;margin:10px 0 14px;font-size:18px;font-weight:700;line-height:1.3;height:2.6em;overflow:hidden}.product-card__rate{display:flex;gap:6px;margin-bottom:10px}.product-card__rate dl{flex:1;min-width:0;margin:0;padding:10px 4px;border:1px solid var(--color-point-light);border-radius:var(--radius-sm);text-align:center}.product-card__rate dl:nth-child(2){border-color:var(--color-point-dark)}.product-card__rate dt{font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.product-card__rate dd{margin:0;font-size:15px;font-weight:700;color:var(--color-point-dark)}.product-card__rate dd b{display:inline-block;font-weight:700}.product-card:hover .product-card__rate dd b{animation:rate-arrow-down 1.4s ease-in-out infinite}@keyframes rate-arrow-down{0%{transform:translateY(-4px);opacity:0}50%{opacity:1}100%{transform:translateY(4px);opacity:0}}.product-card__btn{display:block;width:100%;padding:12px 0;border:0;border-radius:var(--radius-sm);background:var(--color-point-light);color:#fff;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer}.product-card__btn:hover{background:var(--color-point-dark)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{position:relative;display:flex;flex-direction:column;align-items:center;margin:0;text-align:center;padding:28px 20px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 4px 16px rgba(112,76,201,.08)}@property --fill-angle{syntax:'<angle>';inherits:false;initial-value:0deg}.service-card::before{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2.5px;--fill-angle:0deg;background:conic-gradient(from 0deg,rgba(176,168,244,.55) 0deg,rgba(176,168,244,.55) var(--fill-angle),transparent var(--fill-angle),transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}.service-card:hover::before{--fill-angle:360deg;transition:--fill-angle .8s ease}@media (prefers-reduced-motion:reduce){.service-card:hover::before{transition:none}}.service-card__thumb{flex:none;width:80px;height:80px;margin:0 0 16px;display:flex;align-items:center;justify-content:center}.service-card__thumb img{width:100%;height:100%;object-fit:contain}.service-card__body{margin:0}.service-card__title{margin:0 0 8px;font-size:17px;font-weight:700}.service-card__desc{margin:0;font-size:14px;color:var(--color-text-muted);line-height:1.6}.latest{display:grid;grid-template-columns:1fr 1fr;gap:24px}.latest-box{min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:28px}.latest-box__head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 18px}.latest-box__title{display:flex;flex-direction:column;gap:4px;margin:0;font-size:18px;font-weight:700}.latest-box__title small{color:var(--color-point-dark);font-size:12px;font-weight:700;letter-spacing:.1em}.latest-box__list li+li{border-top:1px solid var(--color-border)}.latest-box__list a{display:flex;align-items:center;gap:12px;padding:12px 0;font-size:14px}.latest-box__list a:hover{color:var(--color-point-dark)}.latest-box__text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.latest-box__date{flex:none;font-size:12px;color:var(--color-text-muted)}.latest-box__more{flex:none;padding:6px 16px;border-radius:var(--radius-sm);background:var(--color-point-light);color:#fff;font-size:13px;font-weight:600;margin-bottom:4px}.latest-box__more:hover{background:var(--color-point-dark)}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:40px}.footer__inner{padding:40px var(--side-padding);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer__logo{height:32px;width:auto;margin:0 0 12px}.footer__biz{font-size:12px;color:var(--color-text-muted);line-height:1.4;margin:0 0 4px}.footer__copy{font-size:12px;color:var(--color-text-muted);margin:0}.contact-card{display:flex;flex-direction:column;align-items:center;text-align:center}.contact-card__label{margin:0;font-size:17px;font-weight:700;color:var(--color-text)}.floating-contact{position:fixed;right:20px;bottom:20px;z-index:45;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 12px 30px rgba(43,42,56,.18)}.floating-contact .contact-card__label{font-size:13px;color:var(--color-text-secondary)}.contact-btn{display:inline-block;position:relative;overflow:hidden;margin-top:10px;padding:14px 32px;border:0;border-radius:999px;background:var(--color-point-dark);color:#fff;font-size:16px;font-weight:800;letter-spacing:-.2px;font-family:inherit;cursor:pointer;box-shadow:0 0 0 0 rgba(176,168,244,.6),0 8px 20px rgba(43,42,56,.25);animation:contact-btn-pulse 2s ease-in-out infinite;transition:background .15s ease,box-shadow .15s ease}@keyframes contact-btn-pulse{0%,100%{box-shadow:0 0 0 0 rgba(176,168,244,.55),0 8px 20px rgba(43,42,56,.25)}50%{box-shadow:0 0 0 10px rgba(176,168,244,0),0 8px 24px rgba(43,42,56,.3)}}.contact-btn::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .5s ease}.contact-btn:hover{background:var(--color-point-deepest)}.contact-btn:hover::before{left:130%}.contact-btn:active{background:var(--color-point-deepest)}.login-modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(16,16,16,.55);opacity:0;pointer-events:none;transition:opacity .2s ease}.login-modal-overlay.is-open{opacity:1;pointer-events:auto}.login-modal-box{width:100%;max-width:380px;padding:32px 28px;background:var(--color-surface);border-radius:var(--radius-lg);text-align:center;box-shadow:0 20px 50px rgba(16,16,16,.3);transform:scale(.95);transition:transform .2s ease}.login-modal-overlay.is-open .login-modal-box{transform:scale(1)}.login-modal-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:50%;border:2px solid var(--color-point-light);display:flex;align-items:center;justify-content:center}.login-modal-icon svg{width:24px;height:24px;stroke:var(--color-point-dark)}.login-modal-message{margin:0 0 24px;font-size:14px;font-weight:600;line-height:1.6;color:var(--color-text)}.login-modal-confirm-btn{padding:10px 32px;border:0;border-radius:var(--radius-sm);background:var(--color-point-light);color:#fff;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer}.login-modal-confirm-btn:hover{background:var(--color-point-dark)}.popup-overlay{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(16,16,16,.55);opacity:0;pointer-events:none;transition:opacity .2s ease}.popup-overlay.is-open{opacity:1;pointer-events:auto}.popup-box{width:100%;max-width:400px;border-radius:18px;overflow:hidden;background:var(--color-surface);box-shadow:0 20px 50px rgba(16,16,16,.3)}.popup-box__img{display:block;width:100%;aspect-ratio:400/450;object-fit:cover}.popup-box__actions{display:flex;border-top:1px solid var(--color-border)}.popup-box__action{flex:1;padding:14px 0;border:0;background:var(--color-surface);color:var(--color-text-muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.popup-box__action:hover{background:var(--color-bg);color:var(--color-point-dark)}.popup-box__action+.popup-box__action{border-left:1px solid var(--color-border)}.auth-section{max-width:420px;margin:0 auto;padding:48px 0}.auth-title{text-align:center;font-size:22px;font-weight:800;color:var(--color-point-dark);margin:0 0 32px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-row{display:flex;flex-direction:column;gap:6px}.auth-row label{font-size:13px;font-weight:700;color:var(--color-text-secondary)}.auth-row input{padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--color-text)}.auth-row input:focus{outline:2px solid var(--color-point-light);outline-offset:-1px}.auth-submit-btn{margin-top:8px;padding:14px 0;border:0;border-radius:var(--radius-sm);background:var(--color-point-light);color:#fff;font-weight:700;font-size:15px;font-family:inherit;cursor:pointer}.auth-submit-btn:hover{background:var(--color-point-dark)}.auth-helper{margin-top:24px;text-align:center}.auth-helper p{margin:0 0 8px;font-size:13px;color:var(--color-text-muted)}.auth-helper-links{display:flex;justify-content:center;gap:10px;font-size:13px;color:var(--color-text-secondary)}.auth-helper-links a{color:var(--color-point-deepest)}.auth-helper-links .divider{color:var(--color-border)}@media (min-width:1080px){.header__menu-btn{display:none}.aside-overlay{display:none}.aside__head{display:none}.aside{position:sticky;top:calc(var(--header-height) + 20px);left:auto;width:var(--aside-width);max-width:none;margin-top:20px;height:calc(100vh - var(--header-height) - 40px);transform:none;border-radius:var(--radius-lg);box-shadow:0 12px 30px rgba(43,42,56,.12);flex:none}}@media (max-width:723px){.service-grid{gap:16px}.service-card{padding:20px 16px}}@media (max-width:680px){.banner__img--pc{display:none}.banner__img--mobile{display:block}.product-grid{grid-template-columns:repeat(3,1fr);column-gap:10px;row-gap:48px;margin-top:28px}.product-card{padding:10px}.product-card__thumb{width:56px;height:56px;margin-top:-28px}.product-card__name{margin:8px 0 10px;font-size:13px}.product-card__btn{padding:8px 0;font-size:12px}.product-card__rate{display:none}.service-grid{grid-template-columns:1fr;gap:16px}.service-card{flex-direction:row;align-items:center;text-align:left;gap:20px}.service-card__thumb{margin:0}.service-card__body{flex:1;min-width:0}.service-card__desc br{display:none}.latest{grid-template-columns:1fr}.footer__inner{flex-direction:column}.footer .contact-card{order:-1}.floating-contact{right:12px;bottom:12px;padding:12px 16px}}@media (max-width:390px){.header__inner{gap:0}.header__nav-list a.header__login-btn{padding:9px 14px}}@media (max-width:336px){.header__nav-list a.header__join-btn{display:none}}