@import "https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700&display=swap";
@layer components{@scope(.btn){:scope{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);font-family:inherit;font-size:var(--font-size-sm);letter-spacing:.02em;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:1px solid #0000;font-weight:600;line-height:1.5;display:inline-flex}:scope:disabled{opacity:.4;cursor:not-allowed}:scope[data-variant=primary]{background-color:var(--color-primary);color:#fff}:scope[data-variant=primary]:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}:scope[data-variant=secondary]{color:var(--color-text);border-color:var(--color-border-strong);background-color:#0000}:scope[data-variant=secondary]:hover:not(:disabled){background-color:var(--color-surface);border-color:var(--color-text);box-shadow:var(--shadow-sm)}:scope[data-variant=ghost]{color:var(--color-text-muted);background-color:#0000}:scope[data-variant=ghost]:hover:not(:disabled){background-color:var(--color-surface);color:var(--color-text)}}@scope(.radio-group){:scope{gap:var(--spacing-sm);flex-direction:column;display:flex}.item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex}.item:hover{border-color:var(--color-primary);background-color:var(--color-accent-light)}.item[data-state=checked]{border-color:var(--color-primary);background-color:var(--color-accent-light);box-shadow:0 0 0 1px var(--color-primary)}.indicator{border:2px solid var(--color-border-strong);width:20px;height:20px;transition:border-color var(--duration-fast) var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.item[data-state=checked] .indicator{border-color:var(--color-primary)}.indicator:after{content:"";background-color:var(--color-primary);width:10px;height:10px;transition:transform var(--duration-normal) var(--ease-out);border-radius:50%;display:block;transform:scale(0)}.item[data-state=checked] .indicator:after{transform:scale(1)}.label{font-size:var(--font-size-md);-webkit-user-select:none;user-select:none;line-height:1.6}}@scope(.checkbox-group){:scope{gap:var(--spacing-sm);flex-direction:column;display:flex}.item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex}.item:hover:not([data-disabled]){border-color:var(--color-primary);background-color:var(--color-accent-light)}.item[data-state=checked]{border-color:var(--color-primary);background-color:var(--color-accent-light);box-shadow:0 0 0 1px var(--color-primary)}.item[data-disabled]{opacity:.4;cursor:not-allowed}.indicator{border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);width:20px;height:20px;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:flex}.item[data-state=checked] .indicator{border-color:var(--color-primary);background-color:var(--color-primary)}.indicator svg{color:#fff;width:12px;height:12px}.label{font-size:var(--font-size-md);-webkit-user-select:none;user-select:none;line-height:1.6}}@scope(.textarea-wrapper){:scope{gap:var(--spacing-xs);flex-direction:column;display:flex}textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-family:inherit;font-size:var(--font-size-md);resize:vertical;background-color:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);line-height:1.8}textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1882e31f}.char-count{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:right}.char-count[data-over=true]{color:var(--color-error);font-weight:600}}@scope(.progress){:scope{background-color:var(--color-border);border-radius:999px;width:100%;height:6px;overflow:hidden}.indicator{background-color:var(--color-primary);height:100%;transition:width .4s var(--ease-out);border-radius:999px}}@scope(.toast-viewport){:scope{bottom:var(--spacing-xl);right:var(--spacing-xl);gap:var(--spacing-sm);z-index:9999;flex-direction:column;max-width:400px;display:flex;position:fixed}}@scope(.toast){:scope{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background-color:var(--color-surface);border:1px solid var(--color-border);animation:toast-slide-in .3s var(--ease-out) both}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}:scope[data-variant=error]{border-left:3px solid var(--color-error)}:scope[data-variant=success]{border-left:3px solid var(--color-success)}.title{font-weight:600;font-size:var(--font-size-sm)}.description{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs);line-height:1.6}}}
@layer survey{@scope(.survey-form){:scope{max-width:var(--max-width);padding:var(--spacing-2xl) var(--spacing-md);margin:0 auto}.survey-header{text-align:center;margin-bottom:var(--spacing-3xl);padding-bottom:var(--spacing-2xl);position:relative}.survey-header:after{content:"";background-color:var(--color-accent);border-radius:2px;width:40px;height:3px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.survey-title{font-family:var(--font-display);font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm);font-weight:700;line-height:1.4}.survey-description{font-size:var(--font-size-md);color:var(--color-text-muted);line-height:1.8}.survey-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-sm);letter-spacing:.04em}}@scope(.section-container){:scope{margin-bottom:var(--spacing-3xl)}.section-header{font-family:var(--font-display);font-size:var(--font-size-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-text);margin-bottom:var(--spacing-xl);letter-spacing:.02em;font-weight:700;position:relative}.section-header:after{content:"";background-color:var(--color-accent);width:32px;height:2px;position:absolute;bottom:-2px;left:0}}@scope(.question-card){:scope{padding:var(--spacing-xl);margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out)}:scope:focus-within{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}:scope[data-hidden=true]{display:none}.question-number{font-size:var(--font-size-xs);color:var(--color-accent);margin-bottom:var(--spacing-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.question-title{font-family:var(--font-display);font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs);font-weight:600;line-height:1.6}.question-required{color:var(--color-error);font-size:var(--font-size-xs);margin-left:var(--spacing-xs);font-weight:600}.question-description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-md);line-height:1.8}.question-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-error-light);border-radius:var(--radius-md)}.question-body{margin-top:var(--spacing-md)}}@scope(.matrix-rating){:scope{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}th{font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--spacing-sm) var(--spacing-sm);text-align:center;letter-spacing:.02em;font-weight:600}td{padding:var(--spacing-sm);text-align:center;border-top:1px solid var(--color-border)}td:first-child{text-align:left;font-size:var(--font-size-sm);min-width:160px;line-height:1.6}tr:hover td{background-color:var(--color-accent-light)}input[type=radio]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}}@scope(.survey-nav){:scope{padding:var(--spacing-xl) 0;margin-top:var(--spacing-xl);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.nav-info{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.02em}.nav-buttons{gap:var(--spacing-sm);display:flex}}@scope(.survey-complete){:scope{max-width:var(--max-width);padding:var(--spacing-2xl) var(--spacing-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;margin:0 auto;display:flex}.complete-icon{background-color:var(--color-success-light);width:72px;height:72px;color:var(--color-success);margin-bottom:var(--spacing-xl);animation:complete-pop .5s var(--ease-out) both;border-radius:50%;justify-content:center;align-items:center;font-size:32px;display:flex}@keyframes complete-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.complete-title{font-family:var(--font-display);font-size:var(--font-size-3xl);margin-bottom:var(--spacing-md);font-weight:700}.complete-message{font-size:var(--font-size-md);color:var(--color-text-muted);margin-bottom:var(--spacing-xl);line-height:2}.complete-footer{margin-top:var(--spacing-3xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.06em}}@scope(.already-responded){:scope{max-width:var(--max-width);padding:var(--spacing-2xl) var(--spacing-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;margin:0 auto;display:flex}}}@layer utilities{@media (max-width:640px){.survey-form{padding:var(--spacing-lg) var(--spacing-sm)}.question-card{padding:var(--spacing-md);border-radius:var(--radius-lg)}.matrix-rating table{font-size:var(--font-size-xs)}.complete-title{font-size:var(--font-size-2xl)}}}
@layer layout{@scope(.home-page){:scope{flex-direction:column;min-height:100dvh;display:flex}.home-header{padding:var(--spacing-md) var(--spacing-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;border-bottom:1px solid var(--color-border);background-color:#faf8f5d9;position:sticky;top:0}.home-header-inner{max-width:var(--max-width-wide);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.home-logo{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text);letter-spacing:.04em;font-weight:700}.home-sign-in-btn{font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;font-weight:500}.home-sign-in-btn:hover{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}}@scope(.home-main){:scope{max-width:var(--max-width-wide);padding:var(--spacing-3xl) var(--spacing-xl);flex:1;width:100%;margin:0 auto}}@scope(.home-hero){:scope{margin-bottom:var(--spacing-3xl);padding-bottom:var(--spacing-3xl);border-bottom:1px solid var(--color-border);position:relative}:scope:after{content:"";background-color:var(--color-accent);width:80px;height:3px;position:absolute;bottom:-1px;left:0}.home-hero-title{font-family:var(--font-display);font-size:var(--font-size-4xl);margin-bottom:var(--spacing-lg);letter-spacing:.02em;color:var(--color-text);font-weight:800;line-height:1.3}.home-hero-description{font-size:var(--font-size-md);color:var(--color-text-muted);max-width:540px;line-height:2}}@scope(.home-surveys){:scope{margin-bottom:var(--spacing-2xl)}.home-section-title{font-family:var(--font-display);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-weight:600}.home-empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-3xl) 0;font-size:var(--font-size-md)}.home-survey-list{gap:var(--spacing-md);flex-direction:column;list-style:none;display:flex}.home-survey-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);display:flex}.home-survey-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong);transform:translateY(-1px)}.home-survey-info{flex:1;min-width:0}.home-survey-title{font-family:var(--font-display);font-size:var(--font-size-xl);margin-bottom:var(--spacing-xs);font-weight:700;line-height:1.4}.home-survey-description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-sm);line-height:1.8}.home-survey-meta{gap:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.02em;display:flex}.home-survey-link{padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--color-accent);color:#fff;font-size:var(--font-size-sm);border-radius:var(--radius-lg);letter-spacing:.04em;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.home-survey-link:hover{background-color:var(--color-accent-hover);transform:translateY(-1px)}}@scope(.home-footer){:scope{text-align:center;padding:var(--spacing-xl);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.06em}}}@layer utilities{@media (max-width:640px){.home-hero-title{font-size:var(--font-size-3xl)}.home-main{padding:var(--spacing-2xl) var(--spacing-md)}.home-survey-card{flex-direction:column;align-items:stretch}.home-survey-link{text-align:center}}}
@layer reset;@layer base{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt";letter-spacing:.02em;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;line-height:1.8}body{min-height:100dvh;color:var(--color-text);background-color:var(--color-bg)}::selection{background-color:var(--color-accent);color:#fff}a{color:inherit;text-decoration:none}}@layer tokens{:root{--color-text:#1c1917;--color-text-muted:#78716c;--color-bg:#faf8f5;--color-surface:#fff;--color-primary:#1882e3;--color-primary-hover:#073967;--color-accent:#1882e3;--color-accent-hover:#073967;--color-accent-light:#eff6ff;--color-secondary:#78716c;--color-border:#e7e5e4;--color-border-strong:#d6d3d1;--color-error:#b91c1c;--color-error-light:#fef2f2;--color-success:#15803d;--color-success-light:#f0fdf4;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:5rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--font-display:"Shippori Mincho", "Hiragino Mincho ProN", serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:.9375rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.75rem;--shadow-sm:0 1px 2px #1c19170a;--shadow-md:0 2px 8px #1c19170f, 0 1px 2px #1c19170a;--shadow-lg:0 8px 24px #1c191714, 0 2px 8px #1c19170a;--max-width:720px;--max-width-wide:960px;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-normal:.25s}}@layer layout,components,survey,utilities;
