@layer otsukimi{:root{--otsukimi-color-bg-base:#faf8ff;--otsukimi-color-bg-surface:#fff;--otsukimi-color-brand-primary:#dca3ff;--otsukimi-color-brand-primary-soft:#efd6ff;--otsukimi-color-brand-primary-deep:#5560c9;--otsukimi-color-accent-default:#8edaf7;--otsukimi-color-accent-soft:#cdefff;--otsukimi-color-text-primary:#483354;--otsukimi-color-text-secondary:#6f6a86;--otsukimi-color-border-default:#e8dcf3;--otsukimi-color-highlight-default:#ffbc00;--otsukimi-color-highlight-soft:#fff3c7;--otsukimi-color-secondary:#ffe1ee;--otsukimi-radius-xs:8px;--otsukimi-radius-sm:16px;--otsukimi-radius-md:24px;--otsukimi-radius-lg:32px;--otsukimi-radius-full:9999px;--otsukimi-spacing-1:4px;--otsukimi-spacing-2:8px;--otsukimi-spacing-3:16px;--otsukimi-spacing-4:24px;--otsukimi-spacing-5:32px;--otsukimi-spacing-6:64px;--otsukimi-font-body-family:"LINE Seed JP", "Zen Maru Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;--otsukimi-font-heading-family:"Zen Maru Gothic", "LINE Seed JP", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;--otsukimi-shadow-sm:0 4px 8px #ddb7f41a, 0 2px 4px #00000008;--otsukimi-shadow-md:0 8px 24px #ddb7f426, 0 2px 8px #0000000d;--otsukimi-shadow-lg:0 16px 48px #ddb7f433, 0 4px 16px #0000000f}.otsukimi-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.otsukimi-field:focus-visible{border:2px solid var(--otsukimi-color-brand-primary-deep);box-shadow:var(--otsukimi-shadow-sm);outline:none}.otsukimi-button{box-sizing:border-box;border-radius:var(--otsukimi-radius-full);height:3em;font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);background:linear-gradient(90deg, var(--otsukimi-color-brand-primary-soft), var(--otsukimi-color-secondary), var(--otsukimi-color-accent-soft));box-shadow:var(--otsukimi-shadow-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.625em;padding:0 1.25em;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.otsukimi-button:hover:not(:disabled){box-shadow:var(--otsukimi-shadow-lg);transform:translateY(-1px)}.otsukimi-button:active:not(:disabled){transform:translateY(0)}.otsukimi-button:focus-visible{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:2px}.otsukimi-button:disabled{background:var(--otsukimi-color-border-default);color:var(--otsukimi-color-text-secondary);box-shadow:var(--otsukimi-shadow-sm);cursor:not-allowed}.otsukimi-button-transparent{border:2px solid var(--otsukimi-color-border-default);color:var(--otsukimi-color-text-primary);box-shadow:var(--otsukimi-shadow-sm);background:0 0}.otsukimi-button svg{width:24px;height:24px}.otsukimi-button-moon svg{color:var(--otsukimi-color-highlight-default)}.otsukimi-button-moon{gap:.3125em}@media (prefers-reduced-motion:reduce){.otsukimi-button{transition:none}}.otsukimi-input{box-sizing:border-box;border-radius:var(--otsukimi-radius-md);border:1px solid var(--otsukimi-color-border-default);background:var(--otsukimi-color-bg-surface);width:100%;height:3em;font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);padding:0 1em;font-size:1rem;font-weight:400;transition:border-color .15s,box-shadow .15s}.otsukimi-input::placeholder{color:var(--otsukimi-color-text-secondary)}.otsukimi-input:disabled{background:var(--otsukimi-color-bg-base);border:1px solid var(--otsukimi-color-border-default);opacity:.8}@media (prefers-reduced-motion:reduce){.otsukimi-input{transition:none}}.otsukimi-card{box-sizing:border-box;border-radius:var(--otsukimi-radius-md);background:var(--otsukimi-color-bg-surface);box-shadow:var(--otsukimi-shadow-md);color:var(--otsukimi-color-text-primary);flex-direction:column;gap:.5em;padding:1.5em 1.75em;display:flex}.otsukimi-badge{border-radius:var(--otsukimi-radius-full);font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);justify-content:center;align-items:center;padding:6px 12px;font-size:.8125rem;font-weight:400;display:inline-flex}.otsukimi-badge-default{background:var(--otsukimi-color-secondary)}.otsukimi-badge-primary{background:var(--otsukimi-color-brand-primary-soft)}.otsukimi-badge-moonlight{background:var(--otsukimi-color-highlight-soft)}.otsukimi-badge-accent-soft{background:var(--otsukimi-color-accent-soft)}.otsukimi-checkbox{font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);cursor:pointer;align-items:center;gap:12px;font-size:1rem;font-weight:400;display:inline-flex;position:relative}.otsukimi-checkbox-box{box-sizing:border-box;border:2px solid var(--otsukimi-color-border-default);border-radius:var(--otsukimi-radius-xs);background:var(--otsukimi-color-bg-surface);justify-content:center;align-items:center;width:1.5em;height:1.5em;transition:background .15s,border-color .15s;display:flex}.otsukimi-checkbox-input:checked+.otsukimi-checkbox-box{background:var(--otsukimi-color-brand-primary-deep);border-color:var(--otsukimi-color-brand-primary-deep)}.otsukimi-checkbox-input:focus-visible+.otsukimi-checkbox-box{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:2px}.otsukimi-checkbox-input:disabled+.otsukimi-checkbox-box{opacity:.5}.otsukimi-checkbox:has(.otsukimi-checkbox-input:disabled){cursor:not-allowed}.otsukimi-checkbox-box svg{width:24px;height:24px;display:none}.otsukimi-checkbox-input:checked+.otsukimi-checkbox-box svg{color:var(--otsukimi-color-highlight-default);display:block}.otsukimi-checkbox-moon .otsukimi-checkbox-icon{width:1.375em;height:1.25em}.otsukimi-checkbox-label{cursor:pointer;line-height:1.5}@media (prefers-reduced-motion:reduce){.otsukimi-checkbox-box{transition:none}}.otsukimi-radio-button{font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);cursor:pointer;align-items:center;gap:13px;font-size:1rem;font-weight:400;display:inline-flex;position:relative}.otsukimi-radio-circle{box-sizing:border-box;background:var(--otsukimi-color-bg-surface);border:2px solid var(--otsukimi-color-border-default);border-radius:50%;justify-content:center;align-items:center;width:1.5em;height:1.5em;transition:border-color .15s;display:flex}.otsukimi-radio-input:checked+.otsukimi-radio-circle{border-color:var(--otsukimi-color-brand-primary-deep)}.otsukimi-radio-input:focus-visible+.otsukimi-radio-circle{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:2px}.otsukimi-radio-input:disabled+.otsukimi-radio-circle{opacity:.5}.otsukimi-radio-button:has(.otsukimi-radio-input:disabled){cursor:not-allowed}.otsukimi-radio-dot{background:var(--otsukimi-color-brand-primary-deep);border-radius:50%;width:1em;height:1em;display:none}.otsukimi-radio-input:checked+.otsukimi-radio-circle .otsukimi-radio-dot{display:block}.otsukimi-radio-label{cursor:pointer;line-height:1.5}@media (prefers-reduced-motion:reduce){.otsukimi-radio-circle{transition:none}}.otsukimi-accordion{width:100%}.otsukimi-accordion-header{box-sizing:border-box;border-radius:var(--otsukimi-radius-md);border:1px solid var(--otsukimi-color-border-default);background:var(--otsukimi-color-bg-surface);width:100%;min-height:2.4em;font-family:var(--otsukimi-font-heading-family);color:var(--otsukimi-color-text-primary);cursor:pointer;align-items:center;gap:.5em;padding:0 .8em;font-size:1.25rem;font-weight:500;transition:border-color .15s,box-shadow .15s;display:flex}.otsukimi-accordion-header:hover{box-shadow:var(--otsukimi-shadow-sm)}.otsukimi-accordion-header:focus-visible{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:2px}.otsukimi-accordion-open .otsukimi-accordion-header{border-color:var(--otsukimi-color-brand-primary-deep)}.otsukimi-accordion-header svg{width:24px;height:24px;color:var(--otsukimi-color-brand-primary-deep)}.otsukimi-accordion-content{font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);padding:1em 1.6875em;font-size:1rem;font-weight:400;line-height:1.5}.otsukimi-accordion-content[hidden]{display:none}@media (prefers-reduced-motion:reduce){.otsukimi-accordion-header{transition:none}}.otsukimi-divider{background:var(--otsukimi-color-border-default);border:0;width:100%;height:1px}.otsukimi-divider-dashed{background:repeating-linear-gradient(to right, var(--otsukimi-color-border-default) 0, var(--otsukimi-color-border-default) .125em, transparent .125em, transparent .25em);height:1px}.otsukimi-link{font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-brand-primary-deep);cursor:pointer;justify-content:center;align-items:center;gap:5px;font-size:1rem;font-weight:400;text-decoration:none;display:inline-flex}.otsukimi-link:focus-visible{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:2px}.otsukimi-link svg{width:24px;height:24px;color:var(--otsukimi-color-brand-primary-deep)}@media (prefers-reduced-motion:reduce){.otsukimi-link{transition:none}}.otsukimi-search-bar{align-items:center;gap:.3125em;width:100%;min-height:3em;display:flex}.otsukimi-search-bar-input{box-sizing:border-box;border:1px solid var(--otsukimi-color-border-default);border-radius:var(--otsukimi-radius-md);background:var(--otsukimi-color-bg-surface);min-width:0;min-height:3em;font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);flex:auto;padding:0 1em;font-size:1rem;font-weight:400;transition:border-color .15s,box-shadow .15s}.otsukimi-search-bar-input::placeholder{color:var(--otsukimi-color-text-secondary)}.otsukimi-search-bar-button{flex:none;min-width:0;padding:.75em 1.25em}@media (prefers-reduced-motion:reduce){.otsukimi-search-bar-input{transition:none}}.otsukimi-list-item{min-height:1.5em;font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);align-items:center;gap:.625em;font-size:1rem;font-weight:400;display:flex}.otsukimi-list-item svg{width:24px;height:24px}.otsukimi-list-item-star svg{color:var(--otsukimi-color-highlight-default)}.otsukimi-list-item-dot svg{color:var(--otsukimi-color-brand-primary-deep)}}:root{font-family:var(--otsukimi-font-body-family);color:var(--otsukimi-color-text-primary);background:var(--otsukimi-color-bg-base);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}body{line-break:strict;min-width:320px;word-break:auto-phrase;margin:0}a:not(.otsukimi-link){color:inherit;text-decoration:none}a:not(.otsukimi-link):focus-visible,button:not(.otsukimi-button):focus-visible{outline:2px solid var(--otsukimi-color-brand-primary-deep);outline-offset:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.site-shell{background:var(--otsukimi-color-bg-base);min-height:100vh;color:var(--otsukimi-color-text-primary)}.page-shell,.site-header-inner,.site-footer{width:min(1280px, calc(100% - clamp(calc(var(--otsukimi-spacing-6) * 2), 12vw, calc(var(--otsukimi-spacing-6) * 4))));margin:auto}.page-shell{padding-bottom:calc(var(--otsukimi-spacing-6) * 1.5)}.brand-mark{font-size:28px;line-height:1.2;display:inline-block}.site-intro{z-index:100;padding:var(--otsukimi-spacing-4);background:var(--otsukimi-color-bg-base);place-items:center;animation:.5s ease-in-out 1.4s forwards intro-exit;display:grid;position:fixed;inset:0}.intro-brand{text-align:center;animation:.4s ease-out both intro-enter}.intro-brand .brand-mark{font-size:60px}.intro-brand p{margin:var(--otsukimi-spacing-4) 0 0;letter-spacing:.06em;font-size:clamp(18px,3vw,24px);font-weight:500}@keyframes intro-enter{0%{opacity:0}to{opacity:1}}@keyframes intro-exit{to{opacity:0}}.site-header{z-index:10;background:0 0;position:sticky;top:0}.site-header-inner{justify-content:space-between;align-items:center;gap:var(--otsukimi-spacing-4);min-height:96px;display:flex}.site-brand{align-items:center;gap:14px;font-size:15px;font-weight:500;display:inline-flex}.site-nav{color:var(--otsukimi-color-text-secondary);gap:28px;font-size:13px;display:flex}.site-nav a{padding:var(--otsukimi-spacing-2) 0}.site-nav a:hover{color:var(--otsukimi-color-text-primary)}.menu-toggle{width:40px;height:40px;padding:var(--otsukimi-spacing-2);color:var(--otsukimi-color-text-primary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:none}.hero{padding:clamp(80px,8vw,128px) 0 clamp(96px,10vw,160px)}.hero-layout{align-items:center;gap:var(--otsukimi-spacing-6);grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);display:grid}.hero-copy{min-width:0}.hero h1{margin:0 0 var(--otsukimi-spacing-5);font-family:var(--otsukimi-font-heading-family);letter-spacing:-.04em;font-size:clamp(32px,4.6vw,64px);font-weight:500;line-height:1.7}.hero h1 span{white-space:nowrap;display:block}.hero-link{margin-top:var(--otsukimi-spacing-5)}.hero-motion{aspect-ratio:1;isolation:isolate;justify-self:center;width:100%;max-width:480px;position:relative}.soft-surface{width:100%;height:100%;display:block;overflow:visible}.section{padding-top:var(--otsukimi-spacing-6);margin-top:var(--otsukimi-spacing-6);border-top:1px solid var(--otsukimi-color-border-default);scroll-margin-top:120px}.section-title{margin:0 0 var(--otsukimi-spacing-5);font-family:var(--otsukimi-font-heading-family);font-size:28px;font-weight:500;line-height:1.5}.service-groups{gap:var(--otsukimi-spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.service-card h3{margin:0 0 var(--otsukimi-spacing-3);font-family:var(--otsukimi-font-heading-family);font-size:20px;font-weight:500}.service-description{color:var(--otsukimi-color-text-secondary);margin:0;font-size:16px;line-height:1.9}.work-content{min-width:0}.work-content h3{margin:0 0 var(--otsukimi-spacing-3);font-family:var(--otsukimi-font-heading-family);font-size:clamp(28px,3vw,40px);font-weight:500;line-height:1.4}.work-description{margin:0;font-size:16px;line-height:1.9}.work-note{max-width:42ch;margin:var(--otsukimi-spacing-3) 0 0;color:var(--otsukimi-color-text-secondary);font-size:14px;line-height:1.9}.work-links{gap:var(--otsukimi-spacing-3) var(--otsukimi-spacing-4);margin-top:var(--otsukimi-spacing-5);flex-wrap:wrap;display:flex}.detail-panel{width:100%}.company-details{margin:0}.company-details div{align-items:baseline;gap:var(--otsukimi-spacing-4);padding:var(--otsukimi-spacing-4) 0;grid-template-columns:160px minmax(0,1fr);display:grid}.company-details div:first-child{padding-top:var(--otsukimi-spacing-2)}.company-details div:last-child{padding-bottom:var(--otsukimi-spacing-2)}.company-details div+div{border-top:1px solid var(--otsukimi-color-border-default)}.company-details dt{color:var(--otsukimi-color-text-secondary);margin:0;font-size:14px;line-height:1.9}.company-details dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:16px;line-height:1.9}.company-details .representative-bio{max-width:60ch;margin:var(--otsukimi-spacing-2) 0 0;color:var(--otsukimi-color-text-secondary);font-size:14px;line-height:1.9}.contact-layout{gap:var(--otsukimi-spacing-5);grid-template-columns:1fr 2fr;display:grid}.contact-content p{margin:0 0 var(--otsukimi-spacing-4);color:var(--otsukimi-color-text-secondary);font-size:16px;line-height:2}.section-notices .section-title{font-size:20px}.detail-panel p{color:var(--otsukimi-color-text-secondary);margin:0;font-size:14px;line-height:2}.site-footer{padding:var(--otsukimi-spacing-5) 0 40px;border-top:1px solid var(--otsukimi-color-border-default);color:var(--otsukimi-color-text-secondary);text-align:center;font-size:12px}.back-to-top{right:var(--otsukimi-spacing-4);bottom:calc(var(--otsukimi-spacing-4) + env(safe-area-inset-bottom,0px));z-index:20;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(var(--otsukimi-spacing-3));transition:opacity .24s,transform .24s,visibility 0s linear .24s;position:fixed}.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}@media (width>=761px) and (width<=1000px){.service-groups{grid-template-columns:1fr}}@media (width<=760px){.page-shell,.site-header-inner,.site-footer{width:calc(100% - var(--otsukimi-spacing-4) * 2)}.site-header-inner{gap:12px;padding:18px 0}.site-brand{gap:10px;font-size:14px}.site-brand .brand-mark{font-size:24px}.menu-toggle{flex-shrink:0;display:inline-flex}.site-menu{top:100%;left:var(--otsukimi-spacing-4);right:var(--otsukimi-spacing-4);opacity:0;visibility:hidden;transform:translateY(calc(-1 * var(--otsukimi-spacing-2)));background:var(--otsukimi-color-bg-surface);border-radius:var(--otsukimi-radius-md);box-shadow:var(--otsukimi-shadow-md);grid-template-rows:0fr;transition:grid-template-rows .32s,opacity .24s,transform .32s,visibility 0s linear .32s;display:grid;position:absolute}.site-menu.is-open{opacity:1;visibility:visible;grid-template-rows:1fr;transition-delay:0s;transform:translateY(0)}.site-nav{flex-direction:column;gap:0;min-height:0;font-size:14px;overflow:hidden}.site-nav a{padding:var(--otsukimi-spacing-4);text-align:center}.hero{padding:var(--otsukimi-spacing-6) 0 calc(var(--otsukimi-spacing-6) * 1.5)}.hero-layout{gap:var(--otsukimi-spacing-5);grid-template-columns:1fr}.hero-motion{display:none}.hero h1{font-size:clamp(26px,7vw,44px);line-height:1.8}.intro-brand .brand-mark{font-size:48px}.intro-brand p{letter-spacing:.03em}.section{padding-top:var(--otsukimi-spacing-5);margin-top:48px;scroll-margin-top:144px}.section-title{margin-bottom:var(--otsukimi-spacing-4);font-size:24px}.contact-layout{grid-template-columns:1fr;gap:0}.company-details dd,.contact-content p{font-size:14px}.service-groups{gap:var(--otsukimi-spacing-3);margin-top:var(--otsukimi-spacing-4);grid-template-columns:1fr}.work-links{flex-direction:column;align-items:flex-start}.company-details div{gap:var(--otsukimi-spacing-2);grid-template-columns:1fr}.page-shell{padding-bottom:var(--otsukimi-spacing-6)}}@media (prefers-reduced-motion:reduce){.site-intro,.intro-brand{animation:none}.back-to-top,.site-menu{transition:none;transform:none}}
