.fps-crosshair{position:absolute;left:50%;top:50%;width:7px;height:7px;border:1px solid #ffffffcc;background:#192e3988;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 1px #142c35;z-index:3}.fps-look-button{position:absolute;left:50%;top:25px;transform:translateX(-50%);border:1px solid #61887c;border-radius:6px;background:#142a35ed;padding:9px 15px;color:#d9eee6;font-size:13px;z-index:6;cursor:pointer;white-space:nowrap}.fps-look-button.locked{opacity:0;pointer-events:none}.fps-pad{position:absolute;left:18px;bottom:178px;display:none;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:5px;z-index:6;touch-action:none}.fps-pad button{border:1px solid #8dafb0;background:#183743c9;border-radius:8px;font-size:23px;touch-action:none;color:#e7f3ec;user-select:none}.fps-pad button.pressed{background:#a5f4ca;color:#143725}.fps-pad [data-move=w]{grid-column:2}.fps-pad [data-move=a]{grid-column:1;grid-row:2}.fps-pad [data-move=s]{grid-column:2;grid-row:2}.fps-pad [data-move=d]{grid-column:3;grid-row:2}.fps-help{position:absolute;right:20px;bottom:180px;max-width:155px;background:#12303ac2;padding:9px 12px;border:1px solid #719a9f66;border-radius:6px;font-size:11px;color:#cde2e6;line-height:1.6;pointer-events:none}.city-page #city-canvas,#room-canvas{cursor:crosshair}.city-page .city-top-tools>span{background:#102d37df;color:#e4f1f2;border-color:#739a9f}.city-page .city-instructions{color:#edf5f6;text-shadow:0 1px 3px #000,0 0 8px #000}.city-page .arrival-card{pointer-events:auto}.city-page .building-label{font-size:12px}.city-page .arrival-card small{font-size:11px}.studio .fps-pad{bottom:68px}.studio .fps-help{bottom:70px}.studio .fps-look-button{top:155px}.studio #room{touch-action:none}@media(pointer:coarse),(max-width:750px){.fps-pad{display:grid}.fps-look-button{top:123px;font-size:11px;padding:8px 10px}.fps-help{right:14px;bottom:190px;max-width:110px;font-size:10px}.studio .fps-look-button{top:150px}.city-page .arrival-card p{max-width:210px}.city-page .city-top-tools{top:75px}}@media(min-width:751px){.fps-help{bottom:165px}.studio .fps-help{bottom:25px}}
/* Restrained IT architecture portfolio presentation. */
:root{--mint:#a9cbee;--muted:#b4c0cf;--line:#33424f;background:#111820}.fps-crosshair,.fps-help{display:none}.primary{background:#a9cbee!important;border-color:#a9cbee!important;color:#122438!important}.city-brand small{font-size:12px;letter-spacing:.02em;color:#a9baca}.city-header,.city-page{background:#111820}.destination-panel{background:#17212b}.destination:hover,.destination.selected{background:#20364a;color:#d6e9fb;border-color:#81a4c9}.district-switch button.active{background:#a9cbee;color:#102437}.building-label{border-color:#7999b7;background:#132a3aeF;box-shadow:0 3px 12px #0002}.building-label:hover{background:#a9cbee;color:#142638}.building-label:hover small{color:#25445e}.building-label small{color:#c0cfdd}.arrival-card{border-color:#51687e;border-radius:5px;background:#142331f2;box-shadow:0 6px 18px #0002}.arrival-card small{color:#aac7e2;letter-spacing:.08em}.fps-look-button{border-color:#6b8bad;border-radius:4px;background:#162735ec;color:#e0edfa}.fps-pad button{border-radius:5px;border-color:#7896b0;background:#1a3147d9}.fps-pad button.pressed{background:#a9cbee;color:#162a3e}.mobile-travel button{background:#a9cbee;color:#16324a}.room-nav button:hover,.room-nav button.active{background:#a9cbee;color:#16314d}.hotspot span{background:#132634ed;border-color:#7e9fb9}.hotspot i{background:#a9cbee;border-color:#45647c;box-shadow:0 0 0 1px #a9cbee}.hotspot:hover span{color:#173048;background:#a9cbee;border-color:#a9cbee}.city-page .panel-kicker,.city-page .project-context{color:#a9cbee}.city-page .tech-tags span{border-color:#415a71;color:#c4d6e8}.city-page .diagram-input,.city-page .diagram-output,.city-page .diagram-agents span{background:#1b3347;border-color:#55718b}.city-page #project-bullets li::marker{color:#aacbee}.city-page .panel-top>p{color:#b7d1e9}.city-page dialog{border-color:#486176;background:#15232ff9}.city-page .instructions{color:#a9bacb}.city-header nav{gap:17px}.city-top-tools button{border-color:#59748d;background:#152b3eea}.city-page .map-note{font-size:11px}@media(max-width:1100px){.city-brand small{display:none}.city-header nav{gap:12px}}@media(max-width:750px){.city-header nav{gap:10px}.city-header #projects-button{font-size:11px}.city-header .city-brand strong{font-size:21px}.fps-look-button{top:116px}.studio .fps-look-button{top:151px}}
.stack-intro,.stack-group>p{font-size:16px;line-height:1.7;color:#b6c7d7;margin:18px 0}.stack-group{padding:24px 0;border-bottom:1px solid #354b5e}.stack-group h3{font-size:23px;font-weight:400;line-height:1.3}.stack-group>p{margin:10px 0 16px}.stack-group .tech-tags{gap:8px}.stack-group .tech-tags span{font-size:13px;padding:6px 9px;background:#193247;border-color:#39556c}.stack-note{font-size:12px;color:#8faabe;line-height:1.7;margin-top:25px}.experience-tech{padding-top:28px}.experience-tech>h3{font-size:22px!important;font-weight:400;margin-bottom:17px}.technology-uses{margin:20px 0}.technology-uses>div{margin-bottom:20px}.technology-uses dt{color:#d3e4f2;font-size:15px;font-weight:600;margin-bottom:7px}.technology-uses dd{margin:0;font-size:15px;line-height:1.7;color:#afc1d2}.city-header #stack-button{color:#bbd7f1;border-bottom:1px solid #6587a7;padding-bottom:3px}.studio-header #studio-stack-button{font-size:13px;background:#182d3d;border:1px solid #6788a5;border-radius:5px;padding:12px 15px}.studio-header nav{align-items:center}@media(max-width:750px){.city-header nav{max-width:245px;gap:6px 10px;flex-wrap:wrap;justify-content:flex-end}.city-header #stack-button{font-size:11px}.city-header .primary{font-size:10px;padding:6px 8px}.city-header{height:78px}.city-main{height:calc(100dvh - 78px)}.studio-header #studio-stack-button{font-size:11px;padding:7px 9px}.studio-header nav{gap:5px}.stack-group h3{font-size:22px}.city-header nav>a[href="resume.html"]{font-size:10px}.studio .fps-look-button{top:182px}}
.arrival-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.arrival-actions button:not(.primary),.secondary-button{font-size:13px;padding:11px 14px;border:1px solid #688198;border-radius:4px;background:#1a3144;color:#deebf6;cursor:pointer}.arrival-actions button:disabled{opacity:.45;cursor:default}.secondary-button{margin-top:12px;margin-left:8px}.interior-toolbar{position:absolute;top:75px;left:22px;right:22px;display:flex;align-items:center;gap:9px;background:#182d3deF;border:1px solid #536e84;border-radius:5px;padding:9px 12px;z-index:6}.interior-toolbar button{font-size:12px;border:1px solid #547086;border-radius:3px;padding:7px 10px;background:#213c50;color:#d8e9f5}.interior-toolbar button:disabled{opacity:.4;cursor:default}.interior-toolbar span{font-size:12px;color:#bdd0e0;flex:1;text-align:center}.guide-role{font-size:15px;line-height:1.6;color:#b6c7d5;margin-top:17px}.guide-questions{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 20px}.guide-questions button{font-size:13px;padding:10px 12px;background:#213c50;border:1px solid #527289;border-radius:4px}.guide-questions button.selected{background:#a9cbee;color:#153149;border-color:#a9cbee}.guide-answer{font-size:18px;line-height:1.8;color:#d6e5f0;min-height:180px;padding:20px 0;border-block:1px solid #3c556a}.guide-source{font-size:12px;line-height:1.7;color:#91acbe;margin:22px 0}.guide-marker{border-color:#7da1c1}.guide-marker small{color:#b8ccdd}.city-page .arrival-card{gap:16px}.city-page .arrival-actions .primary{font-size:13px;padding:11px 14px}@media(max-width:1000px){.arrival-card{align-items:flex-start}.arrival-actions{flex-direction:column;align-items:stretch}.arrival-actions button{font-size:12px!important;padding:9px 11px!important}.interior-toolbar{flex-wrap:wrap}}@media(max-width:750px){.arrival-actions{gap:6px}.arrival-actions button{font-size:10px!important;padding:8px!important}.arrival-card>div:first-child{min-width:0}.interior-toolbar{top:157px;left:12px;right:12px;gap:5px;padding:7px}.interior-toolbar button{font-size:10px;padding:6px}.interior-toolbar span{font-size:10px}.guide-questions button{font-size:12px}.guide-answer{font-size:17px;min-height:150px}.secondary-button{margin-left:0;margin-top:12px}.fps-pad{bottom:190px}}
