/* All projects stay visible: compact media, context and one clear next step. */
.project-grid{display:grid;gap:17px;align-items:stretch}
.project-tile{min-width:0;display:flex;flex-direction:column;border:1px solid #c1cfe1;border-radius:15px;background:#fff;overflow:clip;box-shadow:0 8px 22px #102c5808;transition:border-color .25s,box-shadow .25s,translate .25s}
.project-tile[hidden]{display:none}
.project-tile:hover{border-color:#8ba6c9;box-shadow:0 12px 25px #102c5814;translate:0 -3px}
.tile-visual{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;height:170px;flex-shrink:0;width:100%;border:0;border-bottom:1px solid #c1cfe1;padding:15px 12px;overflow:clip;background:radial-gradient(ellipse at 50% 30%,#fff,#dce6f3);color:#102c58}
.tile-visual:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#91a9c319 1px,transparent 1px),linear-gradient(90deg,#91a9c319 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(135deg,#000,transparent 85%)}
.tile-visual:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff24 48%,transparent 60%);translate:-110% 0;transition:translate .7s}
.tile-visual:hover:after{translate:110% 0}
.tile-window{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:100%;min-height:0;border:1px solid #b0c2d9;border-radius:7px;padding:4px;background:linear-gradient(130deg,#fff,#abbfd6);box-shadow:0 9px 16px #102c5826}
.tile-window img{display:block;width:100%;height:100%;min-height:0;object-fit:contain;border-radius:3px;background:#eaf0f7}
.tile-rovel .tile-visual{background:radial-gradient(ellipse at 40% 35%,#345983,#102c58)}
.tile-rovel .tile-window img{background:#102c58}
.tile-repro .tile-visual{background:radial-gradient(ellipse at 40% 35%,#314863,#0f1d31)}
.tile-repro .tile-window img{background:#111}
.tile-identity .tile-visual{background:linear-gradient(120deg,#e1e9f4,#f6f9fd 55%,#b4c6db)}
.tile-identity .tile-window{width:auto;max-width:75%;border-radius:6px;background:#f6f9fd}
.tile-identity .tile-window:before,.tile-identity .tile-window:after{content:'';position:absolute;width:80%;height:84%;top:8%;left:-30%;border-radius:5px;background:#fff;border:1px solid #d5e0ed;transform:rotate(-10deg);z-index:-1;box-shadow:0 7px 15px #102c5815}
.tile-identity .tile-window:after{left:55%;background:#16365f;transform:rotate(10deg);border-color:#6b86a9}
.tile-identity .tile-window img{width:auto;max-width:100%;background:none}
.tile-toxic .tile-visual{padding-bottom:29px}
.tile-toxic .tile-window img{background:#111}
.tile-evidence{position:absolute;left:12px;bottom:9px;max-width:calc(100% - 58px);font-size:8px;line-height:1.4;color:#586e8d;text-align:left}
.tile-info{padding:17px 17px 11px;display:flex;flex-direction:column;flex:1;min-width:0}
.tile-service{margin:0 0 8px;font-size:9px;letter-spacing:.055em;text-transform:uppercase;line-height:1.5;color:#647b99}
.tile-info :is(h2,h3){font-size:21px;line-height:1.2;letter-spacing:-.035em;font-weight:650;margin:0;color:#102c58}
.tile-role{font-size:10px;line-height:1.5;color:#627795;margin:8px 0 9px}
.tile-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;margin-top:auto;font-size:11px;font-weight:600;color:#102c58;border-top:1px solid #e0e7f1}
.tile-link>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid #b7c9df;font-size:17px;transition:background .25s}
.tile-link:hover>span{background:#e0e9f5}
.project-tile :is(a,button):focus-visible{outline:3px solid #b2945a;outline-offset:-4px}
@media(max-width:600px){.project-grid{gap:11px}.project-tile{border-radius:12px}.tile-visual{padding:10px 8px;height:116px}.tile-window{padding:3px;border-radius:5px}.tile-info{padding:12px 11px 5px}.tile-info :is(h2,h3){font-size:17px;line-height:1.25}.tile-service{font-size:8px;letter-spacing:.025em;min-height:24px;margin-bottom:5px}.tile-role{font-size:9px;min-height:27px;margin:7px 0}.tile-link{font-size:10px;min-height:44px;gap:6px}.tile-link>span{width:24px;height:24px;font-size:16px}.tile-toxic .tile-visual{padding-bottom:32px}.tile-evidence{font-size:7px;bottom:6px;left:8px;max-width:calc(100% - 53px)}}
@media(prefers-reduced-motion:reduce){.project-tile,.project-tile *,.project-tile *:after{animation:none!important;transition:none!important}.project-tile:hover{translate:none}}
