/* doc/デザイン.html のパーツ・アニメーションを継承。 */

/* salary-calculator/index.html と assets/css/base.css から配色をそのまま継承。 */
:root{--kit-line:#eee;--kit-safe-bg:#e6fffa;--kit-safe:#2c7a7b;--kit-safe-line:#b2f5ea;--kit-warning-bg:#fffaf0;--kit-warning:#c05621;--kit-warning-line:#fbd38d;--kit-danger-bg:#fff5f5;--kit-danger:#c53030;--kit-danger-line:#feb2b2;--kit-shadow-card:0 10px 30px rgba(0,0,0,.05);--kit-shadow-form:0 10px 40px rgba(0,0,0,.05);--kit-shadow-result:0 4px 10px rgba(0,0,0,.1)}
html{scroll-behavior:smooth;scroll-padding-top:110px}
.kit{max-width:1120px;margin:auto;padding:0 32px 80px}.kit-intro{padding:54px 0 32px;border-bottom:1px solid var(--kit-line)}
.kit-intro h1{font-size:clamp(30px,4vw,44px);font-weight:800;line-height:1.5;letter-spacing:.02em}.kit-intro p{margin-top:18px;color:var(--text-sub);max-width:760px;font-size:15px;line-height:1.9}
.kit-nav{display:flex;flex-wrap:wrap;gap:8px 22px;padding:24px 0;font-size:13px;font-weight:700}.kit-nav a{padding:6px 0;border-bottom:2px solid transparent}.kit-nav a:hover{color:var(--primary-color);border-color:var(--accent-yellow)}
.kit-section{padding:38px 0 46px;border-bottom:1px solid var(--kit-line);scroll-margin-top:10px}.section-head{display:flex;gap:22px;align-items:baseline;margin-bottom:12px}.section-no{font:700 13px/1.5 ui-monospace,monospace;color:var(--primary-color)}.section-head h2{font-size:26px;font-weight:800}.section-head h2 small{font-size:13px;font-weight:400;color:var(--text-sub);margin-left:14px}.section-desc{color:var(--text-sub);font-size:14px;margin-bottom:28px;line-height:1.9}.kit h3{font-size:17px;margin:0 0 12px}.sample-label{font-size:12px;color:var(--text-sub);margin:0 0 12px}.subhead{font-size:13px;font-weight:700;margin:28px 0 14px}.swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.swatch{border:1px solid var(--kit-line);border-radius:12px;overflow:hidden;background:#fff}.swatch-color{height:88px;border-bottom:1px solid var(--kit-line)}.swatch-meta{padding:14px 12px}.swatch-meta strong{display:block;font-size:12px;margin-bottom:5px}.swatch-meta code{font-size:12px;color:var(--text-sub)}
.kit code,.kit pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.stage{background:var(--bg-light);padding:28px;border-radius:16px}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}.component{min-width:0}.sample-card{border-radius:16px;background:#fff;padding:26px;box-shadow:var(--kit-shadow-card);min-height:186px}.sample-card p{font-size:13px;line-height:1.9;color:var(--text-sub)}.sample-card .sample-icon{color:var(--primary-color);font-size:24px;margin-bottom:18px}.result-sample{border:2px solid #eee;border-radius:12px;box-shadow:none;text-align:center}.result-sample .value{font-size:36px;font-weight:800;line-height:1.3;margin:14px 0 8px}.result-sample .value small{font-size:15px}.result-sample.blue{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border:none;box-shadow:var(--kit-shadow-result);color:#fff}.result-sample.blue p{color:#fff}.panel-sample{background:var(--bg-light);border-radius:12px;padding:24px}.panel-sample p{font-size:14px;color:var(--text-sub)}
.upload-demo{padding:30px;border:2px solid transparent;border-radius:16px;background:#fff;box-shadow:var(--kit-shadow-card);text-align:center;transition:border-color .2s,background-color .2s,transform .2s}.upload-demo.dragging{border-color:var(--primary-color);background:#e9faff;transform:scale(1.005)}.upload-demo.registered{animation:upload-flash 1s ease-out}.upload-demo .sample-icon{margin-bottom:12px;color:var(--primary-color);font-size:28px}.upload-demo h3{margin-bottom:5px}.upload-demo .drop-title{margin:0 0 18px;color:var(--text-sub);font-size:13px}.upload-demo-message{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:var(--primary-color);font-size:14px;font-weight:700}.upload-demo-message[hidden]{display:none}@keyframes upload-flash{0%{border-color:var(--primary-color);background:#e9faff;box-shadow:0 0 0 0 rgba(0,174,239,.42)}45%{border-color:var(--primary-color);background:#f4fcff;box-shadow:0 0 0 10px rgba(0,174,239,.16),0 14px 36px rgba(0,174,239,.22)}100%{border-color:transparent;background:#fff;box-shadow:var(--kit-shadow-card)}}
.upload-area-showcase{padding:30px;border:2px solid transparent;border-radius:16px;background:#fff;box-shadow:var(--kit-shadow-card);text-align:center;transition:border-color .2s,background-color .2s}.upload-area-showcase:hover{border-color:var(--primary-color);background:#e9faff}.upload-area-icon{display:inline-block;width:56px;height:56px;object-fit:contain}.upload-area-showcase>p{color:var(--text-sub);font-size:13px}.upload-area-showcase>.btn{margin:20px 0 4px}.privacy-badge-sample{display:inline-flex;align-items:center;gap:9px;margin-top:20px;padding:12px 16px;border:1px solid var(--kit-safe-line);border-radius:8px;background:var(--kit-safe-bg);color:var(--kit-safe);font-size:12px}.upload-icon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.upload-icon-card{padding:20px 12px;border:1px solid var(--kit-line);border-radius:12px;background:#fff;text-align:center}.upload-icon-card img{display:block;width:56px;height:56px;margin:0 auto 10px;object-fit:contain}.upload-icon-card strong{display:block;font-size:13px}.upload-icon-card code{display:block;margin-top:6px;font-size:10px;color:var(--text-sub);overflow-wrap:anywhere}
.code-box{margin-top:18px;border:1px solid var(--kit-line);border-radius:8px;overflow:hidden}.code-box summary{cursor:pointer;padding:11px 14px;color:var(--text-sub);font-size:12px;font-weight:700}.code-body{border-top:1px solid var(--kit-line);padding:14px;background:#fcfcfc}.code-body pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8}.copy-btn{display:block;margin:12px 0 0 auto;border:1px solid #ddd;background:#fff;border-radius:6px;padding:7px 14px;cursor:pointer;font:700 12px inherit;color:var(--text-main)}
.type-row{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:22px 0;border-top:1px solid var(--kit-line);align-items:center}.type-meta{font:12px/1.8 ui-monospace,monospace;color:var(--text-sub)}.type-meta strong{color:var(--text-main);display:block}.hero-sample{padding:36px 0 24px}.hero-sample-title{font-size:clamp(34px,5vw,48px);font-weight:800;line-height:1.35;letter-spacing:.02em}.hero-sample-copy{margin-top:18px}.hero-sample-tagline{margin-bottom:8px;font-size:20px;font-weight:700}.hero-sample-copy>p:not(.hero-sample-tagline){color:var(--text-sub);font-size:15px;line-height:1.9}.hero-sample .phrase{display:inline-block}.radii{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-bottom:34px}.radius-shape{height:80px;max-width:140px;background:var(--bg-light);border:2px solid var(--primary-color);margin-bottom:12px}.spec{font:12px/1.7 ui-monospace,monospace;color:var(--text-sub);overflow-wrap:anywhere}.shadow-sample{background:#fff;border-radius:16px;padding:32px 20px;text-align:center;font-size:14px;font-weight:700;margin-bottom:20px}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.kit button,.kit input,.kit select{font-family:inherit}.kit .btn{font-size:14px;min-height:46px}.kit .btn:hover{transform:translateY(-1px)}.kit .btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 6px rgba(0,0,0,.08)}.kit .btn i{margin-right:8px}.kit .btn.pressed{background:var(--primary-hover)}.kit .btn.yellow{background:var(--accent-yellow);color:var(--text-main)}.kit .btn:disabled{background:#eee;color:#888;cursor:not-allowed;transform:none;box-shadow:none}.text-link{color:var(--primary-color);text-decoration:underline;text-underline-offset:4px;font-size:14px}.kit :is(button,a,summary,input,select):focus-visible{outline:3px solid var(--primary-color);outline-offset:4px}.demo-feedback{font-size:13px;color:var(--kit-safe);min-height:25px;margin-top:16px}
.field-label{display:block;font-size:14px;font-weight:700;margin-bottom:10px}.kit .form-input{height:54px;padding:0 15px;font-size:16px}.kit .focused-input{border-color:var(--primary-color);box-shadow:0 0 0 4px var(--input-focus-ring);background:#fff}.field-help{font-size:12px;color:var(--text-sub);margin-top:9px}.unit-field{position:relative}.unit-field input{padding-right:64px}.unit-field span{position:absolute;right:18px;top:17px;font-size:14px;font-weight:700;color:var(--text-sub)}.mode-tabs{display:flex;background:#eee;border-radius:12px;padding:4px;gap:4px}.mode-tab{flex:1;min-width:0;border:0;background:transparent;text-align:center;padding:12px 5px;border-radius:10px;cursor:pointer;font-weight:700;color:var(--text-sub);font-size:14px}.mode-tab[aria-pressed=true]{background:#fff;color:var(--primary-color);box-shadow:0 2px 5px rgba(0,0,0,.1)}/* Checkbox animation adapted from Uiverse.io by kyle1dev. */
.check-row{position:relative;display:flex;align-items:center;gap:10px;margin-top:20px;font-size:14px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.check-row input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.check-row .checkbox-wrapper{position:relative;display:inline-block;flex:0 0 24px;width:24px;height:24px;border-radius:7px;transition:transform .2s ease}
.check-row .checkbox-bg{position:absolute;inset:0;border:2px solid var(--primary-color);border-radius:7px;background:#fff;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.check-row .checkbox-icon{position:absolute;inset:0;margin:auto;width:80%;height:80%;color:#fff;transform:scale(0);transition:transform .2s ease}
.check-row .check-path{stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .3s ease .1s}
.check-row input:checked + .checkbox-wrapper .checkbox-bg{background:var(--primary-color);border-color:var(--primary-color)}
.check-row input:checked + .checkbox-wrapper .checkbox-icon{transform:scale(1)}
.check-row input:checked + .checkbox-wrapper .check-path{stroke-dashoffset:0}
@media(hover:hover){.check-row:hover .checkbox-wrapper{transform:scale(1.05)}}
.check-row:active .checkbox-wrapper{transform:scale(.95)}
.check-row input:focus-visible + .checkbox-wrapper .checkbox-bg{outline:2px solid var(--primary-color);outline-offset:3px;box-shadow:0 0 0 4px var(--input-focus-ring)}
@keyframes checkbox-bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.check-row input:checked + .checkbox-wrapper{animation:checkbox-bounce .3s cubic-bezier(.4,0,.2,1)}
@media(prefers-reduced-motion:reduce){.check-row .checkbox-wrapper,.check-row .checkbox-bg,.check-row .checkbox-icon,.check-row .check-path{animation:none!important;transition:none!important}.check-row:hover .checkbox-wrapper,.check-row:active .checkbox-wrapper{transform:none}}
.range-row{width:100%;margin:22px auto 0}.range-meta{display:flex;align-items:center;gap:18px;margin-bottom:6px}.range-meta output{margin-left:auto;color:var(--primary-color);font-size:14px;font-weight:700}.range-row input{display:block;width:100%;min-width:0;accent-color:var(--primary-color)}
.playback-row{display:flex;justify-content:center;margin-top:12px}.playback-row .btn{min-width:120px}
.line-options .sparkle{color:#d79a00}
.steps{list-style:none;padding:0;margin:0;counter-reset:step}.steps li{counter-increment:step;display:flex;gap:16px;padding:18px 0;border-bottom:1px solid #eee;align-items:flex-start}.steps li:last-child{border:0}.steps li:before{content:counter(step,decimal-leading-zero);display:grid;place-items:center;flex:0 0 34px;height:34px;background:var(--accent-yellow);border-radius:50%;font-size:12px;font-weight:800}.steps strong{font-size:14px}.steps p{font-size:13px;color:var(--text-sub);margin-top:5px;line-height:1.8}.file-list{border:1px solid #eee;border-radius:12px;overflow:hidden}.file-row{display:flex;align-items:center;gap:14px;padding:18px;border-bottom:1px solid #eee}.file-row:last-child{border:0}.file-row>i{font-size:23px;color:var(--primary-color)}.file-info{flex:1;min-width:0}.file-info strong{display:block;font-size:13px;overflow-wrap:anywhere}.file-info small{font-size:12px;color:var(--text-sub)}.status-pill{padding:4px 9px;border-radius:4px;background:var(--kit-safe-bg);color:var(--kit-safe);font-size:11px;white-space:nowrap;font-weight:700}.status-pill.wait{background:#eee;color:#666}
.faq-list{border:1px solid #eee;border-radius:16px;overflow:hidden;background:#fff}.faq-list details{border-bottom:1px solid #eee}.faq-list details:last-child{border:0}.faq-list summary{display:flex;align-items:center;gap:14px;padding:20px 24px;cursor:pointer;list-style:none;font-size:14px;font-weight:700}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary .q{color:var(--primary-color);font-size:18px}.faq-list summary:after{content:'';width:12px;height:12px;margin-left:auto;flex-shrink:0;background:linear-gradient(#666,#666) center/12px 2px no-repeat,linear-gradient(#666,#666) center/2px 12px no-repeat}.faq-list details[open]{background:var(--bg-light)}.faq-list details[open] summary:after{background:linear-gradient(#666,#666) center/12px 2px no-repeat}.faq-list details p{margin:0 24px 22px 52px;font-size:14px;line-height:1.9;color:var(--text-sub)}
.alert{display:flex;align-items:flex-start;gap:12px;border:1px solid;padding:18px;border-radius:8px;font-size:13px;line-height:1.8}.alert strong{display:block;font-size:14px;margin-bottom:4px}.alert i{margin-top:4px}.alert.safe{background:var(--kit-safe-bg);color:var(--kit-safe);border-color:var(--kit-safe-line)}.alert.warning{background:var(--kit-warning-bg);color:var(--kit-warning);border-color:var(--kit-warning-line)}.alert.danger{background:var(--kit-danger-bg);color:var(--kit-danger);border-color:var(--kit-danger-line)}.kit-footer{padding:28px 0;font-size:12px;color:var(--text-sub);display:flex;gap:16px;justify-content:space-between}.kit-footer a{text-decoration:underline}
@media(max-width:760px){.kit{padding:0 20px 40px}.kit-intro{padding-top:32px}.columns{grid-template-columns:1fr}.pair{grid-template-columns:1fr}.swatches{grid-template-columns:repeat(3,1fr)}.radii{grid-template-columns:repeat(3,1fr)}.type-row{grid-template-columns:1fr;gap:10px}.hero-sample{padding:28px 0 20px}.hero-sample-title{font-size:32px}.hero-sample-tagline{font-size:18px}.hero-sample-copy>p:not(.hero-sample-tagline){font-size:13px}.stage{padding:20px}.section-head{gap:12px}.section-head h2{font-size:23px}.section-head h2 small{display:block;margin:3px 0 0}.kit-section{padding:28px 0 34px}.kit-nav{gap:6px 16px}.kit-footer{flex-direction:column}.faq-list summary{padding:18px 16px}.faq-list details p{margin-left:44px;margin-right:16px}.upload-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.swatches{grid-template-columns:repeat(2,1fr)}.radii{gap:16px}.button-row{gap:10px}.kit .btn{padding:12px 22px}.upload-area-showcase{padding:24px 16px}.privacy-badge-sample{align-items:flex-start;text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.kit *{transition:none!important}.upload-demo.registered{animation:none}}
/* ラジオボタンはチェックボックスと同じ操作アニメーションを共用。 */
.radio-group{min-width:0;margin:24px 0 0;padding:0;border:0}
.radio-group legend{padding:0}
.radio-options{display:flex;flex-wrap:wrap;gap:12px 24px}
.radio-row{margin-top:0}
.radio-row .checkbox-wrapper,.radio-row .checkbox-bg{border-radius:50%}
.radio-row .checkbox-icon{width:10px;height:10px;border-radius:50%;background:#fff}
/* 掴んでいる間は拡大し、離すと少し縮んでから元の大きさへ戻る。 */
.range-row input[type=range]{appearance:none;-webkit-appearance:none;height:32px;margin:0;background:transparent;cursor:grab;--range-progress:79.8%;--handle-scale:1;--handle-motion:transform .42s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease}
.range-row input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--primary-color) 0 var(--range-progress),#ddd var(--range-progress) 100%)}
.range-row input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--primary-color) 0 var(--range-progress),#ddd var(--range-progress) 100%)}
.range-row input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border:0;border-radius:50%;background:var(--primary-color);transform:scale(var(--handle-scale));transition:var(--handle-motion);box-shadow:0 2px 5px rgba(0,0,0,.12)}
.range-row input[type=range]::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:var(--primary-color);transform:scale(var(--handle-scale));transition:var(--handle-motion);box-shadow:0 2px 5px rgba(0,0,0,.12)}
@media(hover:hover){.range-row input[type=range]:hover{--handle-scale:1.05}}
.range-row input[type=range].is-grabbing{cursor:grabbing;--handle-scale:1.35;--handle-motion:transform .16s ease-out,box-shadow .2s ease}
@media(prefers-reduced-motion:reduce){.range-row input[type=range]{--handle-motion:none}}
/* 容量プリセットもチェックボックスと同じテンポで反応。 */
.mode-tab{transition:transform .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease}
@media(hover:hover){.mode-tab:hover{transform:scale(1.03)}}
.mode-tab[aria-pressed=true]{animation:preset-bounce .3s cubic-bezier(.4,0,.2,1)}
.mode-tab:active{transform:scale(.95);animation:none}
@keyframes preset-bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@media(prefers-reduced-motion:reduce){.mode-tab{animation:none!important;transition:none!important}.mode-tab:hover,.mode-tab:active{transform:none}}
/* Shine animation adapted from Uiverse.io by SelfMadeSystem. */
.status-pill.complete{position:relative;overflow:hidden;isolation:isolate;background:var(--primary-color);color:#fff}
.status-pill.complete::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.95) 50%,transparent 75%);transform:translateX(-140%);animation:status-shine 3s ease-in-out infinite}
@keyframes status-shine{0%,15%{transform:translateX(-140%);opacity:0}25%{opacity:1}55%{transform:translateX(140%);opacity:1}65%,100%{transform:translateX(140%);opacity:0}}
@media(prefers-reduced-motion:reduce){.status-pill.complete::before{animation:none;opacity:0}}
/* Toggle switch adapted from Uiverse.io by ErzenXz. */
.toggle-row{display:flex;align-items:center;gap:12px;margin-top:24px;min-height:44px;font-size:14px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.toggle-switch{position:relative;display:inline-block;flex:0 0 51.2px;width:51.2px;height:25.6px}
.toggle-switch input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.toggle-switch-background{position:absolute;inset:0;border-radius:999px;background:var(--input-border);box-shadow:inset 0 0 0 2px rgba(0,0,0,.06);transition:background-color .3s ease,box-shadow .3s ease}
.toggle-switch-handle{position:absolute;top:3.2px;left:3.2px;width:19.2px;height:19.2px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.toggle-switch input:checked + .toggle-switch-background{background:var(--primary-color);box-shadow:inset 0 0 0 2px var(--primary-hover)}
.toggle-switch input:checked + .toggle-switch-background .toggle-switch-handle{transform:translateX(25.6px)}
@media(hover:hover){.toggle-row:hover .toggle-switch-background{box-shadow:inset 0 0 0 2px rgba(0,0,0,.06),0 0 0 4px var(--input-focus-ring)}}
.toggle-row:active .toggle-switch-handle{transform:scale(.92)}
.toggle-row:active input:checked + .toggle-switch-background .toggle-switch-handle{transform:translateX(25.6px) scale(.92)}
.toggle-switch input:focus-visible + .toggle-switch-background{outline:2px solid var(--primary-color);outline-offset:3px;box-shadow:0 0 0 4px var(--input-focus-ring)}
@media(prefers-reduced-motion:reduce){.toggle-switch-background,.toggle-switch-handle{transition:none!important}}
/* Loading animation adapted from Uiverse.io by satyamchaudharydev. */
.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:32px 20px;border:1px solid var(--kit-line);border-radius:16px;background:#fff;box-shadow:var(--kit-shadow-card);text-align:center}
.loading-bars{display:flex;justify-content:center;align-items:center;width:100px;height:100px;gap:6px}
.loading-bars span{width:4px;height:50px;border-radius:999px;background:var(--primary-color);animation:loading-wave .9s ease-in-out infinite}
.loading-bars span:nth-child(2){background:var(--accent-pink);animation-delay:-.8s}
.loading-bars span:nth-child(3){background:var(--accent-yellow);animation-delay:-.7s}
.loading-bars span:nth-child(4){background:var(--accent-pink);animation-delay:-.6s}
.loading-bars span:nth-child(5){background:var(--primary-color);animation-delay:-.5s}
.loading-screen strong{font-size:17px}
.loading-screen p{margin-top:10px;font-size:13px;line-height:1.8;color:var(--text-sub)}
@keyframes loading-wave{0%,40%,100%{transform:scaleY(.05)}20%{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.loading-bars span{animation:none;transform:scaleY(.45)}}

/* 境界線エフェクト共通の効果スライダー。 */
.line-effect-controls{min-width:0}
#line-settings .glow{box-shadow:0 0 9px 2px var(--effect-color,#f5b700)}
#line-settings :is(.sparkle,.heart,.bubble){color:var(--effect-color,#f5b700)}
.effect-opacity-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.opacity-row{width:100%;margin:0}
.opacity-row input[type=range]::-webkit-slider-runnable-track{background:#bbb}
.opacity-row input[type=range]::-moz-range-track{background:#bbb}
.effect-color-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.effect-color-row{margin-top:18px}
.effect-color-row input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,#f00 0%,#ff0 16.67%,#0f0 33.33%,#0ff 50%,#00f 66.67%,#f0f 83.33%,#f00 100%)}
.effect-color-row input[type=range]::-moz-range-track{background:linear-gradient(to right,#f00 0%,#ff0 16.67%,#0f0 33.33%,#0ff 50%,#00f 66.67%,#f0f 83.33%,#f00 100%)}
.effect-color-row input[type=range]::-webkit-slider-thumb{background:var(--effect-color,#f5b700);box-shadow:0 0 0 2px #fff,0 2px 6px rgba(0,0,0,.35)}
.effect-color-row input[type=range]::-moz-range-thumb{background:var(--effect-color,#f5b700);box-shadow:0 0 0 2px #fff,0 2px 6px rgba(0,0,0,.35)}
.effect-lightness-row input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,#000 0%,hsl(var(--effect-hue,45),100%,50%) 50%,#fff 100%)}
.effect-lightness-row input[type=range]::-moz-range-track{background:linear-gradient(to right,#000 0%,hsl(var(--effect-hue,45),100%,50%) 50%,#fff 100%)}
.save-panel #save-still{margin-left:auto}
@media(max-width:760px){.save-panel #save-mp4-high,.save-panel #save-still{grid-column:1/-1}.save-panel #save-still{margin-left:0}}

[hidden]{display:none!important}.intro{padding:42px 0 28px}.workspace{padding:28px;background:var(--bg-light);border-radius:16px}.upload-demo img{display:block;width:56px;height:56px;object-fit:contain;margin:0 auto 12px}.upload-demo img.has-thumbnail{width:100%;max-width:320px;height:140px;border-radius:10px;background:#fff}.upload-demo p{font-size:13px;color:var(--text-sub);margin:8px 0 16px}.upload-demo .file-meta{margin:14px 0 0;overflow-wrap:anywhere;min-height:21px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:24px 0 16px}.toolbar h2{font-size:22px}.toolbar .btn{padding:10px 20px}.preview-wrap{position:relative;display:grid;place-items:center;min-height:300px;overflow:hidden;border:1px solid #ddd;border-radius:12px;background:#fff}.preview-wrap canvas{display:block;width:100%;height:auto;touch-action:none;max-height:65vh;object-fit:contain}.preview-wrap.empty{background:#fff}.empty-state{text-align:center;padding:60px 20px;color:var(--text-sub)}.empty-state i{display:block;color:var(--primary-color);font-size:36px;margin-bottom:16px}.empty-state p{font-size:13px;margin-top:10px}.preview-wrap canvas:focus-visible{outline:3px solid var(--primary-color);outline-offset:-3px}.settings{margin-top:24px;border:1px solid #eee;border-radius:16px;background:#fff}.settings>summary{padding:22px 24px;cursor:pointer;font-size:17px;font-weight:700}.settings-body{padding:0 24px 24px}.field{min-width:0}.field+.field{margin-top:22px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.kit select,.kit input[type=text]{width:100%;border:2px solid var(--input-border);border-radius:12px;background:#f8f9fa;min-height:48px;padding:10px 14px;font-size:14px;color:var(--text-main)}.kit input[type=color]{width:48px;height:44px;padding:4px;border:1px solid #ddd;background:#fff;border-radius:8px}.background-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.background-options button{flex:0 1 auto;padding:10px 14px;border:1px solid #ddd}.boundary-options{display:flex;gap:10px}.boundary-option{display:grid;place-items:center;width:54px;height:54px;padding:0;border:1px solid #ccc;border-radius:10px;background:#fff;color:var(--text-sub);cursor:pointer}.boundary-option[aria-pressed=true]{border-color:var(--primary-color);background:#e9faff;color:var(--primary-color);box-shadow:0 2px 5px rgba(0,0,0,.1)}.boundary-icon{position:relative;width:28px;height:36px;border:1px solid currentColor;border-radius:4px}.boundary-icon::after{content:"";position:absolute;top:4px;bottom:4px;left:50%;width:2px;border-radius:999px;background:currentColor;transform:translateX(-50%)}.boundary-option.diagonal .boundary-icon::after{transform:translateX(-50%) rotate(24deg)}.line-settings{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);align-items:start;gap:28px;margin-top:26px}.line-options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.line-options .mode-tab{border:1px solid #ddd;padding:12px 4px;font-size:12px}.line-sample{display:block;height:26px;width:0;border-left:2px solid var(--primary-color);margin:0 auto 8px}.glow{box-shadow:0 0 9px 2px #00aeef}.sparkle,.heart,.bubble{color:var(--primary-color);width:22px;border:0;font-size:23px;line-height:26px}.heart{font-size:20px}.bubble{font-size:28px;font-weight:400}.line-opacity-row{width:100%;margin:0}.line-opacity-row input[type=range]::-webkit-slider-runnable-track{background:#bbb}.line-opacity-row input[type=range]::-moz-range-track{background:#bbb}.save-panel{padding:26px 0 0}.save-panel h2{font-size:22px;margin-bottom:10px}.save-panel .button-row{margin-top:18px}.status{margin-top:16px}.save-link{display:inline-block;margin-top:12px;color:var(--primary-color);text-decoration:underline}.progress-area{margin-top:18px}.progress-area progress{width:100%;accent-color:var(--primary-color)}.progress-area .loading-bars{height:60px}.progress-area .loading-screen{min-height:180px}.small{font-size:13px;color:var(--text-sub);line-height:1.9}.kit fieldset{margin:0;padding:0;border:0;min-width:0}.kit fieldset:disabled{opacity:.7}.canvas-info{margin-top:12px}.kit-footer{border-top:1px solid #eee;margin-top:40px}.line-options .mode-tab[aria-pressed=true],.background-options .mode-tab[aria-pressed=true]{border-color:var(--primary-color);background:#e9faff}.tool-section{padding:38px 0 0}.tool-section h2{font-size:26px;margin-bottom:20px}@media(max-width:760px){.workspace{padding:16px}.settings-grid{grid-template-columns:1fr;gap:22px}.settings-body{padding:0 16px 20px}.line-settings{grid-template-columns:1fr;gap:22px}.line-options{gap:5px}.line-options .mode-tab{font-size:9px}.intro{padding-top:28px}.preview-wrap{min-height:220px}.save-panel .button-row{display:grid;grid-template-columns:1fr 1fr}.save-panel #save-mp4{grid-column:1/-1}.save-panel .btn{padding:12px 18px}.upload-demo{padding:24px 16px}.kit .pair{gap:16px}}

/* 上段の設定と列幅を揃え、PCでは境界線デザインを3列×2行で表示。 */
.line-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
.line-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.hold-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.label-input-row{display:flex;align-items:center;gap:8px}.label-input-row input[type=text]{min-width:0}.label-input-row input[type=color]{flex:0 0 48px;height:48px;cursor:pointer}
.hold-fields .field+.field{margin-top:0}
.hold-fields+.field{margin-top:22px}
@media(max-width:760px){.line-settings{grid-template-columns:1fr}.line-options{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* ページ固有のヒーロー、保存設定、仕様表。 */
.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:center;gap:42px}
.hero-content{min-width:0}
.hero-card{position:relative;margin:0;padding:8px;border:1px solid rgba(0,174,239,.2);border-radius:20px;background:#fff;box-shadow:0 16px 38px rgba(30,67,82,.13);transform:rotate(1.2deg)}
.hero-card::after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.75);border-radius:13px;pointer-events:none}
.hero-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:13px}
.video-options{display:grid;grid-template-columns:minmax(0,220px);gap:7px;margin:18px 0 10px}
.video-options select{min-height:46px}
.video-support{min-height:25px;margin-top:12px}
.video-support.is-supported{color:var(--kit-safe)}
.video-support.is-unsupported{color:var(--kit-danger)}
.line-effect-controls.effects-disabled .effect-opacity-sliders .opacity-row:nth-child(2),.line-effect-controls.effects-disabled .effect-color-sliders{opacity:.48}
.line-effect-controls input:disabled{cursor:not-allowed}
.spec-table-wrap{overflow-x:auto;border:1px solid #e5e8eb;border-radius:14px;background:#fff}
.spec-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.7}
.spec-table th,.spec-table td{padding:14px 18px;border-bottom:1px solid #edf0f2;text-align:left;vertical-align:top}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:0}
.spec-table th{width:180px;background:#f7fbfd;font-weight:700;color:var(--text-main)}
.use-examples{margin-top:16px}
@media(max-width:760px){.hero-layout{grid-template-columns:1fr;gap:22px}.hero-card{width:min(74%,280px);justify-self:center;transform:none}.effect-opacity-sliders,.effect-color-sliders{grid-template-columns:1fr}.save-panel .button-row{grid-template-columns:1fr}.save-panel #save-mp4,.save-panel #save-mp4-high,.save-panel #save-still{grid-column:auto}.spec-table th{width:118px}.spec-table th,.spec-table td{padding:12px 14px}}
