:root{--color-black: #000000;--color-white: #FFFFFF;--color-lime: #BEC81A;--color-lime-hover: #CBD34B;--color-lime-deep: #98A015;--color-gray-soft: #CCCCCC;--color-gray-deep: #333333;--color-bg: var(--color-white);--color-surface: var(--color-white);--color-text: var(--color-black);--color-text-muted: var(--color-gray-deep);--color-border: var(--color-gray-soft);--color-accent: var(--color-lime);--color-accent-hover: var(--color-lime-hover);--color-accent-deep: var(--color-lime-deep);--color-on-accent: var(--color-black);--shadow: 0 8px 32px rgba(0, 0, 0, .12)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: var(--color-black);--color-surface: #0E0E0E;--color-text: var(--color-white);--color-text-muted: #CCCCCC;--color-border: var(--color-gray-deep);--shadow: 0 8px 32px rgba(0, 0, 0, .6)}}:root[data-theme=dark]{--color-bg: var(--color-black);--color-surface: #0E0E0E;--color-text: var(--color-white);--color-text-muted: #CCCCCC;--color-border: var(--color-gray-deep);--shadow: 0 8px 32px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%}body{font-family:Helvetica Neue,Arial,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,游ゴシック体,sans-serif;background-color:var(--color-bg);color:var(--color-text);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;flex-direction:column;height:100vh;width:100vw}.site-header{height:1.8em;min-height:1.8em;background-color:var(--color-accent);color:var(--color-on-accent);flex-shrink:0;display:flex;align-items:center;padding:0 .75rem;z-index:100}.site-header .notice{font-size:.72em;color:var(--color-on-accent);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1;letter-spacing:.01em}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--color-on-accent);display:flex;align-items:center;justify-content:center;padding:.2rem;border-radius:4px;transition:opacity .15s ease,background-color .15s ease;flex-shrink:0;opacity:.85}.theme-toggle:hover{opacity:1;background-color:#0000001f}.canvas-container{position:relative;flex:1;overflow:hidden}#three-canvas{display:block;width:100%;height:100%}.icon-tooltip{position:absolute;background:var(--color-black);color:var(--color-white);padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:500;pointer-events:none;white-space:nowrap;z-index:20;transform:translate(-50%);letter-spacing:.02em;border:1px solid var(--color-accent)}.fade-in{animation:fadeIn .8s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.site-footer{position:fixed;bottom:.75rem;right:1rem;font-size:.7rem;color:var(--color-text-muted);z-index:100;pointer-events:none;letter-spacing:.02em}.modal-backdrop{position:fixed;inset:0;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal-backdrop.open{opacity:1;pointer-events:auto}.modal-box{background:var(--color-surface);border-top:4px solid var(--color-accent);border-radius:16px;box-shadow:var(--shadow);padding:2rem;max-width:520px;width:90vw;max-height:80vh;overflow-y:auto;position:relative;transform:translateY(16px);transition:transform .2s ease}.modal-backdrop.open .modal-box{transform:translateY(0)}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted);line-height:1;padding:.25rem;border-radius:4px;transition:color .15s ease}.modal-close:hover{color:var(--color-text)}.modal-title{font-size:1.35rem;font-weight:700;color:var(--color-accent);margin-bottom:1.5rem;letter-spacing:.01em}.services-list{display:flex;flex-direction:column;gap:.75rem}.service-item{display:flex;flex-direction:row;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--color-bg);border-radius:12px;text-decoration:none;color:var(--color-text);transition:border-color .15s ease,transform .15s ease,background-color .15s ease;border:1px solid var(--color-border)}.service-item:hover{border-color:var(--color-accent);background-color:#bec81a14;transform:translateY(-2px)}.service-logo{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center}.service-logo-img{width:100%;height:100%;object-fit:contain}.service-logo-img--dark{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .service-logo-img--light{display:none}:root:not([data-theme=light]) .service-logo-img--dark{display:block}}:root[data-theme=dark] .service-logo-img--light{display:none}:root[data-theme=dark] .service-logo-img--dark{display:block}.service-logo-svg{width:48px;height:48px;color:var(--color-text)}.service-text{display:flex;flex-direction:column;gap:.25rem}.service-item .service-name{font-size:.95rem;font-weight:700;line-height:1.3;color:var(--color-text)}.service-item .service-desc{font-size:.78rem;line-height:1.5;color:var(--color-text-muted)}.business-section{margin-bottom:1.5rem}.business-section:last-child{margin-bottom:0}.business-section h3{font-size:1rem;font-weight:700;color:var(--color-text);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-accent)}.business-section ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}.business-section ul li{font-size:.9rem;padding-left:1rem;position:relative;line-height:1.6}.business-section ul li:before{content:"▸";position:absolute;left:0;color:var(--color-accent)}.about-content p{font-size:.9rem;line-height:1.8;margin-bottom:.75rem}.about-content p:last-child{margin-bottom:0}.about-heading{font-size:.98rem;font-weight:700;color:var(--color-text);margin:1.25rem 0 .6rem;padding-bottom:.4rem;border-bottom:2px solid var(--color-accent)}.about-info{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;font-size:.88rem}.about-info dt{font-weight:700;color:var(--color-accent-deep);white-space:nowrap}.about-info dd{margin:0;line-height:1.6}.about-timeline{display:flex;flex-direction:column;gap:1rem}.timeline-entry{display:flex;flex-direction:column;gap:.35rem}.timeline-period{font-size:.85rem;font-weight:700;color:var(--color-accent-deep)}.about-timeline ul{list-style:none;display:flex;flex-direction:column;gap:.35rem;padding:0;margin:0}.about-timeline ul li{font-size:.85rem;padding-left:1rem;position:relative;line-height:1.6}.about-timeline ul li:before{content:"▸";position:absolute;left:0;color:var(--color-accent)}
