*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family),"Hiragino Kaku Gothic ProN","メイリオ",sans-serif;color:var(--color-text);line-height:1.8;background:#fff;-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}img{max-width:100%;height:auto;display:block}:root{--color-primary:#1a56db;--color-secondary:#1e429f;--color-accent:#f59e0b;--font-family:"Noto Sans JP";--color-bg-light:#f8fafc;--color-bg-dark:#1e293b;--color-text:#2c2c2c;--color-text-light:#64748b;--color-border:#e2e8f0;--max-width:1100px;--header-height:72px}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}body{padding-top:var(--header-height)}.page-content{min-height:calc(100vh - var(--header-height))}.section{padding:80px 0}.section--alt{background:var(--color-bg-light)}.section-title{font-size:1.75rem;font-weight:700;color:var(--color-secondary);text-align:center;margin-bottom:48px;position:relative}.section-title:after{content:"";display:block;width:60px;height:3px;background:var(--color-accent);margin:16px auto 0;border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 40px;border-radius:8px;font-size:1rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;cursor:pointer;border:none}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15);opacity:1}.btn--primary{background:var(--color-accent);color:#fff}.btn--outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn--large{padding:20px 56px;font-size:1.125rem}.hero{position:relative;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;padding:100px 0 80px;text-align:center;overflow:hidden}.hero h1{font-size:2.25rem;font-weight:700;line-height:1.4;margin-bottom:24px}.hero p{font-size:1.125rem;opacity:.9;margin-bottom:40px;max-width:640px;margin-left:auto;margin-right:auto}.card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 1px 3px rgba(0,0,0,.08);border:1px solid var(--color-border)}.page-header{padding:64px 0 16px;text-align:center}.page-header h1{font-size:1.75rem;font-weight:700;color:var(--color-text);position:relative;display:inline-block;padding-bottom:16px}.page-header h1:after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:64px;height:3px;background:var(--color-accent);border-radius:2px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:32px;gap:32px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.text-center{text-align:center}.mt-24{margin-top:24px}.mt-40{margin-top:40px}.mb-24{margin-bottom:24px}.note{font-size:.85rem;color:var(--color-text-light)}.footer{background:var(--color-bg-dark);color:#94a3b8;padding:40px 0;text-align:center;font-size:.875rem}.footer-nav{margin-bottom:16px;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.footer-nav a{color:#cbd5e1;text-decoration:none;transition:color .2s}.footer-nav a:hover{color:#fff}.footer-divider{color:#475569}.footer-copy{margin-bottom:8px}.footer-contact{font-size:.8rem}.footer-contact a{color:#93c5fd}.template-banner{background:repeating-linear-gradient(45deg,#fef3c7,#fef3c7 10px,#fde68a 0,#fde68a 20px);color:#92400e;text-align:center;padding:8px 16px;font-size:.85rem;font-weight:700;border-bottom:2px solid #f59e0b}.stitch-placeholder{max-width:800px;margin:80px auto;padding:48px;border:3px dashed var(--color-border);border-radius:16px;background:var(--color-bg-light);text-align:center}.stitch-placeholder h1{font-size:1.75rem;color:var(--color-secondary);margin-bottom:16px}.stitch-placeholder p{color:var(--color-text-light);margin-bottom:12px;line-height:1.8}.stitch-placeholder code{background:#fff;padding:2px 8px;border-radius:4px;border:1px solid var(--color-border);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.9rem;color:var(--color-primary)}.stitch-placeholder .checklist{text-align:left;max-width:480px;margin:24px auto 0;padding:20px 24px;background:#fff;border-radius:8px;border:1px solid var(--color-border)}.stitch-placeholder .checklist li{margin:8px 0;color:var(--color-text);font-size:.95rem}.page-spec{max-width:880px;margin:56px auto 80px;padding:40px 48px;border:2px dashed var(--color-border);border-radius:16px;background:#fff}.page-spec-role{display:inline-block;background:var(--color-bg-light);font-size:.8rem;padding:4px 12px;border-radius:999px;margin-bottom:16px;letter-spacing:.05em}.page-spec-role,.page-spec-title{color:var(--color-secondary);font-weight:700}.page-spec-title{font-size:1.5rem;margin-bottom:8px}.page-spec-purpose{color:var(--color-text-light);font-size:.95rem;line-height:1.7;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--color-border)}.page-spec-section-heading{font-size:.85rem;font-weight:700;color:var(--color-text-light);letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}.page-spec-section-list{list-style:none;padding:0;margin:0 0 32px;display:grid;grid-gap:12px;gap:12px}.page-spec-section-list li{background:var(--color-bg-light);border-left:3px solid var(--color-accent);padding:14px 18px;border-radius:0 8px 8px 0}.page-spec-section-list li strong{display:block;color:var(--color-secondary);font-size:1rem;margin-bottom:4px}.page-spec-section-list li span{color:var(--color-text-light);font-size:.875rem;line-height:1.6}.page-spec-tip{background:#fffbeb;border-left:4px solid var(--color-accent);border-radius:0 8px 8px 0;padding:14px 18px;font-size:.875rem;color:var(--color-text);line-height:1.7}.page-spec-tip code{background:#fff;padding:1px 6px;border-radius:4px;border:1px solid var(--color-border);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.85rem;color:var(--color-primary)}@media (max-width:768px){.page-spec{margin:32px 16px;padding:28px 24px}.page-spec-title{font-size:1.25rem}}@media (max-width:1024px){.grid-3{grid-template-columns:1fr 1fr}}@media (max-width:768px){:root{--header-height:60px}.section{padding:48px 0}.section-title{font-size:1.375rem;margin-bottom:32px}.hero{padding:72px 0 56px}.hero h1{font-size:1.5rem}.btn--large,.hero p{font-size:1rem}.btn--large{padding:16px 40px}.grid-2,.grid-3{grid-template-columns:1fr}.page-header{padding:40px 0 12px}.page-header h1{font-size:1.375rem}.stitch-placeholder{margin:40px 16px;padding:32px 24px}}