/* Official role marks, kept intact at their original proportions. */
.company-mark { display:flex; align-items:center; justify-content:center; flex:0 0 71px; width:71px; height:38px; background:#fff; border:1px solid #dfe3e9; border-radius:5px; }
.company-mark img { display:block;width:30px;height:30px;object-fit:contain; }
.company-mark-shipyards img { width:63px;height:auto; }

/* Work as a collection of visual studies, not a wall of project descriptions. */
.work-gallery { background:#fafafa; padding-block:90px; border-top:1px solid #e7e9ee; }
.work-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:38px; }
.work-heading h2 { font-size:clamp(36px,4.2vw,57px); font-weight:500; letter-spacing:-.055em; line-height:1.06; }
.work-heading > p { color:#68717f; font-size:.94rem; max-width:37ch; padding-bottom:4px; }
.work-controls { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.work-filters { display:flex; flex-wrap:wrap; gap:7px; }
.work-filters button { display:inline-flex; align-items:center; gap:14px; padding:10px 14px; border:1px solid #e2e5ea; border-radius:5px; background:#f2f3f5; color:#65707e; font-size:.72rem; transition:background .2s,color .2s; }
.work-filters button > span { opacity:.7;font-size:.56rem; }
.work-filters button[aria-pressed=true] { background:#292e38;color:#fff;border-color:#292e38; }
.work-filters button:hover:not([aria-pressed=true]) { background:#e9ecf2; }
.work-count { font-size:.65rem;color:#7a8390;white-space:nowrap; }
.work-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 24px;align-items:start; }
.work-case { min-width:0;background:#fff;border:1px solid #dfe3ea;border-radius:7px;overflow:hidden; }
.work-case[hidden] { display:none; }
.case-art { height:355px;position:relative;overflow:hidden;isolation:isolate; }
.art-label { position:absolute;z-index:5;top:20px;left:23px;right:23px;display:flex;justify-content:space-between;gap:15px;font-size:.49rem;letter-spacing:.055em; }
.development-dot { display:flex;align-items:center;gap:5px;letter-spacing:0; }
.development-dot::before { content:"";width:4px;height:4px;border-radius:50%;background:#b7c6e3; }
.art-caption { position:absolute;bottom:17px;left:23px;right:23px;display:flex;justify-content:space-between;gap:12px;font-size:.54rem;z-index:5; }
.art-caption > span:last-child { opacity:.65;font-size:.48rem; }
.estimate-art { color:#dce5ff;background:radial-gradient(ellipse at 50% 80%,#3b4f8c,#1c2949 66%); }
.estimate-art::before { content:"";position:absolute;inset:0;background-image:linear-gradient(#d1e1ff09 1px,transparent 1px),linear-gradient(90deg,#d1e1ff09 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(transparent,#000 30%,transparent); }
.estimate-composition { position:absolute;top:40px;left:0;right:0;bottom:33px;perspective:1100px; }
.input-page { position:absolute;z-index:2;left:8%;top:28px;width:137px;height:177px;padding:21px 16px;background:#e7ecf5;color:#55647c;border:1px solid #fff9;box-shadow:0 15px 25px #090e242e;transform:rotate(-8deg) rotateY(7deg);transition:transform .55s var(--ease); }
.file-label { display:block;font-size:.4rem;letter-spacing:.08em;line-height:1.5; }
.input-page > i { display:block;height:3px;background:#b3bfd2;margin-top:11px;width:90%; }.input-page > i:nth-of-type(2) { width:70%; }.input-page > i:nth-of-type(3) { width:80%; }.input-page > i:last-of-type { width:58%; }
.page-highlight { margin-top:17px;padding:6px 8px;background:#cad7ed;border:1px solid #b6c8e6;font-size:.49rem;color:#506689; }
.page-origin { position:absolute;bottom:13px;font-size:.43rem;color:#76849a; }
.page-fold { position:absolute;top:-1px;right:-1px;border-style:solid;border-width:0 16px 16px 0;border-color:transparent #53699b transparent transparent; }
.context-chip { position:absolute;z-index:3;left:6%;bottom:19px;padding:9px 12px;border:1px solid #8299c758;border-radius:4px;background:#293c66;color:#d0daf0;font-size:.48rem;transform:rotate(-3deg); }
.context-chip b { font-weight:400;margin-inline:8px;color:#9fb2db; }
.estimate-streams { position:absolute;inset:0;width:100%;height:100%;stroke:#8199c84f;stroke-width:1; }
.estimate-streams .stream-pulse { stroke:#d1ddff;stroke-width:1.5;stroke-dasharray:22 400;animation:estimate-stream 7s linear infinite; }.estimate-streams .pulse-late { animation-delay:-3.5s; }
.estimate-core { position:absolute;z-index:4;left:49%;top:44%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:15px;border:1px solid #a9bde867;background:linear-gradient(145deg,#7894c8,#3a5284);box-shadow:0 0 0 9px #98b2e30b,0 0 0 25px #98b2e307;display:grid;place-items:center;color:#edf3ff; }
.estimate-core > span { font-size:1.8rem;letter-spacing:-.1em;margin-left:-3px;line-height:1; }
.estimate-core > img { display:block;width:65%;height:auto;border-radius:8px; }
.estimate-core > i { position:absolute;inset:-10px;border:1px solid #a5bce726;border-radius:22px;animation:core-breathe 5s ease-in-out infinite; }.estimate-core > i:nth-of-type(2) { inset:-23px;border-radius:34px;animation-delay:-2.5s; }.estimate-core > i:last-of-type { inset:-38px;border-radius:45px;animation-delay:-1s; }
.output-page { position:absolute;z-index:3;right:7%;top:67px;width:163px;height:168px;padding:20px 16px;background:#f7f9fd;border:1px solid #fff;color:#4c607d;box-shadow:0 18px 30px #0c15372b;transform:rotate(5deg) rotateY(-5deg);transition:transform .55s var(--ease); }
.estimate-lines { border-top:1px solid #dbe2ec;margin-top:17px; }.estimate-lines > span { display:flex;justify-content:space-between;border-bottom:1px solid #e0e6ee;padding:9px 0; }.estimate-lines i { display:block;width:61%;height:3px;background:#b6c5db; }.estimate-lines b { display:block;width:19%;height:3px;background:#d5dfed; }
.review-stamp { position:absolute;bottom:14px;left:16px;right:10px;font-size:.42rem;color:#708477;display:flex;gap:4px;align-items:center; }.review-stamp > span { width:4px;height:4px;border-radius:50%;background:#8fa88a; }
.work-case-estimating:hover .input-page { transform:rotate(-11deg) translate(-3px,-4px); }.work-case-estimating:hover .output-page { transform:rotate(7deg) translate(4px,-4px); }
.knowledge-art { background:#1b1d24;color:#d3d8e8; }
.knowledge-composition { position:absolute;top:45px;bottom:35px;left:0;right:0; }
.knowledge-grid { position:absolute;inset:0;background-image:linear-gradient(#b9c7eb0b 1px,transparent 1px),linear-gradient(90deg,#b9c7eb0b 1px,transparent 1px);background-size:24px 24px;mask-image:radial-gradient(ellipse,#000 20%,transparent 70%); }
.knowledge-source { position:absolute;width:65px;height:73px;border:1px solid #727b984f;border-radius:5px;background:linear-gradient(135deg,#33394a,#242933);padding:13px 10px;box-shadow:0 6px 15px #0002;animation:source-drift 7s ease-in-out infinite; }
.knowledge-source > span { display:block;font-size:.37rem;color:#aab6cf;letter-spacing:.07em;margin-bottom:11px; }.knowledge-source > i { display:block;width:90%;height:2px;margin-bottom:7px;background:#5b6580; }.knowledge-source > i:last-child { width:60%; }
.source-one { left:12%;top:10px;transform:rotate(-9deg); }.source-two { right:17%;top:0;transform:rotate(8deg);animation-delay:-3s; }.source-three { left:7%;bottom:6px;transform:rotate(6deg);animation-delay:-1s; }.source-four { right:7%;bottom:9px;transform:rotate(-6deg);animation-delay:-4s; }.source-five { left:43%;top:40px;transform:rotate(-4deg);opacity:.55;animation-delay:-2s; }
.knowledge-query { display:flex;align-items:center;gap:12px;position:absolute;left:50%;top:101px;width:77%;transform:translateX(-50%);padding:17px 16px;color:#dce2f1;border:1px solid #8998bd74;border-radius:7px;background:linear-gradient(130deg,#343b50,#252b3a);box-shadow:0 0 0 5px #8ea4da08,0 15px 25px #0002;font-size:.67rem;z-index:3; }
.query-icon { width:10px;height:10px;border:1px solid #a6b3ce;border-radius:50%;flex-shrink:0;position:relative; }.query-icon::after { content:"";position:absolute;right:-3px;bottom:-2px;width:4px;height:1px;background:#a6b3ce;transform:rotate(45deg); }
.knowledge-query kbd { margin-left:auto;font:400 .48rem var(--sans);padding:3px 4px;border:1px solid #6c7b9c70;border-radius:3px;color:#aebbd7; }
.knowledge-answer { position:absolute;z-index:2;left:50%;top:165px;transform:translateX(-50%);padding:13px 17px;width:66%;border:1px solid #6978963d;border-radius:6px;background:#252c3c;font-size:.54rem;color:#aebbd3;box-shadow:0 8px 15px #0001; }.answer-light { display:inline-block;width:4px;height:4px;border-radius:50%;background:#b0c2a0;margin-right:6px; }
.answer-trace { display:flex;gap:4px;margin-top:11px; }.answer-trace i { width:28%;height:3px;border-radius:1px;background:#667a9e55; }.answer-trace i:nth-child(2) { width:38%;background:#8fa3c866; }.answer-trace i:last-child { width:17%; }
.case-body { padding:29px 29px 17px; }
.case-topline { display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px 12px;font-size:.59rem;color:#7a8595;margin-bottom:17px; }
.work-case h3 { font-size:clamp(25px,2.65vw,36px);line-height:1.12;letter-spacing:-.045em;font-weight:500; }
.case-body > p { color:#697382;font-size:.85rem;line-height:1.75;margin-top:17px;max-width:55ch; }
.case-status { display:flex;align-items:center;gap:7px;font-size:.62rem;color:#62766b;margin-top:22px; }.case-status i { width:4px;height:4px;border-radius:50%;background:#829988;flex-shrink:0; }
.case-disclosure { border-top:1px solid #e4e8ed;margin-top:24px; }
.case-disclosure summary { display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px 5px;list-style:none;font-size:.72rem;color:#48586c;cursor:pointer; }.case-disclosure summary::-webkit-details-marker { display:none; }.case-disclosure summary > span { font-size:1rem;transition:transform .2s; }.case-disclosure[open] summary > span { transform:rotate(45deg); }
.case-disclosure dl { display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;padding-block:22px 11px; }.case-disclosure dt { font-size:.67rem;color:#3d5068;font-weight:500;margin-bottom:6px; }.case-disclosure dd { font-size:.73rem;line-height:1.7;color:#717e8e; }
.case-source-link { display:inline-block;font-size:.7rem;color:#354d7c;border-bottom:1px solid #b0bfdd;margin:8px 0 15px;padding-bottom:3px; }
.work-case-support .case-art { height:215px; }.work-case-support h3 { font-size:clamp(23px,2.2vw,29px);line-height:1.2; }
.workflow-art { color:#56685a;background:#e6ebe5; }.workflow-art .art-label { color:#727d70; }
.process-rail { position:absolute;left:13%;right:13%;top:79px;display:flex;align-items:center;gap:10px; }
.process-node { display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;width:63px;flex-shrink:0; }.process-node strong { font-size:.54rem;font-weight:400;color:#687b69; }
.process-symbol { position:relative;display:block;box-sizing:border-box;width:29px;height:33px;border:1px solid #b7c4b1;background:#f6f8f1;border-radius:4px;box-shadow:0 4px 8px #455d4610; }.document-symbol::before { content:"";position:absolute;top:10px;left:7px;width:13px;height:1px;background:#a7b59f;box-shadow:0 5px #a7b59f,0 10px #a7b59f; }.route-symbol { background:#8c9f82;border-color:#85977b; }.route-symbol::before { content:"";position:absolute;width:11px;height:11px;border:1px solid #e5ecdf;left:8px;top:10px;transform:rotate(45deg); }.record-symbol::before { content:"";position:absolute;width:12px;height:8px;border:1px solid #a1b195;left:7px;top:11px; }
.process-rail > i { height:1px;flex:1;background:#b5c1b0;position:relative;overflow:hidden;margin-top:-20px; }.process-rail > i::after { content:"";position:absolute;left:-25px;width:22px;height:1px;background:#607a51;animation:process-run 4s linear infinite; }.process-rail > i:nth-of-type(2)::after { animation-delay:-2s; }
.support-art-label { position:absolute;bottom:18px;left:23px;font-size:.6rem;color:#6f7e6b; }
.growth-art { color:#616d83;background:#e9edf4; }.growth-art .art-label { color:#7a859b; }
.growth-composition { position:absolute;left:13%;right:13%;top:68px;height:93px;display:flex;justify-content:center;gap:12px;perspective:800px; }
.growth-card { position:relative;z-index:2;width:88px;height:82px;flex-shrink:0;border:1px solid #c5cfdf;background:#f7f9fd;border-radius:5px;padding:13px 11px;box-shadow:0 4px 8px #455d7510;transition:transform .5s var(--ease); }.growth-card > span { display:block;font-size:.47rem;margin-bottom:12px; }.growth-card > i { display:block;width:88%;height:2px;background:#c9d2e1;margin-bottom:6px; }.growth-card > i:last-child { width:50%; }.growth-card:first-child { transform:rotate(-7deg) translateY(5px); }.growth-card:last-of-type { transform:rotate(7deg) translateY(5px); }
.growth-orbit { position:absolute;inset:9px -20px -7px;border:1px solid #b4c2db70;border-radius:50%;transform:rotate(-9deg);z-index:0; }
.work-case:hover .growth-card:first-child { transform:rotate(-11deg) translate(-4px,0); }.work-case:hover .growth-card:last-of-type { transform:rotate(11deg) translate(4px,0); }
.growth-art .support-art-label { color:#74829a; }
@keyframes estimate-stream { to { stroke-dashoffset:-422; } }
@keyframes core-breathe { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes source-drift { 0%,100% { translate:0 0; } 50% { translate:0 -5px; } }
@keyframes process-run { to { left:100%; } }
@media(max-width:1050px) { .case-art { height:320px; }.case-body { padding:25px 24px 16px; }.input-page { left:6%;width:118px;height:161px;padding:17px 13px; }.output-page { right:5%;width:141px;height:151px;padding:17px 13px; }.estimate-core { left:49%;width:48px;height:48px; }.estimate-core > span { font-size:1.5rem; }.context-chip { font-size:.42rem;left:6%;bottom:18px; }.review-stamp { left:13px;font-size:.36rem;bottom:12px; }.file-label { font-size:.35rem; }.estimate-lines { margin-top:14px; }.estimate-lines > span { padding:8px 0; }.art-label { font-size:.44rem;left:20px;right:20px; }.art-caption { left:20px;right:20px;font-size:.48rem; }.art-caption > span:last-child { font-size:.42rem; }.knowledge-query { font-size:.6rem;padding:15px 13px; }.knowledge-answer { font-size:.47rem;padding:12px 14px;top:158px; }.knowledge-query kbd { font-size:.42rem; }.case-topline { font-size:.52rem; }.case-body > p { font-size:.79rem; }.case-status { font-size:.56rem; }.process-rail { left:8%;right:8%;gap:7px; }.growth-card { width:78px; }.work-case-support h3 { font-size:25px; } }
@media(max-width:800px) { .work-heading { align-items:start;flex-direction:column;gap:24px; }.work-heading > p { max-width:52ch;font-size:.91rem; }.work-grid { gap:22px 18px; }.case-art { height:295px; }.case-body { padding:23px 20px 15px; }.work-case h3 { font-size:27px; }.input-page { width:104px;left:5%; }.output-page { width:118px;right:4%;top:63px; }.estimate-core { width:40px;height:40px;margin-left:-20px;top:44%; }.estimate-core > span { font-size:1.3rem; }.context-chip { font-size:.36rem;padding:8px; }.review-stamp { font-size:.31rem; }.knowledge-query { width:82%;gap:8px;font-size:.51rem; }.knowledge-answer { width:71%;font-size:.41rem; }.knowledge-source { width:53px;height:66px;padding:12px 8px; }.knowledge-source > span { font-size:.31rem; }.work-case-support .case-art { height:195px; }.process-node { width:51px; }.process-node strong { font-size:.48rem; }.process-rail { gap:5px;top:72px; }.growth-card { width:68px;height:77px;padding:12px 8px; }.growth-card > span { font-size:.42rem; }.growth-composition { gap:6px;top:63px; }.support-art-label { left:20px;font-size:.53rem; }.work-case-support h3 { font-size:23px; }.case-disclosure dl { grid-template-columns:1fr;gap:17px; }.case-disclosure dd { font-size:.71rem; }.case-topline { font-size:.49rem; }.case-body > p { font-size:.76rem; }.case-status { font-size:.51rem; } }
@media(max-width:620px) { .work-gallery { padding-block:65px; }.work-heading { gap:20px; }.work-heading h2 { font-size:39px; }.work-heading > p { font-size:.89rem; }.work-controls { align-items:start;flex-direction:column;gap:12px;margin-bottom:23px; }.work-filters { gap:5px; }.work-filters button { font-size:.62rem;padding:9px 10px;gap:10px; }.work-filters button > span { font-size:.48rem; }.work-count { font-size:.57rem; }.work-grid { grid-template-columns:minmax(0,1fr);gap:23px; }.case-art { height:320px; }.case-body { padding:25px 22px 16px; }.work-case h3 { font-size:30px; }.case-topline { font-size:.54rem; }.case-body > p { font-size:.82rem; }.case-status { font-size:.58rem; }.case-disclosure summary { font-size:.7rem; }.case-disclosure dl { grid-template-columns:1fr; }.case-disclosure dd { font-size:.75rem; }.case-disclosure dt { font-size:.7rem; }.input-page { width:117px;left:7%;height:160px; }.output-page { width:137px;right:6%;top:66px; }.estimate-core { width:44px;height:44px;top:46%; }.file-label { font-size:.34rem; }.review-stamp { font-size:.36rem; }.context-chip { font-size:.4rem;padding:9px; }.knowledge-query { font-size:.6rem;width:80%;gap:10px; }.knowledge-answer { font-size:.47rem;width:68%;top:159px; }.knowledge-source { width:62px;height:72px;padding:13px 10px; }.knowledge-source > span { font-size:.35rem; }.art-label { font-size:.42rem;left:20px;right:20px; }.art-caption { font-size:.47rem; }.art-caption > span:last-child { font-size:.4rem; }.work-case-support .case-art { height:205px; }.process-rail { left:12%;right:12%;top:75px;gap:10px; }.process-node { width:58px; }.process-node strong { font-size:.54rem; }.growth-card { width:79px;height:79px;padding:12px 10px; }.growth-card > span { font-size:.46rem; }.growth-composition { gap:9px;top:66px; }.work-case-support h3 { font-size:25px; }.support-art-label { font-size:.57rem; } }
@media(max-width:360px) { .company-mark { flex-basis:62px;width:62px; }.company-mark-shipyards img { width:54px; }.hero-now .current-role strong { font-size:.67rem; }.work-heading h2 { font-size:35px; }.work-filters button { padding:8px;font-size:.57rem;gap:7px; }.case-art { height:290px; }.input-page { width:101px;left:5%;padding:16px 11px; }.output-page { width:116px;right:5%;padding:16px 11px; }.estimate-core { left:50%;width:36px;height:36px;margin-left:-18px; }.estimate-core > span { font-size:1.1rem; }.file-label { font-size:.3rem; }.review-stamp { font-size:.31rem;left:11px; }.context-chip { font-size:.35rem;padding:8px;bottom:13px; }.art-label { font-size:.37rem;left:16px;right:16px; }.art-caption { left:16px;right:16px;font-size:.4rem; }.art-caption > span:last-child { font-size:.35rem; }.knowledge-query { font-size:.5rem;gap:7px;padding:14px 11px; }.knowledge-answer { font-size:.4rem;width:70%;top:155px; }.case-body { padding-inline:19px; }.work-case h3 { font-size:27px; }.case-topline { font-size:.47rem; }.case-status { font-size:.51rem; }.growth-card { width:68px; }.growth-composition { gap:6px; }.growth-card > span { font-size:.4rem; }.process-rail { left:8%;right:8%;gap:5px; }.process-node { width:52px; }.process-node strong { font-size:.49rem; }.support-art-label { font-size:.5rem; } }
@media(prefers-reduced-motion:reduce) { .stream-pulse,.estimate-core > i,.knowledge-source,.process-rail > i::after { animation:none; }.input-page,.output-page,.growth-card { transition:none; } }
