.home-hero{align-items:center;display:grid;gap:clamp(32px,6vw,72px);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);padding-block:clamp(8px,4vw,40px)}.home-hero__copy{display:flex;flex-direction:column;gap:18px}.home-hero__title{font-size:var(--text-display);font-weight:700;letter-spacing:-.03em;line-height:1.05}.home-hero__lead{color:var(--color-text-muted);font-size:clamp(17px,2vw,20px);max-width:34ch}.home-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.home-hero__art{display:flex;justify-content:center}.home-hero__tile{align-items:center;animation:float 7s ease-in-out infinite;aspect-ratio:1;background:radial-gradient(circle at 30% 25%,#ffffff 0%,transparent 55%),linear-gradient(145deg,var(--color-accent-soft),var(--color-highlight));border:1px solid rgba(255,255,255,.8);border-radius:32px;box-shadow:var(--shadow-lg),inset 0 1px #ffffffe6;display:flex;justify-content:center;max-width:340px;width:100%}.home-hero__tile img{filter:drop-shadow(0 12px 20px rgba(15,23,42,.18));height:auto;width:72%}@keyframes float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}.explore-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.explore-card{display:flex;flex-direction:column;gap:10px;padding:24px}.explore-card__icon{align-items:center;background:var(--color-accent-soft);border-radius:var(--radius);color:var(--color-accent-strong);display:inline-flex;height:44px;justify-content:center;transition:transform var(--dur) var(--ease-out);width:44px}.explore-card:hover .explore-card__icon{transform:rotate(-6deg) scale(1.06)}.explore-card__icon svg{height:22px;width:22px}.explore-card__title{align-items:center;display:flex;font-size:var(--text-xl);font-weight:700;gap:8px;margin-top:6px}.explore-card__body{color:var(--color-text-muted)}@media (max-width: 760px){.home-hero{grid-template-columns:1fr}.home-hero__art{order:-1}.home-hero__tile{max-width:200px}}.portfolio-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.portfolio-card{display:flex;flex-direction:column;overflow:hidden}.portfolio-card__media{aspect-ratio:1 / 1;background:var(--color-surface-muted);border-radius:0;overflow:hidden;position:relative}.portfolio-card__image{background-color:var(--color-surface-muted);background-position:center;background-size:cover;height:100%;transition:transform var(--dur-slow) var(--ease-out);width:100%}.portfolio-card:hover .portfolio-card__image{transform:scale(1.05)}.portfolio-card__overlay{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));height:100%;inset:0;object-fit:contain;pointer-events:none;position:absolute;width:100%;z-index:1}.portfolio-card__body{align-items:flex-start;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}.portfolio-card__title{color:var(--color-text);font-size:var(--text-base);font-weight:600;line-height:1.35}.portfolio-empty{color:var(--color-text-muted);padding:28px;text-align:center}.project-detail{display:flex;flex-direction:column;gap:16px;max-width:820px;padding:clamp(20px,4vw,36px)}.project-detail__image{border-radius:var(--radius);max-height:520px;object-fit:cover;width:100%}.project-detail__title{font-size:clamp(26px,3.6vw,36px);font-weight:700}.project-detail__text{color:var(--color-text-muted);font-size:var(--text-lg);white-space:pre-line}.auth-shell{display:flex;justify-content:center;padding-block:clamp(8px,4vw,32px)}.auth-card{display:flex;flex-direction:column;gap:18px;max-width:420px;padding:clamp(22px,5vw,36px);width:100%}.auth-card__head{display:flex;flex-direction:column;gap:6px;text-align:center}.auth-card__head h1{font-size:var(--text-2xl);font-weight:700}.auth-card__head p{color:var(--color-text-muted)}.auth-tabs{background:var(--color-surface-muted);border-radius:var(--radius-pill);display:grid;grid-template-columns:1fr 1fr;padding:4px;position:relative}.auth-tabs:before{background:var(--color-surface);border-radius:var(--radius-pill);bottom:4px;box-shadow:var(--shadow-sm);content:"";left:4px;position:absolute;top:4px;transition:transform var(--dur) var(--ease-out);width:calc(50% - 4px)}.auth-tabs[data-mode=signup]:before{transform:translate(100%)}.auth-tabs button{appearance:none;background:transparent;border:0;border-radius:var(--radius-pill);color:var(--color-text-muted);cursor:pointer;font-weight:600;height:38px;position:relative;transition:color var(--dur-fast) ease}.auth-tabs button[aria-selected=true]{color:var(--color-text)}.auth-oauth{display:flex;flex-direction:column;gap:10px}.auth-oauth .btn{min-height:46px}.auth-divider{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--text-xs);gap:12px;text-transform:uppercase}.auth-divider:before,.auth-divider:after{background:var(--color-border);content:"";flex:1;height:1px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form .btn[type=submit]{margin-top:4px;min-height:46px}.auth-row{align-items:center;display:flex;justify-content:space-between}.auth-link{background:none;border:0;color:var(--color-accent-strong);cursor:pointer;font-size:var(--text-sm);font-weight:600;padding:0;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-footer{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.auth-status{align-items:center;display:flex;flex-direction:column;gap:12px;text-align:center}.auth-status p{color:var(--color-text-muted)}.profile-grid{display:grid;gap:4px 16px;grid-template-columns:auto minmax(0,1fr);margin:0}.profile-grid dt{color:var(--color-text-muted);font-size:var(--text-sm)}.profile-grid dd{font-weight:600;margin:0;overflow-wrap:anywhere}.profile-avatar{align-items:center;align-self:center;background:linear-gradient(145deg,var(--color-accent-soft),var(--color-highlight));border-radius:50%;color:var(--color-accent-strong);display:inline-flex;font-size:28px;font-weight:700;height:72px;justify-content:center;overflow:hidden;width:72px}.profile-avatar img{height:100%;object-fit:cover;width:100%}.profile-welcome{font-size:var(--text-lg);font-weight:600;text-align:center}.resource-list{list-style:none;margin:0;overflow:hidden;padding:6px}.resource-list li+li{border-top:1px solid var(--color-border)}.resource-row{align-items:center;border-radius:var(--radius);color:var(--color-text-muted);display:flex;gap:16px;justify-content:space-between;min-height:56px;padding:12px 16px}.resource-row--link{color:var(--color-text);font-weight:600;text-decoration:none;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.resource-row--link:hover{background:var(--color-accent-soft)}.resource-row--link:hover .arrow-icon{transform:translate(3px)}.resource-row--link:active{transform:scale(.99)}.resource-row--link .arrow-icon{color:var(--color-accent-strong)}.tool-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.tool-card{align-items:flex-start;display:grid;gap:14px 16px;grid-template-areas:"icon body" "icon link";grid-template-columns:56px minmax(0,1fr);grid-template-rows:1fr auto;padding:22px}.tool-card__icon{align-items:center;background:linear-gradient(145deg,#1e293b,#334155);border-radius:14px;box-shadow:var(--shadow-sm);color:#fff;display:inline-flex;font-size:18px;font-weight:700;grid-area:icon;height:56px;justify-content:center;letter-spacing:-.02em;overflow:hidden;transition:transform var(--dur) var(--ease-out);width:56px}.tool-card:hover .tool-card__icon{transform:rotate(-6deg) scale(1.05)}.tool-card__icon img{height:100%;object-fit:cover;width:100%}.tool-card__body{display:flex;flex-direction:column;gap:10px;grid-area:body}.tool-card__title{color:var(--color-text);font-size:var(--text-base);line-height:1.45}.tool-card__title strong{font-size:var(--text-lg)}.tool-card__link{align-items:center;color:var(--color-accent-strong);display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:6px;grid-area:link}.tool-card__link svg{height:16px;width:16px}.materials-fdm-page{--col-filament-width: auto;--col-brand-width: auto;--col-nozzle-temp-width: auto;--col-bed-temp-width: auto;--col-hdt-width: auto;--col-melt-temp-width: auto;--cell-left-padding: 12px;--col-align-filament: left;--col-align-brand: left;--col-align-nozzle: center;--col-align-bed: center;--col-align-hdt: center;--col-align-melt: center}.materials-fdm-page .materials-layout{align-items:start;display:grid;gap:28px;grid-template-columns:260px minmax(0,1fr)}.materials-fdm-page .materials-filter{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px 16px 18px;position:sticky;top:calc(var(--header-h) + 16px)}.materials-fdm-page .materials-filter details{border-bottom:1px solid var(--color-border);padding:8px 0}.materials-fdm-page .materials-filter summary{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-weight:600;justify-content:space-between;list-style:none;margin:0 -6px;padding:6px;transition:background-color var(--dur-fast) ease}.materials-fdm-page .materials-filter summary:hover{background:var(--color-surface-muted)}.materials-fdm-page .materials-filter summary::-webkit-details-marker{display:none}.materials-fdm-page .materials-filter summary:after{border-bottom:2px solid var(--color-text-muted);border-right:2px solid var(--color-text-muted);content:"";height:7px;margin-right:4px;transform:rotate(45deg);transition:transform var(--dur) var(--ease-out);width:7px}.materials-fdm-page .materials-filter details[open]>summary:after{transform:rotate(-135deg)}.materials-fdm-page .filter-option{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:var(--text-sm);gap:10px;padding:5px 6px;transition:background-color var(--dur-fast) ease}.materials-fdm-page .filter-option:hover{background:var(--color-surface-muted)}.materials-fdm-page .filter-option input{accent-color:var(--color-accent);cursor:pointer;height:16px;margin:0;width:16px}.materials-fdm-page .filter-actions{display:flex;gap:8px;margin-top:14px}.materials-fdm-page .filter-actions .apply,.materials-fdm-page .filter-actions .reset{appearance:none;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);cursor:pointer;flex:1 1 0;font-weight:600;min-height:38px;padding:0 14px;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.materials-fdm-page .filter-actions .reset:hover{background:var(--color-surface-muted)}.materials-fdm-page .filter-actions .apply{background:var(--color-ink);border-color:var(--color-ink);color:#fff}.materials-fdm-page .filter-actions .apply:hover{background:var(--color-ink-hover)}.materials-fdm-page .filter-actions button:active{transform:scale(.97)}.materials-fdm-page .materials-header-wrap{min-width:0}.materials-fdm-page .materials-header{display:flex;flex-direction:column;gap:16px}.materials-fdm-page .materials-title{font-size:clamp(24px,3.2vw,32px);font-weight:700;line-height:1.25;margin:0}.materials-fdm-page .materials-body-text{color:inherit}.materials-fdm-page .materials-description{color:var(--color-text-muted);font-size:var(--text-base);margin:0}.materials-fdm-page .materials-description sup a{font-weight:600;text-decoration:none}.materials-fdm-page .materials-table-scroll{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:4px;max-width:100%;overflow-x:auto}.materials-fdm-page .materials-table{border-collapse:collapse;font-size:var(--text-sm);min-width:760px;table-layout:fixed;width:100%}.materials-fdm-page .materials-table .col-filament{width:var(--col-filament-width)}.materials-fdm-page .materials-table .col-brand{width:var(--col-brand-width)}.materials-fdm-page .materials-table .col-nozzle-temp{width:var(--col-nozzle-temp-width)}.materials-fdm-page .materials-table .col-bed-temp{width:var(--col-bed-temp-width)}.materials-fdm-page .materials-table .col-hdt{width:var(--col-hdt-width)}.materials-fdm-page .materials-table .col-melt-temp{width:var(--col-melt-temp-width)}.materials-fdm-page .materials-table th{background:var(--color-surface-muted);color:var(--color-text);font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;padding:12px;text-align:center}.materials-fdm-page .materials-table td{border-top:1px solid var(--color-border);height:44px;padding:10px 12px}.materials-fdm-page .materials-table tbody tr{transition:background-color var(--dur-fast) ease}.materials-fdm-page .materials-table tbody tr:hover{background:#f8fbff}.materials-fdm-page .materials-table tbody td:nth-child(1),.materials-fdm-page .materials-table tbody td:nth-child(2){padding-left:var(--cell-left-padding)}.materials-fdm-page .materials-table tbody td:nth-child(1){font-weight:600;text-align:var(--col-align-filament)}.materials-fdm-page .materials-table tbody td:nth-child(2){text-align:var(--col-align-brand)}.materials-fdm-page .materials-table tbody td:nth-child(3){text-align:var(--col-align-nozzle)}.materials-fdm-page .materials-table tbody td:nth-child(4){text-align:var(--col-align-bed)}.materials-fdm-page .materials-table tbody td:nth-child(5){text-align:var(--col-align-hdt)}.materials-fdm-page .materials-table tbody td:nth-child(6){text-align:var(--col-align-melt)}.materials-fdm-page .materials-skeleton{height:12px;margin-inline:auto;width:70%}.materials-fdm-page .materials-pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.materials-fdm-page .materials-pagination .page-btn{appearance:none;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-sm);height:34px;min-width:34px;padding:0 10px;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.materials-fdm-page .materials-pagination .page-btn:hover{background:var(--color-surface-muted)}.materials-fdm-page .materials-pagination .page-btn:active{transform:scale(.94)}.materials-fdm-page .materials-pagination .page-btn.active{background:var(--color-ink);border-color:var(--color-ink);color:#fff}.materials-fdm-page .materials-references{color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.6;margin-top:8px}.materials-fdm-page .materials-references .references-title{color:var(--color-text);font-size:var(--text-sm);font-weight:700;margin:0 0 6px}.materials-fdm-page .materials-references ol{margin:0;padding-left:18px}.materials-fdm-page .materials-references li{margin:2px 0;overflow-wrap:anywhere}.materials-fdm-page .materials-references li:target{background:var(--color-highlight);border-radius:4px}.materials-fdm-page .materials-references a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-border-strong)}@media (max-width: 900px){.materials-fdm-page .materials-layout{grid-template-columns:1fr}.materials-fdm-page .materials-filter{position:static}}.contact-card{align-items:center;display:grid;gap:16px 20px;grid-template-columns:auto minmax(0,1fr) auto;max-width:860px;padding:clamp(20px,4vw,28px)}.contact-card__icon{align-items:center;background:var(--color-accent-soft);border-radius:var(--radius);color:var(--color-accent-strong);display:inline-flex;height:52px;justify-content:center;width:52px}.contact-card__icon svg{height:26px;width:26px}.contact-card__body{display:flex;flex-direction:column;gap:4px;min-width:0}.contact-card__label{color:var(--color-text-muted);font-size:var(--text-sm)}.contact-card__email{color:var(--color-text);font-size:var(--text-xl);font-weight:700;overflow-wrap:anywhere;text-decoration:none}.contact-card__email:hover{color:var(--color-accent-strong);text-decoration:underline}.contact-card__actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width: 720px){.contact-card{grid-template-columns:auto minmax(0,1fr)}.contact-card__actions{grid-column:1 / -1}.contact-card__actions .btn{flex:1 1 0}}.plando-legal-page{min-height:100vh;background:#f7f7f4;color:#141414;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:48px 20px;box-sizing:border-box}.plando-legal-shell{width:min(880px,100%);margin:0 auto;background:#fff;border:1px solid #deded8;border-radius:8px;padding:clamp(28px,5vw,56px);box-sizing:border-box;line-height:1.65}.plando-legal-back{color:#141414;font-size:14px;font-weight:700;text-decoration:none}.plando-legal-kicker{margin:34px 0 8px;color:#5f625f;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.plando-legal-shell h1{margin:0;color:#111;font-size:clamp(36px,6vw,56px);line-height:1.05;letter-spacing:0}.plando-legal-date{margin:12px 0 32px;color:#686b68;font-size:15px}.plando-legal-shell h2{margin:34px 0 8px;color:#111;font-size:21px;line-height:1.25;letter-spacing:0}.plando-legal-shell p{margin:0 0 16px;font-size:16px}.plando-legal-shell a{color:#1d5c63;text-decoration:underline;text-underline-offset:3px}@media (max-width: 640px){.plando-legal-page{padding:20px 12px}.plando-legal-shell{padding:24px 20px}}.plando-legal-shell{box-shadow:0 18px 52px #0f172a14}.plando-legal-header{align-items:center;display:flex;gap:16px;justify-content:space-between}:root{--font-sans: "Work Sans", "PingFang SC", "PingFang TC", "Hiragino Sans GB", "Microsoft YaHei", "Microsoft JhengHei", "Noto Sans SC", "Noto Sans TC", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--color-bg: #f7f8fb;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-text: #0f172a;--color-text-muted: #556070;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-ink: #0f172a;--color-ink-hover: #1e293b;--color-accent: #0284c7;--color-accent-strong: #0369a1;--color-accent-soft: #e0f2fe;--color-highlight: #fef3c7;--color-highlight-strong: #92400e;--color-success: #15803d;--color-success-soft: #dcfce7;--color-danger: #b91c1c;--color-danger-soft: #fee2e2;--radius-sm: 8px;--radius: 12px;--radius-lg: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 48px rgba(15, 23, 42, .14);--ring: 0 0 0 3px rgba(2, 132, 199, .35);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .15s;--dur: .24s;--dur-slow: .52s;--header-h: 64px;--container: 1120px;--gutter: clamp(16px, 4vw, 32px);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-display: clamp(34px, 5.4vw, 56px);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}html,body,#root{margin:0;min-height:100vh;padding:0}body{background:radial-gradient(1200px 520px at 0% -10%,rgba(224,242,254,.9),transparent 60%),radial-gradient(900px 420px at 100% 0%,rgba(254,243,199,.55),transparent 60%),var(--color-bg);background-attachment:fixed;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.is-scroll-locked{overflow:hidden}img{display:block;max-width:100%}a{color:var(--color-accent-strong);text-decoration-thickness:1px;text-underline-offset:3px}a,button,select,input,summary{-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}h1,h2,h3,h4{letter-spacing:-.01em;line-height:1.2;margin:0}p{margin:0}:focus-visible{border-radius:var(--radius-sm);box-shadow:var(--ring);outline:none}::selection{background:var(--color-accent-soft)}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.container{margin-inline:auto;max-width:calc(var(--container) + 2 * var(--gutter));padding-inline:var(--gutter);width:100%}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.btn{align-items:center;appearance:none;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:8px;justify-content:center;line-height:1;min-height:40px;padding:0 18px;text-decoration:none;transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,box-shadow var(--dur) var(--ease-out),color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong)}.btn:active{transform:scale(.97)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.btn:disabled:active{transform:none}.btn--primary{background:var(--color-ink);border-color:var(--color-ink);color:#fff}.btn--primary:hover{background:var(--color-ink-hover);border-color:var(--color-ink-hover);box-shadow:0 6px 18px #0f172a2e}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:#0f172a0d;border-color:transparent}.btn--lg{font-size:var(--text-base);min-height:48px;padding:0 24px}.btn--block{width:100%}.btn svg{flex:none;height:18px;width:18px}.icon-btn{align-items:center;appearance:none;background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-text);cursor:pointer;display:inline-flex;height:40px;justify-content:center;padding:0;transition:background-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out);width:40px}.icon-btn:hover{background:#0f172a0f}.icon-btn:active{transform:scale(.92)}.icon-btn svg{height:22px;width:22px}.site-header{background:#f7f8fb99;border-bottom:1px solid transparent;position:sticky;top:0;transition:background-color var(--dur) ease,border-color var(--dur) ease,box-shadow var(--dur) ease;z-index:100;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}.site-header[data-scrolled=true]{background:#ffffffd1;border-bottom-color:var(--color-border);box-shadow:0 6px 24px #0f172a0f}.site-header__inner{align-items:center;display:flex;gap:16px;height:var(--header-h)}.brand{align-items:center;border-radius:var(--radius-sm);color:var(--color-text);display:inline-flex;flex:none;font-size:20px;font-weight:700;gap:10px;letter-spacing:-.02em;line-height:1;text-decoration:none}.brand img{height:32px;transition:transform var(--dur) var(--ease-out);width:32px}.brand:hover img{transform:rotate(-8deg) scale(1.06)}.site-nav{align-items:center;display:flex;gap:4px;margin-left:12px}.nav-item{align-items:center;appearance:none;background:transparent;border:0;border-radius:var(--radius-pill);color:var(--color-text-muted);cursor:pointer;display:inline-flex;font-size:15px;font-weight:500;height:40px;justify-content:center;line-height:1;min-width:6rem;padding:0 14px;position:relative;text-decoration:none;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out);white-space:nowrap}.nav-item:after{background:var(--color-accent);border-radius:2px;bottom:4px;content:"";height:2px;left:50%;position:absolute;transform:translate(-50%) scaleX(0);transform-origin:center;transition:transform var(--dur) var(--ease-out);width:24px}.nav-item:hover{background:#0f172a0d;color:var(--color-text)}.nav-item:active{transform:scale(.96)}.nav-item.active{color:var(--color-text);font-weight:600}.nav-item.active:after{transform:translate(-50%) scaleX(1)}.nav-item[aria-disabled=true]{cursor:default}.site-actions{align-items:center;display:flex;flex:none;gap:8px;margin-left:auto}.auth-actions{align-items:center;display:flex;gap:6px}.auth-actions .btn{min-width:6rem}.menu-toggle{display:none}.lang-switch{align-items:center;display:inline-flex;flex:none;position:relative;width:9.5rem}.lang-switch svg{color:var(--color-text-muted);height:16px;left:12px;pointer-events:none;position:absolute;width:16px}.lang-switch select{appearance:none;background:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%) calc(100% - 17px) 52% / 5px 5px no-repeat,linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%) calc(100% - 12px) 52% / 5px 5px no-repeat,var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text);cursor:pointer;font-size:var(--text-sm);height:40px;line-height:1;overflow:hidden;padding:0 30px 0 36px;text-overflow:ellipsis;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease;white-space:nowrap;width:100%}.lang-switch select:hover{border-color:var(--color-border-strong)}.mobile-sheet,.mobile-backdrop{display:none}@media (max-width: 1060px){.site-nav,.site-actions .auth-actions{display:none}.menu-toggle{display:inline-flex}.mobile-backdrop{background:#0f172a47;display:block;height:100vh;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:100%;transition:opacity var(--dur) ease}.mobile-backdrop[data-open=true]{opacity:1;pointer-events:auto}.mobile-sheet{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:block;left:0;max-height:calc(100vh - var(--header-h));opacity:0;overflow-y:auto;pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(-8px);transition:opacity var(--dur) ease,transform var(--dur) var(--ease-out),visibility 0s linear var(--dur);visibility:hidden;z-index:1}.mobile-sheet[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity var(--dur) ease,transform var(--dur) var(--ease-out),visibility 0s;visibility:visible}.mobile-sheet__inner{display:flex;flex-direction:column;gap:4px;padding-block:12px 20px}.mobile-sheet .nav-item{border-radius:var(--radius);font-size:var(--text-lg);height:52px;justify-content:flex-start;padding:0 16px;width:100%}.mobile-sheet .nav-item:after{bottom:50%;height:18px;left:4px;transform:translateY(50%) scaleY(0);width:3px}.mobile-sheet .nav-item.active{background:var(--color-accent-soft)}.mobile-sheet .nav-item.active:after{transform:translateY(50%) scaleY(1)}.mobile-sheet__footer{border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding-top:16px}.mobile-sheet__footer .auth-actions{display:flex;flex:1 1 auto}.mobile-sheet__footer .auth-actions .btn{flex:1 1 0}.mobile-sheet .lang-switch{display:none}}@media (max-width: 480px){.site-actions .lang-switch{display:none}.mobile-sheet .lang-switch{display:inline-flex;width:100%}}.site-main{min-height:calc(100vh - var(--header-h) - 120px);padding-bottom:72px}.page{animation:page-enter var(--dur-slow) var(--ease-out) both;display:flex;flex-direction:column;gap:clamp(40px,6vw,72px);padding-top:clamp(32px,6vw,64px)}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-head{display:flex;flex-direction:column;gap:12px;max-width:760px}.page-head h1{font-size:clamp(30px,4.4vw,44px);font-weight:700}.page-head p{color:var(--color-text-muted);font-size:var(--text-lg)}.eyebrow{color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section{display:flex;flex-direction:column;gap:20px}.section__head{display:flex;flex-direction:column;gap:6px}.section__head h2{font-size:var(--text-2xl);font-weight:700}.section__head p{color:var(--color-text-muted)}.back-link{align-items:center;align-self:flex-start;border-radius:var(--radius-pill);color:var(--color-text-muted);display:inline-flex;font-size:var(--text-sm);font-weight:600;gap:6px;margin:0 -10px;padding:6px 10px;text-decoration:none;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}.back-link:hover{background:#0f172a0d;color:var(--color-text)}.back-link svg{height:16px;transition:transform var(--dur-fast) var(--ease-out);width:16px}.back-link:hover svg{transform:translate(-3px)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card--interactive{color:inherit;text-decoration:none;transition:border-color var(--dur) ease,box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.card--interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.card--interactive:active{transform:translateY(-1px) scale(.99)}.chip{align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);display:inline-flex;font-size:var(--text-xs);font-weight:600;gap:6px;line-height:1;padding:6px 10px;white-space:nowrap}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.badge-soon{background:var(--color-highlight);border-radius:var(--radius-pill);color:var(--color-highlight-strong);font-size:var(--text-xs);font-weight:700;line-height:1;padding:5px 9px;white-space:nowrap}.arrow-icon{flex:none;height:18px;transition:transform var(--dur) var(--ease-out);width:18px}.card--interactive:hover .arrow-icon,.btn:hover .arrow-icon{transform:translate(3px)}.card--interactive:hover .external-icon{transform:translate(2px,-2px)}.reveal{opacity:0;transform:translateY(14px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay, 0ms)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7 80%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.duoduo-note{align-items:center;display:grid;gap:clamp(20px,4vw,40px);grid-template-columns:minmax(0,260px) minmax(0,1fr);overflow:hidden;padding:clamp(16px,3vw,24px)}.duoduo-note__photo{aspect-ratio:432 / 460;border-radius:var(--radius);height:auto;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out);width:100%}.duoduo-note:hover .duoduo-note__photo{transform:rotate(-1.5deg) scale(1.02)}.duoduo-note__body{display:flex;flex-direction:column;gap:10px}.duoduo-note__title{font-size:var(--text-xl);font-weight:700}.duoduo-note__text{color:var(--color-text-muted);max-width:52ch}.duoduo-note__paws{color:var(--color-text);font-weight:700}@media (max-width: 640px){.duoduo-note{grid-template-columns:1fr;text-align:center}.duoduo-note__photo{margin-inline:auto;max-width:260px}.duoduo-note__body{align-items:center}}.toast-region{align-items:center;bottom:max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;transform:translate(-50%);width:min(92vw,420px);z-index:4000}.toast{align-items:center;animation:toast-in var(--dur) var(--ease-out) both;background:var(--color-ink);border-radius:14px;box-shadow:var(--shadow-lg);color:#fff;display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:10px;max-width:100%;padding:12px 18px}.toast[data-leaving=true]{animation:toast-out var(--dur) ease both}.toast svg{flex:none;height:18px;width:18px}.toast--success svg{color:#86efac}.toast--info svg{color:#7dd3fc}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}.auth-notice-button{appearance:none}.auth-unavailable-backdrop{align-items:center;animation:fade-in var(--dur) ease both;background:#0f172a6b;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:3000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-unavailable-dialog{animation:dialog-in var(--dur) var(--ease-out) both;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 24px 80px #0f172a3d;display:flex;flex-direction:column;gap:12px;max-width:440px;padding:28px;width:min(100%,440px)}.auth-unavailable-dialog h2{font-size:var(--text-xl)}.auth-unavailable-dialog p{color:var(--color-text-muted);font-size:15px;margin-bottom:10px}.auth-unavailable-dialog .btn{align-self:flex-start}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.96)}}.auth-disabled-panel{align-items:center;display:flex;flex-direction:column;gap:14px;margin-inline:auto;max-width:480px;padding:clamp(24px,5vw,40px);text-align:center;width:100%}.auth-disabled-panel h1{font-size:var(--text-2xl)}.auth-disabled-panel p{color:var(--color-text-muted)}.status-icon{align-items:center;background:var(--color-accent-soft);border-radius:50%;color:var(--color-accent-strong);display:inline-flex;height:52px;justify-content:center;width:52px}.status-icon svg{height:26px;width:26px}.field{display:flex;flex-direction:column;font-size:var(--text-sm);font-weight:600;gap:6px;text-align:left}.input{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-base);font-weight:400;min-height:44px;padding:0 12px;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease;width:100%}.input:hover{border-color:#94a3b8}.input:focus{border-color:var(--color-accent);box-shadow:var(--ring);outline:none}.input[aria-invalid=true]{border-color:var(--color-danger)}.field-hint{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:400}.field-error{color:var(--color-danger);font-size:var(--text-xs);font-weight:500}.alert{border-radius:var(--radius-sm);font-size:var(--text-sm);padding:10px 12px;text-align:left}.alert--error{background:var(--color-danger-soft);color:var(--color-danger)}.alert--success{background:var(--color-success-soft);color:var(--color-success)}.alert--info{background:var(--color-accent-soft);color:var(--color-accent-strong)}.spinner{animation:spin .8s linear infinite;border:2px solid currentColor;border-radius:50%;border-right-color:transparent;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(360deg)}}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm)}.site-footer__inner{align-items:center;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;padding-block:24px}.site-footer nav{display:flex;flex-wrap:wrap;gap:4px 16px}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--color-text);text-decoration:underline}.skip-link{background:var(--color-ink);border-radius:var(--radius-pill);color:#fff;font-size:var(--text-sm);font-weight:600;left:16px;padding:10px 16px;position:fixed;text-decoration:none;top:10px;transform:translateY(-160%);transition:transform var(--dur) var(--ease-out);z-index:200}.skip-link:focus-visible{transform:none}
