
/* Inner pages share the landing page's palette, type, controls, and footer. */
.subpage-root { font-size:1px; }
.subpage .page { width:100%; }
.subpage { font-size:20rem; }
.inner-container { width:calc(100% - 128rem); max-width:1240rem; margin:0 auto; }
.inner-header { padding:16rem 0; background:var(--ink); color:white; }
.inner-nav { max-width:1408rem; width:calc(100% - 32rem); margin:auto; display:flex; align-items:center; gap:32rem; }
.inner-logo { width:48rem; height:48rem; flex:none; }
.inner-logo img { width:100%; height:100%; display:block; }
.inner-links { display:flex; align-items:center; gap:24rem; flex:1; }
.inner-links a { font-size:16rem; line-height:24rem; padding:12rem 0; }
.inner-links a[aria-current] { color:var(--yellow); }
.inner-links a:hover { color:var(--yellow); }
.inner-hero { padding:88rem 0 96rem; position:relative; overflow:hidden; }
.inner-hero h1 { font-size:clamp(54rem,8vw,112rem); line-height:1.1; }
.eyebrow { font-size:16rem; line-height:24rem; letter-spacing:1rem; margin-bottom:24rem; }
.hero-lead { max-width:850rem; font-size:24rem; line-height:34rem; margin:32rem 0; }
.navy-hero,.about-hero { background:var(--ink); color:#f6f7fa; }
.yellow-hero { background:var(--yellow); color:var(--ink); border-radius:0 0 80rem 80rem; }
.split { display:flex; align-items:center; justify-content:space-between; gap:64rem; }
.split>div { min-width:0; }
.about-hero .split>div:first-child { flex:1; }
.about-hero h1 { font-size:clamp(48rem,5.1vw,72rem); }
.about-hero .hero-lead { font-size:20rem; line-height:28rem; }
.about-portrait { width:420rem; height:500rem; flex:none; overflow:hidden; border-radius:210rem; }
.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:35% center; }
.inner-section { padding:88rem 0; }
.inner-section h2 { font-size:clamp(36rem,4.5vw,64rem); line-height:1.15; }
.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:64rem; }
.story-grid h2 { font-size:40rem; }
.prose p+p { margin-top:24rem; }
.prose { font-size:20rem; line-height:30rem; }
.capability-section { background:var(--blue); color:white; }
.capability-grid { margin-top:48rem; display:grid; grid-template-columns:repeat(3,1fr); gap:32rem; }
.capability { border-top:2rem solid #7d89ee; padding-top:24rem; }
.number { display:block; font-size:16rem; line-height:24rem; margin-bottom:24rem; }
.capability h3 { font-size:28rem; line-height:1.2; margin-bottom:20rem; }
.capability p { font-size:18rem; line-height:26rem; }
.capability .skills { margin-top:24rem; color:#e5eafa; font-size:16rem; line-height:24rem; }
.process-list { list-style:none; margin:48rem 0 0; padding:0; counter-reset:process; }
.process-list li { counter-increment:process; display:grid; grid-template-columns:48rem 260rem 1fr; align-items:start; gap:32rem; padding:28rem 0; border-top:1rem solid #080c2d30; }
.process-list li::before { content:"0" counter(process); font:400 24rem/32rem Chunko,sans-serif; color:var(--blue); }
.process-list h3 { font-size:24rem; line-height:32rem; }
.process-list p { font-size:20rem; line-height:28rem; }
.tool-section { background:var(--yellow); border-radius:80rem; }
.tool-grid { margin-top:48rem; display:flex; flex-wrap:wrap; gap:32rem; }
.tool-grid>div { display:flex; align-items:center; gap:12rem; padding:20rem; background:#ffffff90; border-radius:20rem; }
.tool-grid img { width:64rem; height:64rem; border-radius:12rem; }
.tool-grid h3 { font-size:28rem; line-height:1; }
.thoughts-empty { padding:64rem 0; text-align:center; }
.empty-symbol { display:inline-flex; width:88rem; height:88rem; align-items:center; justify-content:center; border-radius:50%; background:var(--pale); color:var(--blue); font-size:40rem; margin-bottom:32rem; }
.thoughts-empty>p:not(.eyebrow) { max-width:660rem; margin:24rem auto; }
.empty-actions { display:flex; justify-content:center; gap:16rem; margin-top:32rem; }
.thought-topics { padding-top:0; }
.topic-row { display:flex; flex-wrap:wrap; gap:16rem; }
.topic-row span { font:400 32rem/40rem Chunko,sans-serif; padding:20rem 24rem; border:1rem solid #080c2d30; border-radius:16rem; }
.section-line { display:flex; align-items:end; justify-content:space-between; gap:32rem; margin-bottom:48rem; }
.section-line h2 { font-size:40rem; }
.section-line p { font-size:18rem; flex:none; }
.visual-grid { display:grid; grid-template-columns:1fr 1fr; gap:32rem; align-items:stretch; }
.visual-tile { position:relative; display:block; padding:0; border:0; border-radius:28rem; overflow:hidden; background:var(--ink); }
.visual-tile>img { width:100%; height:100%; display:block; object-fit:cover; }
.visual-open { position:absolute; bottom:24rem; right:24rem; background:rgb(8 12 45 / 75%); color:white; width:48rem; height:48rem; display:grid; place-items:center; border-radius:12rem; font-size:24rem; }
.visual-tile:hover img { transform:scale(1.025); }
.visual-tile img { transition:transform 350ms; }
.visual-note { background:var(--blue); color:white; border-radius:28rem; padding:48rem; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:24rem; }
.visual-note h3 { font-size:56rem; line-height:1.15; }
.visual-note .number { margin:0; }
.visual-note .project-link { color:white; align-self:flex-start; margin-top:8rem; }
.playground-contact,.project-outro { background:var(--blue); color:white; border-radius:80rem 80rem 0 0; }
.filter-row { display:flex; gap:12rem; flex-wrap:wrap; }
.filter-chip { font:400 16rem/24rem Belanosima,sans-serif; padding:12rem 24rem; border-radius:12rem; border:1rem solid #080c2d30; color:var(--ink); background:transparent; }
.filter-chip[aria-pressed="true"] { color:white; background:var(--ink); border-color:var(--ink); }
.filter-status { margin:20rem 0 48rem; font-size:16rem; }
.case-list { display:flex; flex-direction:column; gap:64rem; }
.case-entry { display:grid; grid-template-columns:1fr 1fr; gap:48rem; align-items:center; }
.case-entry[hidden] { display:none; }
.case-cover { aspect-ratio:1.2; border-radius:28rem; padding:40rem; display:flex; flex-direction:column; justify-content:space-between; background:white; color:var(--ink); }
.case-cover h2 { font-size:clamp(32rem,4vw,56rem); overflow-wrap:anywhere; }
.cover-cybersecurity { background:var(--ink); color:white; }
.cover-productivity { background:var(--yellow); }
.cover-enterprise { background:var(--blue); color:white; }
.cover-status { font-size:16rem; opacity:.8; }
.case-detail h3 { font-size:36rem; line-height:1.2; margin-bottom:24rem; }
.case-detail>p:not(.eyebrow) { font-size:20rem; line-height:28rem; }
.case-detail .eyebrow { font-size:14rem; }
.case-status { display:block; font-size:16rem; line-height:24rem; margin:24rem 0 16rem; color:#54565d; }
.case-detail .project-link { align-self:auto; }
.visual-dialog { max-width:min(90vw,1000px); max-height:90vh; padding:0; border:0; border-radius:20px; background:var(--ink); }
.visual-dialog::backdrop { background:rgb(8 12 45 / 85%); }
.visual-dialog>img { display:block; max-width:100%; max-height:85vh; object-fit:contain; }
.preview-close { position:absolute; top:12px; right:12px; z-index:1; display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:12px; background:white; color:var(--ink); font-size:24px; }
.subpage footer { margin-top:0; }
.subpage .footer-top { height:auto; min-height:350rem; max-width:1440rem; margin:auto; padding:64rem; }
.subpage .footer-bottom { max-width:1440rem; margin:auto; padding:0 64rem 32rem; }
@media (max-width:1050px) {
  .inner-container { width:calc(100% - 64rem); }
  .inner-nav { flex-wrap:wrap; gap:24rem; }
  .inner-links { gap:18rem; }
  .about-portrait { width:320rem; height:440rem; }
  .split,.story-grid { gap:40rem; }
  .subpage .footer-links { width:auto; }
  .subpage .footer-contact { width:360rem; }
  .subpage .footer-top { gap:32rem; padding:48rem 32rem; }
}
@media (max-width:760px) {
  .inner-container { width:calc(100% - 40rem); }
  .inner-nav { width:calc(100% - 40rem); justify-content:space-between; gap:16rem; }
  .inner-links { flex-basis:100%; order:3; flex-wrap:wrap; justify-content:space-between; gap:8rem 16rem; }
  .inner-links a { font-size:14rem; padding:8rem 0; }
  .inner-hero { padding:48rem 0 56rem; }
  .hero-lead { font-size:20rem; line-height:28rem; }
  .inner-section { padding:56rem 0; }
  .split { flex-direction:column; align-items:flex-start; gap:40rem; }
  .about-portrait { width:100%; max-width:420rem; height:460rem; align-self:center; }
  .story-grid,.capability-grid,.case-entry,.visual-grid { grid-template-columns:1fr; }
  .capability-grid { gap:40rem; }
  .process-list li { grid-template-columns:40rem 1fr; gap:12rem; }
  .process-list p { grid-column:2; }
  .tool-section,.yellow-hero { border-radius:0 0 40rem 40rem; }
  .tool-grid { gap:16rem; }
  .tool-grid>div { padding:16rem; }
  .tool-grid img { width:44rem; height:44rem; }
  .tool-grid h3 { font-size:22rem; }
  .thoughts-empty { padding:24rem 0; }
  .empty-actions { flex-direction:column; align-items:center; }
  .topic-row span { font-size:24rem; }
  .section-line { align-items:flex-start; flex-direction:column; gap:16rem; }
  .section-line h2 { font-size:32rem; }
  .visual-note { padding:32rem; }
  .visual-note h3 { font-size:40rem; }
  .case-detail h3 { font-size:30rem; }
  .case-entry { gap:24rem; }
  .case-cover { padding:32rem; }
  .filter-chip { padding:10rem 16rem; font-size:14rem; }
  .playground-contact,.project-outro { border-radius:40rem 40rem 0 0; }
  .subpage .footer-top { flex-wrap:wrap; padding:48rem 20rem; gap:40rem; }
  .subpage .footer-links { flex:1; }
  .subpage .footer-links a { font-size:28rem; line-height:36rem; }
  .subpage .footer-socials { flex:1; }
  .subpage .footer-contact { width:100%; align-items:flex-start; text-align:left; }
  .subpage .footer-contact h2 { font-size:32rem; line-height:1.2; }
  .subpage .footer-bottom { padding:0 20rem 24rem; height:auto; font-size:14rem; flex-wrap:wrap; }
  .subpage .footer-marquee { height:96rem; }
  .subpage .footer-marquee>div { font-size:96rem; line-height:96rem; }
}
