/* AOI Academy visual language, matched to academy.aoi-kurokawa.com, 2026-10-25. */
:root{--aoi-ink:#294a3d;--aoi-text:#4b6256;--aoi-muted:#657b6c;--aoi-line:#ceded0;--aoi-green:#42634c;--aoi-accent:#ad6945;--aoi-serif:'Hiragino Mincho ProN','Yu Mincho',serif;--aoi-sans:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
html{background:#f3f7ef;scroll-padding-top:32px}
body.aoi-unified{--ink:var(--aoi-ink);--body:var(--aoi-text);--text:var(--aoi-text);--muted:var(--aoi-muted);--line:var(--aoi-line);--green:var(--aoi-green);--bg:#f3f7ef;--surface:#fff;color:var(--aoi-text);font-family:var(--aoi-sans);background:radial-gradient(ellipse at 95% 8%,#dce9cfb0,transparent 34%),radial-gradient(ellipse at 0% 37%,#dae8ddbd,transparent 38%),radial-gradient(ellipse at 78% 76%,#eee9d3a6,transparent 35%),linear-gradient(145deg,#f7f9f3,#edf3e9 42%,#f6f7ee 78%,#eff4ec);background-attachment:fixed}
body.aoi-unified :is(h1,h2,h3){font-family:var(--aoi-serif);font-weight:500;color:var(--aoi-ink);letter-spacing:.035em}
body.aoi-unified :is(a,button):focus-visible{outline:2px solid var(--aoi-accent);outline-offset:5px}
body.aoi-unified a{color:inherit}
body.aoi-unified .preview-bar{display:none}
body.aoi-unified .header{position:relative;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body.aoi-unified .header-inner{max-width:1280px;min-height:110px;margin:auto;padding:26px 48px;gap:24px}
body.aoi-unified .brand{font:500 22px/1.5 var(--aoi-serif);letter-spacing:.035em;color:var(--aoi-ink);gap:10px;align-items:center}
body.aoi-unified .brand small{display:inline;font:inherit;color:inherit;letter-spacing:inherit;margin-right:.3em}
body.aoi-unified .aoi-brand-mark{width:28px;height:40px;flex:none;display:block}
body.aoi-unified .desktop-nav{gap:24px;font-size:1rem}
body.aoi-unified .desktop-nav>a,body.aoi-unified .desktop-nav button{color:var(--aoi-text);font-weight:400;text-decoration:none;padding:9px 14px;border-radius:40px}
body.aoi-unified .desktop-nav>a:first-child{background:#dce8d4;color:#355940;text-decoration:none;font-weight:500}
body.aoi-unified .page{max-width:1216px;margin:auto;padding:32px 48px 0}
body.aoi-unified:not(.lesson-page) .page-heading{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;min-height:450px;margin:16px 0 52px;padding:24px 0 32px}
body.aoi-unified .heading-copy{display:block;position:static}
body.aoi-unified:not(.lesson-page) .heading-copy h1{font:500 clamp(2rem,3.15vw,2.75rem)/1.7 var(--aoi-serif);letter-spacing:.035em;text-wrap:initial;margin:0 0 22px;max-width:none}
body.aoi-unified .heading-copy h1>span{display:block}
body.aoi-unified .welcome{font-size:1.125rem;line-height:2.1;color:var(--aoi-text);margin:0;max-width:none}
body.aoi-unified .heading-art{position:static;display:block;width:100%;height:auto;background:none;border-radius:0;grid-column:auto;grid-row:auto}
body.aoi-unified .heading-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transform:none;border-radius:130px 130px 18px 18px;box-shadow:0 22px 55px #4f63411c}
body.aoi-unified .resume{padding:28px 32px;background:#ffffff8c;border:1px solid #c6d8be;border-radius:20px;gap:28px;box-shadow:none}
body.aoi-unified .resume-kicker{font-size:1rem;color:var(--aoi-green);font-weight:500;letter-spacing:.06em}
body.aoi-unified .resume h2{font:500 1.375rem/1.8 var(--aoi-serif);color:var(--aoi-ink);margin-top:8px}
body.aoi-unified .primary,body.aoi-unified .resume .primary{background:var(--aoi-green);border:1px solid var(--aoi-green);color:#fff;border-radius:40px;padding:13px 24px;min-height:48px;box-shadow:none;font-size:1rem;text-decoration:none}
body.aoi-unified .primary:hover,body.aoi-unified .resume .primary:hover{background:#35573f;border-color:#35573f;box-shadow:0 7px 20px #42634c15}
body.aoi-unified .journey{margin:36px 0 0;padding:5px 0 8px;border-bottom:1px solid var(--aoi-line)}
body.aoi-unified .journey-heading{padding:14px 0;gap:18px}
body.aoi-unified .journey h2{font-family:var(--aoi-serif);font-size:1.25rem;font-weight:500}
body.aoi-unified .journey-toggle{color:var(--aoi-green)}
body.aoi-unified .journey-steps{padding:22px 0;gap:26px 30px}
body.aoi-unified .journey-steps .step-number,body.aoi-unified .journey-steps li:nth-child(n) .step-number{background:#e0ead7;color:var(--aoi-green);font-weight:500}
body.aoi-unified .section{margin-top:64px}
body.aoi-unified .section-title{margin-bottom:28px;gap:24px}
body.aoi-unified .section h2{font:500 1.75rem/1.7 var(--aoi-serif);letter-spacing:.06em}
body.aoi-unified .curriculum-heading{align-items:center}
body.aoi-unified .track{background:#d5e1cf;width:90px;height:4px;border-radius:8px}
body.aoi-unified .track>span{background:var(--aoi-green)}
body.aoi-unified .progress-row{color:var(--aoi-text)}
body.aoi-unified .chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;border:0;border-radius:0;background:none;overflow:visible;box-shadow:none}
body.aoi-unified .chapters>li{border:0;min-width:0;display:flex}
body.aoi-unified .chapters>li+li{border:0}
body.aoi-unified .chapter,body.aoi-unified .chapter.ready{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;min-height:0;padding:0;border:1px solid #cbdccbad;border-radius:20px;overflow:hidden;background:#ffffffa8;box-shadow:none;position:relative;transition:background .2s,transform .2s,box-shadow .2s}
body.aoi-unified .chapter.ready:hover{background:#ffffffec;transform:translateY(-3px);box-shadow:0 15px 30px #55754c0c}
body.aoi-unified .chapter-visual{display:block;width:100%;height:210px;flex:none;border-radius:0;background:#f1f3e9;overflow:hidden}
body.aoi-unified .chapter-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;flex:none}
body.aoi-unified .chapter-visual:not(:has(img)){display:none}
body.aoi-unified .chapter-copy{padding:25px 30px 28px;flex:1}
body.aoi-unified .chapter-meta{font-size:1rem;color:var(--aoi-muted);margin:0 0 10px;letter-spacing:.04em}
body.aoi-unified .chapter h3{font:500 1.375rem/1.75 var(--aoi-serif);color:var(--aoi-ink);margin:0;padding-right:18px;max-width:none}
body.aoi-unified .chapter p{font-size:1rem;line-height:1.9;color:var(--aoi-text);margin-top:18px;border-top:1px solid #dce5d8;padding-top:14px}
body.aoi-unified .chapter-arrow{position:absolute;right:24px;bottom:27px;width:24px;height:24px;border:0;color:var(--aoi-green);border-radius:0}
body.aoi-unified .chapter-arrow svg{width:21px;height:21px}
body.aoi-unified .small-note{font-size:1rem;color:var(--aoi-text);line-height:1.9;margin-top:20px}
body.aoi-unified .resources{margin-top:64px}
body.aoi-unified .section-intro{font-size:1.125rem;color:var(--aoi-text);line-height:1.9;margin:0 0 26px}
body.aoi-unified .tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
body.aoi-unified .tool{display:block;padding:28px 30px;background:#ffffffa0;border:1px solid #cddcc5;border-radius:18px;box-shadow:none}
body.aoi-unified .tool-icon{display:none}
body.aoi-unified .tool>.status{position:static;display:inline-block;background:#e5eddc;color:var(--aoi-green);padding:3px 12px;border:1px solid #c5d6ba;border-radius:24px;margin:0 0 14px;font-size:1rem}
body.aoi-unified .tool h3{font:500 1.375rem/1.8 var(--aoi-serif);padding:0;color:var(--aoi-ink)}
body.aoi-unified .tool p{font-size:1.125rem;color:var(--aoi-text);line-height:1.9}
body.aoi-unified .tool-context{display:block;color:var(--aoi-green);font-size:1rem;border-top:1px solid #d4dfcc;padding-top:18px;margin-top:20px}
body.aoi-unified .update-list{border:1px solid #cfddc9;border-radius:18px;background:#ffffff80;overflow:hidden}
body.aoi-unified .update{padding:24px 28px;border-color:#dce5d8;gap:18px}
body.aoi-unified .update:last-child{border-bottom:0}
body.aoi-unified .update-category{background:transparent;border:1px solid #c5d6ba;border-radius:24px;padding:3px 12px;color:var(--aoi-green);font-size:1rem}
body.aoi-unified .update-title,body.aoi-unified .update time{font-size:1rem;line-height:1.9;color:var(--aoi-text)}
body.aoi-unified .footer{padding:34px 0 48px;margin-top:64px;border-top:1px solid var(--aoi-line);color:var(--aoi-text);font-size:1rem}
body.aoi-unified .mobile-nav{background:#f7faf2f5;border-top:1px solid #cbdcc4;box-shadow:none;backdrop-filter:blur(12px)}
body.aoi-unified .mobile-nav a,body.aoi-unified .mobile-nav button{color:var(--aoi-text);font-size:1rem}
body.aoi-unified .mobile-nav [aria-current]{background:#e1ecd9;color:#355940;border-radius:16px}
body.aoi-unified dialog{background:#f8faf4;border:1px solid #c6d4bd;border-radius:20px;color:var(--aoi-text)}
body.aoi-unified dialog::backdrop{background:#273d3066;backdrop-filter:blur(4px)}
body.aoi-unified.lesson-page .lesson{max-width:1000px;padding:32px 48px 24px}
body.aoi-unified .lesson-heading{display:block;margin:32px 0 36px;padding-bottom:24px}
body.aoi-unified.lesson-page .lesson-heading h1{font:500 2rem/1.75 var(--aoi-serif);letter-spacing:.04em;text-wrap:initial;max-width:none}
body.aoi-unified .lesson-heading .eyebrow,body.aoi-unified .back{font-size:1rem;color:var(--aoi-green)}
body.aoi-unified .lesson-toc{background:#ffffff68;border:1px solid #cddcc5;border-radius:18px;padding:28px 32px;margin:0 0 36px}
body.aoi-unified .lesson-toc h2{font:500 1.25rem/1.8 var(--aoi-serif)}
body.aoi-unified .lesson-toc a,body.aoi-unified .prose a{color:var(--aoi-green);text-decoration-color:#a7bca0;text-underline-offset:5px}
body.aoi-unified .prose{background:#ffffffa6;border:1px solid #d0dec8;border-radius:20px;box-shadow:none;color:var(--aoi-text);font-size:1.125rem;line-height:2;padding:44px 48px}
body.aoi-unified .prose h2{font:500 1.625rem/1.85 var(--aoi-serif);color:var(--aoi-ink);border-color:#d5e0cd;margin-top:64px;padding-top:32px;letter-spacing:.025em}
body.aoi-unified .prose>h2:first-child{margin-top:0;padding-top:0;border-top:0}
body.aoi-unified .prose h3{font:500 1.375rem/1.8 var(--aoi-serif);color:var(--aoi-ink);margin-top:38px;letter-spacing:.025em}
body.aoi-unified .prose strong{color:var(--aoi-ink);font-weight:600}
body.aoi-unified .prose table{background:#ffffff9c;border-color:var(--aoi-line)}
body.aoi-unified .prose :is(th,td){border-color:var(--aoi-line)}
body.aoi-unified .prose th{background:#e9f0e1;color:var(--aoi-ink)}
body.aoi-unified .prompt-box{background:#f5f8ef;border:1px solid #cbdac0;border-radius:16px;margin:28px 0 36px}
body.aoi-unified .prompt-toolbar{border-color:#d5dfca;padding:16px 24px;color:var(--aoi-green);font-size:1rem}
body.aoi-unified .copy-button{font:400 1rem/1.7 var(--aoi-sans);color:var(--aoi-green);background:#fff;border:1px solid #a8bf9b;border-radius:30px;padding:9px 19px;min-height:44px}
body.aoi-unified .prompt-box pre{font:400 1.125rem/1.9 var(--aoi-sans);white-space:pre-wrap;overflow-wrap:anywhere;padding:24px;margin:0}
body.aoi-unified .copy-status{font-size:1rem;color:var(--aoi-green)}
body.aoi-unified .chapter-recap{background:#ffffff8c;border:1px solid #cddcc5;border-radius:18px;padding:28px 32px;margin-top:36px}
body.aoi-unified .chapter-recap summary{font:500 1.25rem/1.8 var(--aoi-serif);color:var(--aoi-ink)}
body.aoi-unified .recap-item input{accent-color:var(--aoi-green)}
body.aoi-unified .lesson-next{border-color:var(--aoi-line);gap:20px}
body.aoi-unified .prose .publishing-flow li{background:#ecf2e5;border-color:#90ac7e}
body.aoi-unified .image-open-button{color:var(--aoi-green);background:#f7faf2;border-color:#bed0b1}
body.aoi-unified .ai-help{max-width:920px;padding:40px 48px 80px;font-size:1.125rem;line-height:2}
body.aoi-unified .ai-help h1{font:500 2rem/1.75 var(--aoi-serif)}
body.aoi-unified .ai-help h2{font:500 1.625rem/1.8 var(--aoi-serif);border-color:var(--aoi-line)}
body.aoi-unified .ai-help h3{font:500 1.375rem/1.8 var(--aoi-serif)}
body.aoi-unified .ai-help :is(p,li){font-size:1.125rem;line-height:2;color:var(--aoi-text)}
body.aoi-unified .ai-help a{color:var(--aoi-green)}
body.aoi-unified .ai-help .help-sources{font-size:1rem}
@media(max-width:900px){body.aoi-unified .header-inner{padding:22px 28px;min-height:94px;flex-wrap:wrap}body.aoi-unified .desktop-nav{gap:10px}body.aoi-unified .page{padding:26px 28px 0}body.aoi-unified:not(.lesson-page) .page-heading{gap:30px;min-height:360px;margin-bottom:32px}body.aoi-unified .heading-copy h1{font-size:2rem}body.aoi-unified .chapter-copy{padding:24px}body.aoi-unified .chapter-visual{height:180px}body.aoi-unified .resume{padding:25px 28px}body.aoi-unified .resume .primary{align-self:initial}}
@media(max-width:600px){body.aoi-unified .header-inner{padding:20px;min-height:88px}body.aoi-unified .brand{font-size:1.125rem;gap:8px;letter-spacing:.015em}body.aoi-unified .aoi-brand-mark{width:24px;height:34px}body.aoi-unified .brand small{font-size:inherit}body.aoi-unified .page,body.aoi-unified.lesson-page .lesson{padding:20px 20px 100px}body.aoi-unified:not(.lesson-page) .page-heading{display:flex;flex-direction:column;gap:28px;align-items:stretch;min-height:0;padding:12px 0 20px;margin:0 0 32px}body.aoi-unified .heading-copy{display:block}body.aoi-unified:not(.lesson-page) .heading-copy h1{font-size:2rem;line-height:1.7;margin-bottom:20px}body.aoi-unified .welcome{font-size:1.125rem;line-height:2;max-width:none}body.aoi-unified .welcome br{display:block}body.aoi-unified .heading-art{width:100%;height:auto;position:static}body.aoi-unified .heading-art img{width:100%;height:auto;border-radius:90px 90px 14px 14px}body.aoi-unified .resume{padding:24px;gap:20px}body.aoi-unified .resume h2{font-size:1.25rem;line-height:1.8}body.aoi-unified .resume .primary{width:100%;text-align:left;justify-content:space-between;padding:12px 20px}body.aoi-unified .journey{margin-top:28px}body.aoi-unified .journey-heading{gap:8px 14px;align-items:center}body.aoi-unified .journey h2{font-size:1.25rem}body.aoi-unified .section{margin-top:44px}body.aoi-unified .section h2{font-size:1.5rem}body.aoi-unified .section-title{margin-bottom:22px}body.aoi-unified .curriculum-heading{align-items:flex-start;flex-direction:column;gap:14px}body.aoi-unified .chapters{grid-template-columns:1fr;gap:24px}body.aoi-unified .chapter-visual{height:210px}body.aoi-unified .chapter-copy{padding:24px}body.aoi-unified .chapter h3{font-size:1.375rem;line-height:1.8}body.aoi-unified .chapter-arrow{right:22px;bottom:24px}body.aoi-unified .tools-grid{grid-template-columns:1fr;gap:18px}body.aoi-unified .tool{padding:25px 24px}body.aoi-unified .tool h3{font-size:1.375rem;padding:0}body.aoi-unified .tool-context{margin-top:18px;padding-top:16px}body.aoi-unified .update{padding:24px 22px;gap:12px}body.aoi-unified .footer{margin-top:44px;padding-top:28px}body.aoi-unified .lesson-heading{margin:24px 0 28px;padding-bottom:0}body.aoi-unified.lesson-page .lesson-heading h1{font-size:1.75rem;line-height:1.8}body.aoi-unified .prose{padding:28px 22px;border-radius:16px;font-size:1.125rem;line-height:2}body.aoi-unified .prose h2{font-size:1.375rem;line-height:1.85;margin-top:48px;padding-top:28px}body.aoi-unified .prose h3{font-size:1.25rem;line-height:1.85}body.aoi-unified .lesson-toc,body.aoi-unified .chapter-recap{padding:24px 22px;border-radius:16px}body.aoi-unified .prompt-toolbar{padding:15px 18px}body.aoi-unified .prompt-box pre{padding:20px 18px}body.aoi-unified .ai-help{padding:28px 20px 80px}body.aoi-unified .ai-help h1{font-size:1.75rem}body.aoi-unified .ai-help h2{font-size:1.375rem}body.aoi-unified .ai-help h3{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){body.aoi-unified *{transition:none!important;scroll-behavior:auto!important}}

/* Keep the approved chapter illustrations in full view. */
body.aoi-unified .chapter-visual{height:auto;aspect-ratio:3/2}
body.aoi-unified .chapter-visual img{object-fit:contain}
body.aoi-unified .image-viewer-trigger,body.aoi-unified .image-viewer button{font-size:1rem;line-height:1.7;color:var(--aoi-green);background:#f9fbf5;border:1px solid #afc3a2;border-radius:30px;min-height:44px}
body.aoi-unified .image-viewer-toolbar{background:#edf3e7;border-color:var(--aoi-line)}
body.aoi-unified dialog.image-viewer{border-color:#c2d2b8;background:#f8faf4;color:var(--aoi-text)}

/* Screenshot labels, native-size presentation, and learner support. */
body.aoi-unified .course-screenshot{display:block;max-width:100%;margin:32px 0 40px}
body.aoi-unified .course-screenshot figcaption{font:500 1rem/1.9 var(--aoi-sans);color:var(--aoi-ink);margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid var(--aoi-line);overflow-wrap:anywhere}
body.aoi-unified .course-screenshot img{display:block;width:100%;max-width:var(--screenshot-native-width);height:auto;margin:0;border:1px solid #d1ddc9;border-radius:8px}
body.aoi-unified .course-contact{margin-top:40px;padding:26px 0 12px;border-top:1px solid var(--aoi-line);font:400 1rem/1.9 var(--aoi-sans);color:var(--aoi-text)}
body.aoi-unified .course-contact p{font-size:1rem;line-height:1.9;margin:0 0 4px}
body.aoi-unified .course-contact a{display:inline-block;font-size:1rem;line-height:1.9;min-height:44px;padding:4px 0;color:var(--aoi-green);text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}

/* ログインなし：全ページのスマートフォンメニューは3項目 */
@media(max-width:640px){body.aoi-unified .mobile-nav{grid-template-columns:repeat(3,1fr)}}
