:root{--paper: #f3eddc;--paper2: #ece5d0;--grain: #e6dfc8;--ink: #1d1a14;--inkSoft: #6f6859;--acc: #b8472b;--acc2: #1b3a6b;--acc3: #c8941a;--acc4: #6b7a3e;--accSoft: #d27e63;--maxW: 1180px;--serif: "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;--sans: "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;--mono: ui-monospace, "Menlo", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.8;-webkit-font-smoothing:antialiased}.paper{background-color:var(--paper);background-image:radial-gradient(var(--grain) 1px,transparent 1px);background-size:6px 6px}.paper-dark{background-color:var(--ink);background-image:radial-gradient(rgba(243,237,220,.06) 1px,transparent 1px);background-size:6px 6px;color:var(--paper)}.wrap{max-width:var(--maxW);margin:0 auto;padding:0 28px}.topbar{background:var(--ink);color:var(--paper);font-size:13px;letter-spacing:4px;text-align:center;padding:6px 12px;font-family:var(--sans)}.topbar .acc{color:var(--acc3)}.header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink);background-image:radial-gradient(var(--grain) 1px,transparent 1px);background-size:6px 6px}.header-inner{max-width:var(--maxW);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 28px;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);text-decoration:none;color:var(--ink)}.brand-mark{width:36px;height:36px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:18px;letter-spacing:1px;border:2px solid var(--ink);box-shadow:inset 0 0 0 2px var(--paper),inset 0 0 0 3px var(--ink)}.brand-name{font-size:23px;font-weight:700;letter-spacing:3px;line-height:1}.brand-sub{display:block;font-family:var(--sans);font-size:11px;letter-spacing:3px;color:var(--inkSoft);margin-top:4px}.nav{display:flex;gap:22px}.nav a{font-family:var(--sans);font-size:15px;letter-spacing:2px;color:var(--ink);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px;transition:border-color .15s ease,color .15s ease}.nav a:hover{color:var(--acc);border-color:var(--acc)}.cta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--acc);color:var(--paper);border:2px solid var(--ink);padding:10px 18px;font-size:15px;letter-spacing:3px;font-weight:700;text-decoration:none;box-shadow:3px 3px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease;font-family:var(--sans);cursor:pointer}.cta-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.cta-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.cta-btn.dark{background:var(--ink);color:var(--paper)}.cta-btn.ghost{background:transparent;color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.cta-btn[disabled]{background:var(--paper2);color:var(--inkSoft);cursor:not-allowed;box-shadow:3px 3px 0 var(--inkSoft)}.cta-btn[disabled]:hover{transform:none;box-shadow:3px 3px 0 var(--inkSoft)}.section{padding:80px 0;position:relative}.section-eyebrow{font-family:var(--sans);font-size:14px;letter-spacing:6px;color:var(--acc);font-weight:700;margin-bottom:8px}.section-title{font-family:var(--serif);font-size:46px;font-weight:700;letter-spacing:4px;line-height:1.25;margin:0 0 8px}.section-title .accent{color:var(--acc)}.section-title .accent2{color:var(--acc2)}.section-title .marker{background:linear-gradient(transparent 62%,var(--acc3) 62%,var(--acc3) 92%,transparent 92%);padding:0 4px}.section-sub{font-family:var(--sans);font-size:16px;color:var(--inkSoft);letter-spacing:2px;margin:0 0 36px}.sash{display:flex;height:6px;margin:16px 0}.sash>div{height:100%}.sash>div:nth-child(1){flex:2;background:var(--acc)}.sash>div:nth-child(2){flex:1;background:var(--acc3)}.sash>div:nth-child(3){flex:2;background:var(--acc2)}.sash>div:nth-child(4){flex:1;background:var(--acc4)}.sash>div:nth-child(5){flex:3;background:var(--ink)}.signboard{border:2px solid var(--ink);box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px var(--ink);position:relative;padding:28px 36px}.signboard-studs span{position:absolute;width:8px;height:8px;background:var(--acc);border-radius:50%}.signboard-studs span:nth-child(1){top:8px;left:8px}.signboard-studs span:nth-child(2){top:8px;right:8px}.signboard-studs span:nth-child(3){bottom:8px;left:8px}.signboard-studs span:nth-child(4){bottom:8px;right:8px}.hanko{border-radius:50%;border:2px solid var(--acc);color:var(--acc);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;transform:rotate(-8deg);writing-mode:vertical-rl;letter-spacing:2px}.tag{display:inline-block;font-family:var(--sans);color:var(--paper);background:var(--acc);font-size:12px;letter-spacing:3px;padding:3px 10px;font-weight:700}.tag.ink{background:var(--ink)}.tag.acc2{background:var(--acc2)}.tag.acc3{background:var(--acc3);color:var(--ink)}.tag.acc4{background:var(--acc4)}.card{background:var(--paper);background-image:radial-gradient(var(--grain) 1px,transparent 1px);background-size:6px 6px;border:1.5px solid var(--ink);padding:22px 22px 20px;position:relative}.card.tilt-l{transform:rotate(-.6deg)}.card.tilt-r{transform:rotate(.6deg)}.divider{border:0;border-top:1px dashed var(--ink);margin:24px 0}.check{display:inline-block;width:22px;height:22px;border:2px solid var(--ink);position:relative;flex-shrink:0}.check:before,.check:after{content:"";position:absolute;background:var(--acc)}.check:before{width:12px;height:2.5px;left:4px;top:11px;transform:rotate(45deg);transform-origin:left center}.check:after{width:18px;height:2.5px;left:6px;top:13px;transform:rotate(-45deg);transform-origin:left center}.ticket{position:relative;background:var(--ink);color:var(--paper);padding:8px 16px 8px 28px;font-family:var(--serif);font-weight:700;font-size:18px;letter-spacing:3px;display:inline-block}.ticket:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--acc)}.ticket .n{color:var(--acc3);font-family:var(--mono);font-size:15px;margin-right:6px}.cornerFlag{position:absolute;top:0;left:0;width:110px;height:22px;background:var(--acc3);transform:skew(-22deg) translate(-16px);transform-origin:top left}.cornerFlag.sm{left:110px;width:70px;height:14px;background:var(--acc4)}.cornerFlag.right{left:auto;right:0;transform:skew(22deg) translate(16px);transform-origin:top right;background:var(--acc2)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--sans);font-size:13px;letter-spacing:3px;color:var(--ink);font-weight:700}.field label .req{color:var(--paper);background:var(--acc);font-size:11px;padding:1px 6px;margin-left:6px;letter-spacing:1px}.field input,.field textarea,.field select{border:1.5px solid var(--ink);background:#ffffff73;padding:12px 14px;font-family:var(--sans);font-size:16px;color:var(--ink);outline:none}.field input:focus,.field textarea:focus,.field select:focus{background:var(--paper);border-color:var(--acc);box-shadow:0 0 0 2px #b8472b2e}.image-slot{position:relative;display:block;background:var(--paper2);background-image:repeating-linear-gradient(45deg,transparent 0 10px,rgba(29,26,20,.04) 10px 20px);border:2px solid var(--ink);overflow:hidden}.image-slot:before{content:attr(data-placeholder);position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:12px;letter-spacing:4px;color:var(--inkSoft);text-align:center;padding:12px}.image-slot img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.flex{display:flex}.grow{flex:1}.center{display:flex;align-items:center;justify-content:center}.italic-serif{font-family:var(--serif);font-style:normal}@media (max-width: 880px){.section{padding:56px 0}.section-title{font-size:33px;letter-spacing:2px}.header-inner{padding:8px 18px}.wrap{padding:0 18px}.nav{display:none}.brand-name{font-size:18px;letter-spacing:2px}.hero-grid,.three-grid,.problems-grid,.services-grid{grid-template-columns:1fr!important}.flow-grid{grid-template-columns:repeat(2,1fr)!important}.about-grid,.contact-grid,.ai-grid,.cases-grid,.footer-grid{grid-template-columns:1fr!important}.hero-title{font-size:50px!important}.hero-sign-title{font-size:42px!important}}html.anim .section,html.anim [data-reveal]{opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);will-change:opacity,transform}html.anim .section.in,html.anim [data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion: no-preference){html.anim .section,html.anim [data-reveal]{transform:translateY(30px)}}.card{transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-6px);box-shadow:7px 9px 0 var(--ink);z-index:2}.card.tilt-l:hover{transform:rotate(-.6deg) translateY(-6px)}.card.tilt-r:hover{transform:rotate(.6deg) translateY(-6px)}.hanko{transition:transform .24s steps(4)}.hanko:hover{transform:rotate(-8deg) scale(1.09)}@media (prefers-reduced-motion: no-preference){html.anim .sash>div{transform:scaleX(0);transform-origin:left center;animation:sashGrow .7s cubic-bezier(.2,.7,.3,1) both}html.anim .sash>div:nth-child(1){animation-delay:.1s}html.anim .sash>div:nth-child(2){animation-delay:.2s}html.anim .sash>div:nth-child(3){animation-delay:.3s}html.anim .sash>div:nth-child(4){animation-delay:.4s}html.anim .sash>div:nth-child(5){animation-delay:.5s}}@keyframes sashGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.nav a{position:relative}@media (prefers-reduced-motion: no-preference){html.anim .cta-btn{animation:ctaPop .5s ease-out both}}@keyframes ctaPop{0%{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:scale(1)}}.topbar{overflow:hidden;white-space:nowrap}.topbar-track{display:inline-flex}.topbar-seg{display:inline-block;padding:0}@media (prefers-reduced-motion: no-preference){.topbar-track{animation:marquee 36s linear infinite}.topbar:hover .topbar-track{animation-play-state:paused}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.icon-hop{display:inline-flex;transition:transform .24s steps(3)}.icon-hop:hover{transform:translateY(-5px) rotate(-4deg)}html.anim .hero-rise{opacity:0;animation:heroFade .7s ease both}@media (prefers-reduced-motion: no-preference){html.anim .hero-rise{animation:heroRise .75s cubic-bezier(.2,.7,.3,1) both}}@keyframes heroFade{0%{opacity:0}to{opacity:1}}@keyframes heroRise{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}html.anim .section .card{opacity:0}html.anim .section.in .card{animation:cardFade .55s ease both}html.anim .section.in .card:nth-child(1){animation-delay:.05s}html.anim .section.in .card:nth-child(2){animation-delay:.15s}html.anim .section.in .card:nth-child(3){animation-delay:.25s}html.anim .section.in .card:nth-child(4){animation-delay:.35s}html.anim .section.in .card:nth-child(5){animation-delay:.45s}@keyframes cardFade{0%{opacity:0}to{opacity:1}}html.anim .section-title .marker{background-repeat:no-repeat;background-size:0% 100%;transition:background-size .9s cubic-bezier(.2,.7,.3,1) .35s}html.anim .section.in .section-title .marker{background-size:100% 100%}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:var(--acc);z-index:100;width:0;transition:width .1s linear;box-shadow:0 0 6px #b8472b80}@keyframes blink8{0%,49%{opacity:1}50%,to{opacity:0}}.tw-cursor{display:inline-block;margin-left:2px;color:var(--acc);font-weight:700;transform:translateY(1px);animation:blink8 1s steps(1) infinite}.blink-lamp{animation:blink8 1.1s steps(1) infinite}.crt{position:relative}.crt:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.1) 0px,rgba(0,0,0,.1) 1px,transparent 1px,transparent 3px);z-index:3}@media (prefers-reduced-motion: no-preference){.crt:before{content:"";position:absolute;left:0;right:0;top:0;height:35%;pointer-events:none;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.06),transparent);animation:crtScan 5.5s linear infinite;z-index:3}}@keyframes crtScan{0%{transform:translateY(-100%)}to{transform:translateY(360%)}}@media (prefers-reduced-motion: reduce){html.anim .hero-rise{animation-name:heroFade}.topbar-track{animation:none;transform:none}}
