/* Editorial precision: open lines, restrained light, purposeful interaction. */
:root[data-theme=azure] .hero-art,:root[data-theme=horizon] .hero-art{width:90%;right:-2%;height:680px;top:-22px;mask-image:linear-gradient(to right,transparent,#000 24%,#000 92%,transparent)}
:root[data-theme=azure] .hero-art::after,:root[data-theme=horizon] .hero-art::after{background:linear-gradient(to bottom,var(--paper),transparent 18%,transparent 85%,var(--paper))}
.contact-sign{display:flex;flex-direction:column;align-items:flex-end;gap:26px;flex-shrink:0;padding:12px 1px 0 30px;width:162px}
.contact-sign .eyebrow{font-size:9px;color:#527584;letter-spacing:.15em}
.contact-sign svg{width:115px;height:59px;stroke:#5c8798;stroke-width:1.2;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.contact-link:hover .contact-sign svg,.contact-link:focus-visible .contact-sign svg{transform:translate(5px,-5px)}
.contact-link{position:relative}
.contact-link::after,.service-card::after,.role::after{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--prism);transform:scaleX(0);transform-origin:left;transition:transform .65s ease}
.contact-link:hover::after,.contact-link:focus-visible::after,.service-card:hover::after,.service-card:focus-visible::after,.role:hover::after,.role:focus-visible::after{transform:scaleX(1)}
.card-bottom .arrow{border:0;border-radius:0;width:36px;height:30px;justify-content:end;font-size:27px}
.service-card:hover .card-bottom .arrow,.service-card:focus-visible .card-bottom .arrow{background:none;transform:translate(4px,-4px)}
.about-perspective{position:relative;height:160px;width:215px;margin:36px 0 0 13px;display:grid;place-items:center}
.about-perspective i{position:absolute;width:113px;height:110px;border:1px solid #bad0dc;transform:translateX(-19px) skewY(-14deg);background:linear-gradient(120deg,#e7f0f577,#ffffff33);transition:transform 1s}
.about-perspective i:nth-child(2){transform:translateX(31px) skewY(14deg);border-color:#c1d6d1;background:linear-gradient(120deg,#ffffff44,var(--ambient-b))}
.about-perspective span{position:relative;font:400 10px var(--font);letter-spacing:.16em;color:#537a8d;z-index:1}
.about-layout:hover .about-perspective i:first-child{transform:translateX(-27px) skewY(-9deg)}
.about-layout:hover .about-perspective i:nth-child(2){transform:translateX(39px) skewY(9deg)}
.editorial-art .glass-plane{transition:transform 1.1s cubic-bezier(.2,.7,.2,1),box-shadow 1.1s}
.editorial-card:hover .glass-plane:first-child,.editorial-card:focus-visible .glass-plane:first-child{transform:translate(-13px,-8px) rotate(-30deg) skew(7deg);box-shadow:18px 26px 40px #42678422}
.editorial-card:hover .glass-plane:nth-child(2),.editorial-card:focus-visible .glass-plane:nth-child(2){transform:translate(69px,11px) rotate(-15deg) skew(7deg)}
.editorial-art .art-word{transition:transform .8s,color .8s}
.editorial-card:hover .art-word,.editorial-card:focus-visible .art-word{transform:translateY(-4px);color:#4e758a}
.service-card:hover .diagram-flow,.service-card:focus-visible .diagram-flow{stroke-dasharray:4 7;animation:flow-travel 3s linear infinite}
@keyframes flow-travel{to{stroke-dashoffset:-33}}
.careers-section{background:#f1f5f4}
.recruit-invitation{display:grid;grid-template-columns:1.08fr 1fr;gap:65px;align-items:center}
.recruit-invitation .careers-copy h2{font-size:clamp(26px,2.6vw,36px)}
.recruit-invitation .link{font-size:12px}
.recruit-window{position:relative;isolation:isolate;min-height:360px;overflow:hidden;background:linear-gradient(120deg,#e6edf1,#e2efee 65%,#eaeedc);border:1px solid #edf4f4}
.recruit-plane{position:absolute;top:31px;left:23%;height:268px;width:44%;border:1px solid #ffffffdf;background:linear-gradient(125deg,#ffffff65,#eefbfc22 52%,#ffffff7a);box-shadow:18px 20px 28px #577d8a15;transform:perspective(700px) rotateY(-25deg) skewY(-10deg);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.recruit-plane:nth-child(2){left:38%;top:52px;transform:perspective(700px) rotateY(-25deg) skewY(-10deg)}
.recruit-light{position:absolute;z-index:-1;inset:50% -25% -15%;transform:rotate(-24deg);background:linear-gradient(180deg,transparent,#76b6cf44,#78c5cb44,#f1dfa944,transparent);filter:blur(19px);transition:transform 1.2s}
.recruit-word{position:absolute;left:27px;bottom:55px;font:300 clamp(34px,3.7vw,51px)/1.08 var(--font);letter-spacing:-.055em;color:#466878;transition:transform 1s}
.recruit-window small{position:absolute;left:29px;bottom:25px;font:400 7px var(--font);letter-spacing:.16em;color:#597682}
.recruit-invitation:hover .recruit-plane:first-child,.recruit-invitation:focus-visible .recruit-plane:first-child{transform:perspective(700px) translateX(-16px) rotateY(-38deg) skewY(-7deg)}
.recruit-invitation:hover .recruit-plane:nth-child(2),.recruit-invitation:focus-visible .recruit-plane:nth-child(2){transform:perspective(700px) translateX(18px) rotateY(-10deg) skewY(-7deg)}
.recruit-invitation:hover .recruit-light,.recruit-invitation:focus-visible .recruit-light{transform:translate(15px,-25px) rotate(-16deg)}
.recruit-invitation:hover .recruit-word,.recruit-invitation:focus-visible .recruit-word{transform:translateY(-5px)}
.recruit-invitation:hover .arrow,.recruit-invitation:focus-visible .arrow{transform:translate(4px,-4px)}
.recruit-backdrop{position:absolute;right:0;top:0;width:45%;height:100%;opacity:.25;pointer-events:none;z-index:-1;overflow:hidden}
.recruit-backdrop i{position:absolute;top:5%;left:20%;width:55%;height:110%;background:linear-gradient(110deg,#ffffff55,var(--ambient-a));border:1px solid white;transform:rotate(-18deg)}
.recruit-backdrop i:nth-child(2){left:45%;top:15%}
.role{position:relative;transition:padding .6s,background .6s}
.role:hover,.role:focus-visible{padding-left:14px;background:linear-gradient(90deg,#e5f0f244,transparent)}
@media(max-width:1050px){.recruit-invitation{gap:35px}.recruit-window{min-height:320px}.recruit-plane{height:232px}.contact-sign{width:125px}.contact-sign svg{width:95px}}
@media(max-width:760px){:root[data-theme=azure] .hero-art,:root[data-theme=horizon] .hero-art{width:143%;height:420px;right:-9%;top:372px;mask-image:linear-gradient(to right,transparent,#000 18%,#000 90%,transparent)}.about-perspective{display:none}.recruit-invitation{grid-template-columns:1fr;gap:32px}.recruit-window{min-height:290px}.recruit-plane{height:219px;top:20px;width:41%}.recruit-plane:nth-child(2){top:37px}.recruit-word{font-size:42px;bottom:45px}.recruit-window small{font-size:6px;bottom:23px}.contact-sign{width:59px;gap:17px;padding-left:0}.contact-sign .eyebrow{font-size:6px;letter-spacing:.04em;white-space:nowrap}.contact-sign svg{width:52px;height:35px}.contact-link{gap:12px}.contact-link h2{font-size:clamp(33px,9vw,47px)}.careers-section .section-top{margin-bottom:35px}}
@media(prefers-reduced-motion:reduce){.service-card .diagram-flow{animation:none!important;stroke-dasharray:none!important}.glass-plane,.recruit-plane,.recruit-word,.contact-sign svg{transition:none!important}}
.motion-paused .service-card .diagram-flow{animation:none!important;stroke-dasharray:none!important}

:root[data-theme=horizon][data-visual=theme] .hero-image{background-size:contain;transform:translate3d(var(--art-x,0px),var(--art-y,0px),0)}

:root[data-theme=horizon][data-visual=theme] .hero-image{mask-image:linear-gradient(to right,transparent 10%,#000 25%,#000 82%,transparent 93%)}
.motion-on .reveal.pending:focus-within{opacity:1;transform:none}
@media(max-width:760px){:root[data-theme=horizon][data-visual=theme] .hero-image{mask-image:none}}
/* Keep the warm finish on Japanese messages; main headings remain predominantly blue. */
:root:is([data-theme=azure],[data-theme=horizon]) .about-message .spectrum,:root:is([data-theme=azure],[data-theme=horizon]) .careers-copy h2 .spectrum{background-image:linear-gradient(110deg,#326d9c,#3d8e9d 45%,#708f77 82%,#96834d)}
.service-sculpture{height:202px;margin:10px 0 22px;background:radial-gradient(ellipse,#e6ecf133,transparent 64%)}
.service-sculpture svg{width:215px;height:172px;max-width:100%;overflow:visible}
.service-sculpture svg stop:nth-child(1){stop-color:#74a7b9}.service-sculpture svg stop:nth-child(2){stop-color:#959bca}.service-sculpture svg stop:nth-child(3){stop-color:#bc8da8}.service-sculpture svg stop:nth-child(4){stop-color:#b6ab92}
.object-2 svg stop:nth-child(1){stop-color:#849ec5}.object-2 svg stop:nth-child(3){stop-color:#b78ea8}.object-3 svg stop:nth-child(1){stop-color:#8399c3}.object-3 svg stop:nth-child(3){stop-color:#c699ac}
.service-card:focus-visible .service-sculpture svg{transform:translateY(-5px) rotate(3deg)}
.about-seal .seal-glow{background:conic-gradient(from 20deg,#d6eff0,#e3ddf4,#f5dfea,#f5eedb,#d6eff0)}
.about-seal::before,.about-seal::after,.about-seal .seal-ring{transition:transform 1.2s ease}
.about-layout:hover .about-seal::before{transform:rotate(-42deg) scaleX(.56)}
.about-layout:hover .about-seal::after{transform:rotate(42deg) scaleX(.56)}
.flow-explainer{padding:18px 22px 24px;background:#f5f7f6}
.flow-explainer .service-visual.meaningful{height:auto;width:100%;margin:0 0 20px}
.flow-explainer .service-visual.meaningful svg{max-width:530px;width:100%;height:auto;overflow:visible}
.flow-explainer .meaningful svg>g{transform-box:view-box;transform-origin:0 0}
.flow-explainer p{font-size:12px;line-height:2.1;max-width:500px;margin:auto;color:#616e7b}
.flow-explainer:hover .diagram-flow{stroke-dasharray:4 7;animation:flow-travel 3s linear infinite}
.principle-art{position:relative;display:grid;place-items:center;height:180px;margin:0 0 25px;isolation:isolate}
.principle-art::before{content:'';position:absolute;inset:25% 18%;background:radial-gradient(ellipse,#e2e8f144,transparent 72%);z-index:-1}
.principle-art svg{width:180px;height:150px;max-width:100%;overflow:visible;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.values li{display:grid;grid-template-columns:140px 1fr;align-items:center;column-gap:34px;padding-block:30px}
.values li:first-child{padding-top:0}.values .principle-art{height:135px;margin:0}.values .principle-art svg{width:145px;height:125px}
.value-copy p{max-width:620px}.business-grid .principle-art{height:194px}.careers-values .principle-art{height:190px}
.business-grid>div,.careers-values>div{border-top:1px solid var(--line);padding-top:20px}
.values li:hover .principle-art svg,.values li:focus-within .principle-art svg,.business-grid>div:hover .principle-art svg,.business-grid>div:focus-within .principle-art svg,.careers-values>div:hover .principle-art svg{transform:translateY(-5px) rotate(-2deg)}
.business-grid>div:nth-child(2):hover .principle-art svg,.careers-values>div:nth-child(2):hover .principle-art svg{transform:translateY(-5px) rotate(2deg)}
@media(max-width:1050px){.values li{grid-template-columns:112px 1fr;gap:24px}.values .principle-art svg{width:112px;height:112px}}
@media(max-width:760px){.service-sculpture{width:100%;height:178px;margin:5px 0 22px;order:1}.service-sculpture svg{width:205px;height:162px}.service-card .service-name-en{margin-top:0}.values li{grid-template-columns:85px 1fr;gap:20px;padding-block:25px}.values .principle-art{height:100px}.values .principle-art svg{width:85px;height:100px}.values h3{font-size:18px}.values p{font-size:11px}.values small{font-size:8px}.business-grid .principle-art,.careers-values .principle-art{height:165px;margin-bottom:20px}.business-grid>div,.careers-values>div{padding-top:14px}.flow-explainer{padding:16px 8px 20px}.flow-explainer p{font-size:11px;padding-inline:12px}.flow-explainer .service-visual.meaningful{height:auto}}
@media(prefers-reduced-motion:reduce){.flow-explainer .diagram-flow{animation:none!important;stroke-dasharray:none!important}.principle-art svg{transition:none!important}}
.motion-paused .flow-explainer .diagram-flow{animation:none!important;stroke-dasharray:none!important}

/* Work, people and knowledge: photography and diagrams share the same quiet rhythm. */
.hero-image{width:100%;height:100%;background-position:var(--hero-position,50% 50%)}
:root[data-visual=work] .hero-art{width:100%;height:660px;top:0;right:-8%;mask-image:linear-gradient(to right,transparent 19%,#000 56%,#000 94%,transparent)}
:root[data-visual=work] .hero-art::after{background:linear-gradient(to bottom,var(--paper),transparent 23%,transparent 70%,var(--paper))}
:root[data-visual=work] .hero-copy{width:67%}
.service-hybrid{margin-bottom:29px}
.service-hybrid .service-sculpture{height:190px;margin-bottom:7px}
.service-hybrid .mini-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;list-style:none;padding:0;margin:0}
.mini-flow li{position:relative;font-size:10px;line-height:1.7;color:#526b7d;text-align:center;padding:8px 2px;border:1px solid #c6d6dc;background:#f8faf9;white-space:nowrap;transition:border-color .5s,background .5s}
.mini-flow li+li::before{content:'→';position:absolute;right:calc(100% + 3px);top:8px;width:12px;color:#91acbb;font:300 13px var(--font)}
.mini-flow li:nth-child(2){border-color:#b6c7d6;background:#edf2f6}
.object-2 .mini-flow li{border-color:#d3c4d6;color:#6b5c7b}.object-2 .mini-flow li:nth-child(2){background:#f0edf5}
.object-3 .mini-flow li{border-color:#c6d5cc;color:#526e68}.object-3 .mini-flow li:nth-child(2){background:#edf3ee}
.object-2 svg stop:nth-child(1){stop-color:#748cbe}.object-2 svg stop:nth-child(2){stop-color:#9891c7}.object-2 svg stop:nth-child(3){stop-color:#b576a2}.object-2 svg stop:nth-child(4){stop-color:#bc91a4}
.object-3 svg stop:nth-child(1){stop-color:#739fc1}.object-3 svg stop:nth-child(2){stop-color:#7fa8b1}.object-3 svg stop:nth-child(3){stop-color:#b29ac0}.object-3 svg stop:nth-child(4){stop-color:#c69ca3}
.service-card:is(:hover,:focus-visible) .mini-flow li{border-color:#91b6c7;background:#f5fafb}
.service-card:is(:hover,:focus-visible) .object-2 .mini-flow li{border-color:#b1a0c4;background:#faf6fb}
.service-card:is(:hover,:focus-visible) .object-3 .mini-flow li{border-color:#a3c0b6;background:#f4f9f6}
.editorial-photo,.journal-page-grid .editorial-photo{height:auto;aspect-ratio:1.6;display:block;background:#eef2f3}
.editorial-photo::before{display:none}
.editorial-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter 1.1s}
.editorial-card:is(:hover,:focus-visible) .editorial-photo img{transform:scale(1.035);filter:brightness(1.025)}
.photo-index{position:absolute;left:18px;top:17px;color:#476b80;background:#fbfcfae8;padding:6px 9px;font:400 7px var(--font);letter-spacing:.14em}
.article-header+.editorial-photo{max-width:1070px;aspect-ratio:2.7;margin:0 0 45px}
.article-header+.editorial-photo img{object-position:50% 55%}
.about-banner{margin:0;height:400px;background:#e8edf0}
.about-banner img{mix-blend-mode:normal;object-fit:cover}
.about-banner::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#e7eff2cc,transparent 58%)}
.about-banner figcaption{position:absolute;z-index:1;left:max(6%,calc((100% - 1240px)/2));bottom:40px;font:300 clamp(35px,5vw,65px)/1.1 var(--font);letter-spacing:-.05em;color:#446d80;max-width:40%}
.role-with-image{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:7%;align-items:center;padding-block:38px}
.role-with-image:nth-child(2){grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
.role-with-image:nth-child(2) .role-photo{order:2}
.role-with-image:nth-child(2) .role-copy{padding-left:5%}
.role-photo{aspect-ratio:1.62;overflow:hidden;background:#edf1f3}
.role-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.role-copy h3{margin-top:16px;font-size:25px}
.role-copy p{max-width:530px;font-size:13px}
.role-link{display:flex;align-items:center;justify-content:space-between;gap:35px;max-width:340px;font-size:11px;border-bottom:1px solid #bdc9ce;padding-bottom:10px;margin-top:26px}
.role-with-image:is(:hover,:focus-visible){padding-left:0;background:none}
.role-with-image:is(:hover,:focus-visible) img{transform:scale(1.035)}
.role-with-image:is(:hover,:focus-visible) .arrow{transform:translate(3px,-3px)}
.topic-link{align-items:center;gap:28px}.topic-link .arrow{flex:none;align-self:center;font-size:29px;line-height:1}
.topic-link:is(:hover,:focus-visible) .arrow{transform:translate(4px,-4px)}
.channel-rows .topic-link{border-bottom:0;padding-block:28px}.channel-rows .topic-link:last-child{border-bottom:1px solid var(--line)}
.channel-rows .topic-link p{margin-top:10px}.channel-rows .eyebrow{font-size:9px;color:#687e8b}
.faq details{padding:24px 0}.faq summary{align-items:center;padding:3px 2px;line-height:1.9}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font:300 25px/1 var(--font);flex:none;width:22px;text-align:center;transition:transform .36s}
.faq details[open] summary::after{content:'+';transform:rotate(45deg)}
.faq details[data-expanded=false] summary::after{transform:none}
.faq-answer{padding:0 38px 8px 2px}.faq .faq-answer p{padding:0;line-height:2.3}.faq-answer ul{padding-left:18px;font-size:12px;color:#616e7b;line-height:2.4;margin-block:18px}.faq-answer b{font-weight:500;color:#4f626f}
.founder-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:10%;align-items:center;max-width:1090px;margin:0 auto}
.founder-portrait{margin:0;aspect-ratio:4/5;max-height:490px;overflow:hidden;background:#eaf0f4}.founder-portrait>img{width:100%;height:100%;object-fit:cover}
.portrait-placeholder{height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:35px;background:linear-gradient(150deg,#eaf1f6,#ddeaf0 64%,#e9ecdc);overflow:hidden}
.portrait-placeholder::before{content:'';position:absolute;inset:17% -25% 34% 25%;border:1px solid #ffffffb0;transform:rotate(-29deg);background:linear-gradient(110deg,transparent,#ffffff55)}
.portrait-placeholder .eyebrow{position:absolute;top:28px;left:30px;font-size:8px;color:#526d81}
.portrait-initial{position:absolute;right:12px;top:12%;font:200 clamp(130px,18vw,250px)/1 var(--font);letter-spacing:-.085em;color:#adc4d255}
.portrait-name{position:relative;font:300 52px/1.05 var(--font);letter-spacing:-.045em;color:#53798d}
.portrait-placeholder small{position:relative;font-size:10px;color:#536f7c;margin-top:20px}
.founder-copy>.eyebrow{font-size:9px;color:#4f6d82}.founder-copy h2{font-size:28px;margin:15px 0 32px;letter-spacing:.06em}.founder-copy h2 span{display:block;font:400 12px var(--font);letter-spacing:.08em;color:#5c7080;margin-top:10px}
.founder-copy h3{font-size:clamp(22px,2.3vw,29px);font-weight:300;line-height:1.8;margin-bottom:25px}.founder-copy p{font-size:12px;line-height:2.45;color:#65717c}
.founder-links{display:flex;align-items:center;gap:35px;margin-top:30px;font-size:11px}.founder-links>a:first-child{border-bottom:1px solid #a1a5aa;padding-bottom:11px}.founder-links .link{font-size:11px;gap:25px}
.service-page-nav{display:flex;gap:35px;padding-bottom:25px;font-size:11px;color:#526c7e;flex-wrap:wrap}.service-page-nav a{padding-bottom:8px;border-bottom:1px solid #c8d4db;transition:border-color .3s}.service-page-nav a:is(:hover,:focus-visible){border-color:#417ca2}
.method-photo{margin-top:34px;aspect-ratio:1.22;overflow:hidden}.method-photo img{width:100%;height:100%;object-fit:cover}
.method-steps{list-style:none;padding:0;margin:35px 0 0}.method-steps li{display:grid;grid-template-columns:35px 1fr;gap:20px;border-top:1px solid var(--line);padding:24px 0}.method-number{font:400 10px var(--font);color:#577487;margin-top:8px}.method-steps h3{font-size:19px;margin-bottom:10px}.method-steps p{font-size:12px;color:#64717d;line-height:2.3}
.example-section{background:#f2f5f5}.example-section .section-top{align-items:end;margin-bottom:45px}.example-section .section-top h2{font-size:27px;line-height:1.8;margin-top:17px}.example-section .eyebrow{color:#597f91;font-size:9px}.example-section .section-intro{max-width:380px}
.practice-flow{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;padding:0;margin:0}.practice-flow li{position:relative;border:1px solid #cbd9df;padding:22px 19px;background:#fafcfb;min-height:109px}.practice-flow li+li::before{content:'→';position:absolute;top:40%;right:calc(100% + 8px);color:#8aa5b5;font:300 17px var(--font)}.practice-flow li:last-child{border-color:#a5c0ce;background:#e8f0f3}.practice-flow span{font-size:10px;color:#527286;display:block;margin-bottom:13px}.practice-flow strong{font-size:15px;font-weight:400;line-height:1.8}
.human-check{margin-top:28px;display:grid;grid-template-columns:175px 1fr;gap:30px;padding-top:25px;border-top:1px solid #d2dfe4}.human-check>span{font-size:12px;color:#487890}.human-check p{font-size:12px;line-height:2.2;color:#63757f}
.example-bottom{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;margin-top:36px}.example-bottom .flow-explainer{padding:0;background:none;max-width:450px}.example-bottom .service-visual.meaningful{margin-bottom:0}.example-bottom>p{font-size:24px;font-weight:300;line-height:1.9;color:#5f7c8d}.example-bottom>p span{display:block;font-size:11px;color:#596f7e;margin-top:15px}
.artifact-list{list-style:none;padding:0;margin:0}.artifact-list li{display:grid;grid-template-columns:35px 1fr;gap:20px;border-top:1px solid var(--line);padding:24px 0}.artifact-list small{font:400 10px var(--font);color:#577487;margin-top:8px}.artifact-list h3{font-size:18px;margin-bottom:8px}.artifact-list p{font-size:12px;line-height:2.2;color:#64717d}.acceptance{margin:15px 0 20px;padding:27px 30px;background:linear-gradient(110deg,#edf3f6,#eff5f3 80%,#f4f3e8)}.acceptance .eyebrow{font-size:8px;color:#557284}.acceptance h3{font-size:16px;margin:12px 0}.acceptance p{font-size:12px;line-height:2.3;color:#63757f}
@media(max-width:1050px){.mini-flow{gap:12px!important}.mini-flow li{font-size:9px}.mini-flow li+li::before{right:100%;width:11px}.founder-layout{gap:6%}.founder-copy h3{font-size:23px}.portrait-name{font-size:44px}.role-copy h3{font-size:21px}.practice-flow{gap:22px}.practice-flow li{padding:18px 12px}.practice-flow strong{font-size:13px}.practice-flow li+li::before{right:calc(100% + 3px)}.example-bottom>p{font-size:21px}}
@media(max-width:760px){
  :root[data-visual=work] .hero-art{width:150%;height:440px;top:370px;right:0;mask-image:linear-gradient(to right,transparent,#000 26%,#000 95%,transparent)}
  :root[data-visual=work] .hero-copy{width:100%}.hero-art-caption{font-size:6px}
  .service-hybrid{order:1;margin:0 0 27px}.service-hybrid .service-sculpture{height:180px;margin-bottom:6px}.mini-flow li{font-size:10px;padding-block:10px}.mini-flow li+li::before{top:11px}.service-card .service-name-en{margin-top:0}
  .photo-index{font-size:6px;top:13px;left:13px}.about-banner{height:265px}.about-banner figcaption{font-size:36px;max-width:55%;bottom:25px}.article-header+.editorial-photo{aspect-ratio:1.6;margin-bottom:25px}
  .role-with-image,.role-with-image:nth-child(2){grid-template-columns:1fr;gap:24px;padding-block:27px}.role-with-image:nth-child(2) .role-photo{order:0}.role-with-image:nth-child(2) .role-copy{padding-left:0}.role-photo{aspect-ratio:1.75}.role-copy h3{font-size:22px;margin-top:10px}.role-copy p{font-size:12px}.role-link{margin-top:19px;max-width:none}
  .topic-link{font-size:14px;gap:22px}.topic-link .arrow{font-size:26px}.channel-rows .topic-link{padding-block:25px}.channel-rows .eyebrow{font-size:8px}
  .faq summary{font-size:13px;gap:20px}.faq-answer{padding-right:22px}.faq details{padding:20px 0}.faq-answer ul{font-size:11px}
  .founder-layout{grid-template-columns:1fr;gap:34px}.founder-portrait{width:100%;max-height:440px;aspect-ratio:1.05}.portrait-initial{font-size:210px}.portrait-name{font-size:47px}.founder-copy h2{font-size:27px;margin-bottom:24px}.founder-copy h3{font-size:25px}.founder-copy p{font-size:12px}.founder-links{gap:26px}
  .service-page-nav{gap:20px;row-gap:11px;font-size:10px}.method-photo{aspect-ratio:1.9;margin-top:24px;max-height:235px}.method-steps{margin-top:26px}.method-steps li{gap:12px;grid-template-columns:26px 1fr}.method-steps h3{font-size:18px}
  .example-section .section-top h2{font-size:23px}.practice-flow{grid-template-columns:1fr;gap:19px}.practice-flow li{min-height:0;display:grid;grid-template-columns:70px 1fr;gap:20px;align-items:center;padding:18px}.practice-flow span{margin:0;font-size:10px}.practice-flow li+li::before{content:'↓';left:50%;top:-18px;font-size:13px}.practice-flow strong{font-size:14px}
  .human-check{grid-template-columns:1fr;gap:10px;margin-top:25px}.human-check p{font-size:11px}.example-bottom{grid-template-columns:1fr;gap:12px;margin-top:30px}.example-bottom>p{font-size:20px}.example-bottom .flow-explainer{max-width:100%}
  .artifact-list li{grid-template-columns:26px 1fr;gap:12px}.artifact-list h3{font-size:17px}.acceptance{padding:24px 22px}.acceptance p{font-size:11px}
}
/* Article frame: info box, tables, sources/history, AI disclosure, related links (generated by build.py). */
.article-info{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font-size:12px;line-height:1.8;color:var(--muted)}.article-info a{color:#2d7596;text-decoration:underline;text-underline-offset:3px}
.article-body h3{font-size:17px;line-height:1.9;font-weight:500;margin:34px 0 14px}.article-body ol{padding-left:22px;font-size:13px;line-height:2.4;color:#626c78}.article-body strong{font-weight:600;color:#3d4450}.article-body a{color:#2d7596;text-underline-offset:3px;overflow-wrap:anywhere}
.article-body pre{overflow-x:auto;padding:18px 20px;background:#f1f4f6;font-size:12px;line-height:1.9}.article-body code{font-size:.92em}
.table-scroll{overflow-x:auto;margin:26px 0;-webkit-overflow-scrolling:touch}.table-scroll table{width:100%;min-width:480px;border-collapse:collapse;font-size:13px;line-height:1.9;color:#4d5763}.table-scroll th,.table-scroll td{border-bottom:1px solid var(--line);padding:12px 14px 12px 0;text-align:left;vertical-align:top}.table-scroll th{font-weight:500;color:var(--ink);border-bottom-color:#b9c4cd}
.article-record h2{font-size:18px}.article-record p,.article-record li{font-size:13px}
.article-disclosure{margin:50px 0 0;padding:24px 26px;background:linear-gradient(120deg,#edf4f8,#eff7f7 85%,#f5f3e9)}.article-disclosure h3{margin:0 0 10px;font-size:14px}.article-disclosure p{font-size:12px;line-height:2.1}
.article-related{margin-top:44px;border-top:1px solid var(--line);padding-top:26px}.article-related h3{margin:10px 0 8px;font-size:16px}.article-related ul{list-style:none;padding:0}.article-related li{padding:6px 0}
.article-cta .link+.link{margin-top:14px}.article-cta .link{display:flex}
.journal-articles{margin-bottom:60px}.article-list-date{font-size:12px;color:var(--muted);margin-top:8px}
@media(max-width:700px){.article-info{font-size:11px}.table-scroll table{font-size:12px}.article-disclosure{padding:20px}}
/* Article reading (2026-09-29). The column may shrink below its widest table/code and is at most 720px (about 42
   characters at 17px). Headings get more space above than below. Tables take a class from their shape (articles.py):
   --wide scrolls in its box, --steps/--pairs become cards on phones, --compare tints favourable verdicts, --form is a
   fill-in sheet that prints on A4. Figures, code, tables and callouts keep 32px around them. */
.article-layout{grid-template-columns:240px minmax(0,1fr)}.article-body{min-width:0;max-width:720px}
.article-body p{font-size:17px;line-height:1.95}.article-body p+p{margin-top:1.25em}
.article-body ul,.article-body ol{font-size:17px;line-height:1.9}.article-body li+li{margin-top:.4em}
.article-body h2{font-size:26px;line-height:1.6}.article-body section>h2:first-child{margin:72px 0 20px}.article-body>section:first-child>h2:first-child{margin-top:0}
.article-body h3{font-size:19px;line-height:1.7;margin:40px 0 14px}
.article-body section[id]{scroll-margin-top:24px}
.article-body :is(.table-scroll,.art-figure,pre,blockquote){margin-block:32px}
.article-header h1+.article-subtitle{margin-top:-10px}.article-subtitle{font-size:clamp(17px,1.9vw,23px);font-weight:300;line-height:1.75;letter-spacing:.03em;color:#4f5966;margin-bottom:22px}.article-includes{display:inline-block;margin-bottom:24px;padding:5px 12px;border:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted)}
.article-body pre{font-size:14px;line-height:1.8;padding:22px 24px;tab-size:2}.article-body pre code{font-size:inherit}
.art-figure{margin-inline:0}.art-figure img{display:block;width:100%;height:auto}.art-figure figcaption{margin-top:10px;font-size:13px;line-height:1.7;color:var(--muted)}
.article-body blockquote.callout{padding:20px 24px;border-left:2px solid var(--accent-a,#5291bd);background:color-mix(in srgb,var(--accent-a,#5291bd) 7%,var(--paper));font-size:17px;line-height:1.9;color:inherit}.callout>p:first-child>strong:first-child{color:#2d5f7d;margin-right:.4em}.callout ul{margin:.6em 0 0}.callout p+p{margin-top:.8em}
/* code kinds (articles.py names them from the H3 above): a small label; the prompt is copyable */
.article-body pre[class*="code--"]{position:relative;padding-top:44px}.article-body pre[class*="code--"]::before{position:absolute;top:12px;left:24px;font:500 11px/1.4 var(--jp);letter-spacing:.06em;color:var(--muted)}
.article-body pre.code--prompt{background:#e6eff5}.article-body pre.code--prompt::before{content:'プロンプトの型';color:#2d7596}
.article-body pre.code--sample::before{content:'出力の見本'}
.article-body pre.code--stopped{background:#fbf3e4}.article-body pre.code--stopped::before{content:'止まった時の出力';color:#8a5a14}
.code-copy{position:absolute;top:8px;right:10px;padding:4px 12px;border:1px solid #a9c1d1;background:var(--paper);font:500 11px/1.6 var(--jp);color:#2d7596;border-radius:2px}.code-copy:hover{background:#fff}
.art-figure.art-figure--lead{margin-block:16px 24px}
.article-body blockquote.callout.callout--claim{border-left:4px solid #2d7596}
.article-body p.do-label{margin:40px 0 0;padding:14px 22px 0;border-left:1px solid #a9c1d1;background:color-mix(in srgb,var(--accent-a,#5291bd) 4%,var(--paper));font-size:14px;letter-spacing:.04em;color:#2d5f7d}
.article-body ul.do-list{margin:0 0 8px;padding:8px 22px 16px 42px;border-left:1px solid #a9c1d1;background:color-mix(in srgb,var(--accent-a,#5291bd) 4%,var(--paper))}.article-body ul.do-list li{font-size:16px}
/* tables */
.table-scroll table{font-size:14.5px;line-height:1.75}.table-scroll th,.table-scroll td{padding:14px 16px 14px 0}
.table-scroll th:first-child,.table-scroll td:first-child{min-width:7em}
.table-scroll.is-scrollable:not(.at-end){-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 44px),transparent)}.art-figure .table-scroll-note{margin:0 0 8px}
.table-scroll-note{margin:32px 0 -24px;font-size:11px;letter-spacing:.04em;color:var(--muted)}.article-body p.table-scroll-note{font-size:11px;line-height:1.6}
.step-no{display:inline-grid;place-items:center;width:1.75em;height:1.75em;margin-right:.55em;border-radius:50%;background:color-mix(in srgb,var(--accent-a,#5291bd) 15%,var(--paper));color:#2d5f7d;font:500 12px/1 var(--font);vertical-align:.08em}
.table--pairs td,.table--steps td{padding-block:18px;line-height:1.9}
.table--wide table{min-width:640px}.table--wide th,.table--wide td{padding:12px 14px;line-height:1.7}.table--wide thead th{background:color-mix(in srgb,var(--accent-a,#5291bd) 9%,var(--paper))}.table--wide td:first-child{font-weight:500;color:var(--ink);white-space:nowrap}
.table--three td{padding-block:12px}.table--three td:first-child{font-weight:500;color:var(--ink)}.table--three tbody tr:nth-child(odd){background:color-mix(in srgb,var(--accent-a,#5291bd) 4%,var(--paper))}.table--three th:first-child,.table--three td:first-child{padding-left:10px}
.table--compare table{min-width:600px}.table--compare th,.table--compare td{padding-left:12px}.table--compare th:not(:first-child),.table--compare td:not(:first-child){min-width:7em}.table--compare td.is-favorable{background:color-mix(in srgb,var(--accent-a,#5291bd) 10%,var(--paper))}
.table--form table{min-width:640px}.table--form .blank{white-space:nowrap}.table--form th,.table--form td{border:1px solid #a3aeb8;padding:14px 12px;height:58px}.table--form thead th{background:color-mix(in srgb,var(--accent-a,#5291bd) 7%,var(--paper));height:auto}
.article-body p.inline-cta{margin-top:20px;padding:16px 20px;border:1px solid var(--line);border-left:2px solid var(--accent-a,#5291bd);background:color-mix(in srgb,var(--accent-a,#5291bd) 5%,var(--paper))}
.toc-details>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.toc-details>summary::-webkit-details-marker{display:none}.toc-toggle{font-size:11px;color:var(--muted)}.toc-links{margin-top:8px}
.article-toc a[aria-current="location"]{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent-a,#5291bd);padding-left:10px}.article-toc a{transition:color .3s,padding .3s}
.article-related li{padding:10px 0}.article-related-lead{margin-top:4px;font-size:12px;line-height:1.9;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.editorial-plane,.journal-page-grid .editorial-plane{height:auto;aspect-ratio:1.6;background:var(--wash)}.editorial-plane .principle-art{width:100%;height:100%;margin:0}.editorial-plane .principle-art svg{width:min(44%,230px);height:auto}.editorial-card-sub{margin-top:6px;font-size:13px;line-height:1.8;color:var(--muted)}
.journal-page-grid.journal-grid-2{grid-template-columns:repeat(2,1fr);gap:45px 40px}
@media(min-width:761px){.toc-details>summary{pointer-events:none}.toc-toggle{display:none}}
@media(max-width:760px){.article-layout{grid-template-columns:minmax(0,1fr)}.article-body p{font-size:16px;line-height:1.9}.article-body ul,.article-body ol{font-size:16px;line-height:1.85}.article-body blockquote.callout{font-size:16px;padding:18px 18px}
  .article-body h2{font-size:22px}.article-body section>h2:first-child{margin-top:56px}.article-body h3{font-size:18px;margin-top:36px}
  .article-body pre{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;font-size:13.5px;padding:16px}.article-body pre[class*="code--"]{padding-top:44px}.article-body pre[class*="code--"]::before{left:16px}
  .table-scroll table{font-size:14px}.article-body p.do-label{padding:12px 16px 0}.article-body ul.do-list{padding:6px 16px 14px 34px}.article-body ul.do-list li{font-size:15px}
  .table--wide td:first-child{white-space:normal;min-width:7em}
  .table--pairs table,.table--steps table,.table--three table{min-width:0}.table--pairs thead,.table--steps thead,.table--three thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .table--pairs :is(table,tbody,tr,td),.table--steps :is(table,tbody,tr,td),.table--three :is(table,tbody,tr,td){display:block}
  .table--pairs tr,.table--steps tr,.table--three tr{border:1px solid var(--line);padding:14px 16px;margin-bottom:12px}
  .table--pairs td,.table--steps td,.table--three td{border:0;padding:4px 0;min-width:0;line-height:1.8}
  .table--pairs td::before,.table--steps td:not(:first-child)::before,.table--three td:not(:first-child)::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:11.5px;letter-spacing:.04em;color:var(--muted)}
  .table--steps td:first-child,.table--three td:first-child{font-size:15px;font-weight:500;color:var(--ink);padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--line)}
  .table--three th:first-child,.table--three td:first-child{padding-left:0}.table--three tbody tr:nth-child(odd){background:none}
  .toc-details>summary{cursor:pointer;padding:6px 0}.toc-toggle::after{content:'＋';margin-left:8px}.toc-details[open] .toc-toggle::after{content:'−'}
  .journal-page-grid.journal-grid-2{grid-template-columns:1fr;gap:40px}}
@media print{@page{size:A4;margin:14mm}
  body{background:#fff}.site-header,.site-footer,.contact-band,.article-toc,.article-cta,.article-related,.article-disclosure,.breadcrumb,.table-scroll-note,.skip-link,.form-help{display:none!important}
  .article-layout{display:block;padding:0;border:0}.article-body{max-width:none}
  :is(.table-scroll,.figure-scroll){overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important}.figure-scroll img{min-width:0!important}.table-scroll table{min-width:0!important;width:100%}
  .table--form{break-inside:avoid}.table--form table{font-size:9.5pt;line-height:1.5}.table--form th,.table--form td{height:auto;padding:7pt 5pt;border-color:#555}
  .reveal{opacity:1!important;transform:none!important}.code-copy{display:none}}
/* Article page v2 (2026-09-30). The top is one quiet band: the text on the left, and the article's picture (the same
   one as on its Journal card) dissolving into soft light on the right, so the first paragraphs show below it.
   The table of contents keeps number and text in separate cells; closing records (出典・更新履歴) sit apart.
   Figures, tables, code and the to-do box share the figures' palette: person #2d7596, AI #e6eff5 / #5291bd,
   hand over to a person #b7791f / #fbf3e4, paper #fcfcfa, ink #292c31. */
.article-hero,.article-layout{--a-person:#2d7596;--a-ai:#e6eff5;--a-ai-line:#5291bd;--a-amber:#b7791f;--a-amber-bg:#fbf3e4;--a-ink:#292c31;--a-text:#3a414b;--a-frame:#dfe5ea}
.article-hero{position:relative;isolation:isolate;overflow:hidden}
.article-hero::before{content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(58% 80% at 92% 30%,var(--ambient-a,#d9eaf5),transparent 72%),radial-gradient(50% 70% at 52% 100%,var(--ambient-b,#d9eeed),transparent 72%),radial-gradient(40% 60% at 8% 60%,color-mix(in srgb,var(--ambient-a,#d9eaf5) 45%,transparent),transparent 75%);opacity:.85;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 66%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 66%,transparent)}
.article-hero .wrap{position:relative}
.article-hero .breadcrumb{margin:0;padding-top:34px}
.article-hero-grid{display:grid;grid-template-columns:minmax(0,620px) minmax(0,1fr);align-items:start;min-height:350px;padding-block:30px 44px}
.article-hero .article-header{max-width:none;padding:0}
.article-hero .article-header h1{font-size:clamp(30px,2.8vw,40px);line-height:1.5;letter-spacing:.02em;margin:16px 0 0;color:var(--a-ink);text-wrap:balance;word-break:auto-phrase}
.article-hero .article-subtitle{margin:14px 0 0;font-size:17px;line-height:1.75;letter-spacing:.02em;color:#414954;text-wrap:balance;word-break:auto-phrase}
.article-hero .article-header h1+.article-subtitle{margin-top:14px}
.article-hero .article-lead{margin-top:18px;font-size:15px;line-height:1.95;color:#4c5561}
.article-hero .article-includes{word-break:auto-phrase;display:flex;align-items:baseline;gap:10px;margin:20px 0 0;padding:0;border:0;font-size:13px;line-height:1.7;color:#35586c}
.article-hero .article-includes::before{content:'';flex:none;width:18px;height:1px;background:var(--a-ai-line);transform:translateY(-4px)}
.article-hero .article-info{margin-top:16px;font-size:12px;color:#5d6875}
.article-hero .article-includes+.article-info{margin-top:8px}
.article-hero-art{position:absolute;z-index:-1;top:0;bottom:0;right:0;width:min(60%,900px);pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent 2%,#000 46%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 72%,transparent);mask-image:linear-gradient(to right,transparent 2%,#000 46%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 72%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
.article-hero-art .editorial-art{width:100%;height:100%;aspect-ratio:auto;margin:0;background:none}
.article-hero-art .editorial-art img{width:100%;height:100%;object-fit:cover}
.article-hero-art .photo-index{display:none}
.article-hero-art .editorial-plane{background:none}.article-hero-art .editorial-plane .principle-art svg{width:min(40%,300px);margin-left:30%}
.article-layout{border-top:0;padding-block:44px 72px;gap:clamp(40px,5vw,72px)}
.article-body p.eyebrow{font-size:10px;line-height:1.4;color:#56616e}.article-body p.form-help{margin-top:22px;font-size:12px;line-height:1.9;color:var(--muted)}.article-body p.article-related-lead{font-size:13px;line-height:1.9;color:#56616e}
.article-body .article-related a{font-size:16px}.article-body .article-disclosure p{font-size:14px;line-height:2}
.editorial-cover{background:#eef2f4}
/* table of contents */
.article-toc{font-size:13px;line-height:1.6;max-height:calc(100vh - 150px);overflow-y:auto;scrollbar-width:thin}
.toc-links{margin-top:14px}
.toc-main{list-style:none;margin:0;padding:0}
.article-toc .toc-main a{display:grid;grid-template-columns:2em minmax(0,1fr);column-gap:8px;align-items:baseline;padding:8px 0 8px 14px;border-left:1px solid var(--line);color:#56616e;box-shadow:none}
.toc-text{word-break:auto-phrase;text-wrap:pretty}.toc-no{font:400 11px/1.6 var(--font);letter-spacing:.06em;color:#8a94a0}
.article-toc .toc-main a:hover{color:var(--a-ink)}
.article-toc .toc-main a[aria-current="location"]{padding-left:14px;border-left-color:var(--a-person);color:var(--a-ink);font-weight:500;box-shadow:inset 1px 0 0 var(--a-person)}
.article-toc a[aria-current="location"] .toc-no{color:var(--a-person)}
.toc-tail{display:flex;flex-wrap:wrap;gap:4px 18px;margin:14px 0 0;padding:12px 0 0 14px;border-top:1px solid var(--line);font-size:12px}
.article-toc .toc-tail a{display:inline-block;padding:3px 0;color:#77818c;box-shadow:none}.article-toc .toc-tail a:hover,.article-toc .toc-tail a[aria-current="location"]{color:var(--a-ink);padding-left:0}
/* body */
.article-body p,.article-body ul,.article-body ol{color:var(--a-text)}
.article-body h2,.article-body h3{color:var(--a-ink)}
.article-body section+section>h2:first-child,.article-body section+.article-record>h2:first-child{margin-top:64px;padding-top:40px;border-top:1px solid var(--line)}
.article-body strong{color:var(--a-ink)}
.article-body :is(.table-scroll,.art-figure,pre,blockquote){margin-block:36px}
.article-body blockquote.callout{border-left-width:2px;border-left-color:var(--a-person);background:color-mix(in srgb,var(--a-ai) 62%,var(--paper));color:var(--a-text)}
.article-body blockquote.callout.callout--claim{border-left:3px solid var(--a-person)}
.callout>p:first-child>strong:first-child{color:var(--a-person)}
/* figures: a hairline plate on the figure's own paper; the caption hangs from a short line */
.art-figure .figure-scroll{border:1px solid var(--a-frame);background:#fcfcfa;padding:clamp(6px,1.4vw,14px)}
.art-figure figcaption{display:flex;gap:12px;align-items:baseline;margin-top:14px;font-size:14px;line-height:1.8;color:#4c5561}
.art-figure figcaption::before{content:'';flex:none;width:18px;height:1px;background:var(--a-ai-line);transform:translateY(-5px)}
.art-figure.art-figure--lead{margin-block:28px 36px}
.figure-tools{display:none}
.figure-zoom{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #a9c1d1;background:var(--paper);font:500 12px/1.4 var(--jp);color:var(--a-person);border-radius:2px}
.figure-zoom svg{width:14px;height:14px}
.figure-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:#fcfcfa;color:var(--ink)}
.figure-dialog::backdrop{background:#fcfcfa}
.figure-dialog-bar{position:sticky;top:0;left:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;background:#fcfcfaf2;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}
.figure-dialog-bar p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.figure-dialog-tools{display:flex;flex:none;align-items:center;gap:8px}
.figure-dialog-tools button{min-width:40px;padding:8px 12px;border:1px solid #a9c1d1;background:var(--paper);font:500 13px/1.4 var(--jp);color:#2d7596;border-radius:2px}
.figure-dialog-tools button:disabled{color:#a3aeb8;border-color:var(--line)}
.figure-dialog-scale{min-width:3.2em;text-align:center;font:400 12px var(--font);color:var(--muted)}
.figure-dialog-body{height:calc(100dvh - 58px);overflow:auto;-webkit-overflow-scrolling:touch;padding:12px}
.figure-dialog-body img{display:block;width:100%;max-width:none;height:auto}
/* to-do box: one plate, boxes to tick */
.article-body p.do-label{margin:40px 0 0;padding:18px 24px 0;border:1px solid #c9dbe7;border-bottom:0;border-left:1px solid #c9dbe7;background:color-mix(in srgb,var(--a-ai) 45%,var(--paper));font-size:13px;letter-spacing:.08em;color:var(--a-person)}
.article-body p.do-label strong{color:inherit;font-weight:600}
.article-body ul.do-list{list-style:none;margin:0 0 36px;padding:10px 24px 20px;border:1px solid #c9dbe7;border-top:0;background:color-mix(in srgb,var(--a-ai) 45%,var(--paper))}
.article-body ul.do-list li{position:relative;padding-left:30px;font-size:17px;line-height:1.8;color:var(--a-ink)}
.article-body ul.do-list li::before{content:'';position:absolute;left:2px;top:.5em;width:14px;height:14px;border:1.5px solid var(--a-ai-line);background:#fff;border-radius:2px}
/* code: long lines wrap, so nothing is cut at the right edge */
.article-body pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f3f6f8;border:1px solid var(--a-frame);color:var(--a-ink)}
.article-body pre.code--prompt{background:color-mix(in srgb,var(--a-ai) 70%,var(--paper));border-color:#c9dbe7}
.article-body pre.code--stopped{background:var(--a-amber-bg);border-color:#ecd9b3}.article-body pre.code--stopped::before{color:#8a5a14}
.article-body :not(pre)>code{padding:.1em .35em;background:#eef3f6;border-radius:2px}
/* tables */
.table-scroll table{color:var(--a-text)}.table-scroll th{color:var(--a-ink);border-bottom-color:#9fb6c6}
.table--wide thead th,.table--form thead th{background:color-mix(in srgb,var(--a-ai) 70%,var(--paper))}
.table--three tbody tr:nth-child(odd){background:color-mix(in srgb,var(--a-ai) 38%,var(--paper))}
.table--compare td.is-favorable{background:color-mix(in srgb,var(--a-ai) 80%,var(--paper));color:var(--a-ink)}
.step-no{color:var(--a-person)}
.article-body p.inline-cta{border-left-color:var(--a-person);background:color-mix(in srgb,var(--a-ai) 45%,var(--paper))}
@media(max-width:1050px){.article-hero-grid{grid-template-columns:minmax(0,56%) minmax(0,1fr);min-height:360px}.article-hero-art{width:56%}}
@media(max-width:760px){
  .article-hero::before{opacity:.9}
  .article-hero .breadcrumb{padding-top:18px}
  .article-hero-grid{display:block;min-height:0;padding-block:0 30px}
  .article-hero-art{position:relative;z-index:-1;width:auto;height:min(42vw,176px);margin:10px calc(var(--gutter)*-1) 14px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);-webkit-mask-composite:source-over;mask-composite:add}
  .article-hero-grid{display:flex;flex-direction:column-reverse;align-items:stretch}
  .article-hero .article-header h1{font-size:26px;line-height:1.55;margin-top:10px}
  .article-hero .article-subtitle{font-size:15px;line-height:1.75;margin-top:10px}
  .article-hero .article-lead{font-size:14px;line-height:1.9;margin-top:14px}
  .article-hero .article-includes{font-size:12.5px;margin-top:16px}
  .article-layout{padding-top:8px;gap:28px}
  .article-toc{max-height:none;overflow:visible;padding:4px 16px;border:1px solid var(--a-frame);border-bottom:1px solid var(--a-frame);background:color-mix(in srgb,var(--a-ai) 30%,var(--paper))}
  .toc-details>summary{padding:10px 0}.toc-links{margin:4px 0 12px}
  .article-toc .toc-main a{padding:9px 0 9px 10px;font-size:14px}
  .toc-tail{padding-left:10px}.article-toc .toc-tail a{padding:6px 0;font-size:13px}
  .article-body section+section>h2:first-child,.article-body section+.article-record>h2:first-child{margin-top:52px;padding-top:34px}
  .art-figure .figure-scroll{padding:4px}
  .art-figure .table-scroll-note{display:none}
  .figure-tools{display:flex;justify-content:flex-end;margin-top:10px}
  .art-figure figcaption{font-size:14px}
  .article-body p.do-label{padding:16px 18px 0}.article-body ul.do-list{padding:8px 18px 18px}.article-body ul.do-list li{font-size:16px;padding-left:28px}
}
@media print{.article-hero::before,.article-hero-art,.figure-tools{display:none!important}.article-hero-grid{display:block;min-height:0}}
