.portal-body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--portal-body);line-height:var(--portal-line-body);flex-direction:column;margin:0;display:flex}.portal-main{flex:1 0 auto;display:block}.portal-skip-link{left:var(--space-4);top:calc(-1 * var(--space-16));z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--portal-small);transition:top var(--portal-transition);font-weight:600;position:absolute}.portal-skip-link:focus{top:var(--space-4)}.portal-body a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.portal-body button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.portal-body summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.portal-body input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.portal-preview-bar{padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-warning-bg);color:var(--color-text);font-size:var(--portal-small);text-align:center}.portal-preview-bar strong{font-weight:600}.portal-header{z-index:40;border-bottom:1px solid var(--color-border-light);background:color-mix(in srgb, var(--color-bg-elevated) 86%, transparent);-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.portal-header-inner{align-items:center;gap:var(--space-6);max-width:var(--portal-measure);min-height:var(--portal-header-height);padding:0 var(--space-6);margin:0 auto;display:flex;position:relative}.portal-brand{margin-right:var(--space-2);color:var(--color-text);font-size:var(--text-lg);letter-spacing:.01em;white-space:nowrap;flex:none;font-weight:600}.portal-brand:hover{color:var(--color-primary-dark)}.portal-nav-toggle,.portal-nav-burger{display:none}.portal-nav{margin-right:auto}.portal-nav-list{align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.portal-nav-item{min-width:0}.portal-nav-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--portal-nav-size);white-space:nowrap;transition:background var(--portal-transition), color var(--portal-transition);font-weight:500;display:inline-block}.portal-nav-link:hover{background:var(--portal-tint);color:var(--color-primary)}.portal-nav-link.is-current{background:var(--color-primary-bg);color:var(--color-primary-dark);font-weight:600}.portal-nav-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.portal-nav-login{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;transition:background var(--portal-transition), color var(--portal-transition);align-items:center;font-weight:500;display:inline-flex}.portal-nav-login:hover{background:var(--color-bg-soft);color:var(--color-primary)}.portal-nav-cta{padding:var(--space-2) var(--space-5);border-radius:var(--portal-radius-pill);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-sm);white-space:nowrap;box-shadow:var(--portal-shadow-card);transition:background var(--portal-transition), color var(--portal-transition), box-shadow var(--portal-transition);align-items:center;font-weight:600;display:inline-flex}.portal-nav-cta:hover{background:var(--color-primary-dark);color:var(--color-on-primary);box-shadow:var(--portal-shadow-hover)}.portal-page-head{padding:var(--portal-section-y-sm) 0;border-bottom:1px solid var(--color-divider);background:var(--color-bg)}.portal-page-head-inner{max-width:var(--portal-measure);padding:0 var(--space-6);margin:0 auto}.portal-breadcrumb{margin-bottom:var(--space-4);font-size:var(--portal-small)}.portal-breadcrumb-list{align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.portal-breadcrumb-item+.portal-breadcrumb-item:before{content:"/";margin-right:var(--space-2);color:var(--color-text-tertiary)}.portal-breadcrumb-item a{color:var(--color-text-secondary)}.portal-breadcrumb-item a:hover{color:var(--color-primary)}.portal-breadcrumb-item[aria-current=page]{color:var(--color-text-secondary)}.portal-page-header{max-width:var(--portal-measure-narrow)}.portal-page-title{max-width:20em;margin:0 0 var(--space-3);font-size:var(--portal-h1);font-weight:600;line-height:var(--portal-line-tight);text-wrap:balance}.portal-page-meta{margin:0 0 var(--space-3);color:var(--color-text-tertiary);font-size:var(--portal-small);font-variant-numeric:tabular-nums;white-space:nowrap}.portal-page-summary{color:var(--color-text-secondary);font-size:var(--portal-lead);line-height:var(--portal-line-body);margin:0}.portal-page{width:100%}.portal-error{max-width:36rem;padding:var(--space-16) var(--space-6);text-align:center;margin:0 auto}.portal-error-code{color:var(--color-primary);font-size:var(--portal-display);font-weight:600;line-height:var(--portal-line-tight);letter-spacing:.06em;font-variant-numeric:tabular-nums;margin:0}.portal-error-title{margin:var(--space-4) 0 var(--space-3);font-size:var(--portal-h2);font-weight:600;line-height:var(--portal-line-tight)}.portal-error-text{color:var(--color-text-secondary);font-size:var(--portal-lead);margin:0}.portal-site-footer{background:var(--portal-footer-bg);color:var(--portal-footer-text)}.portal-site-footer a:focus-visible{outline:2px solid var(--portal-footer-heading);outline-offset:2px}.portal-footer-inner{max-width:var(--portal-measure);padding:var(--space-16) var(--space-6) var(--space-8);font-size:var(--portal-small);margin:0 auto}.portal-footer-main{gap:var(--space-10) var(--space-12);flex-wrap:wrap;display:flex}.portal-footer-brand{flex:220px}.portal-footer-brand-name{margin:0 0 var(--space-2);color:var(--portal-footer-heading);font-size:var(--portal-h3);font-weight:600}.portal-footer-tagline{max-width:22rem;color:var(--portal-footer-text-dim);line-height:var(--portal-line-body);margin:0}.portal-footer-nav{gap:var(--space-8) var(--space-6);flex:2 320px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.portal-footer-col{min-width:0}.portal-footer-heading{margin:0 0 var(--space-4);color:var(--portal-footer-heading);font-size:var(--portal-small);letter-spacing:.04em;font-weight:600}.portal-footer-links{margin:0;padding:0;list-style:none}.portal-footer-links li{margin-bottom:var(--space-3)}.portal-footer-links a{color:var(--portal-footer-link);transition:color var(--portal-transition)}.portal-footer-links a:hover{color:var(--portal-footer-heading)}.portal-footer-contact{flex:200px}.portal-footer-phone{margin:0 0 var(--space-3);color:var(--portal-footer-heading);font-size:var(--portal-h3);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;font-weight:600}.portal-footer-phone a{color:inherit}.portal-footer-hours{margin:0 0 var(--space-4);color:var(--portal-footer-text-dim);font-size:var(--portal-micro);font-variant-numeric:tabular-nums}.portal-consult{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--portal-footer-border);border-radius:var(--radius-md);color:var(--portal-footer-link);transition:border-color var(--portal-transition), color var(--portal-transition);display:inline-flex}.portal-consult:before{content:"💬"}.portal-consult:hover{border-color:var(--portal-footer-link);color:var(--portal-footer-heading)}.portal-footer-qr{margin-top:var(--space-5)}.portal-qr-media{width:96px;height:96px;padding:var(--space-1);border:1px solid var(--portal-footer-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);object-fit:contain}.portal-qr-caption{margin:var(--space-2) 0 0;color:var(--portal-footer-text-dim);font-size:var(--portal-micro)}.portal-footer-meta{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--portal-footer-border);color:var(--portal-footer-text-dim);font-size:var(--portal-micro);text-align:center}.portal-footer-copyright,.portal-footer-icp{margin:0 0 var(--space-1)}.portal-footer-icp{font-variant-numeric:tabular-nums;white-space:nowrap}.portal-stamp{justify-content:center;gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;display:flex}.portal-stamp-tenant:after{content:"·";margin-left:var(--space-2)}.portal-stamp-platform{color:var(--portal-footer-text-dim)}@media (width<=904px){.portal-header-inner{gap:var(--space-3);padding:var(--space-2) var(--space-6);flex-wrap:wrap}.portal-brand{margin-right:auto}.portal-nav-toggle{opacity:0;width:1px;height:1px;margin:0;position:absolute}.portal-nav-burger{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--portal-small);cursor:pointer;transition:border-color var(--portal-transition), color var(--portal-transition);order:2;align-items:center;font-weight:500;display:inline-flex}.portal-nav-burger:hover{border-color:var(--color-primary);color:var(--color-primary)}.portal-nav-toggle:focus-visible~.portal-nav-burger{outline:2px solid var(--color-primary);outline-offset:2px}.portal-nav{border-top:1px solid var(--color-divider);flex-basis:100%;order:3;margin-right:0;display:none}.portal-nav-actions{align-items:stretch;gap:var(--space-2);padding-bottom:var(--space-2);flex-direction:column;flex-basis:100%;order:4;display:none}.portal-nav-toggle:checked~.portal-nav{display:block}.portal-nav-toggle:checked~.portal-nav-actions{display:flex}.portal-nav-list{flex-direction:column;align-items:stretch;gap:0}.portal-nav-item{width:100%;display:block}.portal-nav-link{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-divider);border-radius:0;display:block}.portal-nav-item:last-child .portal-nav-link{border-bottom:0}.portal-nav-login{justify-content:center}.portal-nav-cta{padding:var(--space-3) var(--space-5);justify-content:center}}@media (width<=599px){.portal-header-inner,.portal-page-head-inner,.portal-footer-inner{padding-left:var(--space-4);padding-right:var(--space-4)}.portal-page-head{padding:var(--space-8) 0}.portal-page-title{max-width:none}.portal-error{padding:var(--space-12) var(--space-4)}.portal-footer-inner{padding-top:var(--space-12)}.portal-footer-main{gap:var(--space-8)}.portal-stamp{align-items:center;gap:var(--space-1);flex-direction:column}.portal-stamp-tenant:after{content:"";margin-left:0}}.portal-card,.portal-showcase-row{position:relative}.portal-card-link:before,.portal-showcase-link:before{content:"";z-index:1;position:absolute;inset:0}.portal-item{max-width:var(--portal-measure-narrow);overflow-wrap:anywhere;margin:0 auto}.portal-item-media{width:100%;height:auto;margin:0 0 var(--space-8);border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card);aspect-ratio:16/10;object-fit:contain;display:block}.portal-item-desc{margin:0 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body)}.portal-item-actions{gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){.portal-body *,.portal-body :before,.portal-body :after{transition:none;animation:none}}.portal-tone-brand{--portal-tone:var(--color-primary)}.portal-tone-success{--portal-tone:var(--color-success)}.portal-tone-warning{--portal-tone:var(--color-warning)}.portal-tone-info{--portal-tone:var(--color-info)}.portal-tone-accent{--portal-tone:var(--color-accent)}.portal-tone-neutral{--portal-tone:var(--color-text-tertiary)}.portal-chip{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--portal-small);font-weight:500;display:inline-flex}.portal-chip:hover{color:var(--portal-tone,var(--color-primary))}.portal-chip-dot{background:var(--portal-tone,var(--color-text-tertiary));border-radius:50%;flex:none;width:8px;height:8px}.portal-post-meta{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.portal-card-post .portal-card-body{flex-direction:column;flex:1;display:flex}.portal-card-post .portal-card-media{aspect-ratio:16/9}.portal-card-post .portal-card-title a{color:var(--color-text)}.portal-card-post .portal-card-title a:hover{color:var(--color-primary)}.portal-card-post .portal-card-title a:after,.portal-post-item .portal-post-title a:after{content:"";position:absolute;inset:0}.portal-card-post .portal-post-meta,.portal-post-item .portal-post-meta{z-index:1;position:relative}.portal-post-byline{padding-top:var(--space-3);color:var(--color-text-tertiary);font-size:var(--portal-small);margin:auto 0 0}.portal-rows{margin:0;padding:0;list-style:none}.portal-row{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-4);padding:var(--space-3) 0;flex-wrap:wrap;display:flex}.portal-row:not(:last-child){border-bottom:1px solid var(--color-divider)}.portal-row-title{min-width:0;color:var(--color-text);font-size:var(--portal-body);overflow-wrap:anywhere;font-weight:500}.portal-row-title:hover{color:var(--color-primary)}.portal-row .portal-post-meta{margin:0}.portal-channel-section+.portal-channel-section{margin-top:var(--space-16)}.portal-channel-head{align-items:baseline;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.portal-channel-title{align-items:center;gap:var(--space-3);font-size:var(--portal-h2);font-weight:600;line-height:var(--portal-line-tight);margin:0;display:inline-flex}.portal-channel-dot{background:var(--portal-tone,var(--color-primary));border-radius:50%;flex:none;width:10px;height:10px}.portal-channel-lead{color:var(--color-text-secondary);font-size:var(--portal-small);flex:20em;margin:0}.portal-channel-more{color:var(--color-primary);font-size:var(--portal-small);white-space:nowrap;margin-left:auto;font-weight:600}.portal-channel-more:after{content:"→";margin-left:var(--space-1)}.portal-channel-more:hover{color:var(--color-primary-dark);text-decoration:underline}.portal-channel-body{gap:var(--space-6);align-items:start;display:grid}.portal-subnav{margin-top:var(--space-5)}.portal-subnav-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.portal-subnav-link{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--portal-small);align-items:center;display:inline-flex}.portal-subnav-link:hover{border-color:var(--portal-tone,var(--color-primary));color:var(--portal-tone,var(--color-primary))}.portal-post-tags,.portal-tag-cloud{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.portal-tag{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--portal-radius-pill);background:var(--portal-surface-soft);color:var(--color-text-secondary);font-size:var(--portal-small);display:inline-flex}.portal-tag:hover{background:var(--portal-tint-strong);color:var(--color-primary)}.portal-tag.is-current{background:var(--color-primary);color:var(--color-on-primary)}.portal-tag-count{color:var(--color-text-tertiary);font-size:var(--portal-micro);font-variant-numeric:tabular-nums}.portal-tag.is-current .portal-tag-count{color:var(--color-on-primary)}.portal-meta-bar{align-items:center;gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3);color:var(--color-text-tertiary);font-size:var(--portal-small);flex-wrap:wrap;display:flex}.portal-meta-item+.portal-meta-item:before{content:"·";margin-right:var(--space-4);color:var(--color-divider)}.portal-post-subtitle{margin:0 0 var(--space-3);color:var(--color-text-secondary);font-size:var(--portal-lead);line-height:var(--portal-line-body)}.portal-post-cover{max-width:var(--portal-measure-narrow);margin:0 auto var(--space-10)}.portal-post-cover-img{border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);width:100%;height:auto;box-shadow:var(--portal-shadow-card);aspect-ratio:1200/630;object-fit:cover;display:block}.portal-adjacent{gap:var(--space-4);max-width:var(--portal-measure-narrow);margin:0 auto;display:grid}.portal-adjacent-item{gap:var(--space-1);display:grid}.portal-adjacent-label{color:var(--color-text-tertiary);font-size:var(--portal-micro);letter-spacing:.04em}.portal-adjacent-link{color:var(--color-text);font-size:var(--portal-body);overflow-wrap:anywhere;font-weight:500}.portal-adjacent-link:hover{color:var(--color-primary)}.portal-author-card{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card);display:flex}.portal-author-avatar{background:var(--portal-tint-strong);width:48px;height:48px;color:var(--color-primary);font-size:var(--portal-h3);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.portal-author-body{min-width:0}.portal-author-name{color:var(--color-text);font-size:var(--portal-body);margin:0;font-weight:600}.portal-author-meta{margin:var(--space-1) 0 0;color:var(--color-text-tertiary);font-size:var(--portal-small)}.portal-pager{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-10);flex-wrap:wrap;display:flex}.portal-pager-list{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.portal-pager-link,.portal-pager-gap{min-width:36px;font-size:var(--portal-small);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:inline-flex}.portal-pager-link{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary)}.portal-pager-link:hover{border-color:var(--color-primary);color:var(--color-primary)}.portal-pager-link.is-current{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);font-weight:600}.portal-pager-link.is-disabled{color:var(--color-text-tertiary);opacity:.6;border-color:transparent}.portal-pager-gap{color:var(--color-text-tertiary)}@media (width>=905px){.portal-channel-body{gap:var(--space-10);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}.portal-filter-note{margin:var(--space-5) 0 0;color:var(--color-text-secondary);font-size:var(--portal-small)}.portal-section-channel .portal-section-head,.portal-section-featured .portal-section-head,.portal-section-tags .portal-section-head{margin-bottom:var(--space-8)}.portal-section-post-cover{padding-top:var(--space-10);padding-bottom:0}.portal-section-related .portal-section-inner,.portal-section-adjacent .portal-section-inner,.portal-section-post-meta .portal-section-inner{max-width:var(--portal-measure-narrow)}.portal-tone-dark .portal-row{border-bottom-color:var(--portal-dark-border)}.portal-tone-dark :is(.portal-chip,.portal-channel-lead,.portal-post-byline,.portal-meta-item,.portal-author-meta,.portal-adjacent-label,.portal-filter-note){color:var(--portal-dark-text-dim)}.portal-tone-dark :is(.portal-row-title,.portal-channel-title,.portal-adjacent-link,.portal-author-name,.portal-post-subtitle){color:var(--portal-dark-text)}.portal-tone-dark :is(.portal-author-card,.portal-tag){background:var(--portal-dark-surface);color:var(--portal-dark-text-dim)}.portal-tone-dark :is(.portal-channel-more,.portal-tag:hover){color:var(--portal-dark-text)}.portal-tone-dark .portal-post-cover-img{background:var(--portal-dark-surface)}.portal-tone-dark .portal-pager-link{border-color:var(--portal-dark-border);color:var(--portal-dark-text-dim)}.portal-tone-dark .portal-pager-link.is-current{border-color:var(--portal-dark-text);background:var(--portal-dark-text);color:var(--portal-dark-bg)}.portal-plan-list{margin:var(--space-2) 0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0;list-style:none;overflow:hidden}.portal-plan-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);display:flex}.portal-plan-item+.portal-plan-item{border-top:1px solid var(--color-border)}.portal-plan-item>.nowrap{font-family:var(--font-mono);color:var(--color-text)}