:root{--bg:#333;--fg:#f4f4f5;--muted:#a1a1aa;--surface:#3d3d42;--surface-2:#3d3d42;--border:#4a4a50;--border-strong:#55555c;--border-hover:#71717a;--chip:#3d3d42;--chip-active:#f4f4f5;--chip-active-fg:#18181b;--chip-count-active:#71717a;--danger:#f87171;--danger-border:#5b2b2b;--gap:16px}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Apple SD Gothic Neo,sans-serif}body.has-footer{flex-direction:column;min-height:100dvh;display:flex}body.has-footer>main{flex:1 0 auto}body.has-footer>.site-footer{flex-shrink:0}.site-header{align-items:center;padding:20px clamp(16px,4vw,48px) 8px;display:flex}.site-header h1{letter-spacing:.04em;text-transform:lowercase;margin:0;font-size:20px}.site-logo a{color:var(--fg);text-decoration:none;display:inline-block}.site-logo img{width:auto;height:clamp(34px,5.85vw,65px);display:block}.searchbar{padding:8px clamp(16px,4vw,48px) 20px}.search{width:100%;position:relative}.search-icon{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.search-suggest{z-index:40;background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;max-height:340px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000026}.search-suggest[hidden]{display:none}.search-suggest li{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.search-suggest li.is-hi{background:var(--chip)}.search-suggest .s-type{color:var(--muted);text-align:center;flex:none;width:14px}.search input{width:100%;font:inherit;color:var(--fg);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;padding:13px 22px 13px 48px;font-size:15px}.search input::placeholder{color:var(--muted)}.search input:focus{border-color:var(--border-hover);outline:none}.search-info{color:var(--muted);margin:0 0 16px;font-size:13px}.search-info a{color:var(--fg)}main{padding:24px clamp(16px,4vw,48px) 64px}.nav-toggle{z-index:80;border:1px solid var(--border-strong);background:var(--surface);width:42px;height:42px;color:var(--fg);cursor:pointer;border-radius:12px;place-items:center;transition:border-color .15s,background .15s;display:grid;position:fixed;top:16px;right:16px;box-shadow:0 2px 10px #00000040}.nav-toggle:hover{border-color:var(--border-hover)}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";background:var(--fg);border-radius:2px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.nav-toggle-bars{position:relative}.nav-toggle-bars:before{position:absolute;top:-6px;left:0}.nav-toggle-bars:after{position:absolute;top:6px;left:0}.nav-toggle.is-open .nav-toggle-bars{background:0 0}.nav-toggle.is-open .nav-toggle-bars:before{transform:translateY(6px)rotate(45deg)}.nav-toggle.is-open .nav-toggle-bars:after{transform:translateY(-6px)rotate(-45deg)}.nav-overlay{z-index:90;opacity:0;background:#00000080;transition:opacity .25s;position:fixed;inset:0}.nav-overlay.is-open{opacity:1}.nav-overlay[hidden]{display:none}.nav-drawer{z-index:100;background:var(--surface);border-left:1px solid var(--border);width:min(280px,80vw);height:100dvh;padding:72px 8px 24px;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-8px 0 28px #00000059}.nav-drawer.is-open{transform:translate(0)}.nav-close{width:40px;height:40px;color:var(--fg);cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;font-size:26px;line-height:1;display:grid;position:absolute;top:16px;right:16px}.nav-close:hover{background:var(--chip)}.nav-list{margin:0;padding:0;list-style:none}.nav-list a{color:var(--fg);letter-spacing:.08em;border-radius:10px;padding:14px 18px;font-size:15px;text-decoration:none;transition:background .15s;display:block}.nav-list a:hover{background:var(--chip)}.contact-trigger{z-index:80;cursor:pointer;background:0 0;border:none;padding:0;line-height:0;position:fixed;top:14px;left:50%;transform:translate(-50%)}.contact-trigger img{width:auto;height:68px;display:block}.detail-page .contact-trigger{display:none}.contact-modal{z-index:110;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.contact-modal[hidden]{display:none}.contact-backdrop{opacity:0;background:#0009;transition:opacity .2s;position:absolute;inset:0}.contact-modal.is-open .contact-backdrop{opacity:1}.contact-dialog{background:var(--surface);border:1px solid var(--border);opacity:0;border-radius:18px;width:min(440px,100%);padding:32px 28px;position:relative;box-shadow:0 12px 40px #00000080}.contact-modal.is-open .contact-dialog{animation:.44s cubic-bezier(.2,.8,.3,1) both contact-bounce}@keyframes contact-bounce{0%{opacity:0;transform:translateY(16px)scale(.9)}55%{opacity:1;transform:translateY(-6px)scale(1.04)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.contact-modal.is-open .contact-dialog{opacity:1;animation:none}}.contact-close{width:36px;height:36px;color:var(--fg);cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;font-size:24px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.contact-close:hover{background:var(--chip)}.contact-name{letter-spacing:.02em;margin:0 0 20px;font-size:20px}.contact-info{margin:0}.contact-row{margin-bottom:16px}.contact-row:last-child{margin-bottom:0}.contact-row dt{letter-spacing:.12em;color:var(--muted);margin-bottom:4px;font-size:12px}.contact-row dd{margin:0;font-size:15px;line-height:1.5}.contact-row dd a{color:var(--fg);text-decoration:none}.contact-row dd a:hover{text-decoration:underline}.tag-filter-wrap{align-items:center;gap:8px;margin-bottom:24px;display:flex}.tag-filter{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;flex:1;gap:8px;min-width:0;display:flex;overflow-x:auto}.tag-filter::-webkit-scrollbar{display:none}.tag-filter .tag-chip{white-space:nowrap;flex:none}.tag-scroll-btn{border:1px solid var(--border-strong);background:var(--surface);width:40px;height:40px;color:var(--fg);cursor:pointer;border-radius:11px;flex:none;place-items:center;transition:border-color .15s,opacity .15s;display:grid;box-shadow:0 2px 8px #0006}.tag-scroll-btn:hover:not(:disabled){border-color:var(--border-hover)}.tag-scroll-btn:disabled{opacity:.35;cursor:default}.tag-scroll-btn[hidden]{display:none}.tag-scroll-btn svg{display:block}.tag-chip{border:1px solid var(--border-strong);background:var(--chip);color:var(--fg);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.tag-chip:hover{border-color:var(--border-hover)}.tag-chip.is-active{background:var(--chip-active);color:var(--chip-active-fg);border-color:var(--chip-active)}.tag-chip .count{color:var(--muted);margin-left:4px;font-size:11px}.tag-chip.is-active .count{color:var(--chip-count-active)}.masonry{column-count:4;column-gap:var(--gap)}@media (width<=1100px){.masonry{column-count:3}}@media (width<=760px){.masonry{column-count:2}}@media (width<=460px){.masonry{column-count:1}}.masonry-item{break-inside:avoid;margin:0 0 var(--gap)}.masonry-item[hidden]{display:none}.masonry-item img,.masonry-item video{border-radius:12px;width:100%;height:auto;display:block}.masonry-link{display:block}.masonry-item img{cursor:pointer}.media-frame,.media-video{display:block;position:relative}.video-badge{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;place-items:center;width:28px;height:28px;font-size:11px;display:grid;position:absolute;top:10px;left:10px}.count-badge{color:#fff;pointer-events:none;background:#0000009e;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:10px;right:10px}.count-badge svg{display:block}.masonry-item figcaption{color:var(--fg);padding:8px 4px 0;font-size:13px;line-height:1.4}.masonry-item .cap-title{font-weight:700;display:block}.masonry-item .cap-subtitle{font-weight:400;display:block}.empty{color:var(--muted);padding:48px 0}.site-footer{background:var(--fg);color:var(--bg);margin-top:48px;padding:48px clamp(16px,4vw,48px);font-size:15px;line-height:1.8}.footer-cols{flex-wrap:wrap;gap:28px 64px;max-width:1200px;margin:0 auto;display:flex}.footer-col h4{letter-spacing:.1em;opacity:.55;margin:0 0 10px;font-size:13px}.footer-col p{margin:0}.footer-col a{color:inherit;text-decoration:none}.footer-col a:hover{text-decoration:underline}.footer-copy{letter-spacing:.02em;opacity:.55;max-width:1200px;margin:32px auto 0;font-size:13px}.site-header .back-link{color:var(--fg);letter-spacing:.04em;text-transform:lowercase;font-size:20px;text-decoration:none}.detail{padding:24px clamp(16px,4vw,48px) 64px}.pin-grid{opacity:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:8px;grid-auto-flow:dense;column-gap:16px;max-width:min(92vw,2600px);margin:0 auto;display:grid}.pin-grid.ready{opacity:1;transition:opacity .2s}.pin-cell{min-width:0;margin:0}.pin-cell--feature{grid-column:span 2}.detail-card{background:var(--bg);border:1px solid var(--border);border-radius:20px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 6px 28px #0000001a}.detail-media{background:var(--bg);display:flex;position:relative}.detail-media img,.detail-media video{object-fit:contain;width:100%;height:auto;max-height:66vh;display:block}.zoom-btn{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:999px;padding:8px 14px;font-size:13px;position:absolute;bottom:12px;right:12px}.zoom-btn:hover{background:#000c}.carousel{width:100%;position:relative;overflow:hidden}.carousel-track{transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex}.carousel-slide{flex:0 0 100%;justify-content:center;align-items:center;min-width:0;display:flex}.carousel-arrow{z-index:3;color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:999px;place-items:center;width:40px;height:40px;font-size:26px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow:hover{background:#000000b8}.carousel-prev{left:12px}.carousel-next{right:12px}.carousel-dots{z-index:3;gap:7px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.carousel-dot{cursor:pointer;background:#ffffff73;border:none;border-radius:999px;width:8px;height:8px;padding:0}.carousel-dot.is-active{background:#fff}.detail-meta{max-height:66vh;padding:24px;overflow-y:auto}.detail-meta h1{margin:0 0 8px;font-size:22px;line-height:1.3}.detail-subtitle{color:var(--fg);margin:0 0 16px;font-size:15px;font-weight:400;line-height:1.5}.detail-desc{color:var(--muted);white-space:pre-wrap;margin:0 0 16px;font-size:14px;line-height:1.6}.detail-tags{flex-wrap:wrap;gap:8px;display:flex}.pin-grid figure .pin-link{display:block}.pin-grid figure img,.pin-grid figure video{border-radius:12px;width:100%;height:auto;display:block}.pin-cap{color:var(--fg);padding:8px 4px 0;font-size:13px;line-height:1.4}@media (width<=1100px){.pin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.pin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-card{grid-template-columns:1fr}}@media (width<=480px){.pin-grid{grid-template-columns:1fr}.pin-cell--feature{grid-column:span 1}}.back-fab{z-index:60;border:1.5px solid var(--fg);background:var(--bg);width:42px;height:42px;color:var(--fg);cursor:pointer;border-radius:12px;place-items:center;font-size:20px;line-height:1;display:grid;position:fixed;top:16px;left:16px;box-shadow:0 2px 10px #0000001f}.back-fab:hover{background:var(--chip)}.lightbox{z-index:100;opacity:0;background:#000000e6;place-items:center;padding:24px;transition:opacity .28s;display:grid;position:fixed;inset:0}.lightbox.is-open{opacity:1}.lightbox[hidden]{display:none}.lightbox-media{object-fit:contain;will-change:transform;border-radius:8px;max-width:95vw;max-height:92vh}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:999px;place-items:center;width:40px;height:40px;font-size:24px;line-height:1;display:grid;position:fixed;top:16px;right:20px}.lightbox-close:hover{background:#ffffff38}.about{max-width:960px;margin:0 auto;padding:clamp(40px,8vw,104px) clamp(16px,4vw,48px) 96px}.about-intro{margin-bottom:clamp(56px,9vw,112px)}.about-lead{letter-spacing:-.015em;max-width:22ch;color:var(--fg);margin:0 0 clamp(28px,4vw,44px);font-size:clamp(27px,4.6vw,48px);font-weight:600;line-height:1.26}@media (width>=720px){.about-lead{max-width:none}}.about-body{max-width:640px;color:var(--muted);word-break:keep-all;margin:0;font-size:clamp(15px,1.5vw,17px);line-height:1.95}.about-areas{border-top:1px solid var(--border);padding-top:clamp(28px,4vw,44px)}.about-areas-title{color:var(--fg);margin:0 0 clamp(18px,3vw,30px);font-size:clamp(20px,2.4vw,26px);font-weight:600}.about-eyebrow{letter-spacing:.24em;color:var(--muted);margin-bottom:10px;font-size:12px;font-weight:600;display:block}.about-areas-list{margin:0;padding:0;list-style:none}.about-areas-list li{border-top:1px solid var(--border);align-items:baseline;gap:clamp(16px,3vw,34px);padding:clamp(16px,2.4vw,22px) 4px;transition:padding-left .2s;display:flex}.about-areas-list li:last-child{border-bottom:1px solid var(--border)}.about-areas-list li:hover{padding-left:12px}.area-index{letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:600}.area-name{letter-spacing:-.005em;color:var(--fg);font-size:clamp(18px,2.6vw,28px);font-weight:500}
