:root{--bg:#ffffff;--bg-soft:#f6f6f4;--fg:#16161a;--fg-muted:#6b6b73;--border:#e6e6e2;--card:#ffffff;--accent:#16161a;--max:1080px;--radius:14px}@media (prefers-color-scheme:dark){:root{--bg:#0d0d0f;--bg-soft:#141417;--fg:#ececef;--fg-muted:#9a9aa4;--border:#26262b;--card:#141417;--accent:#ececef}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;color:var(--fg);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{line-height:1.25;letter-spacing:-.01em;font-weight:700}.wrap{max-width:var(--max);margin:0 auto;padding:0 1.5rem}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}.brand{font-weight:700;letter-spacing:-.02em}.nav{display:flex;gap:1.5rem;font-size:.95rem}.nav a{color:var(--fg-muted);transition:color .15s}.nav a:hover{color:var(--fg)}.site-footer{border-top:1px solid var(--border);margin-top:5rem;padding:2.5rem 0;color:var(--fg-muted);font-size:.9rem}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}.footer-links{display:flex;flex-wrap:wrap;gap:1rem}.hero{padding:5rem 0 3rem}.hero h1{font-size:clamp(2rem,5vw,3.2rem);max-width:18ch}.hero .lead{margin-top:1.5rem;max-width:62ch;color:var(--fg-muted);font-size:1.08rem}.section{padding:3rem 0}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;color:var(--fg-muted);margin-bottom:1.5rem}.product-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.product-card{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.75rem;overflow:hidden;transition:transform .18s ease,border-color .18s ease}.product-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.product-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--pc-accent,var(--accent))}.product-kind{font-size:.78rem;color:var(--fg-muted);letter-spacing:.04em}.product-card h3{font-size:1.25rem;margin:.5rem 0 .75rem}.product-card p{color:var(--fg-muted);font-size:.95rem}.product-card .more{display:inline-block;margin-top:1.25rem;font-size:.9rem;font-weight:600;color:var(--pc-accent,var(--accent))}.badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;letter-spacing:.03em;padding:.2rem .6rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--b-accent,var(--accent)) 45%,var(--border));color:var(--b-accent,var(--fg));background:color-mix(in srgb,var(--b-accent,var(--accent)) 10%,transparent)}.badge .dot{width:7px;height:7px;border-radius:999px;background:var(--b-accent,var(--accent))}.work-grid{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));list-style:none}.work-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card);transition:transform .18s ease,border-color .18s ease;height:100%}.work-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.work-thumb{aspect-ratio:4/3;object-fit:cover;width:100%;background:var(--bg-soft)}.work-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--fg-muted);font-size:.85rem}.work-card .body{padding:1rem 1.1rem 1.25rem}.work-card h3{font-size:1.05rem;margin:.6rem 0 .35rem}.work-card .meta{color:var(--fg-muted);font-size:.82rem}.work-card .desc{color:var(--fg-muted);font-size:.9rem;margin-top:.5rem}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter-btn{font:inherit;font-size:.9rem;cursor:pointer;padding:.4rem .9rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--fg-muted);transition:all .15s}.filter-btn:hover{color:var(--fg)}.filter-btn.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.detail{padding:3rem 0}.detail h1{font-size:clamp(1.6rem,4vw,2.4rem);margin:1rem 0 .5rem}.detail .subline{color:var(--fg-muted);font-size:.95rem}.detail .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:.75rem;gap:.75rem;margin-top:2rem}.detail .gallery img{width:100%;border-radius:10px;border:1px solid var(--border)}.prose{margin-top:2rem;max-width:68ch}.prose h2{font-size:1.3rem;margin:2rem 0 .75rem}.prose p{margin:.75rem 0}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose ul{padding-left:1.25rem;margin:.75rem 0}.embed-frame{position:relative;padding-top:56.25%;margin-top:2rem;border-radius:12px;overflow:hidden;border:1px solid var(--border)}.embed-frame iframe,.embed-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}.btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.92rem;font-weight:600;padding:.55rem 1.1rem;border-radius:10px;border:1px solid var(--border);transition:all .15s}.btn-primary,.btn:hover{border-color:var(--fg)}.btn-primary{background:var(--fg);color:var(--bg)}.back-link{color:var(--fg-muted);font-size:.9rem}.back-link:hover{color:var(--fg)}.empty-note{color:var(--fg-muted);font-size:.95rem;border:1px dashed var(--border);border-radius:var(--radius);padding:2rem;text-align:center}.hero-splat{width:100%;background:var(--bg-soft);border-bottom:1px solid var(--border)}.splat-wrap{position:relative;width:100%;overflow:hidden;touch-action:none}.splat-canvas{width:100%;height:100%;cursor:-webkit-grab;cursor:grab}.splat-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.splat-loading{inset:0;display:flex;align-items:center;justify-content:center;color:var(--fg-muted);font-size:.9rem}.splat-hint,.splat-loading{position:absolute;pointer-events:none}.splat-hint{bottom:12px;right:14px;font-size:.75rem;color:var(--fg);background:color-mix(in srgb,var(--bg) 70%,transparent);border:1px solid var(--border);padding:.3rem .6rem;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.placeholder-splat{display:flex;align-items:center;justify-content:center;height:60vh;color:var(--fg-muted)}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}.nav-cta{color:var(--fg)!important;font-weight:600;border:1px solid var(--border);padding:.35rem .8rem;border-radius:999px}.nav-cta:hover{border-color:var(--fg)}.service-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.service-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.5rem}.service-item h3{font-size:1.1rem;margin-bottom:.6rem}.service-item p{color:var(--fg-muted);font-size:.92rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.tag{font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.18rem .55rem;border-radius:999px;border:1px solid var(--border);color:var(--fg-muted)}.tag-3d{color:#fff;background:linear-gradient(135deg,#7c3aed,#db2777);border:none}.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1rem 1.5rem;gap:1rem 1.5rem;margin:1.5rem 0 0;padding:1.25rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.spec dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted)}.spec dd{margin-top:.25rem;font-size:.95rem}.contact-form{display:grid;grid-gap:1.1rem;gap:1.1rem}.field{display:grid;grid-gap:.4rem;gap:.4rem}.field label{font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.65rem .8rem;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.field textarea{resize:vertical}.contact-form .btn-primary{justify-self:start}.contact-form .btn:disabled{opacity:.5;cursor:not-allowed}.form-note{font-size:.85rem;color:var(--fg-muted);background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem;line-height:1.6}.form-note a{text-decoration:underline}.form-error{color:#dc2626;font-size:.9rem}.form-done{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);padding:2rem;text-align:center;line-height:1.8}