@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

:root {
  color-scheme: dark;
  font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
  background: #10151a;
  color: #eef3f5;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 18% 0%, #26343d 0, #10151a 45%); }
button, input { font: inherit; }
.app-shell { width: min(1320px, calc(100% - 40px)); margin: 0 auto; padding: 48px 0 64px; }
.site-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow { margin: 0 0 7px; color: #8fd2dd; font-size: 11px; font-weight: 700; letter-spacing: .18em; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 5px; font-size: clamp(28px, 4vw, 42px); letter-spacing: .06em; font-weight: 500; }
.subtitle { margin-bottom: 0; color: #9caab2; font-size: 14px; }
.workspace { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(310px, .55fr); gap: 24px; align-items: start; }
.preview-card, .controls-card { border: 1px solid #2b3942; border-radius: 18px; background: rgba(20, 28, 34, .86); box-shadow: 0 18px 60px rgba(0,0,0,.2); }
.preview-card { padding: 18px; }
.controls-card { padding: 24px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 15px; }
.section-heading h2 { margin: 0; font-size: 16px; font-weight: 500; }
.section-heading span { color: #778890; font-size: 12px; }
.canvas-frame { overflow: hidden; border-radius: 10px; background: #667986; line-height: 0; }
canvas { display: block; width: 100%; height: auto; }
.save-button { width: 100%; margin-top: 16px; padding: 13px 18px; border: 0; border-radius: 9px; background: #8fe0e2; color: #0b272c; cursor: pointer; font-weight: 700; transition: transform .15s, background .15s; }
.save-button:hover { background: #b1f0ef; transform: translateY(-1px); }
.appearance-button { width: 100%; margin-top: 20px; padding: 10px 14px; border: 1px solid #3d4c55; border-radius: 8px; background: #1a252b; color: #c2d0d5; cursor: pointer; font-size: 12px; }
.appearance-button:hover { border-color: #83cbd1; color: #e8ffff; }
.text-button { border: 1px solid #3d4c55; border-radius: 8px; padding: 8px 13px; background: transparent; color: #aab8be; cursor: pointer; }
.text-button:hover { border-color: #83cbd1; color: #e8ffff; }
.field { display: block; margin-bottom: 16px; }
.field span, legend { display: block; margin-bottom: 7px; color: #aab7bd; font-size: 12px; }
.field input[type="text"] { width: 100%; border: 1px solid #3a4a53; border-radius: 8px; padding: 10px 12px; outline: none; background: #151f25; color: #f3f7f8; }
.field input[type="text"]:focus { border-color: #8fe0e2; box-shadow: 0 0 0 3px rgba(143,224,226,.12); }
.range-group { margin: 22px 0; }
.range-label { display: flex; justify-content: space-between; margin-bottom: 8px; color: #aab7bd; font-size: 12px; }
output { color: #8fe0e2; }
input[type="range"] { width: 100%; accent-color: #8fe0e2; }
.visibility-group { margin: 24px 0 0; padding: 0; border: 0; }
.switch-row { display: flex; align-items: center; gap: 9px; margin: 12px 0; color: #dce5e8; font-size: 13px; cursor: pointer; }
.switch-row input { width: 16px; height: 16px; accent-color: #8fe0e2; }
.hint { margin: 24px 0 0; color: #74858d; font-size: 11px; line-height: 1.7; }
.site-footer { max-width: 900px; margin: 28px auto 0; color: #59686f; font-size: 10px; line-height: 1.7; text-align: center; }
@media (max-width: 850px) { .app-shell { width: min(100% - 24px, 640px); padding: 24px 0 40px; } .site-header { align-items: start; } .workspace { grid-template-columns: 1fr; } .controls-card { padding: 20px; } }
@media (max-width: 480px) { .site-header { display: block; } .text-button { margin-top: 16px; } .preview-card { padding: 10px; } }
