:root{--color-bg: #FFFFFF;--color-bg-alt: #F8F9FA;--color-text: #333333;--color-primary: #3DBBFF;--color-secondary: #004098;--color-accent: #3DBBFF;--color-card-bg: #FFFFFF;--font-main: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-serif: var(--font-main);--spacing-container: 6vw;--spacing-section: 140px;--radius-large: 50px;--radius-medium: 30px;--gradient-text: linear-gradient(135deg, #fff 0%, #888 100%)}@media(max-width:768px){:root{--spacing-container: 6vw;--spacing-section: 80px}.text-huge{font-size:3.5rem}.text-large{font-size:2.5rem}}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-main);background-color:var(--color-bg);color:var(--color-text);scroll-behavior:smooth;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{width:100%;overflow-x:hidden}a{color:inherit;text-decoration:none}.btn-suntory{display:inline-flex;align-items:center;justify-content:center;padding:12px 32px;border-radius:var(--radius-large);border:1px solid var(--color-primary);background-color:transparent;color:var(--color-primary);font-weight:700;font-family:var(--font-main);transition:all .3s ease;position:relative;overflow:hidden}.btn-suntory:after{content:">";margin-left:10px;font-size:1.2em;transition:transform .3s ease}.btn-suntory:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #3dbbff4d}.btn-suntory:hover:after{transform:translate(5px)}ul{list-style:none}.text-huge{font-size:clamp(3rem,8vw,8rem);font-weight:700;line-height:.9;letter-spacing:-.02em}.text-large{font-size:clamp(2rem,5vw,4rem);font-weight:700;line-height:1.1;letter-spacing:-.01em}.text-medium{font-size:1.5rem;font-weight:500}.container{padding:0 var(--spacing-container);max-width:1920px;margin:0 auto}.section{padding:var(--spacing-section) 0;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.bg-dark{background-color:var(--color-bg-dark);color:var(--color-text-light)}.gradient-text{background:var(--gradient-text);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header{position:fixed;top:0;left:0;width:100%;z-index:100;padding:1.5rem var(--spacing-container);background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-secondary);box-shadow:0 2px 20px #0000000d;transition:all .3s ease}.header-container{display:flex;justify-content:space-between;align-items:center}.logo{font-weight:700;font-size:1.2rem;letter-spacing:.05em}.menu-toggle{background:none;border:none;color:inherit;cursor:pointer;z-index:101}.nav-overlay{position:fixed;top:0;right:0;width:100%;height:100vh;background-color:#000;color:#fff;display:flex;align-items:center;padding-left:var(--spacing-container);transform:translate(100%);transition:transform .5s cubic-bezier(.87,0,.13,1)}.nav-overlay.open{transform:translate(0)}.nav-links li{margin-bottom:2rem}.nav-links a{font-size:clamp(2rem,5vw,4rem);font-weight:700;text-transform:uppercase}.hero-section{height:100vh;width:100%;position:relative;overflow:hidden;background-color:#fff;color:var(--color-secondary)}.hero-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:hidden;background:radial-gradient(circle at 70% 30%,#e0f7fa,#fff 60%)}.gradient-sphere{position:absolute;top:40%;left:60%;width:100vw;height:100vw;background:radial-gradient(circle,#3dbbff26,#fff0 70%);transform:translate(-50%,-50%);filter:blur(60px);animation:flow 15s infinite alternate ease-in-out}@keyframes flow{0%{transform:translate(-50%,-50%) scale(1) rotate(0);border-radius:40%}to{transform:translate(-45%,-55%) scale(1.1) rotate(20deg);border-radius:50%}}.hero-container{position:relative;height:100%;width:100%;z-index:1;display:flex;align-items:center;justify-content:flex-start;padding:0 var(--spacing-container)}.hero-content{text-align:left;max-width:800px}.hero-logo-large{font-family:var(--font-main);font-size:clamp(4rem,10vw,8rem);line-height:1.1;letter-spacing:.02em;font-weight:500;color:var(--color-secondary);margin-bottom:2rem}.hero-tagline{margin-top:2rem;font-size:1.2rem;font-weight:500;letter-spacing:.3em;color:#86868b}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-size:.8rem;letter-spacing:.2em;color:#86868b;display:flex;flex-direction:column;align-items:center;gap:1rem}.scroll-indicator:after{content:"";display:block;width:1px;height:40px;background-color:#86868b}@media(max-width:768px){.hero-logo-large{font-size:15vw}.hero-tagline{font-size:.9rem;letter-spacing:.2em}}.about-section{background-color:var(--color-bg);color:var(--color-text);min-height:150vh;padding:var(--spacing-section) 0}.about-container{display:flex;flex-direction:column}@media(min-width:1024px){.about-container{flex-direction:row;align-items:flex-start}.about-sticky-side{width:40%;position:sticky;top:20vh;padding-right:4rem}.about-scroll-side{width:60%;padding-top:20vh;padding-bottom:20vh}}@media(max-width:1023px){.about-section{min-height:auto}.about-container{flex-direction:column}.about-sticky-side{position:relative;width:100%;margin-bottom:3rem;top:0}.about-scroll-side{width:100%;padding-top:0;padding-bottom:0}.about-block{margin-bottom:4rem}}.gradient-text{background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.about-block{margin-bottom:10rem}.mission-statement{margin-bottom:3rem;line-height:1.3}.mission-description{font-size:1.25rem;line-height:1.8;color:#86868b;font-weight:500}.services-section{background-color:var(--color-bg);padding-bottom:10rem}.center-align{text-align:center;margin-bottom:5rem}.bento-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:1200px;margin:0 auto}@media(min-width:768px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,minmax(300px,auto))}.bento-large{grid-column:span 2;grid-row:span 1}.bento-tall,.bento-wide{grid-column:span 1;grid-row:span 1}}.bento-card{background-color:#fff;border-radius:var(--radius-large);padding:3rem;display:flex;flex-direction:column;justify-content:space-between;color:var(--color-text);transition:transform .4s cubic-bezier(.25,1,.5,1);overflow:hidden;position:relative;box-shadow:0 4px 20px #0000000d;border:1px solid rgba(0,0,0,.05)}.bento-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at top right,rgba(61,187,255,.1) 0%,transparent 60%);opacity:.6;pointer-events:none}.card-icon{color:var(--color-primary);margin-bottom:2rem}.card-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;font-family:var(--font-main);color:var(--color-secondary)}.card-subtitle{color:var(--color-primary);font-size:.9rem;margin-bottom:1.5rem;font-weight:600}.card-desc{font-size:1rem;line-height:1.8;color:#666}.works-section{background-color:var(--color-bg);padding-bottom:10rem}.works-gallery{display:flex;flex-direction:column;gap:2rem;margin-top:3rem}.work-card-large{position:relative;width:100%;background-color:#0d2b5b;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;text-decoration:none;color:#fff;box-shadow:0 10px 30px #0000001a;min-height:450px}.work-card-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:.2;transition:opacity .6s ease}.work-card-large:hover .work-card-bg{opacity:.3}.work-card-overlay{position:relative;z-index:10;width:100%;height:100%;padding:3rem 4rem;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left}.work-label{font-size:.9rem;font-weight:700;color:#3dbbff;margin-bottom:.5rem;background:#e6f7ff;padding:6px 16px;border-radius:50px;align-self:flex-start;display:inline-block;margin-bottom:1.5rem}.work-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:700;margin-bottom:1.5rem;font-family:var(--font-main);color:#fff;line-height:1.2}.work-card-simple{padding:3rem;background-color:var(--color-bg-alt);border-radius:var(--radius-large);text-align:center;color:var(--color-text)}.work-title-small{color:#fff;font-size:1.5rem;margin-bottom:.5rem}@media(max-width:768px){.works-gallery{gap:1.5rem}.work-card-large{aspect-ratio:4/5}.work-card-overlay{padding:1.5rem}.work-title{font-size:2.5rem}}.news-section{padding-bottom:5rem;background-color:var(--color-bg)}.news-list{margin-top:3rem;border-top:1px solid #333}.news-item{display:flex;flex-direction:column;padding:2rem 0;border-bottom:1px solid #333;transition:background-color .3s}.news-item:hover{background-color:#111}.news-meta{display:flex;gap:1.5rem;margin-bottom:.5rem;font-size:.9rem;color:#888}.news-cat{color:var(--color-accent);font-weight:600}.news-title{font-size:1.2rem;font-weight:500;line-height:1.5}@media(min-width:768px){.news-item{flex-direction:row;align-items:center}.news-meta{width:250px;margin-bottom:0}}.contact-section{padding:100px 0;background-color:var(--color-bg-alt);color:var(--color-text-main)}.contact-container{max-width:800px;margin:0 auto;padding:0 20px}.contact-header{text-align:center;margin-bottom:60px}.contact-title{font-size:2.5rem;color:var(--color-text-main);margin-bottom:1rem;letter-spacing:.1em}.contact-desc{color:var(--color-text-light);font-size:1rem}.contact-form{background:#fff;padding:40px;border-radius:12px;box-shadow:0 10px 30px #0000000d}.form-group{margin-bottom:24px}.form-label{display:block;margin-bottom:8px;font-weight:500;font-size:.95rem;color:var(--color-text-main)}.form-input,.form-textarea{width:100%;padding:12px 16px;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:all .3s ease;background-color:#fcfcfc}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-sub);background-color:#fff;box-shadow:0 0 0 3px #0040981a}.form-textarea{resize:vertical;min-height:150px}.submit-btn{width:100%;padding:16px;background-color:var(--color-sub);color:#fff;border:none;border-radius:50px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.submit-btn:hover{background-color:#003075;transform:translateY(-2px);box-shadow:0 5px 15px #00409833}.form-message{margin-top:20px;padding:15px;border-radius:8px;text-align:center;font-size:.95rem}.form-message.success{background-color:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.form-message.error{background-color:#ffebee;color:#c62828;border:1px solid #ffcdd2}.footer{background-color:var(--color-bg-alt);color:var(--color-text);padding:4rem 0 2rem;border-top:1px solid #eee}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:4rem;margin-bottom:4rem}.footer-nav ul{display:flex;flex-direction:column;gap:1.5rem}.footer-nav a{font-size:1.5rem;font-weight:700;transition:color .3s}.footer-nav a:hover{color:var(--color-accent)}.company-info{margin-top:2rem;font-size:.9rem;line-height:2;color:#86868b}.logo-small{color:var(--color-secondary);font-weight:700;margin-bottom:1rem}.management{margin-top:2rem}.footer-bottom{border-top:1px solid #1d1d1f;padding-top:2rem;text-align:center;font-size:.75rem;color:#555;display:flex;justify-content:space-between}.admin-login{height:100vh;display:flex;justify-content:center;align-items:center;background-color:#111;color:#fff}.login-form{background:#222;padding:2rem;border-radius:10px;display:flex;flex-direction:column;gap:1rem}.login-form input{padding:.5rem;border-radius:4px;border:none}.admin-dashboard{min-height:100vh;background-color:#f5f5f5;color:#333}.admin-header{background-color:#000;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.view-site-btn{background-color:#2997ff;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer}.admin-tabs{display:flex;border-bottom:1px solid #ddd;background:#fff;padding:0 2rem}.admin-tabs button{padding:1rem 2rem;background:none;border:none;font-size:1rem;cursor:pointer;border-bottom:3px solid transparent}.admin-tabs button.active{border-bottom-color:#000;font-weight:700}.admin-content{padding:2rem;max-width:1000px;margin:0 auto}.add-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 5px #0000001a}.full-width{grid-column:span 2}.add-form input,.add-form select,.add-form textarea{padding:.8rem;border:1px solid #ddd;border-radius:4px}.add-form button{padding:1rem;background-color:#000;color:#fff;border:none;border-radius:4px;cursor:pointer;flex:1}.item-list{background:#fff;border-radius:8px;box-shadow:0 2px 5px #0000001a}.admin-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid #eee;cursor:pointer;transition:background-color .2s}.admin-item:hover{background-color:#f0f0f0}.delete-btn{background-color:#ff3b30;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;z-index:2}.form-actions{display:flex;gap:10px}.cancel-btn{background-color:#888!important}.admin-help-wrapper{max-width:800px;margin:0 auto;color:#fff}.help-section{margin-bottom:40px;background:#2a2a2a;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000004d;border:1px solid #444}.help-section h3{border-bottom:2px solid #555;padding-bottom:10px;margin-bottom:20px;color:#fff;font-size:1.4rem}.help-section h4{margin-top:20px;margin-bottom:10px;color:#a0cfff;font-weight:600}.help-section ul{margin-left:20px;line-height:1.8;color:#e0e0e0}.help-section li{margin-bottom:8px}.tech-stack-info{margin-top:15px;padding:15px;background:#0000004d;border-radius:8px}.code-block{background:#111;padding:20px;border-radius:8px;font-family:monospace;margin:15px 0;border:1px solid #333;line-height:1.5}.note-alert{background:#ffa50026;border-left:4px solid orange;padding:15px;margin-top:20px;font-size:.9em}textarea{resize:vertical}.detail-page{padding-top:120px;min-height:100vh;background-color:#000;color:#fff}.back-btn{background:none;border:none;color:#888;font-size:1rem;cursor:pointer;margin-bottom:2rem}.back-btn:hover{color:#fff}.news-detail .detail-header{margin-bottom:3rem;border-bottom:1px solid #333;padding-bottom:2rem}.detail-date{color:#888;margin-right:1rem}.detail-cat{color:var(--color-accent);font-weight:700}.detail-title{font-size:2.5rem;margin-top:1rem;line-height:1.2}.detail-content{font-size:1.1rem;line-height:1.8;color:#ccc;max-width:800px}.detail-link-btn{display:inline-block;margin-top:2rem;padding:.8rem 2rem;background-color:#333;color:#fff;border-radius:20px;text-decoration:none}.works-hero-media{width:100%;height:50vh;overflow:hidden;position:relative;margin-bottom:-100px;z-index:0}.works-hero-img{width:100%;height:100%;object-fit:cover}.works-hero-placeholder{width:100%;height:100%;background:linear-gradient(45deg,#222,#444)}.works-content-container{position:relative;z-index:1;background:#000c;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:3rem;border-radius:20px 20px 0 0;min-height:60vh}.works-cat{color:var(--color-accent);letter-spacing:.2em}.works-title{font-size:4rem;margin:1rem 0}.works-desc{font-size:1.5rem;color:#aaa;margin-bottom:3rem}.works-link-btn{display:inline-block;padding:1rem 3rem;background:var(--color-accent);color:#fff;border-radius:30px;font-weight:700;text-decoration:none;margin-right:1rem}@media(max-width:768px){.works-title{font-size:2.5rem}.works-content-container{padding:1.5rem}}.works-detail{padding-bottom:80px;background-color:var(--color-bg);min-height:100vh}.works-hero-media{width:100%;height:60vh;background-color:#000;overflow:hidden;position:relative}.works-hero-img{width:100%;height:100%;object-fit:cover;opacity:.8}.works-hero-placeholder{width:100%;height:100%;background:linear-gradient(45deg,#111,#222)}.works-content-container{max-width:900px;margin:-60px auto 0;padding:40px 20px;position:relative;z-index:2}.back-btn{display:inline-block;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);color:#fff;padding:8px 16px;border-radius:20px;cursor:pointer;margin-bottom:20px;font-size:.9rem;transition:all .3s ease}.back-btn:hover{background:#ffffff1a}.works-header{margin-bottom:40px;padding:40px;background:#000c;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-large);border:1px solid rgba(255,255,255,.1)}.works-cat{display:inline-block;font-size:.8rem;color:var(--color-accent);margin-bottom:1rem;letter-spacing:.1em;font-weight:600}.works-title{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2}.works-desc{font-size:1.1rem;line-height:1.8;color:#ccc}.works-body{margin-top:40px}.works-video-container{position:relative;padding-bottom:56.25%;height:0;border-radius:var(--radius-large);overflow:hidden;background:#000;margin-bottom:40px;box-shadow:0 10px 30px #00000080}.works-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.works-video-link{margin-bottom:40px;text-align:center}.works-video-link a{display:inline-block;padding:12px 24px;background:red;color:#fff;border-radius:30px;font-weight:600;text-decoration:none;transition:transform .2s ease}.works-video-link a:hover{transform:scale(1.05)}.works-links{display:flex;gap:16px;flex-wrap:wrap}.works-link-btn{display:inline-flex;align-items:center;padding:12px 24px;background:#ffffff1a;color:#fff;text-decoration:none;border-radius:30px;font-size:.95rem;font-weight:500;transition:background .3s ease}.works-link-btn:hover{background:#fff3}@media(max-width:768px){.works-hero-media{height:40vh}.works-title{font-size:1.8rem}.works-header{padding:24px}}.company-page{background-color:var(--color-bg);color:var(--color-text);min-height:100vh;padding-top:100px;padding-bottom:80px}.company-header{text-align:center;margin-bottom:60px}.company-title{font-size:3rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}.company-content{max-width:800px;margin:0 auto;padding:0 20px}.company-table{width:100%;border-collapse:collapse;margin-top:2rem}.company-table tr{border-bottom:1px solid rgba(255,255,255,.1)}.company-table th,.company-table td{padding:24px 0;text-align:left;vertical-align:top}.company-table th{width:30%;font-weight:500;color:#888;font-size:.95rem}.company-table td{font-weight:400;line-height:1.6}.company-map{margin-top:60px;width:100%;height:400px;background-color:#222;border-radius:var(--radius-large);overflow:hidden;position:relative}.company-map iframe{width:100%;height:100%;border:0;filter:grayscale(100%) invert(90%)}@media(max-width:768px){.company-table th,.company-table td{display:block;width:100%;padding:8px 0}.company-table th{padding-top:24px;font-size:.85rem}.company-table tr{padding-bottom:16px;display:block}}
