:root{color-scheme:dark;--bg:#101b23;--panel:#172632;--edge:#37505d;--ink:#f3f6f1;--muted:#b9cbd0;--lime:#d8f481;--rust:#ffb29e;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink)}header,main,footer{width:min(1200px,calc(100% - 40px));margin:auto}header{height:77px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--edge)}.brand{color:var(--ink);text-decoration:none;font-size:1.25rem;letter-spacing:-.04em}.brand strong,.eyebrow{color:var(--lime)}main{padding:32px 0}p{line-height:1.5;color:var(--muted);margin:0 0 16px}h1,h2{margin:0 0 14px;line-height:1.07;letter-spacing:-.04em}.hero{min-height:350px;display:grid;grid-template-columns:1fr 1fr;background:var(--panel);border:1px solid var(--edge);border-radius:18px;overflow:hidden}.hero>div:first-child{padding:clamp(22px,5vw,60px)}.hero h1{font-size:clamp(2.55rem,6vw,5.2rem)}.hero-image{background:linear-gradient(90deg,#172632,transparent 35%),linear-gradient(0deg,#0d222855,#0d222844),url(img/sequence.webp) 42% 47%/cover}.eyebrow,.ledger span,.status{font:700 .76rem/1.5 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.primary,.outline{border-radius:8px;padding:11px 16px;font-weight:720;min-height:44px}.primary{background:var(--lime);color:#172322;border:1px solid var(--lime)}.outline{background:transparent;color:var(--ink);border:1px solid var(--edge)}button:hover:not(:disabled){filter:brightness(1.15);border-color:var(--lime)}:focus-visible{outline:2px solid var(--lime);outline-offset:4px}.ledger{display:grid;grid-template-columns:repeat(3,1fr);margin:16px 0 38px;border:1px solid var(--edge);border-radius:12px}.ledger div{padding:14px clamp(10px,3vw,28px)}.ledger div+div{border-left:1px solid var(--edge)}.ledger span{display:block;color:var(--muted)}.ledger strong{font-size:clamp(1.2rem,4vw,2rem);color:var(--lime)}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mission-card{background:var(--panel);color:var(--ink);border:1px solid var(--edge);border-radius:12px;text-align:left;overflow:hidden;padding:0;display:flex;flex-direction:column}.mission-card img{width:100%;height:110px;object-fit:cover;object-position:center 42%;opacity:.78}.mission-card div{display:grid;gap:7px;padding:16px}.mission-card strong{font-size:1.16rem}.mission-card small{color:var(--muted)}.mission-card span{color:var(--lime);font-weight:700;font-size:.78rem}.record,.play-top,.status,.controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.record{border-top:1px solid var(--edge);margin-top:30px;padding-top:24px}.record p{margin:0}.play-top{margin-bottom:16px}.play-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);gap:18px;align-items:start}.panel,.evidence{background:var(--panel);border:1px solid var(--edge);border-radius:14px;overflow:hidden}.panel,.evidence-text{padding:clamp(16px,3vw,30px)}.panel h1{font-size:clamp(1.5rem,3.2vw,2.3rem)}.image-button{border:0;background:transparent;padding:0;display:block;width:100%}.image-button img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#0b141b}.status,#liveScore{color:var(--muted)}progress{width:100%;height:8px;accent-color:var(--lime);margin:12px 0 20px}.choice{display:block;text-align:left;width:100%;background:#203340;color:var(--ink);padding:12px 14px;border:1px solid var(--edge);border-radius:8px;margin-bottom:8px;min-height:48px}.choice.good{border-color:var(--lime);color:var(--lime)}.choice.bad{border-color:var(--rust);color:var(--rust)}.choice.chosen{border-style:dashed;opacity:.65}.entry{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.entry input{min-width:0;width:150px;color:var(--ink);padding:12px;background:var(--bg);border:1px solid var(--edge);border-radius:7px}#feedback:not(:empty){margin:14px 0;padding:14px;border-left:3px solid var(--lime);background:var(--bg);line-height:1.55}#feedback[data-ok=false]{border-color:var(--rust)}dialog{width:min(95vw,1150px);max-height:95vh;background:var(--bg);border:1px solid var(--edge);border-radius:12px;color:var(--ink)}dialog::backdrop{background:#000c}dialog img{display:block;max-width:100%;max-height:79vh;margin:10px auto 0;object-fit:contain}footer{border-top:1px solid var(--edge);padding:16px 0 25px;color:var(--muted);font-size:.84rem}@media(max-width:820px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}.play-grid{grid-template-columns:1fr}.image-button img{max-height:245px}}@media(max-width:540px){header,main,footer{width:calc(100% - 24px)}main{padding-top:16px}.hero{grid-template-columns:1fr}.hero-image{min-height:135px;background-image:linear-gradient(180deg,#172632,transparent 65%),url(img/sequence.webp)}.mission-card img{height:78px}.mission-card div{padding:11px}.ledger span{font-size:.65rem}}

.image-wrap{position:relative;width:fit-content;max-width:100%;margin:0 auto}
.image-button:has(.field-photo){width:auto;margin:auto}
.image-button img.field-photo{width:auto;max-width:100%;height:auto;max-height:490px;aspect-ratio:auto}
.marker{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;border:2px solid white;background:#172632;color:white;font-weight:800;box-shadow:0 2px 10px #0009}
.marker.good{background:var(--lime);color:var(--bg)}
.marker.bad{background:var(--rust);color:var(--bg)}
@media(max-width:820px){.image-button img.field-photo{max-height:380px}}
a{color:var(--lime)}.final-building{width:150px;height:155px;object-fit:cover;border-radius:9px}#certificateForm input{padding:10px;border-radius:7px;border:1px solid var(--edge);margin:6px 0}

/* Rafael Camilo engineering portfolio palette and typography. */
:root{color-scheme:light;--bg:#fff;--panel:#fff;--edge:#dce2e8;--ink:#17334f;--muted:#516473;--lime:#254f76;--rust:#952f22;--gold:#b38a46;--wash:#f3f6f8;font-family:"DM Sans",Arial,sans-serif}
body{line-height:1.6}header,main,footer{width:min(1240px,calc(100% - 40px))}
header{height:88px}.brand{display:flex;align-items:center;gap:12px;font-size:.87rem;letter-spacing:.015em}.brand strong,.brand small{display:block}.brand small{font-size:.64rem;letter-spacing:.14em;color:var(--muted)}
h1,h2{font-weight:600;letter-spacing:-.045em}.eyebrow,.ledger span,.status{font:700 .71rem/1.5 "DM Sans",Arial,sans-serif;letter-spacing:.15em}
.hero{border:0;border-radius:0;min-height:390px;align-items:stretch;border-bottom:1px solid var(--edge)}.hero>div:first-child{padding-left:0}
.hero-image{background:linear-gradient(90deg,#17334f22,transparent),url(img/field-crane.webp) center 40%/cover;border-bottom:4px solid var(--gold)}
.primary,.outline{border-radius:3px}.primary{background:var(--ink);border-color:var(--ink);color:#fff}.outline{border-color:#a8b9c8}.ledger{background:var(--wash);border-radius:0}.ledger strong{color:var(--ink)}
.mission-card,.panel,.evidence{border-radius:3px}.mission-card img{opacity:1}.mission-card div{padding:17px}.mission-card span{color:var(--lime)}
.choice{background:var(--wash);border-radius:3px}.choice.good{background:#edf5ee;border-color:#39734b;color:#245836}.choice.bad{background:#fff3ef}
.image-button img{background:var(--wash)}#feedback:not(:empty){background:var(--wash)}.marker{background:#17334f}.marker.good,.marker.bad{color:white}
.finish{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--edge)}
.finish h1{font-size:clamp(2rem,5vw,4.25rem)}.finish .final-building{width:100%;height:clamp(200px,29vw,320px);object-position:center 37%;border-radius:0;border-bottom:4px solid var(--gold)}
#grade{color:var(--ink);font-weight:800}.attendance{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;padding:30px;background:var(--wash);margin-top:24px}.attendance iframe{width:100%;height:445px;border:1px solid var(--edge);background:white}
@media(max-width:600px){header,main,footer{width:calc(100% - 24px)}.brand strong{font-size:.7rem}.brand img{width:38px;height:38px}.hero{grid-template-columns:1fr;min-height:0}.hero-image{min-height:190px}.finish,.attendance{grid-template-columns:1fr}.attendance{padding:18px}}
.audio-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:end}.audio-controls button{padding-inline:9px}
.sim-scene{background:#f3f6f8;border:1px solid var(--edge);margin-bottom:12px}.sim-scene svg{display:block;width:100%;max-height:300px;fill:#17334f;font:700 14px "DM Sans",sans-serif}.sim-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}.sim-option[aria-pressed=true]{background:#17334f;color:white}.sim-option{padding-inline:4px}

.case-link{display:inline-block;text-decoration:none}

.opening-music{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:8px 12px;margin-bottom:16px;background:var(--wash);border:1px solid var(--edge);font-size:.88rem}
#musicStatus:empty{display:none}
@media(max-width:480px){.audio-controls button{font-size:.75rem}}
