:root{--ink:#000000d9;--ink-soft:#0000008c;--ink-faint:#00000040;--light:#d0d0d0d9;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;flex-direction:column;min-height:100vh;font-size:1.25rem;font-weight:400;line-height:1.5;display:flex}a{color:inherit;text-decoration:none}img{display:block}.site-header{z-index:100;-webkit-backdrop-filter:blur(10px);background:#ffffffeb;padding:2rem 4rem;position:fixed;top:0;left:0;right:0}.site-header-inner{justify-content:space-between;align-items:baseline;width:100%;display:flex}.logo{letter-spacing:0;color:#000000d9;font-size:clamp(20px,4.32vmin,64px);font-weight:500;line-height:.5}.logo .logo-light{color:#d0d0d0d9}.nav{align-items:baseline;gap:15rem;display:flex}.nav a{letter-spacing:0;color:#d0d0d0d9;font-size:clamp(20px,4.32vmin,64px);font-weight:500;line-height:.5;transition:opacity .15s}.nav a:hover{opacity:.55}@media (max-width:1500px){.nav{gap:6rem}}.main{flex:1;width:100%;padding:6rem 2rem 4rem}.works-page{padding-top:6rem;padding-bottom:10rem}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.works-page.has-hero{padding-top:0}.home-hero{width:100%}.home-hero a{display:block}.home-hero-img{object-fit:contain;width:100%;height:auto;display:block}.home-hero-note{color:#00000047;text-align:center;margin:1rem 0 0;font-size:.72rem}.dxd-grid-container{grid-template-columns:repeat(4,1fr);width:100%;display:grid}@media (max-width:1062px){.dxd-grid-container{grid-template-columns:repeat(3,1fr)}}.dxd-grid-item{aspect-ratio:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.dxd-grid-item img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .15s ease-in-out;position:absolute;inset:0}.dxd-grid-item img.first-image{opacity:1;z-index:2}.dxd-grid-item img.second-image{opacity:0;z-index:1}.dxd-grid-item:hover img.first-image{opacity:0}.dxd-grid-item:hover img.second-image{opacity:1}.dxd-grid-item .link{z-index:10;position:absolute;inset:0}.dxd-grid-item-content{width:100%;height:100%}.grid-observing .dxd-grid-item-content{opacity:0;transition:all 2s cubic-bezier(.16,1,.3,1);transform:translateY(100px)}.grid-observing .dxd-grid-item.enter-from-top .dxd-grid-item-content,.grid-observing .dxd-grid-item.enter-from-bottom .dxd-grid-item-content{opacity:1;transform:translateY(0)}.grid-observing .dxd-grid-item.leave-from-top .dxd-grid-item-content{opacity:0;transform:translateY(-100px)}.grid-observing .dxd-grid-item.leave-from-bottom .dxd-grid-item-content{opacity:0;transform:translateY(100px)}.grid-observing .dxd-grid-item.initial-top .dxd-grid-item-content{transform:translateY(-100px)}.grid-observing .dxd-grid-item.initial-bottom .dxd-grid-item-content{transform:translateY(100px)}.detail{margin:0 -2rem;padding:6.5rem 0 4rem}.detail>h1,.detail>p,.detail>.detail-gallery{max-width:66.666%;margin-left:auto;margin-right:auto}.detail h1{color:#000;margin:0 auto 2.5rem;font-size:clamp(18px,1.45vw,38px);font-weight:470;line-height:1.5}.detail p{color:#000000d9;margin:0 auto 1.5rem;font-size:clamp(13px,1.1vw,24px);line-height:1.5}.detail-gallery{flex-direction:column;align-items:center;gap:2.5rem;margin-top:3rem;display:flex}.detail-gallery img{cursor:zoom-in;background:#fafafa;width:100%;height:auto}.lightbox{z-index:200;cursor:zoom-out;background:#fffffff7;justify-content:center;align-items:center;animation:.2s lb-fade;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:92vw;max-height:92vh}.lightbox-close{cursor:pointer;color:var(--ink);background:0 0;border:none;font-size:2rem;position:absolute;top:1.5rem;right:2rem}@keyframes lb-fade{0%{opacity:0}to{opacity:1}}.team{max-width:1000px;margin:0 auto;padding:3rem 0 6rem}.team .slogan{letter-spacing:-.01em;font-size:clamp(2.8rem,6vw,4.8rem);font-weight:600;line-height:1.12}.team .slogan-bottom{font-size:clamp(2.8rem,6vw,4.8rem);font-weight:600;line-height:1.12}.team .intro{white-space:pre-line;margin-top:4rem;font-size:clamp(1.6rem,3vw,2.4rem)}.team .intro-note{color:var(--ink-soft);font-size:1rem}.team-module{border-top:1px solid var(--ink-faint);margin-top:3.5rem;padding-top:1.5rem}.team-module .num{color:var(--ink-soft);letter-spacing:.1em;font-size:1rem}.team-module h2{margin:.4rem 0 1rem;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:600}.team-module p{margin:.15rem 0;font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.85}.badge-area{text-align:center;margin-top:5rem}.badge-area .badge-label{margin-bottom:1.5rem;font-size:1.25rem}.badge{color:var(--ink);border:1px solid var(--ink);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;border-radius:999px;padding:.8rem 1.8rem;font-family:inherit;font-size:1.15rem;transition:box-shadow .15s;display:inline-block}.badge .badge-hint{color:var(--ink-soft);font-size:.9rem}.badge:active{cursor:grabbing;box-shadow:0 10px 30px #0000002e}.info{max-width:1000px;margin:0 auto;padding:3rem 0 6rem}.info h1{margin:0 0 3rem;font-size:clamp(2rem,4vw,3rem);font-weight:600}.info h2{margin:3.5rem 0 1.2rem;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:600}.info p{white-space:pre-line;max-width:56rem;line-height:1.8}.info .award-list{margin:0;padding:0;list-style:none}.info .award-list li{border-top:1px solid var(--ink-faint);padding:.7rem 0}.info .award-list li:last-child{border-bottom:1px solid var(--ink-faint)}.info .principle{border-top:1px solid var(--ink-faint);padding:1.2rem 0}.info .principle strong{font-size:1.3rem}.info .principle span{color:var(--ink-soft)}.info .client{border-top:1px solid var(--ink-faint);padding:1rem 0}.info .client strong{font-size:1.15rem}.info .client span{color:var(--ink-soft);margin-top:.2rem;display:block}.info .contact-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;display:grid}.info .contact-grid div{border:1px solid var(--ink-faint);border-radius:12px;padding:1.2rem 1.5rem}.info .contact-grid .label{color:var(--ink-soft);letter-spacing:.08em;font-size:.85rem}.info .contact-grid .value{word-break:break-all;margin-top:.3rem;font-size:1.1rem}.site-footer{z-index:90;letter-spacing:.05em;color:#00000042;text-align:right;pointer-events:none;padding:0 .4rem .8rem .8rem;font-size:.72rem;font-weight:320;position:fixed;bottom:0;right:0}.works-end{color:#000000d9;margin:8rem 2rem 0;font-size:1.15rem;line-height:1.9}.works-end-hr{border:0;border-top:1px solid #00000026;margin:0 0 3rem}.works-end-grid{grid-template-columns:2fr 4fr 5fr 1fr;display:grid}.works-end-contact{text-align:left;flex-direction:column;justify-content:space-between;display:flex}.works-end-contact-info{flex-direction:column;display:flex}.works-end-about{text-align:left;flex-direction:column;justify-content:space-between;display:flex}.works-end-about p{white-space:pre-line;margin:0 0 1.2rem}.works-end-about .copy{margin:0;padding-top:2.5rem;line-height:1.4}.works-end-socials{gap:.9rem;padding-top:1rem;display:flex}.works-end-socials a{color:#000000d9;background:#fff;border:1px solid #0000004d;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.works-end-socials a:hover{color:#fff;background:#000000d9}.works-end-socials svg{display:block}.social-logo-fallback{font-size:.8rem}.admin-body{font-size:1rem}.admin-wrap{max-width:1100px;margin:0 auto;padding:1rem 2rem 4rem}.admin-wrap h1{margin:0 0 1.5rem;font-size:1.6rem}.admin-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-table th,.admin-table td{border-bottom:1px solid var(--ink-faint);text-align:left;vertical-align:middle;padding:.7rem .6rem}.admin-table img.thumb{object-fit:contain;border:1px solid #eee;border-radius:6px;width:56px;height:56px}.admin-table .actions a,.admin-table .actions button,.admin-actions a,.admin-actions button{color:var(--ink);border:1px solid var(--ink-soft);cursor:pointer;background:#fff;border-radius:999px;margin-right:.4rem;padding:.3rem 1rem;font-size:.85rem;text-decoration:none;display:inline-block}.admin-table .actions .danger,.admin-actions .danger{color:#b3261e;border-color:#b3261e}.admin-form{max-width:720px}.admin-form label{color:var(--ink-soft);margin:1.1rem 0 .3rem;font-size:.9rem;display:block}.admin-form input[type=text],.admin-form input[type=number],.admin-form input[type=password],.admin-form textarea{border:1px solid var(--ink-faint);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:.6rem .8rem;font-family:inherit;font-size:1rem}.admin-form textarea{resize:vertical;min-height:120px}.admin-form input[type=file]{font-size:.95rem}.admin-form .hint{color:var(--ink-soft);margin-top:.3rem;font-size:.8rem}.admin-form .submit-row{margin-top:2rem}.admin-form .submit-row button,.admin-form .submit-row a{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:999px;padding:.6rem 1.8rem;font-size:1rem}.admin-form .submit-row a{color:var(--ink);background:#fff;margin-left:.6rem}.existing-images{flex-wrap:wrap;gap:.8rem;margin-top:.5rem;display:flex}.existing-images .img-card{border:1px solid var(--ink-faint);text-align:center;border-radius:10px;padding:.5rem}.existing-images .img-card img{object-fit:contain;width:90px;height:90px;margin:0 auto .4rem}.existing-images .img-card .pos{color:var(--ink-soft);font-size:.7rem}.existing-images .img-card label{margin:.2rem 0 0;font-size:.75rem}.existing-images .img-card button{color:var(--ink);border:1px solid var(--ink-faint);cursor:pointer;background:#fff;border-radius:999px;margin:.15rem .1rem 0;padding:.15rem .5rem;font-family:inherit;font-size:.72rem}.existing-images .img-card button:hover:not(:disabled){border-color:var(--ink)}.existing-images .img-card button:disabled{opacity:.35;cursor:default}.existing-images .img-card button.danger{color:#b3261e;border-color:#b3261e}.admin-msg{border-radius:8px;margin-bottom:1rem;padding:.8rem 1rem;font-size:.95rem}.admin-msg.error{color:#b3261e;background:#fdecea;border:1px solid #f5c6c2}.admin-msg.ok{color:#1b5e20;background:#e8f5e9;border:1px solid #c8e6c9}.admin-login{border:1px solid var(--ink-faint);border-radius:14px;max-width:380px;margin:8vh auto 0;padding:2rem}.admin-login h1{margin:0 0 1.2rem;font-size:1.3rem}@media (max-width:768px){.site-header{padding:1.1rem 1rem}.site-header-inner{align-items:center}.logo,.nav a{font-size:1.15rem;line-height:1}.nav{gap:1.2rem}.works-end-grid{grid-template-columns:1fr;gap:2rem}.works-end{margin:7rem 0 0}.main{padding:4.1rem 1.25rem 1.25rem}.detail{margin:0 -1.25rem}.detail>h1,.detail>p,.detail>.detail-gallery{max-width:92%}.detail h1{font-size:1.4rem}.detail p{font-size:1rem}}
