:root{--sem-success:#00b890;--sem-success-ink:#003c30;--sem-warning:#ffb52e;--sem-warning-ink:#4a2e00;--sem-danger:#ff6a3d;--sem-danger-ink:#4a1400;--sem-info:#4aa8d8;--sem-info-ink:#062b3c;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--space-6:4rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-2xl:2.5rem;--container-width:72rem;--cut:0px;--bracket:0;--bracket-color:var(--color-primary,currentColor)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{color-scheme:var(--color-scheme,light)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);margin:0;line-height:1.7;transition:background-color .2s,color .2s}h1,h2,h3,h4{font-family:var(--font-heading);margin:0 0 var(--space-3);line-height:1.3}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-primary)}.skip-link{background:var(--color-surface);color:var(--color-text);padding:var(--space-2) var(--space-3);z-index:100;border-radius:var(--radius-base);position:absolute;top:0;left:-999px}.skip-link:focus{left:var(--space-3);top:var(--space-3)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.container{max-width:var(--container-width);padding:0 var(--space-4);margin:0 auto}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.site-header .container{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);padding-bottom:var(--space-3);flex-wrap:wrap;display:flex}.site-logo{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-text);font-weight:700;text-decoration:none}.site-nav ul{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--color-text);font-size:var(--text-sm);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-primary)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-base);background:var(--color-primary);color:var(--color-primary-ink);cursor:pointer;font-weight:600;font-size:var(--text-sm);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn--ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.theme-switcher{align-items:center;gap:var(--space-2);display:flex}.theme-switcher select{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.hero{padding:var(--space-6) 0;background:var(--color-hero-bg,var(--color-surface))}.hero p.lead{font-size:var(--text-lg);color:var(--color-text-dim);max-width:40rem}.section{padding:var(--space-6) 0}.section--alt{background:var(--color-surface)}.section-head{max-width:40rem;margin-bottom:var(--space-5)}.section-head p{color:var(--color-text-dim)}.card-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--space-4);box-shadow:var(--shadow-card,none);clip-path:polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));position:relative}.card:before{content:"";pointer-events:none;background:linear-gradient(var(--bracket-color), var(--bracket-color)) 0 0 / 14px 1px, linear-gradient(var(--bracket-color), var(--bracket-color)) 0 0 / 1px 14px, linear-gradient(var(--bracket-color), var(--bracket-color)) 100% 0 / 14px 1px, linear-gradient(var(--bracket-color), var(--bracket-color)) 100% 0 / 1px 14px, linear-gradient(var(--bracket-color), var(--bracket-color)) 0 100% / 14px 1px, linear-gradient(var(--bracket-color), var(--bracket-color)) 0 100% / 1px 14px, linear-gradient(var(--bracket-color), var(--bracket-color)) 100% 100% / 14px 1px, linear-gradient(var(--bracket-color), var(--bracket-color)) 100% 100% / 1px 14px;opacity:var(--bracket);background-repeat:no-repeat;position:absolute;inset:0}.card__icon{border-radius:var(--radius-base);background:var(--color-icon-bg,var(--color-primary));width:2.5rem;height:2.5rem;color:var(--color-primary-ink);margin-bottom:var(--space-3);font-size:var(--text-lg);justify-content:center;align-items:center;display:inline-flex}.card h3{margin-bottom:var(--space-2)}.card p{color:var(--color-text-dim);font-size:var(--text-sm);margin-bottom:0}.badge{align-items:center;gap:var(--space-1);padding:.15rem var(--space-2);font-size:var(--text-sm);border-radius:999px;font-weight:600;display:inline-flex}.badge--success{background:color-mix(in srgb, var(--sem-success) 30%, var(--color-bg));color:var(--sem-success-ink)}.badge--warning{background:color-mix(in srgb, var(--sem-warning) 32%, var(--color-bg));color:var(--sem-warning-ink)}.badge--danger{background:color-mix(in srgb, var(--sem-danger) 28%, var(--color-bg));color:var(--sem-danger-ink)}.badge--info{background:color-mix(in srgb, var(--sem-info) 30%, var(--color-bg));color:var(--sem-info-ink)}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-5) 0;font-size:var(--text-sm);color:var(--color-text-dim)}.site-footer nav ul{gap:var(--space-3) var(--space-4);margin:0 0 var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.site-footer nav a{color:var(--color-text-dim);text-decoration:none}.site-footer nav a:hover{color:var(--color-primary)}:root[data-theme=basic]{--color-scheme:light;--color-bg:#fff;--color-surface:#f4f6f8;--color-text:#1b2530;--color-text-dim:#5a6672;--color-border:#dde3e8;--color-primary:#0f6e6a;--color-primary-ink:#fff;--color-icon-bg:#0f6e6a;--radius-base:6px;--shadow-card:0 1px 3px #141e2814;--font-heading:"Noto Sans JP", "Hiragino Sans", sans-serif;--font-body:"Noto Sans JP", "Hiragino Sans", sans-serif}:root[data-theme=cyberpunk]{--font-heading:"Rajdhani", "Noto Sans JP", sans-serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=cyberpunk][data-mode=dark]{--color-scheme:dark;--color-bg:#04080a;--color-surface:#071014;--color-text:#d8fff8;--color-text-dim:#7db3ab;--color-border:#00e5cc47;--color-primary:#00e5cc;--color-primary-ink:#04141a;--color-icon-bg:#00e5cc;--color-hero-bg:linear-gradient(180deg, #00e5cc14, transparent);--radius-base:2px;--shadow-card:0 0 0 1px #00e5cc1f, 0 0 24px #00e5cc0f;--cut:14px;--bracket:.8;--sem-success-ink:#baffef;--sem-warning-ink:#ffe6b0;--sem-danger-ink:#ffd0c0;--sem-info-ink:#cdeeff}:root[data-theme=cyberpunk][data-mode=light]{--color-scheme:light;--color-bg:#e9eef4;--color-surface:#f6f9fc;--color-text:#10344c;--color-text-dim:#6d8ba0;--color-border:#1e64a047;--color-primary:#0284c7;--color-primary-ink:#fff;--color-icon-bg:#0284c7;--color-hero-bg:linear-gradient(180deg, #0284c71a, transparent);--radius-base:3px;--shadow-card:0 0 0 1px #0284c71a, 0 4px 14px #10344c14;--cut:18px;--bracket:.8}:root[data-theme=cyberpunk] .site-header,:root[data-theme=cyberpunk] .site-footer{position:relative;overflow:hidden}:root[data-theme=cyberpunk][data-mode=dark] .site-header{box-shadow:inset 0 0 0 1px #00e5cc26,0 1px #00e5cc99}:root[data-theme=cyberpunk][data-mode=dark] .site-footer{box-shadow:inset 0 0 0 1px #00e5cc26}:root[data-theme=cyberpunk][data-mode=dark] .site-header:before,:root[data-theme=cyberpunk][data-mode=dark] .site-footer:before{content:"";pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}:root[data-theme=cyberpunk][data-mode=dark] .site-header:after,:root[data-theme=cyberpunk][data-mode=dark] .site-footer:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#0000004d 0 1px,#0000 1px 3px);position:absolute;inset:0}:root[data-theme=cyberpunk][data-mode=light] .site-header,:root[data-theme=cyberpunk][data-mode=light] .site-footer{-webkit-backdrop-filter:blur(14px);background:#fff9}:root[data-theme=cyberpunk][data-mode=light] .site-header{box-shadow:inset 0 0 0 1px #0284c71f,0 1px #0284c759}:root[data-theme=cyberpunk][data-mode=light] .site-footer{box-shadow:inset 0 0 0 1px #0284c71f}:root[data-theme=cyberpunk] .site-header .container,:root[data-theme=cyberpunk] .site-footer .container{position:relative}:root[data-theme=cyberpunk] .site-header .container:before,:root[data-theme=cyberpunk] .site-footer .container:before{content:"";pointer-events:none;background:linear-gradient(var(--color-primary), var(--color-primary)) 0 0 / 16px 1px, linear-gradient(var(--color-primary), var(--color-primary)) 0 0 / 1px 16px, linear-gradient(var(--color-primary), var(--color-primary)) 100% 0 / 16px 1px, linear-gradient(var(--color-primary), var(--color-primary)) 100% 0 / 1px 16px, linear-gradient(var(--color-primary), var(--color-primary)) 0 100% / 16px 1px, linear-gradient(var(--color-primary), var(--color-primary)) 0 100% / 1px 16px, linear-gradient(var(--color-primary), var(--color-primary)) 100% 100% / 16px 1px, linear-gradient(var(--color-primary), var(--color-primary)) 100% 100% / 1px 16px;opacity:.8;background-repeat:no-repeat;position:absolute;inset:4px}:root[data-theme=fancy]{--color-scheme:light;--color-bg:#fff8fb;--color-surface:#ffeef6;--color-text:#4a2c40;--color-text-dim:#9b7a8c;--color-border:#ff6fa559;--color-primary:#ff6fa5;--color-primary-ink:#fff;--color-icon-bg:#ff6fa5;--color-hero-bg:linear-gradient(180deg, #ff6fa51f, transparent);--radius-base:20px;--shadow-card:0 4px 16px #ff6fa52e;--font-heading:"M PLUS Rounded 1c", "Noto Sans JP", sans-serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=fancy] .site-header{border-bottom:none;position:relative}:root[data-theme=fancy] .site-header:after{content:"";background-image:radial-gradient(circle, var(--color-primary) 3px, transparent 3.5px);opacity:.6;pointer-events:none;background-repeat:repeat-x;background-size:16px 8px;height:8px;position:absolute;bottom:-5px;left:0;right:0}:root[data-theme=fancy] .btn{border-radius:999px;box-shadow:0 3px 10px #ff6fa559}:root[data-theme=luxury]{--color-scheme:light;--color-bg:#fff;--color-surface:#faf9f6;--color-text:#1a1a1a;--color-text-dim:#6b6b6b;--color-border:#e5e1d8;--color-primary:#1a1a1a;--color-primary-ink:#fff;--color-icon-bg:#b8935a;--color-hero-bg:transparent;--radius-base:0px;--shadow-card:0 1px 3px #0000000d;--font-heading:"Shippori Mincho", "Noto Serif JP", serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=luxury] h1,:root[data-theme=luxury] h2,:root[data-theme=luxury] .site-logo{letter-spacing:.04em}:root[data-theme=luxury] .site-nav a{letter-spacing:.08em}:root[data-theme=luxury] .card{border-top:2px solid var(--color-icon-bg)}:root[data-theme=luxury] .site-header{border-bottom:none;position:relative}:root[data-theme=luxury] .site-header:after{content:"";background:var(--color-icon-bg);opacity:.7;pointer-events:none;height:1px;position:absolute;bottom:-1px;left:0;right:0}:root[data-theme=luxury] .btn{letter-spacing:.06em}:root[data-theme=friendly]{--color-scheme:light;--color-bg:#fffaf3;--color-surface:#fff3e0;--color-text:#4a3728;--color-text-dim:#8a7563;--color-border:#ff92484d;--color-primary:#ff8c42;--color-primary-ink:#fff;--color-icon-bg:#ffb648;--color-hero-bg:linear-gradient(180deg, #ffb64826, transparent);--radius-base:12px;--shadow-card:0 4px 14px #ff8c4226;--font-heading:"Zen Maru Gothic", "Noto Sans JP", sans-serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=friendly] .site-header{border-bottom:none;position:relative}:root[data-theme=friendly] .site-header:after{content:"";background-image:repeating-linear-gradient(90deg, var(--color-primary) 0, var(--color-primary) 8px, transparent 8px, transparent 14px);opacity:.7;pointer-events:none;height:3px;position:absolute;bottom:-3px;left:0;right:0}:root[data-theme=friendly] .btn{border-radius:999px}:root[data-theme=steampunk]{--color-scheme:dark;--color-bg:#1b140f;--color-surface:#251c15;--color-text:#e8d9bf;--color-text-dim:#a68f6d;--color-border:#b8860b59;--color-primary:#c08a3e;--color-primary-ink:#1b140f;--color-icon-bg:sienna;--color-hero-bg:linear-gradient(180deg, #c08a3e1f, transparent);--radius-base:3px;--shadow-card:0 2px 8px #0006;--cut:6px;--bracket:.9;--bracket-color:sienna;--font-heading:"Yuji Syuku", "Noto Serif JP", serif;--font-body:"Noto Sans JP", sans-serif;--sem-success-ink:#baffef;--sem-warning-ink:#ffe6b0;--sem-danger-ink:#ffd0c0;--sem-info-ink:#cdeeff}:root[data-theme=steampunk] .card{box-shadow:var(--shadow-card), inset 0 0 0 1px #b8860b40}:root[data-theme=steampunk] .site-header,:root[data-theme=steampunk] .site-footer{position:relative;overflow:hidden}:root[data-theme=steampunk] .site-header:before,:root[data-theme=steampunk] .site-footer:before{content:"";pointer-events:none;opacity:.06;background-image:repeating-linear-gradient(45deg,#000 0 1px,#0000 1px 6px);position:absolute;inset:0}:root[data-theme=steampunk] .site-header{box-shadow:0 2px #b8860b80,0 3px #0006}:root[data-theme=business]{--color-scheme:light;--color-bg:#fff;--color-surface:#eef1f5;--color-text:#1f2933;--color-text-dim:#62727f;--color-border:#d3dae0;--color-primary:#1e3a5f;--color-primary-ink:#fff;--color-icon-bg:#1e3a5f;--color-hero-bg:var(--color-surface);--radius-base:3px;--shadow-card:0 1px 2px #1f29330f;--font-heading:"Noto Sans JP", sans-serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=business] .site-header{border-bottom:none;position:relative}:root[data-theme=business] .site-header:after{content:"";background:linear-gradient(to bottom, var(--color-primary) 0, var(--color-primary) 2px, transparent 2px, transparent 3px, var(--color-primary) 3px, var(--color-primary) 4px);pointer-events:none;height:4px;position:absolute;bottom:-5px;left:0;right:0}:root[data-theme=wagashi]{--color-scheme:light;--color-bg:#faf6ef;--color-surface:#f2ead9;--color-text:#2b2320;--color-text-dim:#7a6a58;--color-border:#7d3c3c40;--color-primary:#7d3c3c;--color-primary-ink:#faf6ef;--color-icon-bg:#4a6741;--color-hero-bg:linear-gradient(180deg, #7d3c3c14, transparent);--radius-base:8px;--shadow-card:0 2px 6px #2b232014;--font-heading:"Zen Old Mincho", "Noto Serif JP", serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=wagashi] .site-header,:root[data-theme=wagashi] .site-footer{position:relative;overflow:hidden}:root[data-theme=wagashi] .site-header:before,:root[data-theme=wagashi] .site-footer:before{content:"";pointer-events:none;opacity:.07;background-image:linear-gradient(45deg, var(--color-primary) 25%, transparent 25%, transparent 75%, var(--color-primary) 75%), linear-gradient(45deg, var(--color-primary) 25%, transparent 25%, transparent 75%, var(--color-primary) 75%);background-position:0 0,10px 10px;background-size:20px 20px;position:absolute;inset:0}:root[data-theme=wagashi] .site-header{box-shadow:0 1px 0 var(--color-primary)}:root[data-theme=industrial]{--color-scheme:dark;--color-bg:#24272b;--color-surface:#2f3338;--color-text:#e9ebed;--color-text-dim:#9aa3ab;--color-border:#4b5157;--color-primary:#495057;--color-primary-ink:#fff;--color-icon-bg:#e8590c;--color-hero-bg:var(--color-surface);--radius-base:2px;--shadow-card:0 2px 6px #00000059;--font-heading:"Noto Sans JP", sans-serif;--font-body:"Noto Sans JP", sans-serif;--sem-success-ink:#baffef;--sem-warning-ink:#ffe6b0;--sem-danger-ink:#ffd0c0;--sem-info-ink:#cdeeff}:root[data-theme=industrial] h1,:root[data-theme=industrial] h2,:root[data-theme=industrial] h3{letter-spacing:-.01em;font-weight:700}:root[data-theme=industrial] .card{border-width:2px}:root[data-theme=industrial] .site-header{border-bottom:none;position:relative}:root[data-theme=industrial] .site-header:after{content:"";background-image:repeating-linear-gradient(45deg, #1a1a1a 0, #1a1a1a 8px, var(--color-icon-bg) 8px, var(--color-icon-bg) 16px);pointer-events:none;height:5px;position:absolute;bottom:-5px;left:0;right:0}:root[data-theme=organic]{--color-scheme:light;--color-bg:#f5f1e8;--color-surface:#ece4d3;--color-text:#3d3527;--color-text-dim:#8a7d63;--color-border:#6b8e5a4d;--color-primary:#6b8e5a;--color-primary-ink:#fff;--color-icon-bg:#a67c52;--color-hero-bg:linear-gradient(180deg, #6b8e5a1a, transparent);--radius-base:10px;--shadow-card:0 3px 10px #3d35271a;--font-heading:"Kaisei Decol", "Noto Serif JP", serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=organic] .site-header{border-bottom:none;position:relative}:root[data-theme=organic] .site-header:after{content:"";background-image:radial-gradient(circle, var(--color-primary) 2.5px, transparent 3px), radial-gradient(circle, var(--color-icon-bg) 2.5px, transparent 3px);opacity:.7;pointer-events:none;background-position:0 0,12px 0;background-repeat:repeat-x;background-size:24px 7px,24px 7px;height:7px;position:absolute;bottom:-5px;left:0;right:0}:root[data-theme=vintage]{--color-scheme:light;--color-bg:#f0e6d2;--color-surface:#e6d8bd;--color-text:#3a2e22;--color-text-dim:#7a6a52;--color-border:#7a31314d;--color-primary:#7a3131;--color-primary-ink:#f0e6d2;--color-icon-bg:#8a7245;--color-hero-bg:linear-gradient(180deg, #7a313114, transparent);--radius-base:5px;--shadow-card:0 2px 6px #3a2e2226;--font-heading:"Klee One", "Noto Serif JP", serif;--font-body:"Noto Sans JP", sans-serif}:root[data-theme=vintage] .site-header,:root[data-theme=vintage] .site-footer{position:relative;overflow:hidden}:root[data-theme=vintage] .site-header:before,:root[data-theme=vintage] .site-footer:before{content:"";pointer-events:none;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}:root[data-theme=vintage] .site-header{box-shadow:inset 0 -4px 0 -1px var(--color-bg), inset 0 -5px 0 -2px var(--color-primary), 0 2px 0 var(--color-primary)}
