:root{--bg:#f4f4f4;--text:#111;--accent:#15202b;--border:#111;--border-width:2px}*{box-sizing:border-box}#p5-canvas-container{position:fixed;top:0;left:0;width:100%;height:90vh;z-index:1;background:#000;opacity:.3}#p5-canvas-container canvas{display:block}body{margin:0;padding:0;background:#f4f4f4;color:#111;font-family:inter,noto sans jp,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;position:relative}.u-caps{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.u-line-top{border-top:2px solid #111}.u-line-btm{border-bottom:2px solid #111}.loader{position:fixed;inset:0;background:#15202b;z-index:9999;display:flex;align-items:center;justify-content:center;transition:transform .8s cubic-bezier(.76,0,.24,1)}.loader.hide{transform:translateY(-100%)}.loader-text{font-size:4rem;font-weight:900;color:#fff;letter-spacing:.05em}header{min-height:90vh;display:flex;flex-direction:column;justify-content:space-between;padding:2vw;position:relative;background:0 0}.header-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:2}.logo{font-size:1.5rem;font-weight:900;letter-spacing:-.05em;line-height:1}.hero-title{font-size:13vw;line-height:.8;font-weight:900;letter-spacing:-.04em;margin:0;text-transform:uppercase;word-break:break-all;position:relative;z-index:2}.hero-title span{display:block;opacity:0;transform:translateY(100px);transition:1s cubic-bezier(.16,1,.3,1)}.loaded .hero-title span{opacity:1;transform:translateY(0)}.marquee-wrap{overflow:hidden;white-space:nowrap;border-top:2px solid #111;border-bottom:2px solid #111;padding:1.5rem 0;background:#fff;position:relative;z-index:1}.marquee-content{display:inline-block;animation:marquee 20s linear infinite}.marquee-text{font-size:4rem;font-weight:900;-webkit-text-stroke:1px #111;color:transparent;margin-right:2rem}@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.grid-section{display:grid;grid-template-columns:30% 70%;border-bottom:2px solid #111;position:relative;z-index:1;background:#f4f4f4}.sticky-col{padding:3rem 2vw;border-right:2px solid #111;position:sticky;top:0;height:100vh;background:#f4f4f4;display:flex;flex-direction:column;justify-content:space-between;z-index:1}.content-col{padding:0;position:relative}.big-lead{font-size:3rem;font-weight:700;line-height:1.2;padding:6rem 4rem;margin:0}.work-item{display:block;position:relative;border-bottom:1px solid #ccc;padding:4rem;transition:background .3s;text-decoration:none;color:inherit;cursor:pointer}.work-item img.check-img{display:none}.work-item:last-child{border-bottom:none}.work-item:hover{background:#fff}.work-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2rem}.work-num{font-family:inter;font-weight:600;color:#15202b}.work-title{font-size:4vw;margin:0;font-weight:800;line-height:1}.work-cat{position:absolute;right:4rem;top:50%;transform:translateY(-50%);border:1px solid #111;padding:.5rem 1rem;border-radius:100px;opacity:0;transition:.4s cubic-bezier(.16,1,.3,1)}.work-item:hover .work-cat{opacity:1;right:2rem;background:#111;color:#fff}.cursor-img{position:fixed;width:400px;height:300px;object-fit:cover;pointer-events:none;z-index:10;opacity:0;transform:scale(.8);transition:opacity .3s,transform .6s cubic-bezier(.16,1,.3,1);border:2px solid #111;background:#ccc}.cursor-img.active{opacity:1;transform:scale(1)}.company-table{width:100%;border-collapse:collapse;margin-top:0}.company-table tr{border-bottom:1px solid #ccc}.company-table th,.company-table td{padding:2rem;text-align:left;vertical-align:top}.company-table th{width:30%;font-weight:600;color:#555}.company-table td{font-weight:400;line-height:1.6}.google-map-link{display:inline-block;margin-top:1rem;color:#15202b;text-decoration:underline}.modal-wrap{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:10000;opacity:0;pointer-events:none;transition:opacity .4s;display:flex;align-items:center;justify-content:center;padding:2rem}.modal-wrap.open{opacity:1;pointer-events:auto}.modal-content{background:#fff;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;display:grid;grid-template-columns:1fr 1fr}.modal-img{width:100%;height:100%;object-fit:cover;min-height:400px}.modal-info{padding:3rem;display:flex;flex-direction:column;justify-content:center}.modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;font-weight:900}.footer{padding:6rem 2vw;border-top:2px solid #111;background:#111;color:#fff;position:relative;z-index:1}.footer-logo{margin-bottom:calc(3rem + 10px);display:flex;justify-content:flex-start;align-items:center}.footer-logo-img{width:180px;height:180px;object-fit:contain}.footer-big{font-size:10vw;font-weight:900;line-height:.9;margin-bottom:4rem}.footer-links a{color:#fff;text-decoration:none;font-size:1.5rem;margin-right:2rem;border-bottom:1px solid #555}.footer-links a:hover{color:#15202b;border-color:#15202b}.footer-links a .at-sign-img{display:inline-block;width:1em;height:1em;background-image:url(/assets/img/etc/at-sign.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;vertical-align:middle;margin:0 .2em}.fade-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,0);z-index:9998;pointer-events:none;transition:background .5s ease-out}.fade-overlay.active{background:#fff;pointer-events:auto}@media(max-width:900px){#p5-canvas-container{height:60vh}header{min-height:60vh;padding:1.5rem}.hero-title{font-size:18vw;margin-top:2rem}.grid-section{grid-template-columns:1fr}.sticky-col{position:relative;height:auto;padding:1.5rem;border-right:none;border-bottom:2px solid #111}.big-lead{font-size:1.5rem;padding:2rem 1.5rem}.work-item{padding:2rem 1.5rem}.work-title{font-size:2rem;margin-top:1rem}.work-cat{display:none}.cursor-img{display:none}.company-table th,.company-table td{display:block;width:100%;padding:1rem 1.5rem}.company-table th{padding-bottom:0;color:#15202b;font-size:.8rem}.company-table td{padding-top:.5rem;border-bottom:1px solid #eee}.footer{padding:3rem 1.5rem}.footer-logo-img{width:120px;height:120px}.footer-big{font-size:15vw}.footer-links a{display:block;margin-bottom:1rem;font-size:1.2rem}.modal-content{grid-template-columns:1fr;max-height:80vh}.modal-img{height:300px}.modal-info{padding:1.5rem}}